Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add swan-gtm/gtm-skills --skill local-ai-visibilitygit clone --depth 1 https://github.com/swan-gtm/gtm-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/swan-gtm/gtm-skills/local-ai-visibility)<a href="https://agentmods.dev/skills/swan-gtm/gtm-skills/local-ai-visibility"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/local-ai-visibility/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/swan-gtm/gtm-skills/local-ai-visibility"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/local-ai-visibility.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00087 | $0.00553 |
| Opus 5.5 | $0.00035 | $0.00221 |
| Sonnet 5.5 | $0.00017 | $0.00111 |
| Haiku 4.5 | $0.00009 | $0.00055 |
Grade A, and why
local-ai-visibility scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 38 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Use when a business serves specific towns, suburbs, or service areas and needs to know where AI recommends it. Produces a town-by-engine presence grid and a ranked list of the gaps where rivals get named instead.
Build the town matrix
List every town the business genuinely serves, not just the head city. Phrase each test question the way a local buyer types it — the service plus the place, in plain words. Ask per town, per engine. Results from the head city predict nothing about the suburb next to it: answer engines assemble local answers from thin, hyper-local evidence, and a brand can be the answer in one postcode and absent one over.
Record the local pack separately
For engines that lean on map results, capture presence in the map pack and presence in the written answer as two signals. They move for different reasons: the pack follows profile completeness, reviews, and proximity; the prose follows mentions, citations, and content. A brand can hold one and not the other, and the fix for each is different work.
Make the gap map
For every town-and-engine cell where the brand is absent, record who is named instead, in the engine's own words. Rank the gaps by demand — the search volume behind the question where it is known, population as the proxy where it is not. The output is a ranked list: town, question, who wins it now, and the quoted evidence.
What good looks like
The expert's tell is the visibility cliff: named consistently across the service area except two towns where one competitor dominates every engine — those two towns are the quarter's work, and the quoted answers explain why. The mediocre version checks the head city once, averages everything into a single local score, and hides exactly the gaps that matter. Good output names towns, names the rivals winning them, quotes the answers, and orders the list so the first row is the most valuable fix.
Rules
- MUST test each served town separately, in buyer phrasing.
- MUST record map-pack presence and written-answer presence as separate signals.
- NEVER average towns into one score.
- NEVER assume traditional local rankings imply presence in AI answers.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 38 lines · 87 tokens per session scan A 774c98d7c04e
local-ai-visibility is a skill published in the GitHub repository swan-gtm/gtm-skills (221 stars, last pushed 7d ago), licensed MIT. It adds 87 tokens to every session and 553 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
ai-visibility-audit
Check whether AI answer engines (ChatGPT, Claude, Perplexity, Google AI) can reach, read and cite a website — and find the sources they cite instead. Use when someone asks why AI never mentions their business, wants a GEO / AEO / AI-SEO / "AI visibility" audit, asks whether ChatGPT or Claude can see their site, wants…
html-ppt-zhangzara-coral
OpenDesign's community-growth campaign across GitHub, Discord, and X: the loops, the content calendar, and the pipeline math. Built as a decision-grade marketing & GTM deck for growth team, community lead.
ads
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' 'audience targeting,' 'Google Ads,' 'Facebook ads,' 'LinkedIn ads,' 'ad…
co-marketing
When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities. Use when the user says 'co-marketing,' 'partner marketing,' 'joint campaign,' 'who should we partner with,' 'integration marketing,' 'cross-promotion,' 'collaborate with another company,' 'partnership…
social-media
Produce a content calendar and a week of platform-specific copy from the account positioning, delivered as an Excel workbook plus a Markdown document.
press-media-relations
Use when the user asks to "build a media list for my launch", "write a launch press release", or "pitch press under embargo"; produces a three-tier media and analyst list (Tier 1 exclusive candidates, Tier 2 vertical press, Tier 3 communities and newsletters), an embargo pitch timing skeleton keyed to the…