Files
our-claude-skills/custom-skills/27-seo-ai-visibility/SKILL.md
Andrew Yim 6ac547e78f
Some checks failed
Verify Skills / verify-skills (push) Has been cancelled
refactor(skills): clean skill names (strip NN- prefix from name:) — convention change
Adopt: directory keeps its NN- ordering prefix; skill `name:` is the clean form
without it (dir 16-seo-schema-validator → name: seo-schema-validator). Nicer to
invoke, matches the original desktop/SKILL.md names, still globally unique.

- 71 root SKILL.md: name: NN-foo → name: foo (flat skills + reference-curator suite).
  Plugins (mac-optimizer/multi-agent-guide/dintel-bootstrap) already clean; 95 already clean.
- scripts/migrate_skill_root.py: derive name = dirname minus NN- prefix (skill_name()).
- CLAUDE.md + SKILL-MIGRATION-GUIDE.md: document the dir-prefix / clean-name convention.

verify_skills.py: 0 name collisions across all renamed skills. (The ~/.claude/skills
symlinks were re-pointed to the clean names separately — filesystem only.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-28 02:11:01 +09:00

159 lines
7.1 KiB
Markdown

---
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"