New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Run keyword research, classify by search intent

by rampstackco · MIT license · ★ 901 on GitHub · updated Sep 15

Keyword Research cover

Run keyword research, classify by search intent, cluster into topical groups, and prioritize for content production. Use this skill whenever the user asks to do keyword research, find target keywords, identify ranking opportunities,…

---
name: seo-keyword
description: "Run keyword research, classify by search intent, cluster into topical groups, and prioritize for content production. Use this skill whenever the user asks to do keyword research, find target keywords, identify ranking opportunities, classify search intent, build a topical map, or plan a content strategy around what people search for. Triggers on keyword research, keyword strategy, search intent, keyword clustering, topic clusters, keyword difficulty, search volume, ranking opportunity, content gap, what should I write about, target keyword, primary keyword, secondary keyword, long-tail. Also triggers when planning a content calendar or new site without keywords yet defined."
category: seo-foundation
catalog_summary: "Discovery, intent classification, clustering, prioritization"
display_order: 3
---

# Keyword Research

Find the queries worth ranking for, classify them by intent, cluster them into topics, and prioritize what to produce. Stack-agnostic. Tool-agnostic (works with any keyword tool).

---

## When to use

- Starting a new site or content section
- Planning a content calendar

Overview

Find the queries worth ranking for, classify them by intent, cluster them into topics, and prioritize what to produce. Stack-agnostic. Tool-agnostic (works with any keyword tool).

Manual install (npx, ZIP)
Claude Codenpx skills add rampstackco/claude-skills --skill seo-keyword -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/rampstackco/claude-skills/tar.gz/3d4510a94a76 \ | tar -xz -C ~/.claude/skills --strip-components=2 claude-skills-3d4510a94a76/skills/seo-keyword
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/b52e31602162e5ae4680/seo-keyword.zip" -OutFile "$env:TEMP\seo-keyword.zip"; Expand-Archive "$env:TEMP\seo-keyword.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.8 KB
  • references/2 files · 13.5 KB
Read the files here
rampstackco/3d4510a3 files
SKILL.md
Show the full text170 lines

Keyword Research

Find the queries worth ranking for, classify them by intent, cluster them into topics, and prioritize what to produce. Stack-agnostic. Tool-agnostic (works with any keyword tool).


When to use

  • Starting a new site or content section
  • Planning a content calendar
  • Looking for ranking opportunities on an existing site
  • Understanding search intent before writing
  • Building topic clusters for internal linking
  • Identifying content gaps vs competitors

When NOT to use

  • Optimizing a single page where the target query is already known (use seo-onpage)
  • Comparing your site to a competitor across many dimensions (use seo-competitor)
  • Auditing existing content for performance (use seo-content-audit)

Required inputs

  • The site or topic area
  • The target audience and what they need
  • A keyword tool (Ahrefs, Semrush, Moz, Google Keyword Planner, or similar) OR access to search console for an existing site
  • Optional: 3 to 5 known competitors to seed the research

If no tool is available, the skill still works using SERP inspection and search console data alone, but the volume estimates will be rough.


The framework: 4 stages

Stage 1: Discover

Cast a wide net. Sources:

  • Seed terms from the brief or the user's vocabulary
  • Competitor keywords (any keyword tool will export these)
  • Search console queries for an existing site (find the page-1 and page-2 queries)
  • Related searches and "People also ask" in actual SERPs
  • Customer language (support tickets, sales calls, reviews)
  • Forum and community language (Reddit, niche forums, Stack Overflow)

Goal: 200 to 500 candidate keywords for a typical content sprint. More if planning a year of content.

Stage 2: Classify by intent

Every keyword maps to one of four intents. Get this right or the rest is noise.

Intent Signal Page type that wins
Informational "how to," "what is," "why," "best way to" Article, guide, tutorial
Navigational brand or product name + modifier Brand homepage, product page
Commercial "best," "review," "vs," "comparison," "alternatives" Listicle, comparison, review
Transactional "buy," "price," "deal," "near me," "for sale" Product page, category page

A keyword tool's volume tells you the demand. The SERP tells you the intent. When in doubt, look at what's actually ranking. If page 1 is articles, the query is informational. If page 1 is product pages, it's transactional.

Hybrid intents exist. "Best running shoes" is commercial-investigational. "Best running shoes under $100" is the same intent narrowed by a budget filter. Treat hybrids as their dominant intent and note the modifier.

Stage 3: Cluster

Group keywords that should target the same page (or topic cluster).

Two clustering approaches:

Approach A: SERP overlap. If two keywords share at least 3 of the top 10 results, they target the same page. This is mechanical and reliable.

Approach B: Topical relevance. Group keywords by the underlying topic, not just word overlap. "How to start a podcast" and "podcast equipment for beginners" are the same topic, different facets.

Use both. A typical cluster has:

  • 1 primary keyword (highest volume, broadest intent)
  • 5 to 15 secondary keywords (variations and long-tails)
  • 1 page that targets them all
Stage 4: Prioritize

For each cluster, score on three dimensions:

Opportunity (1 to 5):

  • Volume (raw search demand)
  • Click potential (some queries answer themselves in the SERP, lowering CTR)
  • Conversion potential (does this query attract buyers or browsers?)

Difficulty (1 to 5):

  • Domain authority of top results
  • Backlink count of top results
  • Content depth and freshness of top results
  • Whether the SERP has features (featured snippets, AI overview, video carousel) that compete with organic

Strategic fit (1 to 5):

  • Does it serve our audience?
  • Does it support our positioning?
  • Does it link to commercial pages naturally?

Priority score = Opportunity + Strategic fit - Difficulty.

Rank the clusters. Top 20 percent get produced first.


Workflow

  1. Define the scope. What site, what topic area, what audience.
  2. Run discovery. Pull seeds, competitor exports, search console data, SERP inspections. Aim for 200 to 500 candidates.
  3. Deduplicate and clean. Remove obvious junk, brand misspellings, irrelevant terms.
  4. Classify by intent. Mark each keyword.
  5. Cluster. Group into topical clusters. Aim for 20 to 50 clusters.
  6. Score each cluster on opportunity, difficulty, and strategic fit.
  7. Prioritize. Rank by composite score. Identify the top 10 to 20 clusters to produce first.
  8. Output. Use the template in references/keyword-research-template.md.

Failure patterns

  • Chasing volume without intent. A 10,000-volume informational keyword does not drive purchases. Match query to commercial outcome.
  • Targeting impossibly competitive keywords. New sites cannot rank for "credit cards." Find the underserved long-tail variant.
  • Ignoring search console. Existing sites already rank for queries they did not target. These are the easiest wins.
  • Treating clusters as one-keyword-per-page. A page can target 10 to 30 related keywords. One-keyword-per-page leads to thin, cannibalized content.
  • Ignoring SERP features. A query with a featured snippet, AI overview, and a video carousel above the organic results may not be worth pursuing.
  • Static keyword research. Search demand shifts. Refresh the research at least annually for evergreen sites, quarterly for fast-moving topics.

Output format

Default output: a spreadsheet (CSV or sheet) with one row per keyword and one row per cluster, plus a markdown summary with the top 10 to 20 clusters detailed.

Recommended columns for the keyword sheet:

Column Source
Keyword Discovery
Volume Tool
Difficulty Tool
Intent Manual classification
SERP features Manual or tool
Cluster Stage 3
Cluster role (primary/secondary) Stage 3
Opportunity score Stage 4
Strategic fit Stage 4
Priority Composite
Notes Free text

If required data is unavailable

This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.


Reference files

1---
2name: seo-keyword
3description: "Run keyword research, classify by search intent, cluster into topical groups, and prioritize for content production. Use this skill whenever the user asks to do keyword research, find target keywords, identify ranking opportunities, classify search intent, build a topical map, or plan a content strategy around what people search for. Triggers on keyword research, keyword strategy, search intent, keyword clustering, topic clusters, keyword difficulty, search volume, ranking opportunity, content gap, what should I write about, target keyword, primary keyword, secondary keyword, long-tail. Also triggers when planning a content calendar or new site without keywords yet defined."
4category: seo-foundation
5catalog_summary: "Discovery, intent classification, clustering, prioritization"
6display_order: 3
7---
8 
9# Keyword Research
10 
11Find the queries worth ranking for, classify them by intent, cluster them into topics, and prioritize what to produce. Stack-agnostic. Tool-agnostic (works with any keyword tool).
12 
13---
14 
15## When to use
16 
17- Starting a new site or content section
18- Planning a content calendar
19- Looking for ranking opportunities on an existing site
20- Understanding search intent before writing
21- Building topic clusters for internal linking
22- Identifying content gaps vs competitors
23 
24## When NOT to use
25 
26- Optimizing a single page where the target query is already known (use `seo-onpage`)
27- Comparing your site to a competitor across many dimensions (use `seo-competitor`)
28- Auditing existing content for performance (use `seo-content-audit`)
29 
30---
31 
32## Required inputs
33 
34- The site or topic area
35- The target audience and what they need
36- A keyword tool (Ahrefs, Semrush, Moz, Google Keyword Planner, or similar) OR access to search console for an existing site
37- Optional: 3 to 5 known competitors to seed the research
38 
39If no tool is available, the skill still works using SERP inspection and search console data alone, but the volume estimates will be rough.
40 
41---
42 
43## The framework: 4 stages
44 
45### Stage 1: Discover
46 
47Cast a wide net. Sources:
48 
49- **Seed terms** from the brief or the user's vocabulary
50- **Competitor keywords** (any keyword tool will export these)
51- **Search console queries** for an existing site (find the page-1 and page-2 queries)
52- **Related searches and "People also ask"** in actual SERPs
53- **Customer language** (support tickets, sales calls, reviews)
54- **Forum and community language** (Reddit, niche forums, Stack Overflow)
55 
56Goal: 200 to 500 candidate keywords for a typical content sprint. More if planning a year of content.
57 
58### Stage 2: Classify by intent
59 
60Every keyword maps to one of four intents. Get this right or the rest is noise.
61 
62| Intent | Signal | Page type that wins |
63|---|---|---|
64| **Informational** | "how to," "what is," "why," "best way to" | Article, guide, tutorial |
65| **Navigational** | brand or product name + modifier | Brand homepage, product page |
66| **Commercial** | "best," "review," "vs," "comparison," "alternatives" | Listicle, comparison, review |
67| **Transactional** | "buy," "price," "deal," "near me," "for sale" | Product page, category page |
68 
69A keyword tool's volume tells you the demand. The SERP tells you the intent. When in doubt, look at what's actually ranking. If page 1 is articles, the query is informational. If page 1 is product pages, it's transactional.
70 
71**Hybrid intents exist.** "Best running shoes" is commercial-investigational. "Best running shoes under $100" is the same intent narrowed by a budget filter. Treat hybrids as their dominant intent and note the modifier.
72 
73### Stage 3: Cluster
74 
75Group keywords that should target the same page (or topic cluster).
76 
77Two clustering approaches:
78 
79**Approach A: SERP overlap.** If two keywords share at least 3 of the top 10 results, they target the same page. This is mechanical and reliable.
80 
81**Approach B: Topical relevance.** Group keywords by the underlying topic, not just word overlap. "How to start a podcast" and "podcast equipment for beginners" are the same topic, different facets.
82 
83Use both. A typical cluster has:
84- 1 primary keyword (highest volume, broadest intent)
85- 5 to 15 secondary keywords (variations and long-tails)
86- 1 page that targets them all
87 
88### Stage 4: Prioritize
89 
90For each cluster, score on three dimensions:
91 
92**Opportunity** (1 to 5):
93- Volume (raw search demand)
94- Click potential (some queries answer themselves in the SERP, lowering CTR)
95- Conversion potential (does this query attract buyers or browsers?)
96 
97**Difficulty** (1 to 5):
98- Domain authority of top results
99- Backlink count of top results
100- Content depth and freshness of top results
101- Whether the SERP has features (featured snippets, AI overview, video carousel) that compete with organic
102 
103**Strategic fit** (1 to 5):
104- Does it serve our audience?
105- Does it support our positioning?
106- Does it link to commercial pages naturally?
107 
108**Priority score = Opportunity + Strategic fit - Difficulty.**
109 
110Rank the clusters. Top 20 percent get produced first.
111 
112---
113 
114## Workflow
115 
1161. **Define the scope.** What site, what topic area, what audience.
1172. **Run discovery.** Pull seeds, competitor exports, search console data, SERP inspections. Aim for 200 to 500 candidates.
1183. **Deduplicate and clean.** Remove obvious junk, brand misspellings, irrelevant terms.
1194. **Classify by intent.** Mark each keyword.
1205. **Cluster.** Group into topical clusters. Aim for 20 to 50 clusters.
1216. **Score each cluster** on opportunity, difficulty, and strategic fit.
1227. **Prioritize.** Rank by composite score. Identify the top 10 to 20 clusters to produce first.
1238. **Output.** Use the template in [`references/keyword-research-template.md`](references/keyword-research-template.md).
124 
125---
126 
127## Failure patterns
128 
129- **Chasing volume without intent.** A 10,000-volume informational keyword does not drive purchases. Match query to commercial outcome.
130- **Targeting impossibly competitive keywords.** New sites cannot rank for "credit cards." Find the underserved long-tail variant.
131- **Ignoring search console.** Existing sites already rank for queries they did not target. These are the easiest wins.
132- **Treating clusters as one-keyword-per-page.** A page can target 10 to 30 related keywords. One-keyword-per-page leads to thin, cannibalized content.
133- **Ignoring SERP features.** A query with a featured snippet, AI overview, and a video carousel above the organic results may not be worth pursuing.
134- **Static keyword research.** Search demand shifts. Refresh the research at least annually for evergreen sites, quarterly for fast-moving topics.
135 
136---
137 
138## Output format
139 
140Default output: a spreadsheet (CSV or sheet) with one row per keyword and one row per cluster, plus a markdown summary with the top 10 to 20 clusters detailed.
141 
142Recommended columns for the keyword sheet:
143 
144| Column | Source |
145|---|---|
146| Keyword | Discovery |
147| Volume | Tool |
148| Difficulty | Tool |
149| Intent | Manual classification |
150| SERP features | Manual or tool |
151| Cluster | Stage 3 |
152| Cluster role (primary/secondary) | Stage 3 |
153| Opportunity score | Stage 4 |
154| Strategic fit | Stage 4 |
155| Priority | Composite |
156| Notes | Free text |
157 
158---
159 
160## If required data is unavailable
161 
162This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.
163 
164---
165 
166## Reference files
167 
168- [`references/keyword-research-template.md`](references/keyword-research-template.md) - Spreadsheet column definitions and a markdown summary template.
169- [`references/intent-classification-guide.md`](references/intent-classification-guide.md) - Detailed examples of each of the four intent categories.
170 
View all files on GitHub →

Details

Updated
Sep 15, 2026
License
MIT
Stars on the repo
★ 901
Checked
Source
rampstackco/claude-skills ↗
Creator
rampstackco · 60 listings
View creator

Made with seo-keyword

Keyword Research — Showcase grid filtered by Tone equals Provocative and Sensory equals Resonant, showing eight matching brand cards with… (from the rampstackco/claude-skills README)
Keyword Research — Showcase grid filtered by Tone equals Provocative and Sensory equals Resonant, showing eight matching brand cards with… (from the rampstackco/claude-skills README)

by rampstackco

Keyword Research — Showcase grid with all four axis filters set to Provocative, Editorial Restrained, Coach, and Resonant, showing zero… (from the rampstackco/claude-skills README)
Keyword Research — Showcase grid with all four axis filters set to Provocative, Editorial Restrained, Coach, and Resonant, showing zero… (from the rampstackco/claude-skills README)

by rampstackco

Keyword Research — RampStack architecture diagram. A central navy hub card shows the RampStack mark with the subtitle 'Stack-agnostic… (from the rampstackco/claude-skills README)
Keyword Research — RampStack architecture diagram. A central navy hub card shows the RampStack mark with the subtitle 'Stack-agnostic… (from the rampstackco/claude-skills README)

by rampstackco

Similar skills

See all →
SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing ReadinessAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillReferring domains, anchor text distributionBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillBacklink profile for any domainBacklink checkRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillOptimize Core Web Vitals for better page experienceCore Web Vitals optimizationaddyosmani/web-quality-skills · by addyosmaniOptimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts".★ 2.8k GitHub starsSkillRun an SEO page observation-action-review loopRun the SEO page looptsingyuai/growth-lab · by tsingyuaiRun an SEO page observation-action-review loop with persistent Memory by coordinating demand research, page creation, adversarial review, image generation, IndexNow submission, and performance review. Use when taking an SEO page from opportunity discovery through publication, measurement, iteration, or continuing a previous SEO loop from Memory.★ 2k GitHub stars

More from rampstackco

SkillRun a comprehensive WCAG accessibility audit coveringrampstackco/claude-skills · by rampstackcoRun a comprehensive WCAG accessibility audit covering perceivable, operable, understandable, and robust principles. Use this skill whenever the user wants to audit accessibility, review WCAG compliance, fix accessibility issues, prepare for accessibility certification, address an accessibility lawsuit risk, or systematically improve a site's accessibility. Triggers on accessibility audit, WCAG audit, a11y audit, accessibility compliance, ADA compliance, screen reader test, keyboard navigation, accessibility report, fix accessibility, axe scan. Also triggers when accessibility issues have been reported and need systematic remediation.★ 901 GitHub starsSkillOptimize content and site structure for AI-driven searchAEO and GEOrampstackco/claude-skills · by rampstackcoOptimize content and site structure for AI-driven search experiences including AI overviews, large language model citations, generative answer engines, and AI assistants. Use this skill whenever the user wants to optimize for AI search, get cited by language models, appear in AI overviews, build llms.txt, structure content for AI extraction, or future-proof their SEO for the shift from blue links to AI answers. Triggers on AEO, GEO, AI search, AI SEO, AI overview, generative search, LLM optimization, llms.txt, AI citation, ChatGPT search, Perplexity, Gemini, Claude search, AI assistant optimization, answer engine. Also triggers when the user expresses concern about AI eating their organic traffic or wants to understand how to remain visible as search shifts.★ 901 GitHub starsSkillRun a structured after-action review on a launch, incidentAfter action reportrampstackco/claude-skills · by rampstackcoRun a structured after-action review (postmortem, retrospective) on a launch, incident, or completed project to capture timeline, root cause analysis, contributing factors, and actionable lessons. Use this skill whenever the user wants to run a postmortem, retrospective, AAR, or after-action review on any past event. Triggers on after-action report, AAR, postmortem, retrospective, retro, post-incident review, what went well what didn't, lessons learned, blameless postmortem, root cause analysis, RCA, five whys. Also triggers when the user has just shipped something or just resolved an incident and wants to capture learnings.★ 901 GitHub starsSkillDesign measurement frameworks including event taxonomyAnalytics strategyrampstackco/claude-skills · by rampstackcoDesign measurement frameworks including event taxonomy, KPI hierarchy, dashboard architecture, attribution models, and analytics implementation strategy. Use this skill whenever the user wants to plan analytics, design dashboards, build event taxonomies, define KPIs, set up tracking, or audit existing measurement. Triggers on analytics strategy, measurement plan, event taxonomy, tracking plan, KPI framework, dashboard design, north star metric, attribution model, conversion tracking, GA4 setup, Mixpanel setup, analytics audit. Also triggers when the user has data but no clear way to use it, or wants to make decisions but doesn't know what to track.★ 901 GitHub starsSkillDirect visual and creative work for campaigns, photographyArt directionrampstackco/claude-skills · by rampstackcoDirect visual and creative work for campaigns, photography, illustration, video, and branded experiences. Use this skill whenever the user wants to brief a photographer, direct illustrators, plan a creative campaign, develop visual concepts, or evaluate creative work for fit. Triggers on art direction, photo brief, photography brief, illustration brief, campaign concept, creative concept, visual direction, mood board, look and feel, visual treatment, video direction. Also triggers when the user has approved brand identity but needs to extend it into specific creative deliverables. Use `creative-direction` instead when the ask is the project-wide aesthetic brief that this skill consumes as input.★ 901 GitHub starsSkillPlan and run backups, set recovery objectivesBackup and disaster recoveryrampstackco/claude-skills · by rampstackcoPlan and run backups, set recovery objectives, and run disaster recovery drills. Use this skill when defining RPO/RTO targets, designing backup architecture, deciding what to back up and how often, planning for full-region or platform outages, or running a restoration drill. Triggers on backup, restore, RPO, RTO, disaster recovery, DR, business continuity, what if the database is gone, what if our hosting goes down, recovery drill, ransomware planning. Also triggers when an incident reveals a gap in restoration capability.★ 901 GitHub stars