skills/content-gap-analysis/SKILL.md
Identify content gaps between your site and competitors. Use when the user says "content gaps", "what am I missing", "competitor content", "content opportunities", "topics I should cover", "content gap analysis", or asks about finding topics and keywords their site doesn't cover but competitors do.
npx skillsauth add OpenClaudia/openclaudia-skills content-gap-analysisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a content strategy analyst. Identify content gaps by comparing a site's content coverage against competitors, search demand, and audience journey needs.
Inventory the user's current content:
{domain}/sitemap.xml to list all published pagesIf the user has a codebase, check:
For 2-3 competitors, gather their content:
{competitor}/sitemap.xmlIf SemRush API is available:
# Get competitor's top organic keywords
curl -s "https://api.semrush.com/?type=domain_organic&key=${SEMRUSH_API_KEY}&domain={competitor}&database=us&export_columns=Ph,Po,Nq,Cp,Co,Tr,Tc&display_limit=100"
Compare keywords your site ranks for vs. competitors:
# Your site's keywords
curl -s "https://api.semrush.com/?type=domain_organic&key=${SEMRUSH_API_KEY}&domain={your_domain}&database=us&export_columns=Ph,Po,Nq,Cp,Tr&display_limit=200"
# Competitor's keywords
curl -s "https://api.semrush.com/?type=domain_organic&key=${SEMRUSH_API_KEY}&domain={competitor}&database=us&export_columns=Ph,Po,Nq,Cp,Tr&display_limit=200"
Gap = Keywords competitors rank for that you don't.
Filter gaps by:
Compare topic coverage at the cluster level:
Your topic clusters: Competitor topic clusters:
├── Cluster A: 8 articles ├── Cluster A: 12 articles ← Coverage gap
├── Cluster B: 5 articles ├── Cluster B: 5 articles ← Parity
├── Cluster C: 3 articles ├── Cluster C: 7 articles ← Coverage gap
│ ├── Cluster D: 6 articles ← Missing cluster
│ ├── Cluster E: 4 articles ← Missing cluster
Check what content formats competitors use that you don't:
| Format | You | Competitor A | Competitor B | Gap? | |--------|-----|-------------|-------------|------| | Blog posts | ✓ | ✓ | ✓ | No | | Case studies | ✗ | ✓ | ✓ | Yes | | Comparison pages | ✗ | ✓ | ✗ | Partial | | Templates/tools | ✗ | ✓ | ✓ | Yes | | Video content | ✗ | ✗ | ✓ | Partial | | Glossary/wiki | ✗ | ✓ | ✗ | Partial | | Webinars/events | ✗ | ✓ | ✓ | Yes | | Podcasts | ✗ | ✗ | ✓ | Partial |
Map content to the buyer journey:
| Journey Stage | Questions | Your Content | Gap? | |---------------|-----------|-------------|------| | Awareness | "What is {topic}?" | {exists/missing} | {Yes/No} | | Consideration | "Best {solution} for {use case}" | {exists/missing} | {Yes/No} | | Decision | "{You} vs {competitor}" | {exists/missing} | {Yes/No} | | Onboarding | "How to set up {product}" | {exists/missing} | {Yes/No} | | Expansion | "Advanced {feature} tips" | {exists/missing} | {Yes/No} | | Advocacy | "How {customer} achieved {result}" | {exists/missing} | {Yes/No} |
Check if your content appears in AI-generated answers:
Score each gap:
| Factor | Weight | Score 1-10 | |--------|--------|-----------| | Search volume potential | 30% | How much traffic could this drive? | | Business alignment | 25% | How relevant to our product/service? | | Competition difficulty | 20% | How hard to rank? (inverse: easy = high score) | | Content effort | 15% | How much work to create? (inverse: easy = high score) | | Strategic value | 10% | Does this fill a journey gap or unlock a cluster? |
Priority Score = Weighted average
# Content Gap Analysis: {Domain}
**Date:** {date}
**Competitors Analyzed:** {list}
**Total Gaps Found:** {count}
## Executive Summary
{2-3 sentences on the biggest opportunity areas}
## Keyword Gaps (Competitor Keywords You're Missing)
### High Priority (Volume > 1,000, KD < 40)
| Keyword | Volume | KD | Competitor | Their Position | Content Type Needed |
|---------|--------|-----|-----------|----------------|-------------------|
| {keyword} | {vol} | {kd} | {competitor} | #{pos} | {type} |
### Medium Priority (Volume 200-1,000, KD < 50)
{Same table format}
## Topic Cluster Gaps
### Missing Clusters (Competitors have, you don't)
| Cluster Topic | Competitor Coverage | Est. Total Volume | Recommended Pages |
|---------------|-------------------|-------------------|-------------------|
| {topic} | {competitor}: {X} articles | {volume} | {count} |
### Under-Covered Clusters (You have some, competitors have more)
| Cluster Topic | Your Pages | Competitor Pages | Missing Subtopics |
|---------------|-----------|-----------------|-------------------|
| {topic} | {count} | {count} | {list} |
## Content Format Gaps
| Missing Format | Competitors Using It | Recommended Action | Priority |
|---------------|---------------------|-------------------|----------|
| {format} | {who} | {action} | {H/M/L} |
## Buyer Journey Gaps
| Stage | Gap | Recommended Content | Target Keyword |
|-------|-----|-------------------|----------------|
| {stage} | {what's missing} | {content to create} | {keyword} |
## AI/GEO Gaps
| Keyword | AI Overview? | You Cited? | Fix |
|---------|-------------|-----------|-----|
| {keyword} | Yes | No | {action} |
## Prioritized Content Plan
| # | Content Piece | Type | Target Keyword | Volume | Priority Score | Gap Type |
|---|--------------|------|----------------|--------|---------------|----------|
| 1 | {title} | {blog/page/tool} | {keyword} | {vol} | {score}/10 | {keyword/topic/format/journey} |
## Quick Wins (Low Effort, High Impact)
1. **{Action}** — {Why this is a quick win}
2. **{Action}** — {Why}
3. **{Action}** — {Why}
testing
Edit podcast audio — trim pre/post-show chat, remove filler words, cut silences, and enhance audio quality. Use when the user asks to edit a podcast, clean up audio, remove fillers, trim a recording, or improve voice quality.
data-ai
Generate images using AI (OpenAI GPT Image or Stability AI). Use when the user asks to generate an image, create an AI image, make an illustration, or produce artwork from a text prompt.
development
Analyze YouTube channel and video performance using the YouTube Data API. Use when the user says "YouTube analytics", "check my channel", "video performance", "YouTube stats", "channel analysis", "compare YouTube channels", "YouTube SEO", or asks about YouTube metrics, views, subscribers, or content performance.
development
Create high-converting landing page copy and structure. Use when the user says "landing page", "sales page", "create a landing page", "landing page copy", "conversion page", "lead gen page", "signup page", "product page copy", "hero section", "write landing page", or asks for marketing page copy with conversion goals.