---
name: seo-ai-visibility
description: |
  AI search visibility and brand radar monitoring. Tracks how a brand appears
  in AI-generated search answers using our-seo-agent CLI or pre-fetched data.
  Triggers: AI search, AI visibility, brand radar, AI citations,
  share of voice, AI answers, AI mentions.
---

# SEO AI Visibility & Brand Radar

Monitor and analyze brand visibility in AI-generated search results. This skill uses our-seo-agent CLI or pre-fetched data to track impressions, mentions, share of voice, cited domains, cited pages, and AI response content.

## Capabilities

### AI Visibility Tracking
- **Impressions Overview** - How often the brand appears in AI answers
- **Mentions Overview** - Brand mention frequency across AI engines
- **Share of Voice (SOV)** - Brand's share vs competitors in AI search
- **Historical Trends** - Impressions, mentions, and SOV over time
- **Competitor Comparison** - Side-by-side AI visibility metrics

### AI Citation Analysis
- **AI Response Analysis** - Content and sentiment of AI mentions
- **Cited Domains** - Which source domains AI engines reference
- **Cited Pages** - Specific URLs that get cited in AI answers
- **Citation Ranking** - Frequency-based ranking of citations
- **Sentiment Analysis** - Positive/neutral/negative distribution

## Workflow

1. **Input**: User provides target domain and optional competitors
2. **Data Collection**: Fetch metrics from our-seo-agent CLI or pre-fetched JSON
3. **Analysis**: Calculate trends, compare competitors, analyze sentiment
4. **Recommendations**: Generate actionable Korean-language recommendations
5. **Output**: JSON report and Notion database entry

## Data Source Selection

**Single-vendor constraint.** AI search visibility / Brand Radar / share-of-voice in AI answers is currently **Ahrefs-only** among connected SEO MCPs. Neither Semrush nor DataForSEO exposes equivalent endpoints today. This is the one SEO skill where the "let the user choose" framing collapses to a one-option menu for the core capability.

| Backend | Best for | Notes |
|---|---|---|
| **Ahrefs MCP — Brand Radar** (`mcp__ahrefs__brand-radar-*`) | **Default** (and currently the only viable source) for AI mentions, impressions, share of voice, cited domains/pages, AI response history | Tools: `brand-radar-ai-responses`, `brand-radar-cited-domains`, `brand-radar-cited-pages`, `brand-radar-impressions-overview`, `brand-radar-mentions-overview`, `brand-radar-sov-overview`, `brand-radar-sov-history`, plus `*-entities` variants. |
| **Ahrefs MCP — Management** | Configure Brand Radar prompts and reports | `management-brand-radar-prompts`, `management-brand-radar-reports`. |
| **OurSEO brand monitoring** (`mcp__ourseo__monitor_brand` / `our research google brand`) | Web-wide brand mention scanning — **not** AI-search specific, but useful as a supplement to compare with AI citations | Catches brand mentions in standard Google search; complements Brand Radar's AI-specific view. |
| **WebSearch** | Manual spot-check of AI engines (ChatGPT, Gemini, Perplexity) by querying directly | Not automated — useful for one-off "did the brand appear?" checks. |
| **Semrush MCP** | **No equivalent.** Listed in `allowed-tools` only for future compatibility if Semrush adds an AI-visibility product. | Do not attempt to substitute Semrush for Brand Radar today. |

### How to pick

1. **User named Ahrefs explicitly** → use Brand Radar.
2. **Task is AI mentions / impressions / share of voice / cited pages** → Brand Radar is the only option; use it.
3. **Task is general brand monitoring across the web (not AI-specific)** → OurSEO `monitor_brand` is sufficient and cheaper.
4. **Task explicitly compares AI vs traditional brand visibility** → run **both** Brand Radar AND OurSEO `monitor_brand`, document the source per data slice.
5. **No alternative needed** for the core AI-visibility capability — skip the AskUserQuestion fallback unless the user expresses preference uncertainty.

### Backend call patterns

**Ahrefs Brand Radar (default):**
```
mcp__ahrefs__brand-radar-impressions-overview(brand="<brand>")
mcp__ahrefs__brand-radar-mentions-overview(brand="<brand>")
mcp__ahrefs__brand-radar-sov-overview(brand="<brand>", competitors=["<comp1>","<comp2>"])
mcp__ahrefs__brand-radar-sov-history(brand="<brand>", history="weekly")
mcp__ahrefs__brand-radar-cited-domains(brand="<brand>")
mcp__ahrefs__brand-radar-cited-pages(brand="<brand>")
mcp__ahrefs__brand-radar-ai-responses(brand="<brand>")
mcp__ahrefs__brand-radar-impressions-history(brand="<brand>", history="weekly")
mcp__ahrefs__brand-radar-mentions-history(brand="<brand>", history="weekly")
```

**Configure prompts / reports:**
```
mcp__ahrefs__management-brand-radar-prompts()
mcp__ahrefs__management-brand-radar-reports()
```

**OurSEO brand monitoring (supplement):**
```
mcp__ourseo__monitor_brand(brand="<brand>", exclude_domains=["<own.com>"])
```

Or CLI:
```bash
our research google brand "<brand>" --exclude <own.com>
```

### Tracking note

Brand Radar requires the brand to be configured in the user's Ahrefs workspace via `management-brand-radar-prompts`. If a query returns empty, first check that the brand is set up — don't conclude "no AI visibility" from an empty Brand Radar response without verifying configuration.

Always record the chosen data source(s) in the report **Overview** so future audits can compare like-for-like.

## Notion Output

All reports are saved to the OurDigital SEO Audit Log:
- **Database ID**: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
- **Category**: AI Search Visibility
- **Audit ID Format**: AI-YYYYMMDD-NNN
- **Language**: Korean (technical terms in English)

## Output Format

```json
{
  "domain": "example.com",
  "impressions": {
    "total": 15000,
    "trend": "increasing",
    "period": "30d"
  },
  "mentions": {
    "total": 450,
    "positive": 320,
    "neutral": 100,
    "negative": 30,
    "sentiment_score": 0.72
  },
  "share_of_voice": {
    "domain_sov": 12.5,
    "competitors": {
      "competitor1.com": 18.3,
      "competitor2.com": 15.1
    }
  },
  "cited_pages": [
    {"url": "https://example.com/guide", "citations": 45},
    {"url": "https://example.com/faq", "citations": 28}
  ],
  "cited_domains": [
    {"domain": "example.com", "citations": 120},
    {"domain": "competitor1.com", "citations": 95}
  ],
  "recommendations": [
    "Create more FAQ-style content for AI citation capture",
    "Add structured data to improve AI answer extraction"
  ],
  "audit_id": "AI-20250115-001",
  "timestamp": "2025-01-15T14:30:00"
}
```

## Limitations

- Requires our-seo-agent CLI or pre-fetched AI visibility data
- AI search landscape changes rapidly; data may not reflect real-time state
- Share of Voice metrics are relative to tracked competitor set only
- Sentiment analysis based on AI-generated text, not user perception
- Cannot distinguish between different AI engines (ChatGPT, Gemini, Perplexity) without Brand Radar

## Example Queries

- "example.com의 AI 검색 가시성을 분석해줘"
- "AI search visibility for example.com with competitors"
- "브랜드 레이더 분석: example.com vs competitor.com"
- "AI 인용 분석 - 어떤 페이지가 AI 답변에서 인용되나요?"
- "Share of Voice in AI search for our domain"
