# Marketing Content Ideas

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-b2bforce-b2bforce-marketing-content-ideas`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [b2bforce](https://agentstack.voostack.com/s/b2bforce)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [b2bforce](https://github.com/b2bforce)
- **Source:** https://github.com/b2bforce/b2bforce/tree/main/.agents/skills/marketing-content-ideas
- **Website:** https://www.b2bforce.ai/

## Install

```sh
agentstack add skill-b2bforce-b2bforce-marketing-content-ideas
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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

1. `workspace/firm/profile.md`
2. `workspace/firm/services/{service-slug}.md`
3. `workspace/marketing/icp/{icp-slug}.md` + at least one persona
4. 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:

```bash
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 `persona` slug.
- **Exclusion list:** firm profile section `existing_content`, existing idea
  titles, existing `unique_angle`, existing `buyer_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_informed` only if Exa/DataForSEO/SERP/market context was
  used; otherwise `dry_run`
- SEO discipline: `target_keyword` only for `blog_post` and `landing_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_study` is requested and no real proof exists, create the idea with
    a `[Client]` placeholder and `proof_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.

```yaml
---
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)

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`,
  and `research_mode`.
- Run `scripts/validate-content-ideas.sh` after 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 |

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [b2bforce](https://github.com/b2bforce)
- **Source:** [b2bforce/b2bforce](https://github.com/b2bforce/b2bforce)
- **License:** MIT
- **Homepage:** https://www.b2bforce.ai/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-b2bforce-b2bforce-marketing-content-ideas
- Seller: https://agentstack.voostack.com/s/b2bforce
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
