Run the additive migration pass from SKILL-MIGRATION-GUIDE: generate a root SKILL.md for every skill that lacked one, copied from its desktop/SKILL.md (or code/SKILL.md), with name set to the directory name and description + body preserved verbatim. - scripts/migrate_skill_root.py: the reusable, non-destructive migrator (dry-run default). - 61 new root SKILL.md (desktop source for most; code/SKILL.md for 61/62/92). - Untouched: 16/17/95 (already had root); desktop/ and code/ packaging left intact. - All 64 root SKILL.md validate: frontmatter <=1024, kebab name, description present. Still MANUAL (no SKILL.md source — commands/README only), need hand-authored root SKILL.md: 81-mac-optimizer, 90-reference-curator, 91-multi-agent-guide, 94-dintel-bootstrap. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
159 lines
7.1 KiB
Markdown
159 lines
7.1 KiB
Markdown
---
|
|
name: 27-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"
|