Keyword research
Run public-safe DataForSEO keyword research, SERP checks, competitor discovery, backlink opportunity analysis, gap analysis, and SEO brief planning. Use when Codex is asked for keyword research, niche validation, search demand, CPC/difficulty data, competitor domains, content gaps, backlink prospects, SEO topic prioritization, or article briefs using DataForSEO credentials.From its SKILL.md
npx -y skills add nachoal/my-skills --skill keyword-researchAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- reads credentialsReads from 2 credential sources: `DATAFORSEO_LOGIN` and 1 more.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 2 commands, including `python3 scripts/dataforseo_keyword_research.py --help` and 1 more.
SKILL.md
2.7 KB, 567 tokens by cl100k_base, as published. Nobody here has run it
Keyword Research
Use the bundled DataForSEO helper:
python3 scripts/dataforseo_keyword_research.py --help
Start with the smallest paid call that answers the question. Run --dry-run first when the scope or cost is unclear, and pass --yes only after the user asked for live DataForSEO data.
Default Flow
- Seed demand:
keyword-overview,keyword-ideas,related-keywords, orgoogle-ads-volume. - SERP proof:
serp-checkfor representative commercial terms. - Competitors:
competitorsfrom a known domain, or use SERP domains when no seed domain exists. - Competitor keywords:
ranked-keywords/research. - Offline analysis:
gap-analysis, thenbriefsonly if content planning is requested. - Link building:
backlink-opportunitiesonly when outreach/link acquisition is in scope.
Common Commands
python3 scripts/dataforseo_keyword_research.py keyword-overview \
--keywords "local seo services,seo automation" \
--location 2840 --language en --dry-run
python3 scripts/dataforseo_keyword_research.py serp-check \
--keywords "local seo services,seo automation" \
--location 2840 --language en --yes
python3 scripts/dataforseo_keyword_research.py competitors \
--target example.com --limit 20 --yes
python3 scripts/dataforseo_keyword_research.py ranked-keywords \
--target example.com --limit 200 --yes
python3 scripts/dataforseo_keyword_research.py gap-analysis \
--input dataforseo-results/ranked-keywords-latest.json \
--min-volume 100 --max-difficulty 40
Rules
- Use
DATAFORSEO_LOGINandDATAFORSEO_PASSWORD; never ask for or print secret values. - Keep examples generic unless the user provides a real project, domain, locale, or niche.
- Pass locale explicitly for non-US/non-English work, for example Mexico/Spanish:
--location 2484 --language es. - Review live SERP results before recommending a content plan.
- Treat generated briefs as planning artifacts; do not publish content without a separate content-quality workflow.
Resources
- Workflow guide:
references/workflow.md - API surface map:
references/dataforseo-endpoints.md - Helper script:
scripts/dataforseo_keyword_research.py
Read references/workflow.md when choosing command order. Read references/dataforseo-endpoints.md when you need endpoint coverage, payload shape, or cost/safety notes.
What ships with it: 4 files
32.9 KB alongside SKILL.md, 1 of them executable
agents/
- openai.yaml227 B
references/
- dataforseo-endpoints.md2.0 KB
- workflow.md3.5 KB
scripts/
- dataforseo_keyword_research.pyruns27.1 KB
Gives 0 of the 12 instructions most plan spec skills give in 567 tokens
Counted across 1,360 of the 2,617 authors here whose files we hold, read 2026-09-06
- Ask one question at a timein 73 of 1360
- Write the spec using the templatein 22 of 1360
- Ask clarifying questions if neededin 19 of 1360, across 18 files
- Wait for user confirmation before proceedingin 19 of 1360
- Save plans to the plans directoryin 17 of 1360, across 13 files
- Check for product marketing context firstin 16 of 1360, across 5 files
- Read the plan file completelyin 16 of 1360
- Order tasks by dependencyin 16 of 1360
- Gather context from the conversationin 15 of 1360, across 9 files
- Explore the codebase instead of askingin 15 of 1360, across 13 files
- Wait for explicit user approvalin 14 of 1360, across 13 files
- Quiz the user on the breakdownin 13 of 1360, across 7 files
Said here and by no other author read
- Run the smallest paid call first
- Run dry run when cost is unclear
- Use DATAFORSEO LOGIN and PASSWORD
- Pass locale explicitly for non US work
- Review live SERP results before planning
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.