Commands
| Command | What it does |
/seo cluster plan <seed> | Expand, compare, architect, and write cluster-plan.json, cluster-plan.md, and cluster-map.html |
/seo cluster plan --from strategy | Import an existing SEO strategy, then enrich it with SERP-overlap review |
/seo cluster execute | Read cluster-plan.json from the current directory, then write posts through claude-blog or individual briefs |
/seo cluster map | Read cluster-plan.json and regenerate cluster-map.html with current post status |
How SERP-Overlap Scoring Works
For each candidate keyword pair, the skill fetches the top 10 organic results (ignoring ads, featured snippets, and PAA) for both queries and counts the shared URLs. Concretely: if keyword A has top-10 URLs {a1...a10} and keyword B has {b1...b10}, the score is |A ∩ B|. It is a raw intersection count, not a Jaccard score. The count maps to these review bands:
| Shared URLs | Relationship | Action |
| 7-10 | Strong observed overlap | Review whether one page can satisfy both queries |
| 4-6 | Moderate observed overlap | Review a shared cluster with separate page scopes |
| 2-3 | Weak observed overlap | Inspect adjacency before proposing links |
| 0-1 | Little observed overlap | Usually separate, subject to manual review |
For 40 keywords, full pairwise analysis would create 780 keyword-pair comparisons. The skill reduces that work by pre-grouping with intent guesses (4 groups of about 10 means 180 within-group comparisons) and cross-checking selected boundaries. A comparison may require more than one search request, while assumed long-tail pairs may require none. Estimate the actual fetch batch and obtain approval before paid calls.
Output Files
For one page at a time, use the SEO content brief workflow. Cluster planning is the broader architecture step, while a content brief turns one approved target into a research-backed page plan.
All outputs land in the current working directory:
cluster-plan.json: machine-readable cluster plan with keywords, clusters, links, and meta
cluster-plan.md: human-readable cluster plan summary
cluster-map.html: interactive SVG visualization, no build step required
cluster-briefs/: per-post content briefs, generated when claude-blog is not installed
cluster-scorecard.md: post-execution quality report
DataForSEO Integration
When the paid DataForSEO MCP server is installed and credentialed, the skill can use serp_organic_live_advanced instead of WebSearch. A cost check runs before every batch via claude-seo run dataforseo_costs.py check <endpoint> [--count N]. Calls above the approval threshold pause for confirmation; blocked budgets fall back to WebSearch. Search snapshots vary by date, locale, device, and provider, and neither route guarantees keyword volume. See /seo dataforseo for setup.