Find quick-win SEO content opportunities by comparing
SEO opportunity finder

Find quick-win SEO content opportunities by comparing your site's existing content against competitor keyword rankings. Chains site-content-catalog and seo-domain-analyzer to build a content inventory, then identifies gaps — topics…
--- name: seo-opportunity-finder description: > Find quick-win SEO content opportunities by comparing your site's existing content against competitor keyword rankings. Chains site-content-catalog and seo-domain-analyzer to build a content inventory, then identifies gaps — topics competitors rank for that you don't cover yet. Outputs a prioritized list of posts to write or update. Use when a seed/Series A team wants to start winning organic traffic without guessing. tags: [seo] --- # 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
Overview
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.
Manual install (npx, ZIP)
npx skills add gooseworks-ai/goose-skills --skill seo-opportunity-finder -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \
| tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/seo/composites/seo-opportunity-finderNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/978caf97015d76786cdc/seo-opportunity-finder.zip" -OutFile "$env:TEMP\seo-opportunity-finder.zip"; Expand-Archive "$env:TEMP\seo-opportunity-finder.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md5.6 KBskill.meta.json370 B
Read the files here
gooseworks-ai/
Show the full text150 lines
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
Build an inventory of the target site's current pages and posts:
- Fetch sitemap.xml (check
/sitemap.xml,/sitemap_index.xml,robots.txtforSitemap:directives) - Fall back to RSS feeds (
/feed,/blog/feed) or blog index crawl if no sitemap - Extract: all blog post titles and URLs, inferred topics/themes per post, estimated content age
This prevents recommending content you've already written.
Phase 2: Analyze Competitor SEO Footprint
For each competitor domain, pull SEO metrics:
- Domain overview — authority score, organic traffic estimate, top ranking keywords (via Apify Semrush scraper if
APIFY_API_TOKENis set) - Top pages — highest-traffic pages and their primary keywords
- Keyword categories — which topic clusters they're winning in
If Apify data is limited, supplement with web search probes:
site:[competitor]for indexed page count- Search target keywords and note which competitors rank where
- SimilarWeb free tier for traffic estimates
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 the current working directory or wherever the user prefers.
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 (for Semrush/Ahrefs data; free web search probes work without it) - Web search and web fetch capabilities
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]"
| 1 | |
| 2 | name seo-opportunity-finder |
| 3 | description > |
| 4 | Find quick-win SEO content opportunities by comparing your site's existing content |
| 5 | against competitor keyword rankings. Chains site-content-catalog and seo-domain-analyzer |
| 6 | to build a content inventory, then identifies gaps — topics competitors rank for that |
| 7 | you don't cover yet. Outputs a prioritized list of posts to write or update. |
| 8 | Use when a seed/Series A team wants to start winning organic traffic without guessing. |
| 9 | tags [seo] |
| 10 | |
| 11 | |
| 12 | # SEO Opportunity Finder |
| 13 | |
| 14 | 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. |
| 15 | |
| 16 | **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. |
| 17 | |
| 18 | ## When to Use |
| 19 | |
| 20 | "Find SEO content gaps vs our competitors" |
| 21 | "What topics should we write about to rank?" |
| 22 | "We're starting a blog — where should we focus first?" |
| 23 | "What keywords are [competitor] ranking for that we're missing?" |
| 24 | |
| 25 | ## Phase 0: Intake |
| 26 | |
| 27 | Your website URL (e.g., `https://yourcompany.com`) |
| 28 | 2-3 competitor URLs to compare against |
| 29 | Primary ICP — who are you trying to attract? (This filters for commercial intent vs. general traffic) |
| 30 | Any topics/keyword themes that are definitely in scope? (Optional — helps prioritize output) |
| 31 | |
| 32 | ## Phase 1: Catalog Your Existing Content |
| 33 | |
| 34 | Build an inventory of the target site's current pages and posts: |
| 35 | |
| 36 | Fetch sitemap.xml (check `/sitemap.xml`, `/sitemap_index.xml`, `robots.txt` for `Sitemap:` directives) |
| 37 | Fall back to RSS feeds (`/feed`, `/blog/feed`) or blog index crawl if no sitemap |
| 38 | Extract: all blog post titles and URLs, inferred topics/themes per post, estimated content age |
| 39 | |
| 40 | This prevents recommending content you've already written. |
| 41 | |
| 42 | ## Phase 2: Analyze Competitor SEO Footprint |
| 43 | |
| 44 | For each competitor domain, pull SEO metrics: |
| 45 | |
| 46 | **Domain overview** — authority score, organic traffic estimate, top ranking keywords (via Apify Semrush scraper if `APIFY_API_TOKEN` is set) |
| 47 | **Top pages** — highest-traffic pages and their primary keywords |
| 48 | **Keyword categories** — which topic clusters they're winning in |
| 49 | |
| 50 | If Apify data is limited, supplement with web search probes: |
| 51 | `site:[competitor]` for indexed page count |
| 52 | Search target keywords and note which competitors rank where |
| 53 | SimilarWeb free tier for traffic estimates |
| 54 | |
| 55 | ## Phase 3: Identify Gaps |
| 56 | |
| 57 | Compare your content inventory (Phase 1) against competitor keyword/topic coverage (Phase 2): |
| 58 | |
| 59 | ### Gap Classification |
| 60 | |
| 61 | | Type | Definition | Priority | |
| 62 | |------|------------|----------| |
| 63 | | **Hard gap** | Competitor has a page/post on topic, you have nothing | High | |
| 64 | | **Soft gap** | You have content on topic but it's thin (< 500 words, old, no depth) | Medium | |
| 65 | | **Positioning gap** | Competitor owns a keyword cluster that maps to your ICP's exact problem | High | |
| 66 | | **Informational gap** | High traffic, low commercial intent — good for awareness, not conversion | Low | |
| 67 | |
| 68 | ### Commercial Intent Filter |
| 69 | |
| 70 | For each gap topic, score commercial intent (1-5): |
| 71 | **5** — Directly maps to your product (e.g., "best AI SDR tools for startups") |
| 72 | **4** — Problem-aware but not product-specific (e.g., "how to scale outbound SDR") |
| 73 | **3** — Adjacent pain point (e.g., "cold email open rates benchmark 2026") |
| 74 | **2** — Educational, tangential (e.g., "what is lead scoring") |
| 75 | **1** — Generic traffic, low conversion potential |
| 76 | |
| 77 | Prioritize gaps with score ≥ 3. |
| 78 | |
| 79 | ## Phase 4: Synthesize & Output |
| 80 | |
| 81 | Produce a prioritized opportunity table + editorial brief starters: |
| 82 | |
| 83 | |
| 84 | # SEO Opportunity Report — [Your Company] vs [Competitors] |
| 85 | Generated: [DATE] |
| 86 | |
| 87 | ## Your Content Snapshot |
| 88 | - Total indexed pages: [N] |
| 89 | - Blog posts: [N] |
| 90 | - Main topic clusters: [list] |
| 91 | |
| 92 | ## Competitor Benchmarks |
| 93 | | Domain | DR | Est. Monthly Organic Traffic | Top Keyword Clusters | |
| 94 | |--------|----|-----------------------------|----------------------| |
| 95 | | [comp1] | [X] | [X] | [topics] | |
| 96 | | [comp2] | [X] | [X] | [topics] | |
| 97 | |
| 98 | ## Top 10 Content Opportunities |
| 99 | |
| 100 | ### 1. [Topic/Title Suggestion] |
| 101 | - **Keyword target:** [keyword phrase] |
| 102 | - **Why it matters:** [what problem it solves for ICP] |
| 103 | - **Competitor owning it:** [competitor URL] |
| 104 | - **Est. monthly searches:** [range] |
| 105 | - **Commercial intent score:** [1-5] |
| 106 | - **Recommended format:** [listicle / how-to / comparison / landing page] |
| 107 | - **Estimated effort:** [hours or word count target] |
| 108 | |
| 109 | ### 2. [Topic/Title Suggestion] |
| 110 | ... |
| 111 | |
| 112 | ## Quick Wins (update existing posts) |
| 113 | |
| 114 | | Your Post | Issue | What to Add | |
| 115 | |-----------|-------|-------------| |
| 116 | | [URL] | [thin/outdated] | [recommendation] | |
| 117 | |
| 118 | ## Recommended Content Calendar (Next 90 Days) |
| 119 | |
| 120 | | Month | Post | Intent Score | Est. Traffic Potential | |
| 121 | |-------|------|-------------|----------------------| |
| 122 | | Month 1 | [post 1] | [score] | [range] | |
| 123 | | Month 1 | [post 2] | [score] | [range] | |
| 124 | | Month 2 | [post 3] | [score] | [range] | |
| 125 | ... |
| 126 | |
| 127 | |
| 128 | Save to the current working directory or wherever the user prefers. |
| 129 | |
| 130 | ## Cost |
| 131 | |
| 132 | | Component | Cost | |
| 133 | |-----------|------| |
| 134 | | Site content catalog | Free (sitemap crawl) | |
| 135 | | SEO domain analyzer (per competitor) | ~$1-3 (Apify Semrush scraper) | |
| 136 | | Traffic analyzer (supplement) | ~$0.10-0.50 (web search probes) | |
| 137 | | **Total per run** | **~$3-10 for 3 competitors** | |
| 138 | |
| 139 | ## Tools Required |
| 140 | |
| 141 | **Apify API token** — `APIFY_API_TOKEN` env var (for Semrush/Ahrefs data; free web search probes work without it) |
| 142 | Web search and web fetch capabilities |
| 143 | |
| 144 | ## Trigger Phrases |
| 145 | |
| 146 | "Find our SEO content gaps" |
| 147 | "What should we write about to rank?" |
| 148 | "Compare our content coverage to [competitor]" |
| 149 | "Run SEO opportunity finder for [client]" |
| 150 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 206 listings
Made with seo-opportunity-finder

Similar skills
See all →
SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing Readiness
SkillReferring domains, anchor text distributionBacklink Profile Analysis
SkillConnect a CMS to notfair SEO tools/setup-cms
SkillBacklink profile for any domainBacklink check
SkillOptimize Core Web Vitals for better page experienceCore Web Vitals optimization
SkillRun an SEO page observation-action-review loopRun the SEO page loopMore from gooseworks-ai
SkillMine the highest-converting ad angles from customer reviewsAd angle miner
SkillAnalyze ad campaign performance data to identify what'sAd campaign analyzer
SkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzer
SkillAnalyze the message match between your ads and landing pagesAd to landing page auditor
SkillCheck and improve your brand's visibility across AI searchAeo
SkillSearch Amazon products - find items, compare pricesAmazon Product Search