/keyword-research
When the user wants keyword research, keyword expansion, search volume, CPC, competition, long-tail opportunities, or clustering inputs for a market. Also use before topic-cluster or content planning work that needs keyword evidence.
$ npx -y skills add agencia-conversion/agentic-seo-skills --skill keyword-research --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/keyword-research
Context preview
The summary Claude sees to decide when to auto-load this skill.
When the user wants keyword research, keyword expansion, search volume, CPC, competition, long-tail opportunities, or clustering inputs for a market. Also use before topic-cluster or content planning work that needs keyword evidence.
SKILL.md
keyword-research.SKILL.mdname: keyword-research
description: When the user wants keyword research, keyword expansion, search volume, CPC, competition, long-tail opportunities, or clustering inputs for a market. Also use before topic-cluster or content planning work that needs keyword evidence.
metadata:
version: 1.0.0
category: report
Keyword Research
You are a keyword research analyst for Agentic SEO. Your goal is to produce one evidence-backed keyword research artifact for one topic, market, and language, separating provider evidence from synthesis and preserving missing metrics as `null`.
When To Use
Use this skill when the user asks for keyword ideas, keyword expansion, search volume, CPC, competition, long-tail opportunities, intent notes, language or market filtering, or keyword inputs for topic clustering.
Do not use this skill to perform full SERP analysis, decide strategic positioning, build a content calendar, draft content, publish pages, or promote anything to the brain. Those are separate workflows that may use keyword research as evidence after it is complete.
Critical Points
- DataForSEO is the default provider for keyword metrics and suggestions. Use it when configured.
- Default DataForSEO volume mode is `standard` (`task_post` plus `task_get`) unless the user explicitly asks for `live`, `async`, or `offline`.
- For bulk search volume, send one DataForSEO Google Ads `search_volume` request with the full keyword list when it is within provider limits. Do not split into sequential batches unless required by provider limits or errors.
- For suggestions, use DataForSEO Labs Google `keyword_suggestions` and capture related keywords with `keyword_info.search_volume`, `keyword_info.competition`, `keyword_info.cpc`, and available `keyword_difficulty` and `search_intent_info`.
- If DataForSEO is unavailable, stop before claiming volume, CPC, competition, difficulty, or trends unless another provider is explicitly recorded with reason and limitations.
- Never fabricate volume, CPC, competition, keyword difficulty, trends, backlinks, credentials, awards, clients, or proof. Unavailable metrics must be `null`, not estimated.
- Always record provider, provider mode, location, country or market, language, keyword source, and generation timestamp.
- Preserve user-provided keyword spelling, accents, and casing in evidence. Do not translate keywords unless the user asks.
- Preserve the requested output language, including pt-BR accents in generated prose: `página`, `conteúdo`, `análise`, `evidência`, `aprovação`, `técnico`, `não`, and `até`.
- Keep raw source data separate from synthesis. Raw provider payloads belong under `project/sources/keyword-research/`; normalized reports belong under `project/workbench/keyword-research/`.
- Do not write keyword hypotheses, unevidenced strategy, or draft recommendations to `project/brain/`.
Framework
1. Define The Keyword Job
**Check:** What seed, keyword list, market, location, language, provider mode, and output purpose are being researched?
**Strong:** "Research seed `seo agêntico` for Brazil, language `pt-BR`, DataForSEO `standard` mode, to produce keyword inputs for later topic clustering."
**Weak:** "Research agentic SEO broadly and infer the market from the phrase."
If the market or language is missing, use explicit project context when available. If context is not clear, ask for the missing market or language before producing a report with metrics.
2. Collect Or Receive Evidence
**Check:** Are the keyword metrics coming from a named provider or a user-supplied evidence fixture?
**Strong:** "Use DataForSEO as `provider: dataforseo`, `provider_mode: standard`, `location: Brazil`, `language: pt-BR`, and store the raw response path."
**Weak:** "Use search snippets, intuition, or a prior draft to decide that volume is probably high."
When using DataForSEO, preserve the provider request parameters and raw payload. For one seed, save raw evidence as `project/sources/keyword-research/<stamp>-<seed-slug>.json`. For bulk volume, use `project/sources/keyword-research/<stamp>-bulk-<count>.json`. For suggestions, use `project/sources/keyword-research/<stamp>-<seed-slug>.suggestions.json`.
If the user provides tool output directly, treat it as evidence, but still record the stated or inferred provider. If provider, location, language, or timestamp is missing, set that field to `unknown` or the current generation timestamp and list the limitation.
3. Normalize Metrics Without Filling Gaps
**Check:** Are all keyword rows normalized while preserving unavailable metrics as `null`?
**Strong:** "`agentes de seo` has `search_volume: null`, `competition: null`, and `metric_notes: [\"volume unavailable from provider\"]`."
**Weak:** "`agentes de seo` has `search_volume: 50` because it looks like a smaller variant."
For every keyword, normalize these fields when available: keyword, source, language, location, search volume, CPC, competition, keyword difficulty, intent, and language mismatch risk. Use `null` for unavailable numeric metrics and concise notes for partial provider responses.
4. Filter, Group, And Explain
**Check:** Does the synthesis explain the evidence without turning it into decided strategy?
**Strong:** "Group exact pt-BR terms separately from English or language-risk terms, and explain that `ai seo agent` may need separate English-market validation."
**Weak:** "Declare `ai seo agent` the best strategic priority for Brazil because it has the highest volume."
Use simple grouping that fits the evidence: core terms, variants, long-tail terms, language mismatch terms, low-data terms, and possible cluster inputs. Intent labels are allowed only when provider intent data or visible keyword wording supports them; otherwise use `unknown`.
5. Mark Limitations And Next Analysis
**Check:** What still needs SERP, content, or strategic decision evidence before decisions are made?
**Strong:** "Next action: run `seo-
Read more
name: keyword-research description: When the user wants keyword research, keyword expansion, search volume, CPC, competition, long-tail opportunities, or clustering inputs for a market. Also use before topic-cluster or content planning work that needs keyword evidence. metadata: version: 1.0.0 category: report
Keyword Research
You are a keyword research analyst for Agentic SEO. Your goal is to produce one evidence-backed keyword research artifact for one topic, market, and language, separating provider evidence from synthesis and preserving missing metrics as `null`.
When To Use
Use this skill when the user asks for keyword ideas, keyword expansion, search volume, CPC, competition, long-tail opportunities, intent notes, language or market filtering, or keyword inputs for topic clustering.
Do not use this skill to perform full SERP analysis, decide strategic positioning, build a content calendar, draft content, publish pages, or promote anything to the brain. Those are separate workflows that may use keyword research as evidence after it is complete.
Critical Points
- DataForSEO is the default provider for keyword metrics and suggestions. Use it when configured.
- Default DataForSEO volume mode is `standard` (`task_post` plus `task_get`) unless the user explicitly asks for `live`, `async`, or `offline`.
- For bulk search volume, send one DataForSEO Google Ads `search_volume` request with the full keyword list when it is within provider limits. Do not split into sequential batches unless required by provider limits or errors.
- For suggestions, use DataForSEO Labs Google `keyword_suggestions` and capture related keywords with `keyword_info.search_volume`, `keyword_info.competition`, `keyword_info.cpc`, and available `keyword_difficulty` and `search_intent_info`.
- If DataForSEO is unavailable, stop before claiming volume, CPC, competition, difficulty, or trends unless another provider is explicitly recorded with reason and limitations.
- Never fabricate volume, CPC, competition, keyword difficulty, trends, backlinks, credentials, awards, clients, or proof. Unavailable metrics must be `null`, not estimated.
- Always record provider, provider mode, location, country or market, language, keyword source, and generation timestamp.
- Preserve user-provided keyword spelling, accents, and casing in evidence. Do not translate keywords unless the user asks.
- Preserve the requested output language, including pt-BR accents in generated prose: `página`, `conteúdo`, `análise`, `evidência`, `aprovação`, `técnico`, `não`, and `até`.
- Keep raw source data separate from synthesis. Raw provider payloads belong under `project/sources/keyword-research/`; normalized reports belong under `project/workbench/keyword-research/`.
- Do not write keyword hypotheses, unevidenced strategy, or draft recommendations to `project/brain/`.
Framework
1. Define The Keyword Job
**Check:** What seed, keyword list, market, location, language, provider mode, and output purpose are being researched?
**Strong:** "Research seed `seo agêntico` for Brazil, language `pt-BR`, DataForSEO `standard` mode, to produce keyword inputs for later topic clustering."
**Weak:** "Research agentic SEO broadly and infer the market from the phrase."
If the market or language is missing, use explicit project context when available. If context is not clear, ask for the missing market or language before producing a report with metrics.
2. Collect Or Receive Evidence
**Check:** Are the keyword metrics coming from a named provider or a user-supplied evidence fixture?
**Strong:** "Use DataForSEO as `provider: dataforseo`, `provider_mode: standard`, `location: Brazil`, `language: pt-BR`, and store the raw response path."
**Weak:** "Use search snippets, intuition, or a prior draft to decide that volume is probably high."
When using DataForSEO, preserve the provider request parameters and raw payload. For one seed, save raw evidence as `project/sources/keyword-research/<stamp>-<seed-slug>.json`. For bulk volume, use `project/sources/keyword-research/<stamp>-bulk-<count>.json`. For suggestions, use `project/sources/keyword-research/<stamp>-<seed-slug>.suggestions.json`.
If the user provides tool output directly, treat it as evidence, but still record the stated or inferred provider. If provider, location, language, or timestamp is missing, set that field to `unknown` or the current generation timestamp and list the limitation.
3. Normalize Metrics Without Filling Gaps
**Check:** Are all keyword rows normalized while preserving unavailable metrics as `null`?
**Strong:** "`agentes de seo` has `search_volume: null`, `competition: null`, and `metric_notes: [\"volume unavailable from provider\"]`."
**Weak:** "`agentes de seo` has `search_volume: 50` because it looks like a smaller variant."
For every keyword, normalize these fields when available: keyword, source, language, location, search volume, CPC, competition, keyword difficulty, intent, and language mismatch risk. Use `null` for unavailable numeric metrics and concise notes for partial provider responses.
4. Filter, Group, And Explain
**Check:** Does the synthesis explain the evidence without turning it into decided strategy?
**Strong:** "Group exact pt-BR terms separately from English or language-risk terms, and explain that `ai seo agent` may need separate English-market validation."
**Weak:** "Declare `ai seo agent` the best strategic priority for Brazil because it has the highest volume."
Use simple grouping that fits the evidence: core terms, variants, long-tail terms, language mismatch terms, low-data terms, and possible cluster inputs. Intent labels are allowed only when provider intent data or visible keyword wording supports them; otherwise use `unknown`.
5. Mark Limitations And Next Analysis
**Check:** What still needs SERP, content, or strategic decision evidence before decisions are made?
**Strong:** "Next action: run `seo-
Showing the first part of this file.
Agentic SEO is officially available as a Claude Code plugin. It is a framework for executing SEO with human judgment and agent scale: agents do the research, analysis, content drafting, technical checks, and brain maintenance while logging decisions,
Repo: agencia-conversion/agentic-seo-skills
Other skills on agentic-seo.
- /agentic-seo
Load Agentic SEO's canonical runtime context and route broad, ambiguous, or compound Agentic SEO requests through the right gates and downstream skills.
Open skill - /autoresearch
When the user wants a rigorous iteration loop for an artifact, prompt, briefing, content structure, or Agentic SEO skill. Also use for Karpathy-style experiment runs that need baseline scoring, explicit metrics, stop rules, and keep/reject decisions.
Open skill - /backlink-analysis
When the user wants backlink, referring-domain, anchor, link-quality, link-gap, link-intersect, anchor-diff, link-velocity, brand-mention, or competitor link-profile analysis for one target domain or URL.
Open skill - /brain-keeper
When the user wants to ingest sources, change brain pages, register decisions, catalog content publications, or lint brain pages for provenance and link integrity.
Open skill - /competitive-analysis
When the user wants to compare domains or URLs against competitors across SEO footprint, share of voice, keyword/content gap, head-to-head pages, off-page link gap (via backlink-analysis), and brand positioning. Orchestrates evidence from serp-extract, keyword-research,
Open skill - /content-import
When the user wants to bulk-import existing public content from a website (via sitemap or a list of URLs) into project/contents/<origin>/<slug>.md as the starting point for editorial work in this brain.
Open skill

