This guide gives you a complete SEO operating system — keyword research, competitive analysis, content production, rank tracking, backlinks, AI search optimization. Fourteen scripts, one config file, and a monthly cadence that turns SEO from a manual chore into automated infrastructure.
I know it works because I've been running it. Steepworks.io, bmorefamilies.com, client sites — hundreds of generated pages, all managed by an AI coding agent. This isn't a guide about a system I theorized. It's the exact infrastructure I use in production, and you're getting all of it.
Here's what makes this different from every other SEO guide you've read.
You describe what you need. Your agent handles the rest. Tell your AI coding agent — Claude Code, Cursor, Copilot, whatever you use — "research keywords for my product category" or "show me what's ranking for this topic." It runs the scripts, parses the output, and comes back with options. You make the strategic calls: what to target, what to write, when to publish. No terminal. No command flags. Just decisions.
Research feeds a content machine. The keyword research in Chapter 1 doesn't just produce a spreadsheet. It feeds into semantic clustering (Chapter 2), which maps your content architecture. That architecture feeds competitive SERP analysis (Chapter 3), which generates content briefs. Those briefs feed drafting workflows with automated quality gates (Chapter 4). Each step enriches the last. Your agent chains them together: research → clustering → briefs → drafts → voice gate → publication. What comes out the other end is a compounding content pipeline, not a pile of one-off blog posts.
The real edge: combining search data with YOUR data. Every competitor can pull the same keyword volumes and SERP results. None of them have your call transcripts, your sales objections, your product documentation, your operational experience. When your agent combines SEO intelligence with your proprietary context (the actual questions your customers ask, the specific problems your product solves, the nuance your team lives with daily), it produces content no competitor can replicate. That's the moat.
This is a pipeline, not a tool. Most operators treat SEO as a manual, part-time chore: open Ahrefs once a month, find some keywords, maybe write something. This system turns SEO into automated infrastructure that compounds. Your agent runs the research pipeline quarterly, the monitoring cadence monthly, and the content workflow weekly. You review the output and make strategic calls. The system stacks results over months, the same way a well-built sales pipeline compounds pipeline coverage.
Setup takes an afternoon. And you're getting the exact system I use in production, not a sanitized tutorial version.
Who this is for: Operators with an AI coding agent who want to build SEO infrastructure that compounds. Not SEO specialists looking for another point-and-click tool. You don't need to know Python. Your agent handles the execution. You need to know your market, your customers, and what content you can write better than anyone else. This guide gives your agent the scripts and your judgment the framework.
This chapter maps the entire system. By the end, you'll understand what each tool does, how they connect, and where to start based on how mature your current SEO practice is.
The Complete 14-Script System at a Glance

The 14-Script Pipeline
What Each Script Gives You
Get the scripts: All 14 scripts, the config template, and setup instructions are available at github.com/steepworks/seo-playbook-scripts. Clone the repo and you're running in minutes.
The system has 14 scripts, each producing a specific output your agent delivers to you. No web interfaces. No dashboards to log into. You describe the outcome you need, your agent runs the right script, and you make the strategic decision. Here's what you get from each group:
Discovery & Strategy (4 scripts)
| Script | What It Does |
|---|---|
keyword_research.py | Full keyword research with intent classification, difficulty scoring, and Google Trends |
quick_keyword_research.py | Lightweight keyword discovery — Google Autocomplete only, no API keys |
semantic_cluster.py | Groups keywords by meaning using machine learning — finds natural clusters automatically |
enhance_seo_strategy.py | Checks and enriches your keyword clusters with real search data |
These four scripts handle the "what should we write about?" question. You start with 3-7 seed keywords, and the discovery pipeline expands them into scored, classified, and clustered content targets. In production, a single seed like "pipeline automation" returns 150-200 keyword candidates in five minutes, already classified by intent (informational, commercial, transactional) and grouped into content clusters your agent can act on immediately.
Starter prompt — paste this to your agent to seed your keyword research:
"I need a keyword strategy for [YOUR DOMAIN]. My business does [ONE SENTENCE]. My target buyer is [TITLE/ROLE]. Seed keywords: [SEED 1], [SEED 2], [SEED 3]. Build me a complete keyword strategy from these seeds. I want: keyword candidates expanded from autocomplete data, each scored for difficulty and classified by search intent, then grouped into semantic clusters by meaning. For each cluster, tell me the primary keyword, the long-tail variations, the intent mix, and whether competition looks weak or strong. Recommend which clusters to target first based on competition and commercial intent. Available scripts:
keyword_research.py,semantic_cluster.py,enhance_seo_strategy.py."
Monitoring & Analytics (3 scripts)
| Script | What It Does |
|---|---|
serp_monitor.py | Tracks your keyword rankings weekly, reports position changes |
gsc_analytics.py | Pulls Google Search Console data — top queries, quick wins, trends |
seo_health_report.py | Monthly summary combining ranking data, backlinks, and content freshness |
Monitoring tells you whether your work is moving the needle. The gsc_analytics.py quick-wins flag is particularly useful: it finds keywords where you rank positions 11-20, which means a small content improvement can push you onto page one. One quick-win update to an existing article moved a client keyword from position 14 to position 9 in three weeks. That's the kind of signal these scripts surface automatically.
Content Production (3 scripts)
| Script | What It Does |
|---|---|
serp_content_analyzer.py | Analyzes top-ranking pages for a keyword, generates a competitive content brief |
headline_demand_research.py | Scores headlines on 6 axes, expands seed keywords via autocomplete |
voice_gate.py | Pre-publish quality gate — scans drafts for banned patterns, returns PASS or FAIL |
The content scripts bridge strategy and execution. Tell your agent "analyze the competition for this keyword" and you get back a content brief with word count targets, the H2 topics every competitor covers (table stakes), and the gaps none of them address (your differentiation). The headline scorer gives you objective data on which title will perform, scoring candidates across specificity, action promise, curiosity gap, and three other axes. The voice gate catches the bland, generic writing that search engines and readers both ignore before it ever reaches your audience.
Starter prompt — paste this to your agent before writing any content piece:
"I'm writing content targeting '[YOUR KEYWORD]' for [YOUR DOMAIN]. Give me everything I need to write a piece that outranks what's currently on page 1: a content brief with word count target, topics I must cover, gaps in the existing SERP I can exploit, and my top 5 headline candidates scored against demand signals. After I draft the piece, check it against voice and quality standards before I publish. Quality bar: the brief should show me exactly where I can differentiate from current top-ranking content — not just match them. Available scripts:
serp_content_analyzer.py,headline_demand_research.py,voice_gate.py."
Off-Page & Brand (3 scripts)
| Script | What It Does |
|---|---|
backlink_prospector.py | Finds brand mentions linking to your LinkedIn instead of your website |
backlink_monitor.py | Monthly mention check — surfaces new mentions and tracks trends |
brand_mention_tracker.py | Tracks brand + category co-occurrence across web, Reddit, and Quora |
Off-page is where most DIY SEO falls apart because nobody has time to do it manually. These scripts make it systematic. The backlink prospector finds sites that already mention your brand but link to your social profiles instead of your website. One email fixes that, and the conversion rate on these reclamation emails runs 30-50% because you're correcting a mistake, not asking for a favor.
Starter prompt — paste this to your agent for monthly off-page work:
"Audit my off-page SEO situation for [YOUR DOMAIN]. I need to know: (1) Who mentions my brand but links to my LinkedIn/Twitter instead of my website (these are easy reclamation wins), (2) Any new brand mentions since last month — and any lost mentions I should investigate, (3) Podcast appearances where show notes don't link to my site. For each reclamation opportunity, draft a personalized outreach email. Prioritize by estimated domain authority. Available scripts:
backlink_prospector.py,backlink_monitor.py,brand_mention_tracker.py."
Content Queue (1 script)
| Script | What It Does |
|---|---|
content_queue_builder.py | Analyzes your recent work sessions, clusters emerging topics, outputs a ranked content queue |
This one bridges operational knowledge and content planning. Instead of guessing what to write next, it surfaces topics that already emerged from your actual work. If you spent the last two weeks solving a gnarly integration problem for a client, the queue builder catches that pattern and proposes it as a content target — because you already have the expertise and the story to tell.
The Pipeline: How Outputs Feed Forward
The real power isn't in any individual script — it's in the pipeline. Each script's output becomes the next script's input. Here's the dependency flow:
┌─────────────────────────┐
│ seo_config.yaml │
│ (your domain, keywords, │
│ clusters, API keys) │
└────────┬────────────────┘
│
┌────────────────┼─────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ DISCOVERY │ │ MONITORING │ │ OFF-PAGE │
│ │ │ │ │ │
│keyword_ │ │serp_ │ │backlink_ │
│research.py │ │monitor.py │ │prospector.py │
│ OR │ │ │ │ │
│quick_keyword_│ │gsc_ │ │backlink_ │
│research.py │ │analytics.py │ │monitor.py │
└──────┬───────┘ │ │ │ │
│ │seo_health_ │ │brand_mention_│
▼ │report.py │ │tracker.py │
┌──────────────┐ └──────────────┘ └──────────────┘
│ CLUSTERING │
│ │
│semantic_ │
│cluster.py │
└──────┬───────┘
│
▼
┌──────────────┐
│ STRATEGY │
│ │
│enhance_seo_ │
│strategy.py │
└──────┬───────┘
│
▼
┌──────────────┐ ┌──────────────┐
│ CONTENT │────▶│ QUALITY │
│ PRODUCTION │ │ │
│ │ │voice_gate.py │
│serp_content_ │ └──────────────┘
│analyzer.py │
│ │
│headline_ │
│demand_ │
│research.py │
│ │
│content_queue_│
│builder.py │
└──────────────┘
Three things to notice:
-
Everything reads from one config file. Change your domain, seed keywords, or API keys in
seo_config.yamland every script adapts. You configure once. -
Discovery feeds strategy feeds content. The left column flows downward: you research keywords, cluster them, validate the clusters, then use them to generate content briefs. Each step enriches the previous output.
-
Monitoring and off-page run independently. You don't need to wait for content production to track rankings or find backlink opportunities. Start monitoring on day one, even before you write a single word.
The Config File
Every script reads from a single YAML configuration file. Here's the structure:
domain:
site_url: "https://your-domain.com"
site_name: "YOUR BRAND"
industry: "Your Industry"
keyword_research:
seed_keywords:
- "your core topic"
- "your product category"
- "problem you solve"
clusters:
- name: "Topic Cluster Name"
priority: "P0" # P0 = critical, P3 = backlog
competition: "LOW" # UNCONTESTED / LOW / CONTESTABLE / HIGH
hub_url: "/your-hub-page"
primary_keywords: [...]
long_tail_keywords: [...]
monitoring:
tracked_keywords: [...]
competitors: ["competitor1.com", "competitor2.com"]
api_keys:
serper: "${SERPER_API_KEY}" # From .env — never hardcode
content:
voice_gate:
banned_phrases_source: "path/to/your-brand-standards.md"
output_dir: "path/to/content/output"
You don't need to fill everything on day one. Start with domain and seed_keywords. The clusters section gets populated after your agent runs the discovery scripts. The monitoring section grows as you identify keywords worth tracking.
What's Ahead
You'll build from the ground up. First, keyword research that produces scored, classified candidates from real search data (Chapter 1). Then clustering that turns a flat keyword list into a structured content strategy with priorities (Chapter 2). SERP analysis grounds your strategy in reality — what's actually ranking, where the gaps are (Chapter 3). Content production gives you a repeatable workflow with objective quality gates (Chapter 4). Programmatic SEO multiplies your output from structured data (Chapter 5). Backlinks and AEO/GEO build the authority and AI visibility that make your content rank (Chapters 6-7). And the operating cadence ties it all into a monthly rhythm that runs in 8-12 hours (Chapter 8).
Each chapter produces a concrete output you can use immediately. The companion GitHub repo gives you every script, ready to clone and configure for your domain.
Five Maturity Levels
Level 1 — Discovery
~2 hours setup. Keyword research + clustering + strategy enrichment.
Level 2 — Monitoring
GSC analytics + weekly rank tracking.
Level 3 — Content Production
SERP analysis + headline scoring + voice gate.
Level 4 — Off-Page
Backlink prospecting + mention monitoring + brand tracking.
Level 5 — Full System
Monthly health reports + content queue from work sessions.
Ready to Start?
Once you've cloned the companion repo and configured seo_config.yaml, paste one of these prompts to your agent to get moving.
Competitive Landscape (before you run any scripts):
"Conduct a competitive landscape analysis for my SEO strategy. Domain: [YOUR DOMAIN]. Topic: [YOUR CORE TOPIC]. Seeds: [KEYWORD 1], [KEYWORD 2], [KEYWORD 3]. Known competitors: [COMPETITOR 1], [COMPETITOR 2]. I need: a keyword universe mapped across head terms, long-tail, questions, and comparison queries. For the top keywords, show me who currently ranks, what content format dominates, and where the gaps are between my content and theirs. Deliver a prioritized action plan: quick wins (existing content to optimize), creation priorities (gaps I should fill), and keywords to defer (too competitive right now). Weight priorities by: business relevance (30%), competition difficulty (25%), search volume (25%), gap size (20%). Tag findings as [FACT], [ESTIMATED], or [ASSUMPTION]. If data is unavailable, say so — never fabricate. Available scripts:
keyword_research.py,semantic_cluster.py,serp_content_analyzer.py,enhance_seo_strategy.py."
End-to-End First Run (after configuring seo_config.yaml):
"I've configured
seo_config.yamlwith my domain and seed keywords. This is my first run of the full system. Take me from zero to a complete SEO strategy: research keywords from my seeds, cluster them by meaning, validate clusters against real search data, and check what's currently ranking for my top priorities. Establish a day-zero baseline of my current positions. At each stage, show me the key findings before moving forward. If something looks wrong (a keyword harder than expected, a cluster that doesn't make sense), flag it and recommend whether to adjust. Deliver a strategic summary: total keywords discovered, clusters formed, which 3-5 to target first and why, and what my first content piece should be. Available scripts:keyword_research.py,semantic_cluster.py,enhance_seo_strategy.py,serp_content_analyzer.py,serp_monitor.py."
Let's start building.
All 14 Scripts at a Glance
Discovery & Strategy
keyword_research.pyFull keyword research with intent classification and difficulty scoring
Discovery
quick_keyword_research.pyLightweight discovery via Google Autocomplete
Discovery
semantic_cluster.pyML keyword grouping into natural clusters
Clustering
enhance_seo_strategy.pyValidates clusters with real search data
Strategy
Monitoring & Analytics
serp_monitor.pyWeekly keyword ranking tracker
Monitoring
gsc_analytics.pyGoogle Search Console data — top queries, quick wins
Monitoring
seo_health_report.pyMonthly summary combining all SEO data
Monitoring
Content Production
serp_content_analyzer.pyCompetitive content briefs from top SERP results
Content
headline_demand_research.py6-axis headline scoring
Content
voice_gate.pyPre-publish quality gate — PASS or FAIL
Quality
content_queue_builder.pySurfaces content topics from work sessions
Content
Off-Page & Brand
backlink_prospector.pyFinds mentions linking to social instead of site
Off-Page
backlink_monitor.pyMonthly mention tracking
Off-Page
brand_mention_tracker.pyBrand + category co-occurrence tracking
Off-Page






