# /ai-visibility

> Backed by `.claude/context/ai-seo/playbook/03-ai-visibility.md` (+ `06-schema.md` for the schema lever).


# /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-audit` flags 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
```bash
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` (and `WebFetch` on 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-schema` for structured data, `/seo-content` for authority content, `/seo-backlinks` for 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
```bash
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).
