skills/composites/seo-opportunity-finder/SKILL.md
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.
npx skillsauth add gooseworks-ai/goose-skills seo-opportunity-finderInstall 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.
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.
https://yourcompany.com)Build an inventory of the target site's current pages and posts:
/sitemap.xml, /sitemap_index.xml, robots.txt for Sitemap: directives)/feed, /blog/feed) or blog index crawl if no sitemapThis prevents recommending content you've already written.
For each competitor domain, pull SEO metrics:
APIFY_API_TOKEN is set)If Apify data is limited, supplement with web search probes:
site:[competitor] for indexed page countCompare your content inventory (Phase 1) against competitor keyword/topic coverage (Phase 2):
| 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 |
For each gap topic, score commercial intent (1-5):
Prioritize gaps with score ≥ 3.
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.
| 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 |
APIFY_API_TOKEN env var (for Semrush/Ahrefs data; free web search probes work without it)development
End-to-end skill that turns a single reference image into a fully-installed, example-rendered style preset for the goose-graphics composite. Analyzes the image, writes the slim style spec, registers it in styles/index.json, generates all 7 format examples using the standard brief, renders PNGs via Playwright, and updates examples/manifest.json. Invoke with /goose-graphics-create-style.
development
Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.
tools
Take screenshots of any website using Notte browser automation. Use when asked to screenshot, capture, or snap a webpage.
development
Search the web, platforms, and datasets. Use when asked to search, find, look up, research, or discover information from the web, YouTube, Amazon, eBay, news, academic sources, or any online platform.