agentsclimarketplace

Seo opportunity finder

Skill gooseworks-ai/goose-skills/skills/seo/composites/seo-opportunity-finder

Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping

Install
npx -y skills add gooseworks-ai/goose-skills --skill seo-opportunity-finder

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

5.6 KB, as published. Nobody here has run it

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

Build an inventory of the target site's current pages and posts:

  1. Fetch sitemap.xml (check /sitemap.xml, /sitemap_index.xml, robots.txt for Sitemap: directives)
  2. Fall back to RSS feeds (/feed, /blog/feed) or blog index crawl if no sitemap
  3. 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:

  1. Domain overview — authority score, organic traffic estimate, top ranking keywords (via Apify Semrush scraper if APIFY_API_TOKEN is set)
  2. Top pages — highest-traffic pages and their primary keywords
  3. 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

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 the current working directory or wherever the user prefers.

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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.