Agent skill
marketing-content-ideas
Generate B2B content ideas across buying stages and content types (blog, LinkedIn, X, case study, service-page opportunity).
Filed under Content and SEO.
From b2bforce/b2bforce · 29 skills · 2 · pushed 2026-08-21
What it does when it runs
Generate B2B content ideas across buying stages and content types (blog, LinkedIn, X, case study, service-page opportunity). Use when planning a content calendar from ICP and service context. Requires firm profile, service, ICP, and persona files. For writing drafts use marketing-content-* skills per type.
Read from the skill and the 3 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- EXA_API_KEY
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- shell
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/b2bforce/b2bforce.git /tmp/b2bforce git -C /tmp/b2bforce sparse-checkout set ".agents/skills/marketing-content-ideas" mkdir -p ~/.claude/skills/marketing-content-ideas cp -R "/tmp/b2bforce/.agents/skills/marketing-content-ideas/." ~/.claude/skills/marketing-content-ideas/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
Before you install: this skill will not complete its job on a bare agent. It needs EXA_API_KEY, which you have to obtain separately.
The skill
Source on GitHub ↗Reproduced in full from b2bforce/b2bforce/blob/7682ed90c62190a0f3c09eb135596d08bd6890bc/.agents/skills/marketing-content-ideas/SKILL.md, which is licensed MIT (skill frontmatter). 1,062 words, 12 headings.
Content Ideas Generator
Generates 15–25 content ideas mapped to B2B buying stages and content types.
When to Use
- User wants content calendar, ideation, or kanban backlog
- After ICP + personas exist for a service
- User specifies counts per type (e.g. 5 LinkedIn, 3 blog, 2 case study)
Prerequisites
Brand scope. In a multi-brand workspace (2+ brand homes in workspace/firm/brands/), every path this skill reads or writes is brand-scoped: definitional entities (services, ICP, personas, proof, channels) live in firm/brands/{brand}/…, working pipelines carry a {brand}/ segment under their entity root, and the working brand comes from the user's choice or B2BFORCE_BRAND — never guessed. Rules: Brand Scope Gate in AGENTS.md; paths: docs/WORKSPACE.md.
workspace/firm/profile.mdworkspace/firm/services/{service-slug}.mdworkspace/marketing/icp/{icp-slug}.md+ at least one persona- Optional APIs:
EXA_API_KEY(content landscape),DATAFORSEO_*(keywords), research for service-page opportunities
Hard gate: if the selected service has no linked ICP, or the ICP has no persona,
stop and run marketing-icp first. Do not invent ICP/persona context
inside the ideas prompt.
Run the central readiness check before generation:
scripts/validate-content-readiness.sh [service-slug] [icp-slug] [persona-slug]
Content types and stage rules
| content_type | Allowed buying_stage |
|---|---|
| linkedin_post, x_post, blog_post | all 5 stages |
| case_study | decision, vendor only |
| landing_page | vendor only |
| prospecting_sequence | any (usually separate skill) |
Buying stages: problem → concept → education → decision → vendor
Details: references/buying-stages-and-types.md
Workflow
1. Build context
Assemble from workspace:
- Company: name, tagline, description, industry, brand_voice, specializations
- Service: name, type, challenges, features, outcomes, process, differentiators, fit_criteria
- ICP: target client company segment; pain_points, goals, trigger_events, buying_mode, messaging_angle, job_to_be_done, anti_fit_criteria
- Persona: decision maker or user; job_titles, seniority, pain_points, goals, content_formats, channels, objections
- Persona distribution: if user selects multiple personas, either generate a
separate batch per persona or assign explicit counts per persona; every idea
must carry one
personaslug. - Exclusion list: firm profile section
existing_content, existing idea titles, existingunique_angle, existingbuyer_question, and user-provided URLs/titles to avoid - Content landscape: Exa search — top 10 articles on topic in last 12 months
(if API set). If no research API is used, mark ideas as
research_mode: dry_run.
2. Service page opportunity research (optional)
When landing_page count > 0 and user requests research:
Run service-page research — 5 queries:
competitors, landing_structure, objections, social_proof, cta_strategies
Optional DataForSEO keyword data.
Save research JSON to include in idea files for landing_page type only.
3. AI generation
System prompt: references/system-prompt.md. A buying-mode-aware appendix is always added on top; it tailors ideas to the ICP's buying_mode — reactive (problem/pain → urgent, problem-solving) vs proactive (challenge/opportunity → aspirational, growth-oriented), with mixed as the default. The ICP's buying_mode, messaging_angle, and market_research are passed in context for the AI to adapt.
User prompt includes:
- Count per type OR total count distributed across stages
- Language from firm context
- Existing ideas from
workspace/marketing/content/ideas/as JSON (dedup) - Dedupe against titles, buyer questions, unique angles, and problem framing, not only exact title matches
- Big5 topic guidance where relevant (cost, problems, comparisons, alternatives, reviews)
- hook_type per idea: data | question | contrarian | specificity | problem | story
- Quality rubric per idea: buyer question, stage fit, service fit, proof source, non-generic angle, next action
- Persona-aware distribution if more than one persona is selected
- Research mode:
market_informedonly if Exa/DataForSEO/SERP/market context was used; otherwisedry_run - SEO discipline:
target_keywordonly forblog_postandlanding_page; set it empty/null for LinkedIn, X, case study, and prospecting - Proof discipline:
- do not invent client names, metrics, page counts, revenue numbers, or research claims;
- use specific numbers only when they exist in firm/service/proof context;
- if
case_studyis requested and no real proof exists, create the idea with a[Client]placeholder andproof_source: needs real client proof before draft; - never generate a case study draft from a placeholder proof idea.
Output schema: references/output-schema.md
Generate batch ID: batch-{YYYY-MM-DD}-{uuid-short} — same ID in all idea files from this run.
4. Write workspace outputs
One file per idea:
workspace/marketing/content/ideas/{content_type}--{buying_stage}--{slug}.md
Keep all ideas in one folder. Do not create type subfolders. The filename is a human scanning index for large backlogs; frontmatter remains the source of truth.
---
title:
content_type: blog_post
buying_stage: problem
status: new
language: en
service: {slug}
icp: {slug}
persona: {slug}
buyer_question:
big5_topic: problems # optional: cost|problems|comparisons|alternatives|reviews
target_keyword: # optional, from SEO research
generation_batch: batch-2026-06-01-abc123
competitive_research: false # landing_page only — path to research file if saved
hook_type: data # metadata for quality (optional in frontmatter)
unique_angle:
proof_source:
next_action:
recommended_next_skill: marketing-content-blog-post
research_mode: dry_run
---
Description body: 2–3 sentences on content angle.
If landing_page with research, also write:
workspace/marketing/content/ideas/{content_type}--{buying_stage}--{slug}-research.json
5. Default distribution (if user doesn't specify)
Channel registry first. If workspace/marketing/channels/ (multi-brand:
firm/brands/{brand}/channels/) holds channel files, they decide distribution: enable only
the content types some active channel lists in content_types, and size
counts to the channels' schedule lines — a channel posting once a week does not
need five ideas a week. Read each channel's body ("what to publish here") as
context for the angles proposed. Rules: docs/content-generation.md,
"Distribution channels".
Fallback (no channel files). Only content types that are enabled are
generated. By default just three are enabled: LinkedIn×5, X×5, blog×3
(≈13 ideas). case_study has a default count of 2 and
landing_page/prospecting_sequence default to 0, but those are off by
default — they are only generated if the user enables them. The legacy
"total count" mode (no per-type counts) defaults to 20 ideas spread across all
5 stages.
Quality rules
- Titles must use hook patterns (data, question, contrarian, specificity, problem, story)
- Avoid generic titles ("Complete Guide to X", "10 Best Tips")
- Each idea needs unique_angle vs existing ideas and content landscape
- Match content type to buying stage restrictions
- Early stages → educational; late stages → comparison/proof
- No fabricated proof: specific metrics, client names, research claims, and case study facts must come from workspace context or be marked as needing real proof.
- Every idea must include
buyer_question,next_action,recommended_next_skill, andresearch_mode. - Run
scripts/validate-content-ideas.shafter writing ideas; fix any failures before generating drafts.
Related Skills
| Skill | When |
|---|---|
marketing-icp | Missing ICP |
marketing-content-blog-post etc. | Generate draft from approved idea |
marketing-service-page | Create service page from a landing_page opportunity |
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- marketing-ideas by coreyhaines31 · 45,947
- marketing-ideas by OpenClaudia · 664
- content-creation-and-marketing by manojbajaj95 · 92
- marketing-product-ideas by realjaymes · 55
- content-marketing by shalintripathi · 7
- co-marketing by coreyhaines31 · 45,947
- community-marketing by coreyhaines31 · 45,947
- content-strategy by coreyhaines31 · 45,947
Need help setting it up?
This page tells you what marketing-content-ideas does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.