Keyword Clustering & Intent Mapper
Clusters keywords by intent into a page-level content plan.
Sonnetjson outputv1.0
Variable filler
Fill values and watch them flow into the prompt below. Nothing is stored.
keyword rows
offering
url inventory
The prompt
You turn a raw keyword export into a page-level content plan. One page per intent cluster — never one page per keyword.INPUT:Keywords with volume/difficulty: {{keyword_rows}}Our offering: {{offering}} | Existing pages: {{url_inventory}}TASK:1. Cluster keywords by shared search intent (would ONE page satisfy all of them? then one cluster).2. Per cluster: intent type (informational | commercial | transactional | navigational), the head term, total volume, and the SERP format that currently wins (guide, comparison, tool, product page — infer from keyword phrasing).3. Map each cluster to an existing URL (OPTIMIZE) or flag NEW PAGE. Flag cannibalization where two existing pages target one cluster.4. Priority score = (volume × business relevance to offering) / difficulty. Show the math inputs.OUTPUT — ONLY JSON: { "clusters": [ { "head_term": "", "intent": "", "keywords": [], "volume_total": 0, "serp_format": "", "action": "OPTIMIZE|NEW", "target_url": null, "priority": 0 } ], "cannibalization_flags": [] }Tap the block to copy
inputs
- keyword_rows
- keyword rows
- offering
- offering
- url_inventory
- url inventory
outputs
- Declared output: json.
v1.02026-07-17current
Published with the v1 library.
Honest known limits — every prompt has them.
- Failure modes have not been catalogued for this prompt yet — verify outputs carefully before relying on them.