Marketing seo research
Skill b2bforce/b2bforce/.agents/skills/marketing-seo-research
Skills + workspace for AI agents in B2B service firms
npx -y skills add b2bforce/b2bforce --skill marketing-seo-researchAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 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.
What its author says it does
Copied from the file, not written here
Research SEO keywords and search metrics for a topic (DataForSEO with AI research fallback), then produce an SEO context block and a target keyword for content. Use when the user wants keyword research, SEO data, or a target keyword for a content idea or draft. Read firm profile for industry/location.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.0 KB, as published. Nobody here has run it
SEO Research
Keyword research + search metrics to enrich content ideas and drafts with a
target_keyword and an SEO context block.
When to Use
- User wants keyword research or SEO data for a topic
- Picking a target_keyword for a content idea (
content/ideas/{slug}.md) - Generating an SEO context block to feed into a blog draft or service page
Read First
workspace/firm/profile.md — industry and geography/location (DataForSEO
location name format, e.g. "Poland", "United States"). Default location: Poland.
Workflow
1. Keyword research (with fallback)
researchKeywords(topic, industry, location):
- DataForSEO (preferred) —
getKeywordData(keyword, location)→{ keyword, search_volume, cpc, competition, competition_level }(default locationPoland). Stored as theprimary_keyword,source: dataforseo. - Fallback: AI research (Exa/Perplexity) when DataForSEO is unset/fails —
ask for 5 high-value B2B keywords for the topic (one per line).
source: ai.
AI keyword query (verbatim shape):
Suggest 5 high-value SEO keywords for B2B content about "{topic}"
[in the {industry} industry]. Format: one keyword per line, no numbering,
just the keyword phrases.
Dry-run (no keys): propose keywords from topic + industry knowledge, mark
source: dry-run.
2. Pick a target keyword
Choose the most relevant, realistic keyword (intent + achievable competition). Prefer specific long-tail over generic head terms for PSF/B2B.
3. Build SEO context block
generateSeoContext(topic, targetKeyword) → a short block for content prompts.
It starts with a SEO Context: header, the target keyword, and (only when
DataForSEO is available) one metrics line with monthly search volume and
competition level — CPC is not included here:
SEO Context:
Target keyword: {target_keyword}
Keyword metrics: {search_volume} monthly searches, competition: {competition_level}
When the keyword research feeds idea generation, the prompt also nudges the model to "include target keywords naturally in content titles where appropriate" — it does not prescribe specific placements (title / first paragraph / H2).
4. Write outputs
- Set
target_keyword:in the relevantcontent/ideas/{slug}.mdfrontmatter. - Save full research to
workspace/marketing/seo/{topic-slug}.md:
---
topic:
location:
source: dataforseo | ai | dry-run
primary_keyword:
search_volume:
competition:
suggestions: []
answer_engine_prompts: [] # prompt slugs from ai-visibility/!_prompts.md
date: 2026-06-01
---
answer_engine_prompts links this research to the panel in
workspace/intelligence/ai-visibility/!_prompts.md. Buyers increasingly ask the
question rather than searching the keyword, and only about a tenth of what answer
engines cite sits in the top 10 organic results — so a keyword can look healthy while
the firm is absent from the answer built on the same intent.
Fill it by matching this topic's buyer intent to existing prompt slugs. Do not create
prompts here; that is intel-ai-visibility, and a panel edited from two places stops
being comparable across batches.
Integration with content pipeline
marketing-content-ideascan call this to attachtarget_keywordper idea.marketing-content-blog-postshould weave the SEO context block into blog drafts.marketing-service-pageshould use SEO context for standalone service pages. LinkedIn/X do not use SEO research.
Rules
- Always degrade gracefully: DataForSEO → AI → dry-run; never hard-fail.
- One primary
target_keywordper content piece; keep secondary as suggestions. - Write for humans — flag and avoid keyword stuffing.
- Location/industry come from firm-context, not guessed per call.
Environment Variables
DATAFORSEO_LOGIN=
DATAFORSEO_PASSWORD=
EXA_API_KEY= # or Perplexity — AI keyword fallback
Related Skills
| Skill | When |
|---|---|
marketing-content-ideas | Attach target keywords to ideas |
marketing-content-blog-post | Consume SEO context in blog drafts |
marketing-service-page | Consume SEO context in standalone service pages |
intel-ai-visibility | The same buyer intent measured in answer engines instead of SERPs |
firm-context | Industry + target location |
Scope
This skill covers classic search. It is still worth running — but it measures one
channel, and answer_engine_prompts exists so the file says which. Do not stretch
keyword volume into a claim about AI visibility; they are different measurements with
little overlap.