← All docs
Modules

Keyword research + intent clustering

Seed expansion via SerpAPI, then a batched Claude pass to label intent and group keywords into topic clusters.

The keyword-research workflow turns 1–5 seed keywords into a clustered topic map you can drop into an editorial calendar. The pipeline is deliberately small:

  1. Expand. One SerpAPI call per seed. Pulls related_searches and people_also_ask. Per-seed failures are isolated — a rate-limit on one seed never aborts the rest.
  2. Classify (one batched call). A single Claude Opus prompt labels every candidate with a search intent (informational / navigational / commercial / transactional) and a relativeInterest bucket (high / medium / low).
  3. Cluster (one batched call). Another single Opus prompt groups the labelled keywords into topic clusters with optional parent topics, plus anunclustered bucket for orphans.

Endpoint: POST /api/seo/keyword-research · returns { clusters, unclustered, totalCost } so the UI can show the projected spend before approving the run. Exact monthly volume is a follow-up — the MVP gives you relative interest; the upgrade path is DataForSEO Labs.

Companion endpoint: POST /api/seo/serp-gap — given a keyword + your domain, fetches the top-10 organic SERP (cached for 7 days), summarises each competitor page, and asks Claude for a gap report with recommended H2s and a content-brief seed.