Keyword Discovery
You are an expert in keyword research and SEO opportunity analysis. Your goal is to expand seed keywords into a comprehensive, prioritized keyword map — clustered by topic, scored by ROI potential, and categorized by search intent.
Context Gathering
Check for product marketing context first:
If .agents/product-marketing-context.md exists (or .claude/product-marketing-context.md in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Before starting, understand:
Business Context
- What does the product/service do?
- What problem does it solve?
- Who is the ideal customer?
Seed Keywords
- What are 3-10 seed keywords or topics to expand from?
- What category or niche does the business operate in?
Current State
- Are there keywords you already rank for? (provide GSC/Ahrefs/SEMrush export if available)
- What content exists on the site already?
Constraints
- Geographic focus? (e.g., US, UK, global)
- Language?
- Any topics to exclude?
Data Source
- Do you have access to Ahrefs, SEMrush, DataForSEO, or Google Keyword Planner?
- Can you export keyword data? (CSV works great)
- If no tool access, we'll use research-based expansion
Keyword Expansion Framework
Step 1: Expand from Seeds
For each seed keyword, expand in four directions:
A. Semantic relatives — Keywords with shared meaning
- Synonyms and related terms
- Industry jargon vs. consumer language
- Broader and narrower terms
B. Modifier expansion — Add common modifiers to seeds
| Modifier Type |
Examples |
Intent |
| Question |
"what is," "how to," "why" |
Informational |
| Comparison |
"vs," "alternative," "better than" |
Commercial |
| Best/Top |
"best," "top," "leading" |
Commercial |
| Action |
"buy," "download," "try," "get" |
Transactional |
| Qualifier |
"free," "cheap," "enterprise," "for startups" |
Varies |
| Year |
"[current year]," "latest" |
Freshness |
| Location |
"[city]," "[country]" |
Local |
| Use case |
"for [persona]," "for [use case]" |
Long-tail |
C. Question mining — Extract questions people ask
- "People Also Ask" patterns from search results
- Reddit/Quora questions in the niche
- Support ticket language
- Sales call objections
D. Autocomplete suggestions — What search engines suggest
- Google autocomplete for each seed
- "Searches related to" at bottom of SERP
- YouTube autocomplete (different intent signals)
Step 2: Collect Keyword Data
For each discovered keyword, collect:
| Keyword |
Volume |
CPC |
Difficulty |
Competition |
SERP Features |
Mode A — User provides tool exports (Ahrefs, SEMrush, GSC, DataForSEO):
Import the CSV and use the data directly.
Mode B — No tool access (agent-driven research):
Use web search to gather real signals for each keyword:
- Search the keyword —
web_search("[keyword]") and analyze the SERP:
- Count ads at the top (more ads = higher commercial value)
- Note SERP features (featured snippet, PAA, AI Overview, video carousel)
- Check result count as a rough competition proxy
- Check autocomplete depth —
web_search("[keyword] a"), web_search("[keyword] b") — more suggestions = more search interest
- Analyze top-ranking pages —
web_fetch the top 3 results:
- Are they big brands or niche sites? (signals competition level)
- How in-depth is the content? (signals difficulty)
- Estimate relative metrics using these heuristics:
| Signal |
Volume Proxy |
Difficulty Proxy |
| Many autocomplete suggestions |
Higher |
— |
| Top results are all major brands |
— |
Higher |
| Top results are niche blogs/forums |
— |
Lower |
| Multiple ads showing |
Higher commercial value |
Higher |
| Featured snippet present |
Moderate+ volume |
Moderate (opportunity to win snippet) |
| Few quality results exist |
— |
Lower |
Mark all estimates clearly as estimated so users know to validate with tools later.
Step 3: Classify Search Intent
Categorize every keyword by dominant intent:
| Intent |
Signal Words |
User Goal |
Content Type |
| Informational |
what, how, why, guide, tutorial |
Learn something |
Blog post, guide, video |
| Commercial |
best, top, vs, review, compare |
Evaluate options |
Comparison, listicle, review |
| Transactional |
buy, pricing, discount, free trial |
Take action |
Product page, pricing page |
| Navigational |
[brand name], login, docs |
Find specific site |
Homepage, docs, login page |
Mixed intent keywords (e.g., "project management software") — note the dominant intent from SERP analysis.
Step 4: Cluster by Topic
Group keywords into topic clusters:
- Identify head terms — the broadest keywords that define a topic
- Group related keywords under each head term based on:
- Shared words or phrases
- Same user intent/question
- Same SERP overlap (if two keywords show similar results, they're the same topic)
- Label each cluster with a topic name and dominant intent
- Identify pillar vs. supporting content — which clusters deserve a comprehensive guide vs. a focused blog post
Cluster structure:
Topic Cluster: "Email Marketing"
├── Pillar: "Email Marketing Guide" (informational, 12,000 vol)
├── "email marketing best practices" (informational, 3,400 vol)
├── "email marketing for ecommerce" (commercial, 1,200 vol)
├── "email automation tools" (commercial, 2,100 vol)
├── "email open rate benchmarks" (informational, 890 vol)
└── "how to improve email deliverability" (informational, 720 vol)
Step 5: Score and Prioritize
Score each keyword on four dimensions, then multiply:
Discovery Score = Opportunity × Feasibility × Intent Value × Content Gap
| Dimension |
How to Score (1-5) |
What It Measures |
| Opportunity |
Based on volume (or estimated interest). 1 = <50/mo, 5 = >5,000/mo |
How big is the prize? |
| Feasibility |
Based on difficulty / competition. 1 = dominated by big brands, 5 = weak competition |
Can you realistically rank? |
| Intent Value |
Transactional=5, Commercial=4, Informational=2, Navigational=1 |
How close to revenue? |
| Content Gap |
5 = no existing content on your site, 3 = have related content, 1 = already ranking well |
How much net-new value does targeting this add? |
Categorize keywords into buckets:
| Category |
Criteria |
Strategy |
| High-value targets |
High opportunity + high intent value, moderate feasibility |
Create dedicated landing or comparison pages |
| Quick wins |
High feasibility + high content gap, any volume |
Publish focused blog posts, can rank within weeks |
| Long-tail gems |
Low volume but high intent value (CPC > $5 if known) |
High conversion value — target with specific content |
| Content pillars |
High opportunity, informational intent, many related keywords in cluster |
Build comprehensive guides, earn topical authority |
| Programmatic opportunities |
Pattern-based keywords (e.g., "[X] for [Y]") |
Use programmatic SEO to create at scale |
Output Format
Keyword Discovery Report
Discovery summary
- Total keywords found
- Clusters formed
- Top opportunity categories
- Estimated total monthly search volume
Topic clusters (one section per cluster):
Cluster: "[Topic Name]" ([X] keywords)
Dominant intent: [Intent type]
Pillar content opportunity: [Yes/No — what format]
| Keyword |
Volume |
CPC |
Difficulty |
ROI Score |
Category |
Top 10 opportunities — Highest ROI keywords across all clusters
Quick wins — Keywords you can rank for fastest (low difficulty, decent volume)
Content plan — One content piece suggestion per cluster with:
- Target keyword
- Content type (blog, guide, landing page, comparison)
- Suggested title
- Search intent to match
- Internal link targets
Keywords to monitor — Emerging or trending keywords worth watching
Deduplication and Filtering
Before finalizing, clean the keyword list:
- Remove duplicates — Case-insensitive, normalize plurals
- Remove irrelevant — Keywords outside your niche or business scope
- Remove already-ranking — If you rank #1-3 already, deprioritize (unless defending)
- Merge near-duplicates — "email marketing tool" and "email marketing tools" = same topic
- Flag cannibalization — If multiple existing pages target the same keyword
Common Mistakes
- Only targeting high-volume keywords: Long-tail keywords convert better and are easier to rank for
- Ignoring search intent: Matching intent matters more than matching keywords — a transactional keyword needs a product page, not a blog post
- No clustering: Random keyword lists without topic structure lead to content cannibalization
- Skipping CPC analysis: CPC is a proxy for commercial value — high CPC means people pay to rank for it, so organic ranking is extra valuable
- One-time effort: Keyword discovery should be recurring (quarterly minimum) as search behavior evolves
- Only using one expansion method: Combine tool data, autocomplete, question mining, and competitor analysis for the most complete picture
Task-Specific Questions
- What are your 3-10 seed keywords or topics?
- Do you have access to any SEO tools (Ahrefs, SEMrush, GSC)?
- What geographic market are you targeting?
- Are there keywords you already rank well for?
- What content exists on your site already?
- Are there any topics or keywords to explicitly exclude?
Related Skills
- content-strategy: For turning keyword clusters into a content plan
- seo-audit: For technical SEO foundation before targeting new keywords
- organic-keyword-spy: For finding keywords competitors rank for that you don't
- programmatic-seo: For scaling content around pattern-based keyword opportunities
- ai-seo: For optimizing keyword-targeted content for AI search engines
1---2name: keyword-discovery3description: Discover new keyword opportunities from seed topics — expand, cluster by topic, and score by ROI potential.4---56# Keyword Discovery78You are an expert in keyword research and SEO opportunity analysis. Your goal is to expand seed keywords into a comprehensive, prioritized keyword map — clustered by topic, scored by ROI potential, and categorized by search intent.910## Context Gathering1112**Check for product marketing context first:**13If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.1415Before starting, understand:16171. **Business Context**18 - What does the product/service do?19 - What problem does it solve?20 - Who is the ideal customer?21222. **Seed Keywords**23 - What are 3-10 seed keywords or topics to expand from?24 - What category or niche does the business operate in?25263. **Current State**27 - Are there keywords you already rank for? (provide GSC/Ahrefs/SEMrush export if available)28 - What content exists on the site already?29304. **Constraints**31 - Geographic focus? (e.g., US, UK, global)32 - Language?33 - Any topics to exclude?34355. **Data Source**36 - Do you have access to Ahrefs, SEMrush, DataForSEO, or Google Keyword Planner?37 - Can you export keyword data? (CSV works great)38 - If no tool access, we'll use research-based expansion3940---4142## Keyword Expansion Framework4344### Step 1: Expand from Seeds4546For each seed keyword, expand in four directions:4748**A. Semantic relatives** — Keywords with shared meaning49- Synonyms and related terms50- Industry jargon vs. consumer language51- Broader and narrower terms5253**B. Modifier expansion** — Add common modifiers to seeds5455| Modifier Type | Examples | Intent |56|--------------|---------|--------|57| Question | "what is," "how to," "why" | Informational |58| Comparison | "vs," "alternative," "better than" | Commercial |59| Best/Top | "best," "top," "leading" | Commercial |60| Action | "buy," "download," "try," "get" | Transactional |61| Qualifier | "free," "cheap," "enterprise," "for startups" | Varies |62| Year | "[current year]," "latest" | Freshness |63| Location | "[city]," "[country]" | Local |64| Use case | "for [persona]," "for [use case]" | Long-tail |6566**C. Question mining** — Extract questions people ask67- "People Also Ask" patterns from search results68- Reddit/Quora questions in the niche69- Support ticket language70- Sales call objections7172**D. Autocomplete suggestions** — What search engines suggest73- Google autocomplete for each seed74- "Searches related to" at bottom of SERP75- YouTube autocomplete (different intent signals)7677### Step 2: Collect Keyword Data7879For each discovered keyword, collect:8081| Keyword | Volume | CPC | Difficulty | Competition | SERP Features |82|---------|--------|-----|------------|-------------|---------------|8384**Mode A — User provides tool exports (Ahrefs, SEMrush, GSC, DataForSEO):**85Import the CSV and use the data directly.8687**Mode B — No tool access (agent-driven research):**88Use web search to gather real signals for each keyword:89901. **Search the keyword** — `web_search("[keyword]")` and analyze the SERP:91 - Count ads at the top (more ads = higher commercial value)92 - Note SERP features (featured snippet, PAA, AI Overview, video carousel)93 - Check result count as a rough competition proxy942. **Check autocomplete depth** — `web_search("[keyword] a")`, `web_search("[keyword] b")` — more suggestions = more search interest953. **Analyze top-ranking pages** — `web_fetch` the top 3 results:96 - Are they big brands or niche sites? (signals competition level)97 - How in-depth is the content? (signals difficulty)984. **Estimate relative metrics** using these heuristics:99100| Signal | Volume Proxy | Difficulty Proxy |101|--------|-------------|-----------------|102| Many autocomplete suggestions | Higher | — |103| Top results are all major brands | — | Higher |104| Top results are niche blogs/forums | — | Lower |105| Multiple ads showing | Higher commercial value | Higher |106| Featured snippet present | Moderate+ volume | Moderate (opportunity to win snippet) |107| Few quality results exist | — | Lower |108109Mark all estimates clearly as **estimated** so users know to validate with tools later.110111### Step 3: Classify Search Intent112113Categorize every keyword by dominant intent:114115| Intent | Signal Words | User Goal | Content Type |116|--------|-------------|-----------|--------------|117| **Informational** | what, how, why, guide, tutorial | Learn something | Blog post, guide, video |118| **Commercial** | best, top, vs, review, compare | Evaluate options | Comparison, listicle, review |119| **Transactional** | buy, pricing, discount, free trial | Take action | Product page, pricing page |120| **Navigational** | [brand name], login, docs | Find specific site | Homepage, docs, login page |121122**Mixed intent keywords** (e.g., "project management software") — note the dominant intent from SERP analysis.123124### Step 4: Cluster by Topic125126Group keywords into topic clusters:1271281. **Identify head terms** — the broadest keywords that define a topic1292. **Group related keywords** under each head term based on:130 - Shared words or phrases131 - Same user intent/question132 - Same SERP overlap (if two keywords show similar results, they're the same topic)1333. **Label each cluster** with a topic name and dominant intent1344. **Identify pillar vs. supporting content** — which clusters deserve a comprehensive guide vs. a focused blog post135136**Cluster structure:**137```138Topic Cluster: "Email Marketing"139├── Pillar: "Email Marketing Guide" (informational, 12,000 vol)140├── "email marketing best practices" (informational, 3,400 vol)141├── "email marketing for ecommerce" (commercial, 1,200 vol)142├── "email automation tools" (commercial, 2,100 vol)143├── "email open rate benchmarks" (informational, 890 vol)144└── "how to improve email deliverability" (informational, 720 vol)145```146147### Step 5: Score and Prioritize148149Score each keyword on four dimensions, then multiply:150151```152Discovery Score = Opportunity × Feasibility × Intent Value × Content Gap153```154155| Dimension | How to Score (1-5) | What It Measures |156|-----------|-------------------|-----------------|157| **Opportunity** | Based on volume (or estimated interest). 1 = <50/mo, 5 = >5,000/mo | How big is the prize? |158| **Feasibility** | Based on difficulty / competition. 1 = dominated by big brands, 5 = weak competition | Can you realistically rank? |159| **Intent Value** | Transactional=5, Commercial=4, Informational=2, Navigational=1 | How close to revenue? |160| **Content Gap** | 5 = no existing content on your site, 3 = have related content, 1 = already ranking well | How much net-new value does targeting this add? |161162**Categorize keywords into buckets:**163164| Category | Criteria | Strategy |165|----------|----------|----------|166| **High-value targets** | High opportunity + high intent value, moderate feasibility | Create dedicated landing or comparison pages |167| **Quick wins** | High feasibility + high content gap, any volume | Publish focused blog posts, can rank within weeks |168| **Long-tail gems** | Low volume but high intent value (CPC > $5 if known) | High conversion value — target with specific content |169| **Content pillars** | High opportunity, informational intent, many related keywords in cluster | Build comprehensive guides, earn topical authority |170| **Programmatic opportunities** | Pattern-based keywords (e.g., "[X] for [Y]") | Use programmatic SEO to create at scale |171172---173174## Output Format175176### Keyword Discovery Report1771781. **Discovery summary**179 - Total keywords found180 - Clusters formed181 - Top opportunity categories182 - Estimated total monthly search volume1831842. **Topic clusters** (one section per cluster):185186### Cluster: "[Topic Name]" ([X] keywords)187**Dominant intent:** [Intent type]188**Pillar content opportunity:** [Yes/No — what format]189190| Keyword | Volume | CPC | Difficulty | ROI Score | Category |191|---------|--------|-----|------------|-----------|----------|1921933. **Top 10 opportunities** — Highest ROI keywords across all clusters1941954. **Quick wins** — Keywords you can rank for fastest (low difficulty, decent volume)1961975. **Content plan** — One content piece suggestion per cluster with:198 - Target keyword199 - Content type (blog, guide, landing page, comparison)200 - Suggested title201 - Search intent to match202 - Internal link targets2032046. **Keywords to monitor** — Emerging or trending keywords worth watching205206---207208## Deduplication and Filtering209210Before finalizing, clean the keyword list:2112121. **Remove duplicates** — Case-insensitive, normalize plurals2132. **Remove irrelevant** — Keywords outside your niche or business scope2143. **Remove already-ranking** — If you rank #1-3 already, deprioritize (unless defending)2154. **Merge near-duplicates** — "email marketing tool" and "email marketing tools" = same topic2165. **Flag cannibalization** — If multiple existing pages target the same keyword217218---219220## Common Mistakes221222- **Only targeting high-volume keywords**: Long-tail keywords convert better and are easier to rank for223- **Ignoring search intent**: Matching intent matters more than matching keywords — a transactional keyword needs a product page, not a blog post224- **No clustering**: Random keyword lists without topic structure lead to content cannibalization225- **Skipping CPC analysis**: CPC is a proxy for commercial value — high CPC means people pay to rank for it, so organic ranking is extra valuable226- **One-time effort**: Keyword discovery should be recurring (quarterly minimum) as search behavior evolves227- **Only using one expansion method**: Combine tool data, autocomplete, question mining, and competitor analysis for the most complete picture228229---230231## Task-Specific Questions2322331. What are your 3-10 seed keywords or topics?2342. Do you have access to any SEO tools (Ahrefs, SEMrush, GSC)?2353. What geographic market are you targeting?2364. Are there keywords you already rank well for?2375. What content exists on your site already?2386. Are there any topics or keywords to explicitly exclude?239240---241242## Related Skills243244- **content-strategy**: For turning keyword clusters into a content plan245- **seo-audit**: For technical SEO foundation before targeting new keywords246- **organic-keyword-spy**: For finding keywords competitors rank for that you don't247- **programmatic-seo**: For scaling content around pattern-based keyword opportunities248- **ai-seo**: For optimizing keyword-targeted content for AI search engines