[ SEO ]
/ai-visibility
Backed by `.claude/context/ai-seo/playbook/03-ai-visibility.md` (+ `06-schema.md` for the schema lever).
ACME Agency, <id> and you@example.com mark values that are per-agency — your install fills them with YOUR clients and accounts. If a section references a helper script you don't have yet, it ships with that workflow's install./ai-visibility — AI Visibility / Generative Engine Optimization (GEO)
Backed by .claude/context/ai-seo/playbook/03-ai-visibility.md (+ 06-schema.md for the schema lever). The differentiated "AI SEO" angle: getting recommended by ChatGPT / AI Overviews, which pull from different sources than Google's blue links.
When to trigger
- "Is ACME Agency showing up in ChatGPT?", "get this business cited by AI", "AI Overview optimization", "/ai-visibility ACME Agency".
- After
/local-seo-auditflags an AI-visibility gap, or when a client asks about "ranking in ChatGPT / AI search".
What it produces
A Google Doc "AI Visibility (GEO) — <Client>" with: current AI-citation status (results of the test queries), a data-source diagnosis (Bing, citations, UGC, schema, E-E-A-T), and a prioritized GEO action plan.
Step-by-Step
1. Parse
First positional = client/business. Flags: --url, --location, --queries (custom test queries), --dry-run.
2. Gather context
node ACME Agency/scripts/seo_run.mjs --skill ai-visibility --mode gather --client "<name>" --url "<url>" --location "<city>"
Read the CONTEXT (business facts + scraped site for NAP/legitimacy signals).
3. Read the method
Read .claude/context/ai-seo/playbook/03-ai-visibility.md fully. Internalize: how ChatGPT makes recommendations, ChatGPT-vs-Google data sources (Bing matters), the legitimacy/super-citation signals, the Reddit/UGC tactic, and the E-E-A-T/authorship method.
4. Run the visibility test
- Build the test queries from the playbook (e.g. "best <service> in <city>", "<service> near me", "who should I hire for <X> in <city>") plus any
--queries. - Actually run them. Use
WebSearch(andWebFetchon AI-Overview-style SERPs) to see whether the business is named/cited, and which competitors are. If you have a way to query an LLM endpoint, do; otherwise use live web search as the proxy and clearly label it as such. Pull before hypothesizing — don't assert citation status you didn't check. - Note the business's Bing presence, directory/citation consistency, Reddit/UGC mentions, and on-site legitimacy signals (about page, authorship, schema) from the scrape.
5. Write the deliverable (markdown)
- Current status — for each test query: is the business cited? who is? (table).
- Diagnosis — per data source (Bing, citations/NAP, third-party/UGC, schema, E-E-A-T): present / weak / missing, with evidence.
- Action plan — ordered, each item tagged with the executing skill where relevant (
/seo-schemafor structured data,/seo-contentfor authority content,/seo-backlinksfor citations). Lead with the highest-leverage fix (often Bing/Bing Places + citation consistency).
Write to ACME Agency/clients/<Client>/SEO/ai-visibility.md (or /tmp).
6. Save + report
node ACME Agency/scripts/seo_run.mjs --skill ai-visibility --mode save --client "<name>" \
--in "<ai-visibility.md>" --title "AI Visibility (GEO) — <Client>" \
--slack "*AI Visibility (GEO) — <Client>*
Cited in <N>/<M> test queries. Top fix: <x>."
Add --dry-run to skip Drive/Slack. Output the Doc link.
Guardrails
- Label proxies honestly. If you used web search as a stand-in for an LLM query, say so. Never claim a ChatGPT result you didn't observe.
- Recommend-only. No live changes; the team executes the plan (often via the schema/content/backlinks skills).