SEO Opportunity Finder — quick wins from competitor gaps — Claude Skill
A Claude Skill for Claude Code by Gooseworks — run /seo-opportunity-finder in Claude·Updated
Find quick-win SEO content opportunities by competitor gap analysis
- Catalogs your existing content
- Compares against competitor keyword rankings
- Identifies topics they rank for and you don't
- Outputs a prioritized list of posts to write or update
- Designed for quick wins, not long-term strategy
Who this is for
What it does
For seed/Series A teams just starting SEO, find the easiest wins to validate the channel.
Feed your weekly editorial planning with prioritized SEO opportunities.
Find existing posts you should refresh based on competitor coverage.
How it works
Take your site and competitors as input
Catalog your existing content
Compare against competitor keyword rankings
Identify gap topics
Output prioritized opportunity list
Metrics this improves
Works with
Want to use SEO Opportunity Finder?
Choose how to get started.
Install and run this skill locally on your computer.
Open a terminal on your computer and paste this command:
This downloads the skill with all its files to your computer:
Add -g at the end to make it available in all your projects.
Start Claude Code, then type the command:
SEO Opportunity Finder
Identify the highest-leverage content gaps between your site and competitors. Combines a crawl of your existing content with competitor keyword/traffic analysis to surface a prioritized list of posts worth writing.
Core principle: Don't start from a blank keyword list. Start by knowing what you have, then find what competitors have that you don't — and pick the gaps most likely to convert.
When to Use
- "Find SEO content gaps vs our competitors"
- "What topics should we write about to rank?"
- "We're starting a blog — where should we focus first?"
- "What keywords are [competitor] ranking for that we're missing?"
Phase 0: Intake
- Your website URL (e.g.,
https://yourcompany.com) - 2-3 competitor URLs to compare against
- Primary ICP — who are you trying to attract? (This filters for commercial intent vs. general traffic)
- Any topics/keyword themes that are definitely in scope? (Optional — helps prioritize output)
Phase 1: Catalog Your Existing Content
Run site-content-catalog to build an inventory of your current pages and posts:
python3 skills/site-content-catalog/scripts/catalog_site.py \
--url <your_site_url> \
--output json
Extract from results:
- All blog post titles and URLs
- Inferred topics/themes per post
- Estimated content age (from URL slugs or metadata if available)
This prevents recommending content you've already written.
Phase 2: Analyze Competitor SEO Footprint
Run seo-domain-analyzer for each competitor:
# Uses Apify Semrush/Ahrefs scrapers
node skills/seo-domain-analyzer/src/cli.js analyze --domain <competitor_domain>
Collect for each competitor:
- Top ranking keywords (by estimated traffic volume)
- Top pages by organic traffic
- Domain authority / DR score
- Keyword categories they're winning in
If seo-domain-analyzer returns limited data (low-traffic competitor), supplement with seo-traffic-analyzer:
python3 skills/seo-traffic-analyzer/scripts/analyze_seo.py \
--url <competitor_url> \
--output summary
Phase 3: Identify Gaps
Compare your content inventory (Phase 1) against competitor keyword/topic coverage (Phase 2):
Gap Classification
| Type | Definition | Priority |
|---|---|---|
| Hard gap | Competitor has a page/post on topic, you have nothing | High |
| Soft gap | You have content on topic but it's thin (< 500 words, old, no depth) | Medium |
| Positioning gap | Competitor owns a keyword cluster that maps to your ICP's exact problem | High |
| Informational gap | High traffic, low commercial intent — good for awareness, not conversion | Low |
Commercial Intent Filter
For each gap topic, score commercial intent (1-5):
- 5 — Directly maps to your product (e.g., "best AI SDR tools for startups")
- 4 — Problem-aware but not product-specific (e.g., "how to scale outbound SDR")
- 3 — Adjacent pain point (e.g., "cold email open rates benchmark 2026")
- 2 — Educational, tangential (e.g., "what is lead scoring")
- 1 — Generic traffic, low conversion potential
Prioritize gaps with score ≥ 3.
Phase 4: Synthesize & Output
Produce a prioritized opportunity table + editorial brief starters:
# SEO Opportunity Report — [Your Company] vs [Competitors]
Generated: [DATE]
## Your Content Snapshot
- Total indexed pages: [N]
- Blog posts: [N]
- Main topic clusters: [list]
## Competitor Benchmarks
| Domain | DR | Est. Monthly Organic Traffic | Top Keyword Clusters |
|--------|----|-----------------------------|----------------------|
| [comp1] | [X] | [X] | [topics] |
| [comp2] | [X] | [X] | [topics] |
## Top 10 Content Opportunities
### 1. [Topic/Title Suggestion]
- **Keyword target:** [keyword phrase]
- **Why it matters:** [what problem it solves for ICP]
- **Competitor owning it:** [competitor URL]
- **Est. monthly searches:** [range]
- **Commercial intent score:** [1-5]
- **Recommended format:** [listicle / how-to / comparison / landing page]
- **Estimated effort:** [hours or word count target]
### 2. [Topic/Title Suggestion]
...
## Quick Wins (update existing posts)
| Your Post | Issue | What to Add |
|-----------|-------|-------------|
| [URL] | [thin/outdated] | [recommendation] |
## Recommended Content Calendar (Next 90 Days)
| Month | Post | Intent Score | Est. Traffic Potential |
|-------|------|-------------|----------------------|
| Month 1 | [post 1] | [score] | [range] |
| Month 1 | [post 2] | [score] | [range] |
| Month 2 | [post 3] | [score] | [range] |
...
Save to clients/<client-name>/intelligence/seo-opportunities-[YYYY-MM-DD].md.
Cost
| Component | Cost |
|---|---|
| Site content catalog | Free (sitemap crawl) |
| SEO domain analyzer (per competitor) | ~$1-3 (Apify Semrush scraper) |
| Traffic analyzer (supplement) | ~$0.10-0.50 (web search probes) |
| Total per run | ~$3-10 for 3 competitors |
Tools Required
- Apify API token —
APIFY_API_TOKENenv var - Upstream skills:
site-content-catalog,seo-domain-analyzer,seo-traffic-analyzer
Trigger Phrases
- "Find our SEO content gaps"
- "What should we write about to rank?"
- "Compare our content coverage to [competitor]"
- "Run SEO opportunity finder for [client]"