seo

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

Gooseby Athina AI
Run in Gooseworks
Install
Terminal
npx gooseworks install --claude

# Then in your agent:
/gooseworks <prompt> --skill seo-opportunity-finder
About This Skill

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

  1. Your website URL (e.g., https://yourcompany.com)
  2. 2-3 competitor URLs to compare against
  3. Primary ICP — who are you trying to attract? (This filters for commercial intent vs. general traffic)
  4. 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

TypeDefinitionPriority
Hard gapCompetitor has a page/post on topic, you have nothingHigh
Soft gapYou have content on topic but it's thin (< 500 words, old, no depth)Medium
Positioning gapCompetitor owns a keyword cluster that maps to your ICP's exact problemHigh
Informational gapHigh traffic, low commercial intent — good for awareness, not conversionLow

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

ComponentCost
Site content catalogFree (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 tokenAPIFY_API_TOKEN env 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]"

What's included

·
"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?"
·
All blog post titles and URLs

Newsletter

Learn to build GTM systems with AI

2-3 compounding systems per week using Claude Code, OpenClaw, and more.