keyword-research
Use when the user asks to "find keywords", "挖词", or "搜什么词"; prioritizes search volume, keyword difficulty, intent, and topic clusters from provided or connected data. Not for competitor-relative coverage gaps — use content-gap-analysis. 关键词研究/内容选题
By aaron-he-zhu · 1,343 installs
npx skills add aaron-he-zhu/aaron-marketing-skills --skill keyword-research
Source repository · Upstream listing
Keyword Research
Discovers, scores, and clusters keywords for SEO and GEO planning.
Quick Start
Skill Contract
Expected output : a prioritized keyword brief plus the standard handoff summary for memory/research/ .
Reads : topic or seed keyword, target market/language, business goal, site DR, and any user provided or tool metrics.
Writes : a user facing research deliverable and reusable summary.
Promotes : durable keyword priorities, competitor facts, and pending strategy decisions to memory/hot cache.md , memory/open loops.md , and memory/research/ .
Done when : every shortlisted keyword carries volume + difficulty + intent, each with source ref, observation time/window, market/language, and evidence label; an applicable missing value is Unknown with its gap reason, never N/A; keywords are grouped into pillar + cluster hubs; and the deliverable names at least 3 prioritized Quick Win / Growth / GEO opportunities.
Primary next skill : [competitor analysis](../competitor analysis/SKILL.md) when the keyword set is ready for market comparison.
Handoff Summary
Emit the standard shape from [skill contract.md §Handoff Summary Format](../../../references/skill contract.md).
Data Sources
Optional integrations: ~~SEO tool, ~~search console. Without tools, ask for seed keywords, audience, goals, and any known metrics. See [CONNECTORS.md](../../../CONNECTORS.md).
Zero dependency local helper (no tool needed): python3 "${CLAUDE PLUGIN ROOT}/scripts/connectors/suggest.py" "<seed " expand harvests free keyword ideas from Google Autocomplete (⚠️ unofficial endpoint). Search volume / difficulty still needs ~~SEO tool or own Search Console data. See [scripts/connectors/README.md](../../../scripts/connectors/README.md).
Keyless live SERP sampling : python3 "${CLAUDE PLUGIN ROOT}/scripts/connectors/firecrawl.py" search "<candidate keyword " limit 10 (Firecrawl keyless free tier, ~1,000 credits/mo, no key needed) shows who actually ranks for a candidate — feed the top 10 domains and formats into the intent check and the difficulty read as Measured evidence instead of guessing. Volume still needs ~~SEO tool or GSC.
Keyless topic demand proxy : python3 "${CLAUDE PLUGIN ROOT}/scripts/connectors/pageviews.py" "<Topic Article " months 12 returns a topic's real Wikipedia attention series — Measured direction and seasonality evidence when no volume tool is connected. It is attention, not search volume : use it to rank topics against each other and time them, never to quote a volume number.
Striking distance shortcut (when ~~search console is connected): before broad discovery, mine your own GSC query data for terms already ranking in positions ~5–20 — page one tail and page two. These are proven demand a small push can convert, so they are the fastest opportunity set. The Search Analytics API sorts by clicks and has no position filter , so request a high rowLimit and filter the 5–20 window client side, then attach volume / difficulty / intent to that shortlist. Work this set first; treat its metrics as Measured .
Instructions
When a user requests keyword research, run eight phases and announce each as [Phase X/8: Name] :
1. Scope — clarify product, audience, business goal, DR, geography, and language.
2. Discover — seed from core, problem, solution, audience, and industry terms.
3. Variations — expand with modifiers and long tail patterns.
4. Classify — tag by intent (informational, navigational, commercial, transactional).
5. Score — assign difficulty (1 100) and compute Opportunity = (Volume × Intent Value) / Difficulty , with Intent Value 1 / 1 / 2 / 3 .
6. GEO Check — flag AI answer friendly queries such as questions, definitions, comparisons, lists, and how tos.
7. Cluster — group keywords into pillar + cluster topic hubs.
8. Deliver — output an Executive Summary, Quick Wins / Growth / GEO opportunities, Topic Clusters, Content Calendar, and Next Steps.
Label every metric Measured (tool/export), User provided , Calculated , Estimated , Proxy , or Unknown ; retain query, locale, language, source ref, observation time, and window per field. Preserve conflicting sources. If an applicable metric is unavailable, mark it Unknown with a missing reason — N/A is only for a genuinely non applicable field. An attention proxy never becomes search volume, and an Unknown decision critical input makes the opportunity score NOT SCORED .
Impact × Confidence lens (optional, layers onto Phase 5)
When you have richer signals than volume/difficulty alone, add a second pass on top of the Opportunity score:
Impact = volume + CPC + funnel stage + trend direction (how much winning the term is worth).
Confidence = difficulty + current ranking position + topic authority (how likely you are to win it).
Priority = Impact × Confidence — surfaces terms that are both valuable and winnable, not just high volume.
Tag each keyword by funnel stage from its pattern:
BOFU — commercial/transactional, or contains "pricing", "best", "vs", "services", "agency", "hire", "buy".
MOFU — informational with buying signals: "how to", "guide", "roi", "case study", "review".
TOFU — pure informational (definitions, broad questions).
Work BOFU first when revenue is the goal; use TOFU/MOFU for reach and GEO answer coverage. (Impact×Confidence + funnel stage scoring adapted from an external SEO ops competitive analysis.)
Quality bar : every recommendation includes at least one specific number. Rewrite generic advice into a concrete keyword + volume + difficulty + reason.
Reference : See [references/instructions detail.md](references/instructions detail.md) for the full 8 phase templates, expansion patterns, intent table, difficulty tiers, opportunity matrix, GEO indicators, cluster template, actionable vs generic examples, and advanced usage.
Example
See [references/example report.md](references/example report.md) for a full worked sample.
Save Results
Write path: memory/research/keyword research/YYYY MM DD <topic .md ; promote durable keyword priorities to memory/hot cache.md . See [Skill Contract](../../../references/skill contract.md) §Save Results Template.
Reference Materials
[SEO/GEO Evidence and Cycle Control Profile](../../evaluate/performance monitor/references/evidence and cycle control.md) — query/SERP observations, missingness, page bindings, and index receipts
[Instructions Detail](references/instructions detail.md) — Workflow, scoring, cluster template, advanced usage
[Keyword Intent Taxonomy](references/keyword intent taxonomy.md) — Intent signals and content mapping
[Topic Cluster Templates](references/topic cluster templates.md) — Pillar and cluster patterns
[Keyword Prioritization Framework](references/keyword prioritization framework.md) — Scoring and prioritization rules
[Example Report](references/example report.md) — Worked sample
Next Best Skill
Primary: [competitor analysis](../competitor analysis/SKILL.md). Also: [content gap analysis](../content gap analysis/SKILL.md) and [serp analysis](../serp analysis/SKILL.md).