HOME SKILLS BLOG GITHUB
// SKILL

TOPIC CLUSTER ENGINE
SERP-BASED HUB AND SPOKE

Most topic clustering tools group keywords that sound alike. That misses what actually matters: which keywords Google ranks for the same pages. blog-cluster groups by actual SERP overlap, designs a hub-and-spoke content architecture, and outputs an interactive cluster map plus automatic internal-link injection across the cluster's posts. If you have /blog write installed, the cluster can also be executed end-to-end.

CONTRIBUTED BY LUTFIYA MILLER · PRO HUB CHALLENGE WINNER · original repo
$
/blog cluster plan <seed-keyword>

REQUIRES CLAUDE BLOG INSTALLED IN CLAUDE CODE

// HOW IT WORKS

FOUR LAYERS. ONE CLUSTER.

blog-cluster fills the gap between strategy and execution. blog-strategy plans the blueprint, blog-write produces one post, blog-cluster builds the entire interlinked house. It starts from a single seed keyword, expands the keyword universe via search, groups by SERP overlap, designs the hub-and-spoke architecture, and outputs the cluster map plus the recommended internal linking matrix.

The clustering signal is the key. Two keywords belong in the same cluster only if Google ranks substantially the same URLs for both. Text similarity is not enough. The map renders as a static HTML file with inline SVG, sized by total search volume per cluster, and hardened against XSS during integration into Claude Blog.

01
SERP-OVERLAP CLUSTERING
Measures actual Google SERP overlap between keywords. Two keywords are in the same cluster only if Google ranks substantially the same URLs for both.
02
HUB AND SPOKE ARCHITECTURE
Designs each cluster as a pillar page (hub) plus 3-12 supporting articles (spokes). Suggests URLs, slugs, and content templates per intent.
03
AUTOMATIC INTERNAL LINKING
Generates the recommended internal linking matrix: hub-to-spoke, spoke-to-spoke, sibling clusters. Anchor text suggestions per link. Auto-injected by /blog cluster execute.
04
INTERACTIVE CLUSTER MAP
Outputs cluster-map.html sized by total search volume. Drop in browser, no build step. XSS-hardened during integration (no user-controlled HTML injection).
// USAGE

HOW TO RUN BLOG CLUSTER

Commands

CommandWhat it does
/blog cluster plan <seed>SERP-based semantic analysis from a seed keyword. Outputs cluster-plan.json and cluster-map.html with hub, spokes, intent classification, and the internal linking matrix.
/blog cluster execute <plan-file>Sequential per-post writes using the plan. Hands off to /blog write for the pillar and every spoke, with cluster context and auto-injected interlinks.
/blog cluster map <plan-file>Regenerates the interactive cluster-map.html from an existing plan file. Useful after manual edits to the plan.

How SERP-overlap scoring works

For each pair of candidate keywords, blog-cluster pulls the top 10 ranking URLs from Google for each keyword and computes a Jaccard-style similarity over the two URL sets. The default similarity threshold for cluster inclusion is 30%, which corresponds to at least 3 of 10 shared results between any two keywords in a cluster. Below the threshold, keywords split into separate clusters. Above it, they collapse into one. The threshold is tunable; a higher value produces tighter clusters and more pages, a lower value produces broader clusters and fewer pages.

Execution path

If /blog write is installed, /blog cluster execute writes the hub and every spoke with the agreed internal linking matrix injected during draft generation. Each spoke knows about the hub and its siblings before it is written, so anchor text and internal links are placed naturally inside the prose rather than appended as a related-posts list.

If /blog write is not installed, the skill outputs an editorial brief per post (title, primary keyword, intent, template, word count target, list of required internal links with suggested anchor text). The brief can be handed to a writer or fed back into any LLM with no further dependencies.

Output artifacts

  • cluster-plan.json: full machine-readable plan with pillar, clusters, posts, link matrix, and volume estimates.
  • cluster-map.html: static HTML with inline SVG. No JavaScript. Hover and tooltips use CSS and native SVG <title> only.
  • pillar-<slug>.md and <spoke-slug>.md: per-post markdown drafts (Execute Phase, requires /blog write).
  • cluster-scorecard.md: per-post status, cluster cohesion score, link audit, cannibalization check.

Attribution

The original semantic-cluster-engine submission by Lutfiya Miller scored 95/100 Exemplary in the Pro Hub Challenge audit (security, functionality, code quality, documentation, innovation). Lutfiya's Plan + Execute architecture and the cluster-context injection pattern are preserved verbatim. The Claude Blog port removes brand-specific styling and image prompts from the original, hardens the cluster-map HTML output against XSS, and routes through existing claude-blog sub-skills (/blog write, /blog strategy, /blog schema). The original repository remains at github.com/Drfiya/semantic-cluster-engine.

// FAQ

QUESTIONS ABOUT BLOG CLUSTER

Text similarity groups keywords that sound alike. SERP overlap groups keywords Google treats as the same intent. They are not the same. 'best running shoes' and 'top running sneakers' have low text similarity but high SERP overlap (Google ranks the same pages for both). Building a cluster on SERP overlap means one page can win the whole cluster.
An interactive HTML file (cluster-map.html) with each cluster as a node, sized by total search volume. Edges connect related clusters. Each cluster expands to show its keywords, suggested URL, intent classification, and recommended internal links. Drop the file in any browser; no build step required. XSS-hardened during integration.
Yes. With /blog write installed, /blog cluster execute hands off to write the hub and spokes with the agreed internal linking matrix. Without /blog write installed, the skill outputs an editorial brief you can hand to a writer or run through any LLM.
By analyzing the SERP composition. Informational SERPs feature articles and guides. Commercial SERPs feature comparisons and listicles. Transactional SERPs feature product pages. Navigational SERPs feature a single brand. Each cluster gets one primary intent that drives URL pattern and template selection.
Lutfiya Miller, winner of the AI Marketing Hub Pro Hub Challenge. The original implementation is at github.com/Drfiya/semantic-cluster-engine. Lutfiya scored 95/100 Exemplary in the security and quality review. The submission was clean-room re-implemented for Claude Blog v1.7.0 with XSS hardening on the cluster-map output. Lutfiya is the same contributor who landed seo-cluster in claude-seo v1.9.0.
// RELATED SKILLS

EXPLORE MORE

VIEW ALL 28 SKILLS →

BUILD YOUR FIRST CONTENT CLUSTER
IN 30 SECONDS.

$
git clone --depth 1 https://github.com/AgriciDaniel/claude-blog.git && bash claude-blog/install.sh
VIEW ON GITHUB ALL SKILLS >