Install
$ agentstack add skill-b2bforce-b2bforce-marketing-content-ideas ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →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
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
| contenttype | Allowed buyingstage | |--------------|---------------------| | linkedinpost, xpost, blogpost | all 5 stages | | casestudy | decision, vendor only | | landingpage | vendor only | | prospectingsequence | 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; painpoints, goals, triggerevents, buyingmode, messagingangle, jobtobedone, antifit_criteria
- Persona: decision maker or user; jobtitles, seniority, painpoints, 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, landingstructure, objections, socialproof, 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; otherwise dry_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 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.
---
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.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 |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: b2bforce
- Source: b2bforce/b2bforce
- License: MIT
- Homepage: https://www.b2bforce.ai/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.