skills/composites/programmatic-seo-planner/SKILL.md
Identify programmatic SEO page patterns worth building for your product — vs/ pages, integrations/, for-{industry}/, alternatives-to/, use-cases/ — and design the template structure, data model, and priority order. Outputs a complete pSEO blueprint with URL patterns, title templates, content frameworks, and data sources per variable.
npx skillsauth add athina-ai/goose-skills programmatic-seo-plannerInstall 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.
Programmatic SEO is how startups generate hundreds of high-intent pages from templates — "{Your Product} vs {Competitor}", "Best {Category} for {Industry}", "{Integration} + {Your Product}". This skill figures out which patterns are worth building, designs the templates, and prioritizes the buildout.
Core principle: pSEO isn't about spinning content. It's about finding a data axis (something that varies per page) where each variation has real search demand and your product has a genuine answer. This skill validates both before you invest in building.
This skill works with existing capabilities but produces significantly better results when paired with a keyword data API for bulk volume lookups across hundreds of long-tail variations.
"I can plan your programmatic SEO strategy using our existing tools. However, for the best results — especially accurate search volume data across hundreds of keyword variations — I'd recommend connecting a keyword data API."
Recommended: DataForSEO (pay-per-use, ~$0.01/keyword, no monthly minimum)
- Sign up at dataforseo.com → get API login + password
- Set
DATAFORSEO_LOGINandDATAFORSEO_PASSWORDenv varsAlternatives that also work:
- Keywords Everywhere API ($1 per 10 credits = 100K keywords, very cheap) → set
KEYWORDS_EVERYWHERE_API_KEY- SEMrush API (if you have a subscription) → set
SEMRUSH_API_KEY- Ahrefs API (if you have a subscription) → set
AHREFS_API_TOKEN"Want to use one of these, or should I proceed with baseline mode? Baseline still works — I'll use our Apify-based SEO tools for top-level data, though volume estimates for individual long-tail patterns will be less precise."
seo-domain-analyzer (Apify) for domain-level metrics and web_search for pattern validation. Volume estimates are directional, not exact. Still produces a solid blueprint — just less granular on per-variation demand.Run site-content-catalog for each competitor:
python3 skills/site-content-catalog/scripts/catalog_content.py \
--url "<competitor_url>" \
--output json
Analyze URL structures for programmatic patterns:
/vs/, /compare/, /alternatives/ — Comparison pages/integrations/, /connect/, /apps/ — Integration pages/for-{industry}/, /solutions/, /use-cases/ — Vertical/use-case pages/templates/, /examples/, /glossary/ — Resource pages/tools/, /calculators/, /generators/ — Tool pagesFor each pattern found, note:
Based on your product category, evaluate these standard pSEO pattern types:
| Pattern Type | URL Structure | Data Axis | Best For | |-------------|---------------|-----------|----------| | Versus/Comparison | /vs/{competitor} | Competitor names | High-intent, bottom-funnel | | Alternatives | /alternatives/{competitor} | Competitor names | Displacement queries | | Integrations | /integrations/{tool} | Tool/app names | Mid-funnel, ecosystem | | Industry verticals | /for/{industry} | Industry names | Vertical targeting | | Use cases | /use-cases/{use-case} | Job-to-be-done | Mid-funnel, discovery | | Glossary/Definitions | /glossary/{term} | Industry terms | Top-funnel, authority | | Templates/Examples | /templates/{type} | Template types | Mid-funnel, utility | | Tools/Calculators | /tools/{tool-name} | Tool functions | Top-funnel, link bait | | Location pages | /{service}-in-{city} | City/region names | Local-intent (if relevant) |
Run reddit-post-finder to find how ICP talks about the problem:
python3 skills/reddit-post-finder/scripts/search_reddit.py \
--subreddit "<relevant_subs>" \
--keywords "<category>,<problem keyword>" \
--days 365 --sort top --time year
Extract:
Enhanced mode (DataForSEO / Keywords Everywhere / SEMrush / Ahrefs):
For each candidate pattern, generate 20-50 keyword variations and pull exact volumes:
Aggregate per pattern type:
Baseline mode:
Use seo-domain-analyzer for competitor domain metrics, web_search to spot-check if key variations have SERP results (indicating real demand), and manual estimation based on:
Score each candidate pattern on:
| Factor | Weight | How to Assess | |--------|--------|---------------| | Search demand | 30% | Total addressable volume across all variations | | Intent quality | 25% | How close to purchase decision? (vs/ = high, glossary = low) | | Template feasibility | 20% | Can you create a useful, differentiated page from a template? | | Data availability | 15% | Can you programmatically source the data that varies? | | Competitive gap | 10% | Are competitors NOT doing this pattern, or doing it poorly? |
Score each pattern 0-100. Rank by score.
For each pattern scoring 50+, validate:
Data source — Where does the variable data come from?
Content differentiation — Can each page offer genuine value, or will they be thin?
Technical feasibility — Can your CMS generate these at scale?
For each pattern being built, design:
## Pattern: [vs/{competitor}]
### URL Structure
/vs/{competitor-slug}
### Title Template
{Your Product} vs {Competitor} — [Year] Comparison | {Your Brand}
### Meta Description Template
Compare {Your Product} and {Competitor} side-by-side. See pricing, features,
pros/cons, and which is better for {ICP description}.
### H1
{Your Product} vs {Competitor}: Honest Comparison
### Page Sections (content framework)
1. **TL;DR** — 3-sentence summary of key differences (above fold)
2. **Quick comparison table** — Feature matrix with checkmarks
3. **Detailed comparison** — 4-6 key dimensions, 2-3 paragraphs each
4. **Pricing comparison** — Plan-by-plan breakdown
5. **Who should choose {Your Product}** — ICP fit description
6. **Who should choose {Competitor}** — Fair assessment
7. **What real users say** — Review quotes from both sides
8. **CTA** — Trial/demo prompt
### Data Required Per Page
- competitor_name: string
- competitor_slug: string
- competitor_features: array (from their website/docs)
- competitor_pricing: object (from pricing page)
- competitor_reviews: array (from G2/Capterra)
- your_differentiators: array (per competitor)
### Content Guidelines
- Minimum 1,500 words per page
- Must include at least one unique insight (not just feature lists)
- Use actual screenshots or diagrams where possible
- Update quarterly (pricing/features change)
Repeat for each pattern type.
Build the implementation plan:
| Pattern | Score | Est. Pages | Volume/Page | Total Volume | Build Effort | Priority | |---------|-------|-----------|-------------|-------------|-------------|----------| | vs/ comparisons | 85 | 15 | 300 | 4,500 | Medium | P0 — Build first | | integrations/ | 72 | 40 | 80 | 3,200 | High | P1 — Build second | | for-{industry}/ | 68 | 12 | 200 | 2,400 | Medium | P1 — Build second | | alternatives-to/ | 65 | 8 | 250 | 2,000 | Low | P0 — Quick win | | glossary/ | 45 | 100 | 40 | 4,000 | Low | P2 — Authority play |
Month 1: Quick wins
Month 2: Scale
Month 3: Expand
For each pattern, specify exactly where the variable data comes from:
# Programmatic SEO Blueprint — [Product Name] — [DATE]
## Executive Summary
- [N] patterns evaluated, [M] recommended for buildout
- Total addressable search volume: [X]/month
- Estimated pages to build: [Y]
- Recommended buildout timeline: [Z] months
---
## Pattern Analysis (ranked by priority)
### P0: [Pattern Name]
- URL structure: [pattern]
- Pages to build: [N]
- Total monthly volume: [X]
- Template blueprint: [see below]
- Data source: [where variable data comes from]
- Build effort: [Low/Medium/High]
- Expected time to rank: [2-4 months / 4-8 months / etc.]
[Full template blueprint per Phase 3]
### P1: [Pattern Name]
...
---
## Technical Requirements
- CMS: [capabilities needed]
- Data pipeline: [how to source variable data]
- Update cadence: [how often to refresh]
---
## Quick-Start Guide
1. Start with [pattern] — lowest effort, highest intent
2. Create [N] pages using the template above
3. Monitor for [X] weeks before expanding
4. ...
Save to the current working directory or wherever the user prefers.
| Component | Cost | |-----------|------| | Site catalog per competitor (Apify) | ~$0.05-0.10 | | Reddit scraper | ~$0.05-0.10 | | SEO domain analyzer | ~$0.10-0.20 | | DataForSEO keyword lookups (enhanced) | ~$0.50-2.00 (depending on variation count) | | Keywords Everywhere (enhanced alt) | ~$0.01-0.05 | | Analysis | Free (LLM reasoning) | | Total (baseline) | ~$0.20-0.50 | | Total (enhanced) | ~$0.70-2.50 |
APIFY_API_TOKEN env varsite-content-catalog, seo-domain-analyzer, reddit-post-finderDATAFORSEO_LOGIN + DATAFORSEO_PASSWORD), Keywords Everywhere (KEYWORDS_EVERYWHERE_API_KEY), SEMrush (SEMRUSH_API_KEY), or Ahrefs (AHREFS_API_TOKEN)content-media
Takes an existing screen recording or demo video and adds professional zoom/pan effects synchronized to the narration. Uses transcript-driven zoom targeting and Remotion for rendering. Optionally replaces audio with a soundtrack.
tools
Repurposes long-form video (podcasts, interviews, talks) into short-form vertical clips for Instagram Reels, TikTok, and YouTube Shorts. Handles transcription, moment selection, clip extraction, speaker-tracked reframing (16:9 to 9:16), and animated captions.
development
Creates talking head videos from any source material (docs, changelogs, blog posts, notes, transcripts). Produces multi-scene videos with avatar narration over screenshots/images using HeyGen v2 API. Supports Quick Shot and Full Producer modes.
tools
Generates Instagram-ready product reels from any e-commerce product page URL. Scrapes product images, classifies by type, generates AI-animated clips via Higgsfield API, creates text overlays with style presets, and composes a 15-20 second reel with music. Supports model-based and product-only reels.