agentsclimarketplace

Marketing seo research

Skill b2bforce/b2bforce/.agents/skills/marketing-seo-research

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.From its SKILL.md

Install
npx -y skills add b2bforce/b2bforce --skill marketing-seo-research

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • reads credentialsReads from 3 credential sources: `DATAFORSEO_LOGIN` and 2 more.
  • 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 file declares

Copied from the file, not written here

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, ~1.1k tokens by cl100k_base, 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):

  1. DataForSEO (preferred) — getKeywordData(keyword, location) → { keyword, search_volume, cpc, competition, competition_level } (default location Poland). Stored as the primary_keyword, source: dataforseo.
  2. 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 relevant content/ideas/{slug}.md frontmatter.
  • 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-ideas can call this to attach target_keyword per idea.
  • marketing-content-blog-post should weave the SEO context block into blog drafts.
  • marketing-service-page should use SEO context for standalone service pages. LinkedIn/X do not use SEO research.

Rules

  1. Always degrade gracefully: DataForSEO → AI → dry-run; never hard-fail.
  2. One primary target_keyword per content piece; keep secondary as suggestions.
  3. Write for humans — flag and avoid keyword stuffing.
  4. 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

SkillWhen
marketing-content-ideasAttach target keywords to ideas
marketing-content-blog-postConsume SEO context in blog drafts
marketing-service-pageConsume SEO context in standalone service pages
intel-ai-visibilityThe same buyer intent measured in answer engines instead of SERPs
firm-contextIndustry + 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.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.