Compare commits

...

27 Commits

Author SHA1 Message Date
Corey Haines 7c8c087486 release: v1.5.0 — customer-research skill, Nitrosend, Resend CLI, Firehose, Introw, Claude Code injection docs (#203)
* feat: add customer-research skill (#186)

* feat: add customer-research skill (#185)

Adds a new skill for conducting and synthesizing customer research —
covering analysis of existing assets (transcripts, surveys, support
tickets, NPS) and digital watering hole research (Reddit, G2, forums,
communities, review sites). Includes persona generation framework,
JTBD extraction, VOC quote banking, and competitive intel from reviews.

Also adds a detailed source-guides reference with per-platform playbooks
(Reddit operators, G2 review tiers, LinkedIn job posting mining, etc.)
and 10 evals covering the main trigger scenarios.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address Codex review of customer-research skill

- Fix evals.json schema to match repo convention (skill_name wrapper,
  integer IDs, expected_output, files fields)
- Add product-marketing-context.md assertion to all evals
- Add 2 new evals: B2C drop-off scenario and zero-research bootstrap
- Collapse 'Where to Look' in SKILL.md to a decision table; detail
  lives in source-guides.md
- Add Research Quality Guardrails section (confidence labels,
  recency window, sample bias, minimum viable sample)
- Add Related Skills section cross-linking 7 downstream skills
- Expand source-guides.md with full B2C section (app stores,
  TikTok/Instagram, consumer Reddit, Discord)
- Add Source Reliability and Confidence Scoring reference guide

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: correct alphabetical ordering of customer-research in manifest and README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: add customer-research to skills relationship diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: move customer-research into Strategy column in diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: Resend CLI docs + Firehose integration (#188)

* feat: add Resend CLI docs and Firehose integration

- resend.md: update CLI availability (now official), add CLI install,
  setup, and common commands section
- firehose.md: new integration guide for real-time web content streaming
  API — query syntax, stream setup, marketing use cases (brand monitoring,
  competitive intel, lead triggers, PR/link building)
- REGISTRY.md: add firehose under Competitive Intelligence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: document Claude Code dynamic content injection pattern

Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Revert "docs: document Claude Code dynamic content injection pattern"

This reverts commit 8e1ce7b363.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: document Claude Code dynamic content injection pattern (#189)

Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: add Introw PRM as partner ecosystem integration (#193)

Great contribution — clean integration guide with solid MCP tool coverage, and the cross-references into referral-program, revops, launch-strategy, and sales-enablement are well-placed. Thanks!

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Tibo <72124096+CoopahG@users.noreply.github.com>
2026-03-27 23:48:16 -07:00
coreyhaines31 fcf4b4e784 chore: sync skills with marketplace.json and README 2026-03-28 06:32:23 +00:00
Corey Haines cc1a9c106b feat: add Nitrosend integration for AI-native email sequencing (#202)
* feat: add customer-research skill (#186)

* feat: add customer-research skill (#185)

Adds a new skill for conducting and synthesizing customer research —
covering analysis of existing assets (transcripts, surveys, support
tickets, NPS) and digital watering hole research (Reddit, G2, forums,
communities, review sites). Includes persona generation framework,
JTBD extraction, VOC quote banking, and competitive intel from reviews.

Also adds a detailed source-guides reference with per-platform playbooks
(Reddit operators, G2 review tiers, LinkedIn job posting mining, etc.)
and 10 evals covering the main trigger scenarios.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address Codex review of customer-research skill

- Fix evals.json schema to match repo convention (skill_name wrapper,
  integer IDs, expected_output, files fields)
- Add product-marketing-context.md assertion to all evals
- Add 2 new evals: B2C drop-off scenario and zero-research bootstrap
- Collapse 'Where to Look' in SKILL.md to a decision table; detail
  lives in source-guides.md
- Add Research Quality Guardrails section (confidence labels,
  recency window, sample bias, minimum viable sample)
- Add Related Skills section cross-linking 7 downstream skills
- Expand source-guides.md with full B2C section (app stores,
  TikTok/Instagram, consumer Reddit, Discord)
- Add Source Reliability and Confidence Scoring reference guide

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: correct alphabetical ordering of customer-research in manifest and README

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: add customer-research to skills relationship diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: move customer-research into Strategy column in diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: Resend CLI docs + Firehose integration (#188)

* feat: add Resend CLI docs and Firehose integration

- resend.md: update CLI availability (now official), add CLI install,
  setup, and common commands section
- firehose.md: new integration guide for real-time web content streaming
  API — query syntax, stream setup, marketing use cases (brand monitoring,
  competitive intel, lead triggers, PR/link building)
- REGISTRY.md: add firehose under Competitive Intelligence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: document Claude Code dynamic content injection pattern

Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Revert "docs: document Claude Code dynamic content injection pattern"

This reverts commit 8e1ce7b363.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: document Claude Code dynamic content injection pattern (#189)

Add Claude Code-specific enhancement section to AGENTS.md explaining
the !`command` syntax for injecting shell output into skills at
invocation time. Marked as Claude Code-only to preserve cross-agent
compatibility of SKILL.md files.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat: add Introw PRM as partner ecosystem integration (#193)

Great contribution — clean integration guide with solid MCP tool coverage, and the cross-references into referral-program, revops, launch-strategy, and sales-enablement are well-placed. Thanks!

* feat: add Nitrosend integration for AI-native email sequencing

Adds Nitrosend as a tool option for teams building email sequences via
AI agents — no dashboard required, full MCP control.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Tibo <72124096+CoopahG@users.noreply.github.com>
2026-03-27 23:32:13 -07:00
marfert cb4451c9a1 Update SKILL.md (#199)
Great catch — technically accurate and a clean improvement. Thanks!
2026-03-27 23:24:57 -07:00
Corey Haines 9d4d29a795 Merge pull request #181 from coreyhaines31/development
v1.4.0 release
2026-03-14 02:06:23 -07:00
Corey Haines b0fbcabc5f Merge pull request #180 from coreyhaines31/docs/v1.4.0-release
Update VERSIONS.md for v1.4.0 release
2026-03-14 02:06:06 -07:00
Corey Haines 6d08784211 docs: update VERSIONS.md for v1.4.0 release
Add lead-magnets skill, bump all 32 existing skills to 1.2.0,
and document all changes since v1.3.0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 01:52:43 -07:00
coreyhaines31 b5a9bb57a9 chore: sync skills with marketplace.json and README 2026-03-14 00:04:30 +00:00
Corey Haines 6e47b53faf Merge pull request #179 from coreyhaines31/development
Release: Composio integration layer + lead-magnets skill + headless CMS guides
2026-03-13 17:04:20 -07:00
Corey Haines b970e9d8e4 Merge pull request #178 from coreyhaines31/feature/composio-integration
Add Composio as integration layer for OAuth-heavy tools
2026-03-13 17:03:53 -07:00
Corey Haines 869321e949 feat: add Composio as integration layer for OAuth-heavy marketing tools
Adds Composio MCP server as an alternative integration method for tools
lacking native MCP support (HubSpot, Salesforce, Meta Ads, LinkedIn Ads,
Google Sheets, Slack, Notion, etc.). Existing CLIs and MCP servers are
unchanged — Composio is additive only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 15:37:59 -07:00
Corey Haines 1c32ad3dbf feat: add lead-magnets skill (#177)
* feat: add lead-magnets skill

Covers strategy for creating, gating, promoting, and measuring
downloadable/content-based lead magnets (ebooks, checklists, cheat
sheets, templates, swipe files, mini-courses, quizzes, webinars).

Includes format-guide and benchmarks reference files. Adds cross-
references in free-tool-strategy, email-sequence, and popup-cro.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: align H1 title with skill name

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 15:21:10 -07:00
Corey Haines 51146da746 Add headless CMS reference and integration guides (#174)
* feat: add headless CMS reference and integration guides

Add CMS selection guide, content modeling patterns, and editorial
workflow reference for marketers. Add integration guides for Sanity
(GROQ API), Contentful (CDA/CMA), and Strapi (v5 REST). Register
all three in REGISTRY.md and link from content-strategy skill.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address review feedback on headless CMS guides

- Use {curly_brace} placeholder convention for Strapi relation example
- Add note that Contentful CMA create uses PUT with client-generated ID
- Add URL-encoding note for Sanity GROQ query parameter
- Switch Sanity mutation example from createOrReplace to create (no _id needed)
- Add Content-Type header to Contentful update entry example
- Fix outdated "Assembly" product name to "Studio" for Contentful

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:21:58 -07:00
Corey Haines 2f5db8d95c Merge pull request #76 from coreyhaines31/development
Release: skill descriptions, evals, and writing audit for all 32 skills
2026-03-04 16:44:37 -08:00
Corey Haines 3a8d01283d Merge branch 'main' into development 2026-03-04 16:07:41 -08:00
Corey Haines 68f5eaf64e Merge pull request #75 from coreyhaines31/feature/skill-writing-audit
Audit skill bodies: replace rigid imperatives with reasoning
2026-03-04 15:59:35 -08:00
Corey Haines 51e29954fb Merge pull request #74 from coreyhaines31/feature/skill-evals
Add evals for all 32 skills (197 total evals, 1261 assertions)
2026-03-04 15:59:31 -08:00
Corey Haines a3ab09378b Merge pull request #73 from coreyhaines31/feature/skill-description-optimization
Optimize all 32 skill descriptions for better triggering
2026-03-04 15:59:27 -08:00
Corey Haines 8c8090ed92 fix: resolve trigger phrase conflicts found in review
- sales-enablement: "ROI calculator" → "deal-specific ROI analysis" to avoid
  conflict with free-tool-strategy which also claims "ROI calculator"
- sales-enablement: clarified scope boundary to competitor-alternatives for
  battle cards (competitor-alternatives owns battle card creation)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:29:15 -08:00
Corey Haines b325e41c91 fix: address review — two more rigid imperatives caught
- sales-enablement: "Never demo without discovery" → "Demo after discovery, not before"
- site-architecture: "No exceptions" → explains why (backlink equity, broken pages)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:28:30 -08:00
Corey Haines b0a3a23699 refactor: replace rigid imperatives with reasoning-based guidance
Audit all 32 SKILL.md files against Anthropic's skill-creator writing
guidance ("why > MUST" pattern). Replaces ALWAYS/NEVER/MUST/IMPORTANT
imperatives with explanations of WHY the guidance matters.

17 edits across 14 skills:
- ad-creative: character limits reasoning, CTA headline reasoning
- seo-audit: schema detection warning softened, reasoning added
- programmatic-seo: subfolder vs subdomain reasoning
- paid-ads: exclusion list reasoning
- copywriting: honesty principle reasoning
- cold-email: follow-up value reasoning
- ai-seo: freshness signal reasoning
- churn-prevention: post-cancel path reasoning
- product-marketing-context: verbatim language reasoning
- popup-cro: close button visibility reasoning
- signup-flow-cro: label visibility reasoning
- form-cro: label visibility reasoning
- revops: fallback owner reasoning
- ab-test-setup: DON'T → Avoid

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 14:19:09 -08:00
Corey Haines e4283c6616 feat: optimize all 32 skill descriptions for better triggering
Following Anthropic skill-creator guidance that Claude undertriggers
skills, make descriptions pushier across all 32 skills:

- Add casual/frustrated user phrases
- Add implicit need triggers where users need the skill but dont name it
- Add catch-all sentences explaining when to use
- Add missing cross-references between related skills
- Ensure consistent format across all descriptions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 13:02:05 -08:00
Corey Haines 633f9c642d Merge branch 'development' 2026-03-04 12:57:50 -08:00
Corey Haines a3516be13d Merge development into main for v1.3.0 release 2026-03-02 11:32:29 -08:00
coreyhaines31 90a7e84d0e chore: sync skills with marketplace.json and README 2026-02-27 17:37:54 +00:00
Corey Haines cac82f3a40 Merge pull request #69 from coreyhaines31/development
Release: v1.1.0 -- agent-agnostic migration, 7 new skills, 51 CLI tools
2026-02-27 12:37:43 -05:00
Corey Haines 0c24410a0b Merge pull request #67 from coreyhaines31/development
Merge development into main
2026-02-23 14:52:55 -05:00
55 changed files with 3161 additions and 94 deletions
+3 -1
View File
@@ -12,7 +12,7 @@
"plugins": [
{
"name": "marketing-skills",
"description": "32 marketing skills for technical marketers and founders: CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, churn prevention, pricing strategy, referral programs, revenue operations, sales enablement, site architecture, and more",
"description": "33 marketing skills for technical marketers and founders: CRO, copywriting, cold email, SEO, AI SEO, paid ads, ad creative, churn prevention, pricing strategy, referral programs, revenue operations, sales enablement, customer research, site architecture, and more",
"source": "./",
"strict": false,
"skills": [
@@ -26,10 +26,12 @@
"./skills/content-strategy",
"./skills/copy-editing",
"./skills/copywriting",
"./skills/customer-research",
"./skills/email-sequence",
"./skills/form-cro",
"./skills/free-tool-strategy",
"./skills/launch-strategy",
"./skills/lead-magnets",
"./skills/marketing-ideas",
"./skills/marketing-psychology",
"./skills/onboarding-cro",
+38 -1
View File
@@ -22,6 +22,7 @@ marketingskills/
│ └── SKILL.md # Required skill file
├── tools/
│ ├── clis/ # Zero-dependency Node.js CLI tools (51 tools)
│ ├── composio/ # Composio integration layer (quick start + toolkit mapping)
│ ├── integrations/ # API integration guides per tool
│ └── REGISTRY.md # Tool index with capabilities
├── CONTRIBUTING.md
@@ -167,7 +168,8 @@ This repository includes a tools registry for agent-compatible marketing tools.
- **Tool discovery**: Read `tools/REGISTRY.md` to see available tools and their capabilities
- **Integration details**: See `tools/integrations/{tool}.md` for API endpoints, auth, and common operations
- **MCP-enabled tools**: ga4, stripe, mailchimp, google-ads, resend, zapier, zoominfo, clay, supermetrics, coupler, outreach, crossbeam
- **MCP-enabled tools**: ga4, stripe, mailchimp, google-ads, resend, zapier, zoominfo, clay, supermetrics, coupler, outreach, crossbeam, introw, composio
- **Composio** (integration layer): Adds MCP access to OAuth-heavy tools without native MCP servers (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, etc.). See `tools/integrations/composio.md`
### Registry Structure
@@ -189,6 +191,8 @@ Skills reference relevant tools for implementation. For example:
- `email-sequence` skill → customer-io, mailchimp, resend guides
- `paid-ads` skill → google-ads, meta-ads, linkedin-ads guides
For tools without native MCP servers (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, Notion), Composio provides MCP access via a single server. See `tools/integrations/composio.md` for setup and `tools/composio/marketing-tools.md` for the full toolkit mapping.
## Checking for Updates
When using any skill from this repository:
@@ -215,3 +219,36 @@ When using any skill from this repository:
## Skill Categories
See `README.md` for the current list of skills organized by category. When adding new skills, follow the naming patterns of existing skills in that category.
## Claude Code-Specific Enhancements
These patterns are **Claude Code only** and must not be added to `SKILL.md` files directly, as skills are designed to be cross-agent compatible (Codex, Cursor, Windsurf, etc.). Apply them locally in your own project's `.claude/skills/` overrides instead.
### Dynamic content injection with `!`command``
Claude Code supports embedding shell commands in SKILL.md using `` !`command` `` syntax. When the skill is invoked, Claude Code runs the command and injects the output inline — the model sees the result, not the instruction.
**Most useful application: auto-inject the product marketing context file**
Instead of every skill telling the agent "go check if `.agents/product-marketing-context.md` exists and read it," you can inject it automatically:
```markdown
Product context: !`cat .agents/product-marketing-context.md 2>/dev/null || echo "No product context file found — ask the user about their product before proceeding."`
```
Place this at the top of a skill's body (after frontmatter) to make context available immediately without any file-reading step.
**Other useful injections:**
```markdown
# Inject today's date for recency-sensitive skills
Today's date: !`date +%Y-%m-%d`
# Inject current git branch (useful for workflow skills)
Current branch: !`git branch --show-current 2>/dev/null`
# Inject recent commits for context
Recent commits: !`git log --oneline -5 2>/dev/null`
```
**Why this is Claude Code-only**: Other agents that load skills will see the literal `` !`command` `` string rather than executing it, which would appear as garbled instructions. Keep cross-agent skill files free of this syntax.
+7 -4
View File
@@ -32,8 +32,8 @@ Skills reference each other and build on shared context. The `product-marketing-
├──────────┤ ├──────────┤ ├──────────┤ ├────────────┤ ├──────────┤ ├─────────────┤ ├───────────┤
│seo-audit │ │page-cro │ │copywritng│ │paid-ads │ │referral │ │revops │ │mktg-ideas │
│ai-seo │ │signup-cro│ │copy-edit │ │ad-creative │ │free-tool │ │sales-enable │ │mktg-psych │
│site-arch │ │onboard │ │cold-email│ │ab-test │ │churn- │ │launch │ │
│programm │ │form-cro │ │email-seq │ │analytics │ │ prevent │ │pricing │ │
│site-arch │ │onboard │ │cold-email│ │ab-test │ │churn- │ │launch │ │customer-
│programm │ │form-cro │ │email-seq │ │analytics │ │ prevent │ │pricing │ │research
│schema │ │popup-cro │ │social │ │ │ │ │ │competitor │ │ │
│content │ │paywall │ │ │ │ │ │ │ │ │ │ │
└────┬─────┘ └────┬─────┘ └────┬─────┘ └─────┬──────┘ └────┬─────┘ └──────┬──────┘ └─────┬─────┘
@@ -44,6 +44,7 @@ Skills reference each other and build on shared context. The `product-marketing-
copywriting ↔ page-cro ↔ ab-test-setup
revops ↔ sales-enablement ↔ cold-email
seo-audit ↔ schema-markup ↔ ai-seo
customer-research → copywriting, page-cro, competitor-alternatives
```
See each skill's **Related Skills** section for the full dependency map.
@@ -63,10 +64,12 @@ See each skill's **Related Skills** section for the full dependency map.
| [content-strategy](skills/content-strategy/) | When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also... |
| [copy-editing](skills/copy-editing/) | When the user wants to edit, review, or improve existing marketing copy. Also use when the user mentions 'edit this... |
| [copywriting](skills/copywriting/) | When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages,... |
| [customer-research](skills/customer-research/) | When the user wants to conduct, analyze, or synthesize customer research — including interview transcripts, surveys, support tickets, review mining, Reddit/G2/forum research, persona generation, and voice of customer (VOC)... |
| [email-sequence](skills/email-sequence/) | When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email... |
| [form-cro](skills/form-cro/) | When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms,... |
| [free-tool-strategy](skills/free-tool-strategy/) | When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or... |
| [launch-strategy](skills/launch-strategy/) | When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user... |
| [lead-magnets](skills/lead-magnets/) | When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the... |
| [marketing-ideas](skills/marketing-ideas/) | When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the... |
| [marketing-psychology](skills/marketing-psychology/) | When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when... |
| [onboarding-cro](skills/onboarding-cro/) | When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also... |
@@ -78,8 +81,8 @@ See each skill's **Related Skills** section for the full dependency map.
| [product-marketing-context](skills/product-marketing-context/) | When the user wants to create or update their product marketing context document. Also use when the user mentions... |
| [programmatic-seo](skills/programmatic-seo/) | When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions... |
| [referral-program](skills/referral-program/) | When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy.... |
| [revops](skills/revops/) | When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff... |
| [sales-enablement](skills/sales-enablement/) | When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts... |
| [revops](skills/revops/) | When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes.... |
| [sales-enablement](skills/sales-enablement/) | When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also... |
| [schema-markup](skills/schema-markup/) | When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user... |
| [seo-audit](skills/seo-audit/) | When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO... |
| [signup-flow-cro](skills/signup-flow-cro/) | When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the... |
+44 -32
View File
@@ -4,41 +4,53 @@ Current versions of all skills. Agents can compare against local versions to che
| Skill | Version | Last Updated |
|-------|---------|--------------|
| ab-test-setup | 1.1.0 | 2026-02-27 |
| ad-creative | 1.1.0 | 2026-02-27 |
| ai-seo | 1.1.0 | 2026-02-27 |
| analytics-tracking | 1.1.0 | 2026-02-27 |
| churn-prevention | 1.1.0 | 2026-02-27 |
| cold-email | 1.1.0 | 2026-02-27 |
| competitor-alternatives | 1.1.0 | 2026-02-27 |
| content-strategy | 1.1.0 | 2026-02-27 |
| copy-editing | 1.1.0 | 2026-02-27 |
| copywriting | 1.1.0 | 2026-02-27 |
| email-sequence | 1.1.0 | 2026-02-27 |
| form-cro | 1.1.0 | 2026-02-27 |
| free-tool-strategy | 1.1.0 | 2026-02-27 |
| launch-strategy | 1.1.0 | 2026-02-27 |
| marketing-ideas | 1.1.0 | 2026-02-27 |
| marketing-psychology | 1.1.0 | 2026-02-27 |
| onboarding-cro | 1.1.0 | 2026-02-27 |
| page-cro | 1.1.0 | 2026-02-27 |
| paid-ads | 1.1.0 | 2026-02-27 |
| paywall-upgrade-cro | 1.1.0 | 2026-02-27 |
| popup-cro | 1.1.0 | 2026-02-27 |
| pricing-strategy | 1.1.0 | 2026-02-27 |
| product-marketing-context | 1.1.0 | 2026-02-27 |
| programmatic-seo | 1.1.0 | 2026-02-27 |
| referral-program | 1.1.0 | 2026-02-27 |
| revops | 1.1.0 | 2026-02-27 |
| sales-enablement | 1.1.0 | 2026-02-27 |
| schema-markup | 1.1.0 | 2026-02-27 |
| seo-audit | 1.1.0 | 2026-02-27 |
| signup-flow-cro | 1.1.0 | 2026-02-27 |
| site-architecture | 1.1.0 | 2026-02-27 |
| social-content | 1.1.0 | 2026-02-27 |
| ab-test-setup | 1.2.0 | 2026-03-14 |
| ad-creative | 1.2.0 | 2026-03-14 |
| ai-seo | 1.2.0 | 2026-03-14 |
| analytics-tracking | 1.2.0 | 2026-03-14 |
| churn-prevention | 1.2.0 | 2026-03-14 |
| cold-email | 1.2.0 | 2026-03-14 |
| competitor-alternatives | 1.2.0 | 2026-03-14 |
| content-strategy | 1.2.0 | 2026-03-14 |
| copy-editing | 1.2.0 | 2026-03-14 |
| copywriting | 1.2.0 | 2026-03-14 |
| email-sequence | 1.2.0 | 2026-03-14 |
| form-cro | 1.2.0 | 2026-03-14 |
| free-tool-strategy | 1.2.0 | 2026-03-14 |
| launch-strategy | 1.2.0 | 2026-03-14 |
| lead-magnets | 1.0.0 | 2026-03-14 |
| marketing-ideas | 1.2.0 | 2026-03-14 |
| marketing-psychology | 1.2.0 | 2026-03-14 |
| onboarding-cro | 1.2.0 | 2026-03-14 |
| page-cro | 1.2.0 | 2026-03-14 |
| paid-ads | 1.2.0 | 2026-03-14 |
| paywall-upgrade-cro | 1.2.0 | 2026-03-14 |
| popup-cro | 1.2.0 | 2026-03-14 |
| pricing-strategy | 1.2.0 | 2026-03-14 |
| product-marketing-context | 1.2.0 | 2026-03-14 |
| programmatic-seo | 1.2.0 | 2026-03-14 |
| referral-program | 1.2.0 | 2026-03-14 |
| revops | 1.2.0 | 2026-03-14 |
| sales-enablement | 1.2.0 | 2026-03-14 |
| schema-markup | 1.2.0 | 2026-03-14 |
| seo-audit | 1.2.0 | 2026-03-14 |
| signup-flow-cro | 1.2.0 | 2026-03-14 |
| site-architecture | 1.2.0 | 2026-03-14 |
| social-content | 1.2.0 | 2026-03-14 |
## Recent Changes
### 2026-03-14
- Added `lead-magnets` skill for lead magnet strategy, format selection, and conversion optimization
- Added Composio integration layer for MCP access to OAuth-heavy tools (HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, Notion, etc.)
- Added headless CMS integration guides (Sanity, Contentful, Strapi) with headless-cms reference
- Added 197 evals across all 33 skills for automated quality testing
- Optimized all 32 skill descriptions for better trigger phrase matching
- Replaced rigid imperatives with reasoning-based guidance across all skills
- Added 10 new CLI tools (airops, clay, close, coupler, crossbeam, outreach, pendo, similarweb, supermetrics, zoominfo)
- Added 13 new integration guides
- Bumped all 32 existing skills from 1.1.0 → 1.2.0
### 2026-02-27
- Migrated context path from `.claude/` to `.agents/` for agent-agnostic compatibility
- All skills now check `.agents/product-marketing-context.md` first, with `.claude/` fallback for older setups
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: ab-test-setup
description: When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," or "hypothesis." For tracking implementation, see analytics-tracking.
description: When the user wants to plan, design, or implement an A/B test or experiment. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," or "how long should I run this test." Use this whenever someone is comparing two approaches and wants to measure which performs better. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.
metadata:
version: 1.1.0
---
@@ -180,7 +180,7 @@ We'll know this is true when [metrics].
- Check segment quality
- Document external factors
**DON'T:**
**Avoid:**
- Peek at results and stop early
- Make changes to variants
- Add traffic from new sources
+3 -3
View File
@@ -1,6 +1,6 @@
---
name: ad-creative
description: "When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' or 'ad performance optimization.' This skill covers generating ad creative at scale, iterating based on performance data, and enforcing platform character limits. For campaign strategy and targeting, see paid-ads. For landing page copy, see copywriting."
description: "When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use this whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see paid-ads. For landing page copy, see copywriting."
metadata:
version: 1.1.0
---
@@ -64,7 +64,7 @@ Pull performance data → Identify winning patterns → Generate new variations
## Platform Specs
**Always enforce these limits.** Never deliver creative that exceeds platform character limits.
Platforms reject or truncate creative that exceeds these limits, so verify every piece of copy fits before delivering.
### Google Ads (Responsive Search Ads)
@@ -320,7 +320,7 @@ For large-scale creative production (Anthropic's growth team generates 100+ vari
- **Writing headlines that only work together** — RSA headlines get combined randomly
- **Ignoring character limits** — Platforms truncate without warning
- **All variations sound the same** — Vary angles, not just word choice
- **No CTA headlines** — Always include action-oriented headlines
- **No CTA headlines** — RSAs need action-oriented headlines to drive clicks; include at least 2-3
- **Generic descriptions** — "Learn more about our solution" wastes the slot
- **Iterating without data** — Gut feelings are less reliable than metrics
- **Testing too many things at once** — Change one variable per test cycle
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: ai-seo
description: "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' or 'zero-click search.' This skill covers content optimization for AI answer engines, monitoring AI visibility, and getting cited as a source. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema-markup."
description: "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' or 'optimize for Claude/Gemini.' Use this whenever someone wants their content to be cited or surfaced by AI assistants and AI search engines. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema-markup."
metadata:
version: 1.1.0
---
@@ -353,7 +353,7 @@ Monthly manual check:
- **Ignoring AI search entirely** — ~45% of Google searches now show AI Overviews, and ChatGPT/Perplexity are growing fast
- **Treating AI SEO as separate from SEO** — Good traditional SEO is the foundation; AI SEO adds structure and authority on top
- **Writing for AI, not humans** — If content reads like it was written to game an algorithm, it won't get cited or convert
- **No freshness signals** — Undated content loses to dated content. Always show when content was last updated
- **No freshness signals** — Undated content loses to dated content because AI systems weight recency heavily. Show when content was last updated
- **Gating all content** — AI can't access gated content. Keep your most authoritative content open
- **Ignoring third-party presence** — You may get more AI citations from a Wikipedia mention than from your own blog
- **No structured data** — Schema markup gives AI systems structured context about your content
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: analytics-tracking
description: When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," or "tracking plan." For A/B test measurement, see ab-test-setup.
description: When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," "tracking plan," "how do I measure this," "track conversions," "attribution," "Mixpanel," "Segment," "are my events firing," or "analytics isn't working." Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-test-setup.
metadata:
version: 1.1.0
---
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: churn-prevention
description: "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' or 'involuntary churn.' This skill covers voluntary churn (cancel flows, save offers, exit surveys) and involuntary churn (dunning, payment recovery). For post-cancel win-back email sequences, see email-sequence. For in-app upgrade paywalls, see paywall-upgrade-cro."
description: "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers or wants to build systems to prevent it. For post-cancel win-back email sequences, see email-sequence. For in-app upgrade paywalls, see paywall-upgrade-cro."
metadata:
version: 1.1.0
---
@@ -375,7 +375,7 @@ Test one variable at a time:
- **Guilt-trip copy** — "Are you sure you want to abandon us?" damages brand trust
- **Not tracking save offer LTV** — A "saved" customer who churns 30 days later wasn't really saved
- **Pausing too long** — Pauses beyond 3 months rarely reactivate. Set limits.
- **No post-cancel path** — Always make reactivation easy and trigger win-back emails
- **No post-cancel path** — Make reactivation easy and trigger win-back emails, because some churned users will want to come back
---
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: cold-email
description: Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Covers subject lines, opening lines, body copy, CTAs, personalization, and multi-touch follow-up sequences.
description: Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Also use when the user mentions "cold outreach," "prospecting email," "outbound email," "email to leads," "reach out to prospects," "sales email," "follow-up email sequence," "nobody's replying to my emails," or "how do I write a cold email." Covers subject lines, opening lines, body copy, CTAs, personalization, and multi-touch follow-up sequences. For warm/lifecycle email sequences, see email-sequence. For sales collateral beyond emails, see sales-enablement.
metadata:
version: 1.1.0
---
@@ -100,7 +100,7 @@ See [subject-lines.md](references/subject-lines.md) for the full data.
## Follow-Up Sequences
Each follow-up must add something new — a different angle, fresh proof, a useful resource. Never "just checking in."
Each follow-up should add something new — a different angle, fresh proof, a useful resource. "Just checking in" gives the reader no reason to respond.
- 3-5 total emails, increasing gaps between them
- Each email should stand alone (they may not have read the previous ones)
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: competitor-alternatives
description: "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' or 'competitive landing pages.' Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. Emphasizes deep research, modular content architecture, and varied section types beyond feature tables."
description: "When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see sales-enablement."
metadata:
version: 1.1.0
---
+7 -1
View File
@@ -1,6 +1,6 @@
---
name: content-strategy
description: When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions "content strategy," "what should I write about," "content ideas," "blog strategy," "topic clusters," or "content planning." For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit.
description: When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions "content strategy," "what should I write about," "content ideas," "blog strategy," "topic clusters," "content planning," "editorial calendar," "content marketing," "content roadmap," "what content should I create," "blog topics," "content pillars," or "I don't know what to write." Use this whenever someone needs help deciding what content to produce, not just writing it. For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit. For social media content specifically, see social-content.
metadata:
version: 1.1.0
---
@@ -348,6 +348,12 @@ Visual or structured representation of how content interconnects.
---
## References
- **[Headless CMS Guide](references/headless-cms.md)**: CMS selection, content modeling for marketing, editorial workflows, platform comparison (Sanity, Contentful, Strapi)
---
## Related Skills
- **copywriting**: For writing individual content pieces
@@ -0,0 +1,194 @@
# Headless CMS Guide
Reference for choosing, modeling, and implementing a headless CMS for marketing content.
## When to Use This Reference
Use this when selecting a CMS for a new project, designing content models for marketing sites, setting up editorial workflows, or connecting CMS content to programmatic pages.
---
## Headless vs Traditional CMS
A headless CMS separates content management from presentation. Content is stored in a structured backend and delivered via API to any frontend.
### When Headless Makes Sense
- Multiple frontends consume the same content (web, mobile, email)
- Developers want full control over the frontend stack
- Content needs to be reused across channels
- You're building with a modern framework (Next.js, Remix, Astro)
- Marketing needs structured, reusable content blocks
### When Traditional Works Better
- Small team with no dedicated developers
- Simple blog or brochure site
- WYSIWYG editing is a hard requirement
- Budget is tight and WordPress/Webflow does the job
### Decision Checklist
| Factor | Headless | Traditional |
|--------|----------|-------------|
| Multi-channel delivery | Yes | Limited |
| Developer control | Full | Constrained |
| Non-technical editing | Requires setup | Built-in |
| Time to launch | Longer | Faster |
| Content reuse | Native | Manual |
| Hosting flexibility | Any frontend | Platform-dependent |
---
## Content Modeling for Marketing
### Core Principles
1. **Think in types, not pages.** A "Landing Page" is a content type with fields — not an HTML file. This lets you reuse components across pages.
2. **Separate content from presentation.** Store the headline text, not the styled headline. Presentation belongs in the frontend.
3. **Design for reuse.** If testimonials appear on 5 pages, create a Testimonial type and reference it — don't duplicate.
4. **Keep models flat.** Deeply nested structures are hard to query and maintain. Prefer references over nesting.
### Common Marketing Content Types
| Type | Key Fields | Notes |
|------|-----------|-------|
| **Landing Page** | title, slug, hero, sections[], seo | Modular sections for flexibility |
| **Blog Post** | title, slug, body, author, category, tags, publishedAt, seo | Rich text or Portable Text body |
| **Case Study** | title, customer, challenge, solution, results, metrics[], logo | Link to related products/features |
| **Testimonial** | quote, author, role, company, avatar, rating | Reference from landing pages |
| **FAQ** | question, answer, category | Group by category for programmatic pages |
| **Author** | name, bio, avatar, social links | Reference from blog posts |
| **CTA Block** | heading, body, buttonText, buttonUrl, variant | Reusable across pages |
### SEO Fields Checklist
Every page-level content type needs:
- `metaTitle` — 50-60 characters
- `metaDescription` — 150-160 characters
- `ogImage` — 1200x630px social preview
- `slug` — URL path segment
- `canonicalUrl` — optional override
- `noIndex` — boolean for excluding from search
- `structuredData` — optional JSON-LD override
---
## Editorial Workflows
### Draft → Review → Publish Cycle
1. **Draft** — Author creates or edits content
2. **Review** — Editor reviews for accuracy, brand voice, SEO
3. **Approve** — Stakeholder signs off
4. **Schedule** — Set publish date/time
5. **Publish** — Content goes live via API
### Preview APIs
All major headless CMS platforms support draft previews:
- **Sanity**: Real-time preview with `useLiveQuery` or Presentation tool
- **Contentful**: Preview API (`preview.contentful.com`) with separate access token
- **Strapi**: Draft & Publish system with `status=draft` query parameter (v5; replaces v4's `publicationState`)
Set up a preview route in your frontend (e.g., `/api/preview`) that authenticates and renders draft content.
### Roles and Permissions
| Role | Can Create | Can Edit | Can Publish | Can Delete |
|------|:----------:|:--------:|:-----------:|:----------:|
| Author | Yes | Own | No | Own drafts |
| Editor | Yes | All | Yes | Drafts |
| Admin | Yes | All | Yes | All |
Exact permission models vary by platform. Sanity uses role-based access. Contentful has space-level roles. Strapi has granular RBAC.
---
## Platform Comparison
| Feature | Sanity | Contentful | Strapi |
|---------|--------|------------|--------|
| Hosting | Cloud (managed) | Cloud (managed) | Self-hosted or Cloud |
| Query Language | GROQ | REST / GraphQL | REST / GraphQL |
| Free Tier | Generous | Limited | Open source (free) |
| Real-time Collab | Yes (built-in) | Limited | No |
| Best For | Developer flexibility | Enterprise multi-locale | Budget / self-hosted |
| Content Modeling | Schema-as-code | Web UI | Web UI or code |
| Media Handling | Built-in DAM | Built-in | Plugin-based |
### Sanity
**Strengths**: GROQ query language is powerful and flexible. Schema defined in code (version-controlled). Real-time collaborative editing. Portable Text for rich content. Generous free tier.
**Considerations**: Steeper learning curve for non-developers. Studio customization requires React knowledge. Vendor lock-in on GROQ queries.
**Marketing fit**: Best when developers and marketers collaborate closely. Strong for content-heavy sites with complex models.
### Contentful
**Strengths**: Mature enterprise platform. Excellent multi-locale support. Strong ecosystem of integrations. Composable content with Studio. Well-documented APIs.
**Considerations**: Pricing scales with content types and locales. Two separate APIs (Delivery and Management). Rate limits can be tight on lower plans.
**Marketing fit**: Best for enterprises with multi-market content needs. Good when you need established vendor reliability.
### Strapi
**Strengths**: Open source, self-hosted option. Full control over data. No per-seat pricing. Customizable admin panel. Plugin ecosystem. REST by default, GraphQL via plugin.
**Considerations**: Self-hosting means you handle infrastructure. Smaller ecosystem than Sanity/Contentful. V5 migration can be significant from V4.
**Marketing fit**: Best for teams with DevOps capability who want full control and no vendor lock-in. Good for budget-conscious projects.
### Others Worth Knowing
- **Hygraph** — GraphQL-native, strong for federation and multi-source content
- **Keystatic** — Git-based, good for developer-content hybrid workflows
- **Payload** — TypeScript-first, self-hosted, code-configured like Sanity
- **Builder.io** — Visual editor with headless backend, good for non-technical marketers
- **Prismic** — Slice-based content modeling, strong Next.js integration
---
## Integration with Marketing Skills
### Programmatic SEO
Use CMS as the data source for programmatic pages. Store structured data (FAQs, comparisons, city pages) as content types and generate pages from queries. See **programmatic-seo** skill.
### Copywriting
CMS content models enforce consistent structure. Define fields that match your copy frameworks (headline, subheadline, social proof, CTA). See **copywriting** skill.
### Site Architecture
URL structure, navigation hierarchy, and internal linking all depend on how content is organized in the CMS. Plan your content model and site architecture together. See **site-architecture** skill.
### Email Sequences
Pull CMS content into email templates for consistent messaging across web and email. Case studies, testimonials, and blog posts can feed email nurture sequences. See **email-sequence** skill.
---
## Implementation Checklist
- [ ] Define content types based on page types and reusable blocks
- [ ] Add SEO fields to every page-level content type
- [ ] Set up preview/draft mode in your frontend
- [ ] Configure roles and permissions for your team
- [ ] Create sample content for each type before building frontend
- [ ] Set up webhook notifications for content changes (rebuild triggers)
- [ ] Document content guidelines for editors (field descriptions, character limits)
- [ ] Test content delivery performance (CDN, caching, ISR)
- [ ] Plan migration strategy if moving from existing CMS
---
## Relevant Integration Guides
- [Sanity](../../../tools/integrations/sanity.md) — GROQ queries, mutations, CLI
- [Contentful](../../../tools/integrations/contentful.md) — Delivery/Management APIs, publishing
- [Strapi](../../../tools/integrations/strapi.md) — REST CRUD, filters, document API
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: copy-editing
description: "When the user wants to edit, review, or improve existing marketing copy. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' or 'copy sweep.' This skill provides a systematic approach to editing marketing copy through multiple focused passes."
description: "When the user wants to edit, review, or improve existing marketing copy. Also use when the user mentions 'edit this copy,' 'review my copy,' 'copy feedback,' 'proofread,' 'polish this,' 'make this better,' 'copy sweep,' 'tighten this up,' 'this reads awkwardly,' 'clean up this text,' 'too wordy,' or 'sharpen the messaging.' Use this when the user already has copy and wants it improved rather than rewritten from scratch. For writing new copy, see copywriting."
metadata:
version: 1.1.0
---
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: copywriting
description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," or "CTA copy." For email copy, see email-sequence. For popup copy, see popup-cro.
description: When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says "write copy for," "improve this copy," "rewrite this page," "marketing copy," "headline help," "CTA copy," "value proposition," "tagline," "subheadline," "hero section copy," "above the fold," "this copy is weak," "make this more compelling," or "help me describe my product." Use this whenever someone is working on website text that needs to persuade or convert. For email copy, see email-sequence. For popup copy, see popup-cro. For editing existing copy, see copy-editing.
metadata:
version: 1.1.0
---
@@ -67,7 +67,7 @@ Each section should advance one argument. Build a logical flow down the page.
3. **Active over passive** — "We generate reports" not "Reports are generated"
4. **Confident over qualified** — Remove "almost," "very," "really"
5. **Show over tell** — Describe the outcome instead of using adverbs
6. **Honest over sensational**Never fabricate statistics or testimonials
6. **Honest over sensational**Fabricated statistics or testimonials erode trust and create legal liability
### Quick Quality Check
+269
View File
@@ -0,0 +1,269 @@
---
name: customer-research
description: When the user wants to conduct, analyze, or synthesize customer research. Use when the user mentions "customer research," "ICP research," "talk to customers," "analyze transcripts," "customer interviews," "survey analysis," "support ticket analysis," "voice of customer," "VOC," "build personas," "customer personas," "jobs to be done," "JTBD," "what do customers say," "what are customers struggling with," "Reddit mining," "G2 reviews," "review mining," "digital watering holes," "community research," "forum research," "competitor reviews," "customer sentiment," or "find out why customers churn/convert/buy." Use for both analyzing existing research assets AND gathering new research from online sources. For writing copy informed by research, see copywriting. For acting on research to improve pages, see page-cro.
metadata:
version: 1.0.0
---
# Customer Research
You are an expert customer researcher. Your goal is to help uncover what customers actually think, feel, say, and struggle with — so that everything from positioning to product to copy is grounded in reality rather than assumption.
## Before Starting
**Check for product marketing context first:**
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context to skip questions already answered.
---
## Two Modes of Research
### Mode 1: Analyze Existing Assets
You have raw research material (transcripts, surveys, reviews, tickets). Your job is to extract signal.
### Mode 2: Go Find Research
You need to gather intel from online sources (Reddit, G2, forums, communities, review sites). Your job is to know where to look and what to extract.
Most engagements combine both. Establish which mode applies before proceeding.
---
## Mode 1: Analyzing Existing Research Assets
### Asset Types
**Customer interview / sales call transcripts**
- Extract: pains, triggers, desired outcomes, language used, objections, alternatives considered
- Look for: the moment they decided to look for a solution, what they tried before, what success looks like to them
**Survey results**
- Segment responses by customer tier, use case, or tenure before drawing conclusions
- Flag: what open-ended answers say vs. what multiple-choice answers say (they often conflict)
- Identify: the 20% of responses that contain the most useful signal
**Customer support conversations**
- Mine for: recurring complaints, confusion points, feature requests, and "I wish it could…" language
- Categorize tickets before analyzing — don't treat all tickets as equal signal
- Separate bugs from confusion from missing features from expectation mismatches
**Win/loss interviews and churned customer notes**
- Wins: what tipped the decision? What almost made them choose a competitor?
- Losses and churn: was it price, features, fit, timing, or something else?
- Segment by reason — don't average across different churn causes
**NPS responses**
- Passives and detractors are higher signal than promoters for improvement work
- Pair scores with verbatims — a 9 with a specific complaint beats a 10 with no comment
### Extraction Framework
For each asset, extract:
1. **Jobs to Be Done** — what outcome is the customer trying to achieve?
- Functional job: the task itself
- Emotional job: how they want to feel
- Social job: how they want to be perceived
2. **Pain Points** — what's frustrating, broken, or inadequate about their current situation?
- Prioritize pains mentioned unprompted and with emotional language
3. **Trigger Events** — what changed that made them seek a solution?
- Common triggers: team growth, new hire, missed target, embarrassing incident, competitor doing something
4. **Desired Outcomes** — what does success look like in their words?
- Capture exact quotes, not paraphrases
5. **Language and Vocabulary** — exact words and phrases customers use
- This is gold for copy. "We were drowning in spreadsheets" > "manual process inefficiency"
6. **Alternatives Considered** — what else did they look at or try?
- Includes doing nothing, hiring someone, or building internally
### Synthesis Steps
After extracting from individual assets:
1. **Cluster by theme** — group similar pains, outcomes, and triggers across assets
2. **Frequency + intensity scoring** — how often does a theme appear, and how strongly is it felt?
3. **Segment by customer profile** — do patterns differ by company size, role, use case, or tenure?
4. **Identify the "money quotes"** — 5-10 verbatim quotes that best represent each theme
5. **Flag contradictions** — where do customers say one thing but do another?
### Research Quality Guardrails
Label every insight with a confidence level before presenting it:
| Confidence | Criteria |
|------------|----------|
| **High** | Theme appears in 3+ independent sources; mentioned unprompted; consistent across segments |
| **Medium** | Theme appears in 2 sources, or only prompted, or limited to one segment |
| **Low** | Single source; could be an outlier; needs validation |
**Recency window**: Weight sources from the last 12 months more heavily. Markets shift — a 3-year-old transcript may reflect a different product and buyer.
**Sample bias checks**:
- Online reviewers skew toward power users and people with strong opinions
- Support tickets skew toward problems, not value
- Reddit skews technical and skeptical vs. mainstream buyers
- Factor this in when drawing conclusions about "all customers"
**Minimum viable sample**: Don't build personas or draw messaging conclusions from fewer than 5 independent data points per segment.
---
## Mode 2: Digital Watering Hole Research
Online communities are where customers speak without a filter. The goal is to find authentic, unmoderated language about the problem space.
### Where to Look
Choose sources based on your ICP type — then read `references/source-guides.md` for detailed playbooks, search operators, and per-platform extraction tips.
| ICP Type | Primary Sources |
|----------|----------------|
| B2B SaaS / technical buyers | Reddit (role-specific subs), G2/Capterra, Hacker News, LinkedIn, Indie Hackers |
| SMB / founders | Reddit (r/entrepreneur, r/smallbusiness), Indie Hackers, Product Hunt, Facebook Groups |
| Developer / DevOps | r/devops, r/programming, Hacker News, Stack Overflow, Discord servers |
| B2C / consumer | App store reviews (1-3 star), Reddit hobby/lifestyle subs, YouTube comments, TikTok/Instagram comments |
| Enterprise | LinkedIn, industry analyst reports, G2 Enterprise filter, job postings |
**Quick decision guide:**
- Have a product category? → Start with G2/Capterra reviews (yours + competitors)
- Need raw language? → Reddit and YouTube comments
- Need trigger events? → LinkedIn posts, job postings, Hacker News "Ask HN" threads
- Need competitive intel? → Competitor 4-star reviews on G2; Product Hunt discussions
### What to Extract from Each Source
For every piece of content you find:
| Field | What to Capture |
|-------|----------------|
| Source | Platform, thread URL, date |
| Verbatim quote | Exact words — don't paraphrase |
| Context | What prompted the comment? |
| Sentiment | Positive / negative / neutral / frustrated |
| Theme tag | Pain / trigger / outcome / alternative / language |
| Customer profile signals | Role, company size, industry hints from the post |
### Research Synthesis Template
After gathering from multiple sources, synthesize into:
```
## Top Themes (ranked by frequency × intensity)
### Theme 1: [Name]
**Summary**: [1-2 sentences]
**Frequency**: Appeared in X of Y sources
**Intensity**: High / Medium / Low (based on emotional language used)
**Representative quotes**:
- "[exact quote]" — [source, date]
- "[exact quote]" — [source, date]
**Implications**: What this means for messaging / product / positioning
### Theme 2: ...
```
---
## Persona Generation
Personas should be built from research, not invented. Don't create a persona until you have at least 5-10 data points (interviews, reviews, or community posts) from a consistent segment.
### Persona Structure
```
## [Persona Name] — [Role/Title]
**Profile**
- Title range: [e.g., "Marketing Manager to VP of Marketing"]
- Company size: [e.g., "50500 employees, Series AC SaaS"]
- Industry: [if narrow]
- Reports to: [who]
- Team size managed: [if relevant]
**Primary Job to Be Done**
[One sentence: what outcome are they trying to achieve in their role?]
**Trigger Events**
What causes them to start looking for a solution like yours?
- [trigger 1]
- [trigger 2]
**Top Pains**
1. [Pain — in their words if possible]
2. [Pain]
3. [Pain]
**Desired Outcomes**
- [What success looks like to them]
- [How they measure it]
- [How it makes them look to their boss/team]
**Objections and Fears**
- [What makes them hesitate to buy or switch]
**Alternatives They Consider**
- [Competitor, DIY, do nothing, hire someone]
**Key Vocabulary**
Words and phrases they actually use (sourced from research):
- "[phrase]"
- "[phrase]"
**How to Reach Them**
- Channels: [where they spend time]
- Content they consume: [formats, topics]
- Influencers/communities they trust: [specific names if known]
```
### Persona Anti-Patterns
- **Don't name them cutely** ("Marketing Mary") unless your team finds it helpful — it's often a distraction
- **Don't average across segments** — a persona that represents everyone represents no one
- **Don't invent details** — if you don't have data on something, leave it blank rather than filling it in
- **Revisit quarterly** — personas decay as your market and product evolve
---
## Deliverable Formats
Depending on what the user needs, offer:
1. **Research synthesis report** — themes, quotes, patterns, and implications
2. **VOC quote bank** — organized verbatim quotes by theme, for use in copy
3. **Persona document** — 1-3 personas built from the research
4. **Jobs-to-be-done map** — functional, emotional, and social jobs by segment
5. **Competitive intelligence summary** — what customers say about competitors vs. you
6. **Research gap analysis** — what you still don't know and how to find it
Ask the user which deliverable(s) they need before generating output.
---
## Questions to Ask Before Proceeding
If context is unclear:
1. **What's the goal?** Improve messaging? Build personas? Find product gaps? Understand churn?
2. **What do you already have?** (transcripts, surveys, tickets, G2 reviews, nothing)
3. **Who is the target segment?** (all customers, a specific tier, churned users, prospects who didn't buy)
4. **What's your product?** (if not in the product marketing context file)
5. **What do you want delivered?** (synthesis report, persona, quote bank, competitive intel)
Don't ask all five at once — lead with #1 and #2, then follow up as needed.
---
## Related Skills
| When to hand off | Skill |
|-----------------|-------|
| Writing copy informed by the research | `copywriting` |
| Optimizing a page using VOC insights | `page-cro` |
| Building a competitor comparison page | `competitor-alternatives` |
| Creating a churn prevention strategy from churn research | `churn-prevention` |
| Planning paid ads informed by research | `paid-ads` |
| Writing cold email using research on pain/trigger | `cold-email` |
| Planning content based on discovered topics | `content-strategy` |
+162
View File
@@ -0,0 +1,162 @@
{
"skill_name": "customer-research",
"evals": [
{
"id": 1,
"prompt": "I have 20 customer interview transcripts. Help me analyze them.",
"expected_output": "Should check for product-marketing-context.md first. Should ask about the goal before analyzing (improve messaging, build personas, find product gaps, etc.). Should apply the extraction framework: jobs to be done, pain points, trigger events, desired outcomes, language/vocabulary, alternatives considered. Should recommend clustering by theme, frequency + intensity scoring, and identifying money quotes. Should ask which deliverable is needed.",
"assertions": [
"Checks for product-marketing-context.md",
"Asks about the goal before diving in (improve messaging, build personas, find gaps, etc.)",
"Mentions extracting jobs to be done, pain points, and desired outcomes",
"Suggests organizing quotes by theme",
"References frequency and intensity scoring",
"Asks which deliverable is needed"
],
"files": []
},
{
"id": 2,
"prompt": "I want to do ICP research but I don't have any customer interviews yet.",
"expected_output": "Should check for product-marketing-context.md first. Should recommend digital watering hole research as a starting point. Should mention Reddit, G2, Capterra, forums, or niche communities as sources. Should offer to plan a research approach and explain what to extract from online sources. Should note this is Mode 2 and ask what product/category to research.",
"assertions": [
"Checks for product-marketing-context.md",
"Recommends digital watering hole research as an alternative",
"Mentions Reddit, G2, or review sites as starting points",
"Asks what product or category to research",
"Offers to help extract insights from online sources"
],
"files": []
},
{
"id": 3,
"prompt": "Mine Reddit and G2 to understand what people hate about project management software.",
"expected_output": "Should check for product-marketing-context.md first. Should identify relevant subreddits (r/projectmanagement, r/productivity, r/agile) and search strategies. Should recommend reading 3-star and 1-star G2 reviews and competitor 4-star reviews. Should plan to extract verbatim quotes, pain themes, and switching triggers. Should apply the extraction table (source, quote, context, sentiment, theme tag, profile signals).",
"assertions": [
"Checks for product-marketing-context.md",
"Identifies relevant subreddits or search strategies for project management",
"Suggests reading 3-star and 1-star G2 reviews",
"Recommends competitor 4-star reviews for buried complaints",
"Plans to extract verbatim quotes and pain themes",
"Mentions what to look for: complaints, workarounds, switching triggers"
],
"files": []
},
{
"id": 4,
"prompt": "Build me a customer persona for a marketing manager at a B2B SaaS company.",
"expected_output": "Should check for product-marketing-context.md first. Should ask if there is existing research to build from before generating a persona. Should warn against inventing details without data. Should use the persona structure: profile, primary JTBD, trigger events, top pains, desired outcomes, objections, alternatives, key vocabulary, how to reach them. Should note that personas should be built from at least 5-10 data points.",
"assertions": [
"Checks for product-marketing-context.md",
"Asks if there is existing research to build from before inventing details",
"Warns against creating personas without data",
"Includes jobs to be done, pains, triggers, and desired outcomes in persona structure",
"Mentions the need to capture actual customer vocabulary",
"Notes minimum data threshold (5-10 data points)"
],
"files": []
},
{
"id": 5,
"prompt": "I have 6 months of customer support tickets. What insights can I pull from them?",
"expected_output": "Should check for product-marketing-context.md first. Should recommend categorizing tickets before analyzing (bugs vs. confusion vs. feature requests vs. expectation mismatches). Should warn against treating all tickets as equal signal. Should suggest extracting recurring language, patterns, and 'I wish it could…' phrases. Should ask about the goal — product improvement, messaging, reducing support load, or something else.",
"assertions": [
"Checks for product-marketing-context.md",
"Recommends categorizing tickets before analyzing (bugs vs confusion vs feature requests)",
"Warns against treating all tickets as equal signal",
"Mentions extracting recurring language and patterns",
"Asks about the goal — product improvement, messaging, or something else"
],
"files": []
},
{
"id": 6,
"prompt": "What are customers saying about my competitors on review sites?",
"expected_output": "Should check for product-marketing-context.md first. Should ask which competitors to research. Should recommend G2 and Capterra as primary sources. Should specifically call out reading competitor 4-star reviews for buried complaints. Should describe what to extract: what they love (battlecard intel), what frustrates them (opportunities), unmet needs. Should use the review mining template.",
"assertions": [
"Checks for product-marketing-context.md",
"Recommends reading competitor 4-star reviews specifically for buried complaints",
"Mentions G2 or Capterra as sources",
"Describes what to extract: what they love, what frustrates them, unmet needs",
"Frames as competitive intelligence input"
],
"files": []
},
{
"id": 7,
"prompt": "Help me do voice of customer research for a new SaaS in the HR space.",
"expected_output": "Should check for product-marketing-context.md first. Should ask about the specific ICP segment within HR (recruiter, HR generalist, CHRO, etc.). Should suggest relevant digital watering holes: r/humanresources, r/recruiting, HR Slack communities, G2 HR category, LinkedIn. Should plan to extract verbatim language for copy use. Should offer to produce a VOC quote bank as a deliverable.",
"assertions": [
"Checks for product-marketing-context.md",
"Asks about target ICP segment within HR",
"Suggests relevant digital watering holes (subreddits, G2 categories, communities)",
"Plans to extract verbatim language for copy use",
"Mentions organizing findings into a VOC quote bank"
],
"files": []
},
{
"id": 8,
"prompt": "I want to understand why customers churn. I have exit survey results.",
"expected_output": "Should check for product-marketing-context.md first. Should recommend segmenting churn reasons before analyzing — do not average across different causes. Should suggest pairing open-ended responses with quantitative data. Should ask if win/loss interview data or support tickets are also available. Should apply confidence labels (high/med/low) based on sample size and source consistency.",
"assertions": [
"Checks for product-marketing-context.md",
"Recommends segmenting churn reasons before analyzing",
"Warns against averaging across different churn causes",
"Suggests pairing open-ended responses with quantitative data",
"Asks if win/loss interview data is also available"
],
"files": []
},
{
"id": 9,
"prompt": "Find the digital watering holes where DevOps engineers talk shop.",
"expected_output": "Should check for product-marketing-context.md first. Should identify specific relevant communities: r/devops, r/sysadmin, Hacker News, DevOps-focused Discord/Slack groups, LinkedIn, Stack Overflow. Should suggest what to search for in those communities. Should describe what signal to extract from each source type and reference source-guides.md for detailed playbooks.",
"assertions": [
"Checks for product-marketing-context.md",
"Mentions specific relevant communities (r/devops, Hacker News, LinkedIn, Discord)",
"Suggests what to search for in those communities",
"Describes what signal to extract from each source type"
],
"files": []
},
{
"id": 10,
"prompt": "Turn my customer research into messaging I can use on my homepage.",
"expected_output": "Should check for product-marketing-context.md first. Should extract VOC language and top themes before moving to copy. Should identify the highest-signal quotes and language patterns. Should produce a VOC summary or quote bank, then hand off to the copywriting skill for the actual copy writing step rather than writing homepage copy directly.",
"assertions": [
"Checks for product-marketing-context.md",
"Extracts the VOC language and themes first before jumping to copy",
"Identifies the highest-signal quotes for messaging",
"References the copywriting skill for the actual copy writing step"
],
"files": []
},
{
"id": 11,
"prompt": "I run a mobile fitness app and want to understand why users drop off after week 2.",
"expected_output": "Should check for product-marketing-context.md first. Should recognize this as a B2C research scenario. Should suggest B2C-appropriate sources: app store reviews (1-3 star), Reddit fitness communities, YouTube comment sections on fitness apps, TikTok/Instagram comments. Should also recommend in-app surveys and analyzing support tickets/reviews. Should frame around activation and habit formation research.",
"assertions": [
"Checks for product-marketing-context.md",
"Recognizes this as a B2C research scenario",
"Suggests app store reviews as a primary source",
"Mentions Reddit or community sources relevant to fitness/consumer apps",
"Frames around understanding drop-off triggers and desired outcomes"
],
"files": []
},
{
"id": 12,
"prompt": "I have no existing research and don't know who my best customers are yet.",
"expected_output": "Should check for product-marketing-context.md first. Should treat this as a bootstrap research scenario. Should recommend starting with hypothesis formation before gathering data. Should suggest a minimum viable research plan: 5-10 customer interviews + digital watering hole scan. Should provide interview recruiting tips and what questions to ask. Should warn against building personas before collecting any data.",
"assertions": [
"Checks for product-marketing-context.md",
"Recognizes this as a zero-research bootstrap scenario",
"Recommends forming hypotheses before gathering data",
"Suggests a minimum viable research plan (interviews + online sources)",
"Warns against building personas without any data"
],
"files": []
}
]
}
@@ -0,0 +1,345 @@
# Customer Research — Source Guides
Detailed, source-by-source playbooks for gathering customer intelligence from online watering holes.
---
## Reddit Research
### Finding the Right Subreddits
Start by identifying where your ICP spends time, not where your product is discussed.
**Discovery methods:**
- Search `site:reddit.com "[job title] tools"` or `site:reddit.com "[problem category] software"`
- Use [subreddit search tools](https://www.reddit.com/subreddits/search) with problem-space keywords
- Look at what subreddits show up in Google results when you search ICP problems
- Check what subreddits competitors' customers mention in reviews
**Common high-value subreddits by category:**
- B2B SaaS: r/sales, r/marketing, r/entrepreneur, r/startups, r/smallbusiness
- Dev tools: r/programming, r/devops, r/webdev, r/cscareerquestions
- Analytics/data: r/analytics, r/dataengineering, r/BusinessIntelligence
- Marketing: r/PPC, r/SEO, r/emailmarketing, r/content_marketing
- HR/recruiting: r/recruiting, r/humanresources, r/jobs
- Finance/ops: r/accounting, r/financialplanning, r/projectmanagement
### Search Operators
```
site:reddit.com/r/[subreddit] "[keyword]"
site:reddit.com "[problem]" "recommend" OR "suggestion" OR "alternative"
site:reddit.com "[competitor name]" "vs" OR "alternative" OR "switched"
```
### What to Look For
**High-signal post types:**
- "What tools do you use for X?" → reveals alternatives and vocab
- "Frustrated with [competitor], looking for alternatives" → reveals pain and switching triggers
- "How do you handle X?" → reveals workflow and workarounds
- "Is [your category] worth it?" → reveals objections and evaluation criteria
- Complaint threads about competitors → reveals gaps you might fill
**What to extract:**
- The exact problem described in the post
- Top-voted solutions (what do practitioners actually recommend?)
- Complaints about existing solutions in comments
- The language used — note specific words and phrases
- Upvote patterns — consensus vs. controversy
### Tools
- Reddit's native search (limited but fast)
- Google: `site:reddit.com [query]` (better results)
- Pullpush.io — search archived Reddit posts (good for older threads)
---
## G2 and Review Site Mining
### Your Own Product Reviews
Read in this order for maximum signal:
1. **3-star reviews** — these are the most honest. Customer liked it enough to stay but felt something was missing.
2. **1-star reviews** — understand the failure modes. Separate product issues from support/onboarding issues.
3. **5-star reviews** — extract the "what they love" language. These are your proof points.
4. **4-star reviews** — often contain "the only thing I wish…" buried in praise.
**What to extract:**
- What they say they use it *for* (the job to be done)
- What they say is hardest or most frustrating
- What they compare it to ("coming from [X]", "better than [Y]")
- Industry and role signals in reviewer profiles
### Competitor Reviews on G2
The 4-star competitor reviews are gold — customers who like the product but still have complaints.
**G2 structure to exploit:**
- "What do you like best?" → their strengths (your battlecard intel)
- "What do you dislike?" → their weaknesses (your opportunities)
- "What problems are you solving?" → the job to be done
**Capterra** has similar structure. **Trustpilot** skews B2C. **AppSumo** reviews are useful for SMB/prosumer SaaS.
### Review Mining Template
For each competitor's 4-star reviews, extract:
| Category | Notes |
|----------|-------|
| Job to be done | Why do they use the product? |
| Top praise | What do they love (and might be hard for you to match)? |
| Top complaint | What frustrates them? |
| Switching context | Did they mention switching from something else? |
| Unmet need | "I wish it could…" or "It would be better if…" |
---
## Indie Hackers and Product Hunt
### Indie Hackers
Strong signal for founder/builder/SMB ICP.
**Where to look:**
- "Ask IH" posts: questions about problems your product solves
- Milestone posts: when founders describe their stack, they reveal tool preferences and pain
- Comment threads on product launches in your category
**Search:** `site:indiehackers.com "[problem]"` or use IH's native search.
### Product Hunt
**Discussion tabs** on competing products are a research goldmine:
- Questions asked = pre-sales concerns = objections
- Comments = early adopter reactions = leading indicators of reception
- "Alternatives to X" collections reveal the competitive landscape as users see it
---
## Hacker News
Strong signal for technical/developer ICP. Skews toward builders and skeptics.
**High-value searches:**
- `site:news.ycombinator.com "[competitor or category]"`
- HN "Ask HN: best tools for X" threads
- "Show HN" posts for competitors — read the skeptical comments
**What's different about HN:**
- Users are more likely to critique underlying architecture and business model
- Strong opinions about pricing models (especially anything subscription-based)
- First principles objections you might not hear elsewhere
---
## LinkedIn Research
### Posts and Comments
Search for posts by practitioners describing their workflows:
- "[Role] at [company size]" + problem keyword
- "We used to [old way] but now we [new way]" stories
- Posts asking for tool recommendations get comments from active buyers
### Job Postings
A job posting is a company's admission of a pain point.
**What to look for:**
- What tools are listed as "nice to have" vs. "required"? (reveals stack and adjacent tools)
- What metrics and outcomes are mentioned in the role description?
- What does the role spend most of its time doing? (reveals the job to be done)
**Search:** `site:linkedin.com/jobs "[role title]" "[relevant tool or category]"`
---
## YouTube Comments
### Finding High-Signal Videos
- Tutorial videos for problems your product solves
- "Best tools for X in [year]" roundup videos
- Competitor product demos and walkthroughs
**What to look for in comments:**
- "Does this work for [specific use case]?" → edge cases and unmet needs
- "I tried this but…" → failure points
- "What about [competitor]?" → active evaluation
- Timestamps with questions → confusion points in the workflow
---
## Twitter / X Research
### Search Operators
```
"[competitor]" -filter:replies min_faves:10
"[problem keyword]" "anyone know" OR "recommend" OR "alternative"
"[category] is broken" OR "frustrated with [category]"
```
### What to Find
- Real-time complaints about competitors
- Practitioners discussing their stack
- Influencers/thought leaders your ICP follows (useful for distribution)
---
## Blog Post and Forum Research
### Comparison Content
Google: `"[competitor 1] vs [competitor 2]"` or `"best [category] software [year]"`
Read the comments on these posts — people who find comparison content are actively evaluating. Their comments are questions your sales process should answer.
### Niche Communities
- **Slack communities**: Many industries have public or semi-public Slack groups. Search "[industry] Slack community".
- **Discord servers**: Growing for developer and creator communities.
- **Facebook Groups**: Still strong for SMB, e-commerce, agency, and coach/consultant ICP.
- **Circle/Mighty Networks communities**: Check if there are paid communities in your ICP's space.
---
## B2C and Consumer App Research
B2C research requires different sources than B2B SaaS. Consumer buyers don't congregate on LinkedIn or G2 — they leave traces in app stores, social media, and communities built around the activity your product serves.
### App Store Reviews (iOS App Store / Google Play)
One of the richest unfiltered sources for mobile/consumer products.
**Read in this order:**
1. **1-2 star reviews** — failure modes, unmet expectations, frustration peaks
2. **3-star reviews** — honest tradeoffs and "it's good but…" feedback
3. **5-star reviews** — what they love in their own words (proof points and positioning)
**What to extract:**
- What job they hired the app to do ("I use this to…")
- The moment it stopped working for them
- What they compared it to or switched from
- Emotional language — "I love how…", "I'm so frustrated that…"
**Search tip:** Sort by "Most Recent" to get fresh signal, then "Most Critical" for pain themes.
### Amazon Reviews (for physical products or software with Amazon presence)
Same priority order as app stores: 3-star reviews first.
**G2 analog for consumer SaaS**: Trustpilot, Sitejabber, and product-specific review aggregators.
### Reddit Consumer Communities
B2C Reddit is highly vertical — go to the hobby/lifestyle subreddit, not the general ones.
**Examples by product type:**
- Fitness apps: r/running, r/loseit, r/fitness, r/MyFitnessPal
- Personal finance: r/personalfinance, r/financialindependence, r/ynab
- Productivity/notes: r/productivity, r/Notion, r/ObsidianMD
- Travel: r/travel, r/solotravel, r/digitalnomad
- Parenting: r/Parenting, r/beyondthebump, r/daddit
**Search pattern:** `site:reddit.com/r/[community] "[app name OR problem]"`
### TikTok and Instagram Comments
High-signal for consumer products with visual/lifestyle appeal.
**How to find signal:**
- Search TikTok for "[product name] review" or "is [product] worth it"
- Watch the top 5-10 videos; read ALL comments — not just likes
- On Instagram, check tagged posts from real users (not brand posts)
**What to extract:**
- Questions in comments = unmet needs or unclear positioning
- "Does this work for…?" = jobs they want to hire it for
- "I switched from X" comments = switching triggers
- Complaints about price, missing features, or broken promises
### YouTube Comments (Consumer)
Same approach as B2B but different video types:
- "X app honest review" or "X app after 6 months"
- "Best [category] apps [year]" comparison videos
- Unboxing or "setup" videos for hardware/physical products
Comments on review videos are especially valuable — these are people actively in the consideration phase.
### Consumer Community Platforms
- **Facebook Groups**: Still dominant for many consumer verticals (parenting, fitness, local services, hobbies)
- **Discord servers**: Growing for gaming, creator tools, productivity, crypto, lifestyle communities
- **Nextdoor**: Useful for local service businesses
- **Quora**: Long-form questions reveal decision anxiety and evaluation criteria
---
## Organizing Your Research
Use a simple tagging system across all sources:
| Tag | Meaning |
|-----|---------|
| `#pain` | A problem or frustration |
| `#trigger` | An event that prompted the search |
| `#outcome` | What success looks like |
| `#language` | Exact phrases worth using in copy |
| `#alternative` | Another solution they considered or use |
| `#objection` | Reason to hesitate or not buy |
| `#competitor` | Anything about a competing product |
Keep a running doc with columns: Source | Date | Quote | Tags | Notes
After 20-30 entries, patterns will emerge. Look for quotes that appear in multiple unrelated sources — those are your highest-confidence insights.
---
## Source Reliability and Confidence Scoring
Not all sources carry equal weight. Use this guide when assigning confidence labels.
### Source Weighting
| Source | Signal Strength | Bias to Note |
|--------|----------------|--------------|
| Customer interviews (unprompted) | Very high | Small sample; selection bias toward engaged customers |
| Win/loss interviews | High | Recent memory only; rationalization common |
| App store / G2 reviews | High | Skews toward strong opinions (love or hate) |
| Reddit / community posts | Medium-high | Skews technical, skeptical, vocal minorities |
| Support tickets | Medium | Skews toward problems; silent majority not represented |
| Survey (open-ended) | Medium | Primed by question framing |
| Survey (multiple choice) | Low-medium | Artifacts of the options you provided |
| NPS verbatims | Medium | Correlates with score; prompted by the survey moment |
| YouTube/TikTok comments | Medium | Skews toward engaged viewers; social performance |
| Job postings | Low-medium | Aspirational, not necessarily reflective of current pain |
### Confidence Labels in Practice
When presenting insights, lead with confidence:
```
[HIGH CONFIDENCE] Customers feel overwhelmed by manual reporting — appears in 12 of 20 interviews,
4 Reddit threads, and is the #1 complaint in 3-star G2 reviews. Consistent across SMB and mid-market.
[MEDIUM CONFIDENCE] Customers compare us to spreadsheets more than to direct competitors —
mentioned in 6 interviews and 3 Reddit threads, but not yet seen in review data.
[LOW CONFIDENCE] Enterprise buyers may have procurement concerns — mentioned by 2 interviewees
from companies 500+. Needs more signal before acting on it.
```
### Recency Window
- **Use as primary source**: Data from the last 12 months
- **Use with caution**: 12-24 months (product and market may have shifted)
- **Use only for baseline context**: 2+ years old
When a theme appears consistently across old and new data, that's a durable signal worth acting on.
+3 -1
View File
@@ -1,6 +1,6 @@
---
name: email-sequence
description: When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," or "lifecycle emails." For in-app onboarding, see onboarding-cro.
description: When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold outreach emails, see cold-email. For in-app onboarding, see onboarding-cro.
metadata:
version: 1.1.0
---
@@ -293,6 +293,7 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key email
|------|----------|:---:|-------|
| **Customer.io** | Behavior-based automation | - | [customer-io.md](../../tools/integrations/customer-io.md) |
| **Mailchimp** | SMB email marketing | ✓ | [mailchimp.md](../../tools/integrations/mailchimp.md) |
| **Nitrosend** | AI-native email (sequences via prompts) | ✓ | [nitrosend.md](../../tools/integrations/nitrosend.md) |
| **Resend** | Developer-friendly transactional | ✓ | [resend.md](../../tools/integrations/resend.md) |
| **SendGrid** | Transactional email at scale | - | [sendgrid.md](../../tools/integrations/sendgrid.md) |
| **Kit** | Creator/newsletter focused | - | [kit.md](../../tools/integrations/kit.md) |
@@ -301,6 +302,7 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key email
## Related Skills
- **lead-magnets**: For planning lead magnets that feed into nurture sequences
- **churn-prevention**: For cancel flows, save offers, and dunning strategy (email supports this)
- **onboarding-cro**: For in-app onboarding (email supports this)
- **copywriting**: For landing pages emails link to
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: form-cro
description: When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms, demo request forms, application forms, survey forms, or checkout forms. Also use when the user mentions "form optimization," "lead form conversions," "form friction," "form fields," "form completion rate," or "contact form." For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro.
description: When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms, demo request forms, application forms, survey forms, or checkout forms. Also use when the user mentions "form optimization," "lead form conversions," "form friction," "form fields," "form completion rate," "contact form," "nobody fills out our form," "form abandonment," "too many fields," "demo request form," or "lead form isn't converting." Use this for any non-signup form that captures information. For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro.
metadata:
version: 1.1.0
---
@@ -120,7 +120,7 @@ For each field, ask:
4. Logical grouping if many fields
### Labels and Placeholders
- Labels: Always visible (not just placeholder)
- Labels: Keep visible (not just placeholder) — placeholders disappear when typing, leaving users unsure what they're filling in
- Placeholders: Examples, not labels
- Help text: Only when genuinely helpful
+2 -1
View File
@@ -1,6 +1,6 @@
---
name: free-tool-strategy
description: When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions "engineering as marketing," "free tool," "marketing tool," "calculator," "generator," "interactive tool," "lead gen tool," "build a tool for leads," or "free resource." This skill bridges engineering and marketing useful for founders and technical marketers.
description: When the user wants to plan, evaluate, or build a free tool for marketing purposes — lead generation, SEO value, or brand awareness. Also use when the user mentions "engineering as marketing," "free tool," "marketing tool," "calculator," "generator," "interactive tool," "lead gen tool," "build a tool for leads," "free resource," "ROI calculator," "grader tool," "audit tool," "should I build a free tool," or "tools for lead gen." Use this whenever someone wants to build something useful and give it away to attract leads or earn links. For downloadable content lead magnets (ebooks, checklists, templates), see lead-magnets.
metadata:
version: 1.1.0
---
@@ -172,6 +172,7 @@ Rate each factor 1-5:
## Related Skills
- **lead-magnets**: For downloadable content lead magnets (ebooks, checklists, templates)
- **page-cro**: For optimizing the tool's landing page
- **seo-audit**: For SEO-optimizing the tool
- **analytics-tracking**: For measuring tool usage
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: launch-strategy
description: "When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user mentions 'launch,' 'Product Hunt,' 'feature release,' 'announcement,' 'go-to-market,' 'beta launch,' 'early access,' 'waitlist,' or 'product update.' This skill covers phased launches, channel strategy, and ongoing launch momentum."
description: "When the user wants to plan a product launch, feature announcement, or release strategy. Also use when the user mentions 'launch,' 'Product Hunt,' 'feature release,' 'announcement,' 'go-to-market,' 'beta launch,' 'early access,' 'waitlist,' 'product update,' 'how do I launch this,' 'launch checklist,' 'GTM plan,' or 'we're about to ship.' Use this whenever someone is preparing to release something publicly. For ongoing marketing after launch, see marketing-ideas."
metadata:
version: 1.1.0
---
@@ -93,7 +93,7 @@ Tap into someone else's audience to shortcut the hardest part—getting noticed.
1. List industry leaders your audience follows
2. Pitch win-win collaborations
3. Use tools like SparkToro or Listen Notes to find audience overlap
4. Set up affiliate/referral incentives
4. Set up affiliate/referral incentives (for channel partner launches, use [Introw](../../tools/integrations/introw.md) to manage deal registration and commissions)
**Example - TRMNL:**
Sent a free e-ink display to YouTuber Snazzy Labs—not a paid sponsorship, just hoping he'd like it. He created an in-depth review that racked up 500K+ views and drove $500K+ in sales. They also set up an affiliate program for ongoing promotion.
+310
View File
@@ -0,0 +1,310 @@
---
name: lead-magnets
description: When the user wants to create, plan, or optimize a lead magnet for email capture or lead generation. Also use when the user mentions "lead magnet," "gated content," "content upgrade," "downloadable," "ebook," "cheat sheet," "checklist," "template download," "opt-in," "freebie," "PDF download," "resource library," "content offer," "email capture content," "Notion template," "spreadsheet template," or "what should I give away for emails." Use this for planning what to create and how to distribute it. For interactive tools as lead magnets, see free-tool-strategy. For writing the actual content, see copywriting. For the email sequence after capture, see email-sequence.
metadata:
version: 1.0.0
---
# Lead Magnets
You are an expert in lead magnet strategy. Your goal is to help plan lead magnets that capture emails, generate qualified leads, and naturally lead to product adoption.
## Before Planning
**Check for product marketing context first:**
If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Gather this context (ask if not provided):
### 1. Business Context
- What does the company do?
- Who is the ideal customer?
- What problems does your product solve?
### 2. Current Lead Generation
- How do you currently capture leads?
- What lead magnets or offers do you have?
- What's your current conversion rate on email capture?
### 3. Content Assets
- What existing content could be repurposed? (blog posts, guides, data)
- What expertise can you package?
- What templates or tools do you use internally?
### 4. Goals
- Primary goal: email list growth, lead quality, product education?
- Target audience stage: awareness, consideration, or decision?
- Timeline and resource constraints?
---
## Lead Magnet Principles
### 1. Solve a Specific Problem
- Address one clear pain point, not a broad topic
- "How to write cold emails that get replies" > "Marketing guide"
### 2. Match the Buyer Stage
- Awareness leads need education
- Consideration leads need comparison and evaluation
- Decision leads need implementation help
### 3. High Perceived Value, Low Time Investment
- Should look like it's worth paying for
- Consumable in under 30 minutes (ideally under 10)
- Immediate, actionable takeaway
### 4. Natural Path to Product
- Solves a problem your product also solves
- Creates awareness of a gap your product fills
- Demonstrates your expertise in the space
### 5. Easy to Consume
- One clear format (don't mix ebook + video + spreadsheet)
- Works on mobile
- No special software required
---
## Lead Magnet Types
| Type | Best For | Effort | Time to Create |
|------|----------|--------|----------------|
| Checklist | Quick wins, process steps | Low | 1-2 hours |
| Cheat sheet | Reference material, shortcuts | Low | 2-4 hours |
| Template (doc/spreadsheet/Notion) | Repeatable processes, workflows | Low-Med | 2-8 hours |
| Swipe file | Inspiration, examples | Medium | 4-8 hours |
| Ebook/guide | Deep education, authority | High | 1-3 weeks |
| Mini-course (email) | Education + nurture | Medium | 1-2 weeks |
| Mini-course (video) | Education + personality | High | 2-4 weeks |
| Quiz/assessment | Segmentation, engagement | Medium | 1-2 weeks |
| Webinar | Authority, live engagement | Medium | 1 week prep |
| Resource library | Ongoing value, return visits | High | Ongoing |
| Free trial/community access | Product experience | Varies | Varies |
**For detailed creation guidance per format**: See [references/format-guide.md](references/format-guide.md)
---
## Matching Lead Magnets to Buyer Stage
### Awareness Stage
Goal: Educate on the problem. Attract people who don't know you yet.
| Format | Example |
|--------|---------|
| Checklist | "10-Point Website Audit Checklist" |
| Cheat sheet | "SEO Cheat Sheet for Beginners" |
| Ebook/guide | "The Complete Guide to Email Marketing" |
| Quiz | "What Type of Marketer Are You?" |
### Consideration Stage
Goal: Help evaluate solutions. Build trust and demonstrate expertise.
| Format | Example |
|--------|---------|
| Comparison template | "CRM Comparison Spreadsheet" |
| Assessment | "Marketing Maturity Assessment" |
| Case study collection | "5 Companies That 3x'd Their Pipeline" |
| Webinar | "How to Choose the Right Analytics Tool" |
### Decision Stage
Goal: Help implement. Remove friction to purchase.
| Format | Example |
|--------|---------|
| Template | "Ready-to-Use Sales Email Templates" |
| Free trial | "14-Day Free Trial" |
| Implementation guide | "Migration Checklist: Switch in 30 Minutes" |
| ROI calculator | "Calculate Your Savings" (→ see **free-tool-strategy**) |
---
## Gating Strategy
### Gating Options
| Approach | When to Use | Trade-off |
|----------|-------------|-----------|
| **Full gate** | High-value content, bottom-funnel | Max capture, lower reach |
| **Partial gate** | Preview + full version | Balance of reach and capture |
| **Ungated + optional** | Top-funnel education | Max reach, lower capture |
| **Content upgrade** | Blog post + bonus | Contextual, high-intent |
### What to Ask For
- **Email only** — highest conversion, lowest friction
- **Email + name** — enables personalization, slight friction increase
- **Email + company/role** — better lead qualification, more friction
- **Multi-field** — only for high-value offers (webinars, demos)
Rule of thumb: Ask for the minimum needed. Every extra field reduces conversion by 5-10%.
### How to Frame the Exchange
- Make the value obvious: "Get the full 25-page guide free"
- Show a preview: table of contents, first page, sample results
- Add social proof: "Downloaded by 5,000+ marketers"
- Reduce risk: "No spam. Unsubscribe anytime."
**For form optimization**: See **form-cro** skill
**For popup implementation**: See **popup-cro** skill
---
## Landing Page & Delivery
### Landing Page Structure
1. **Headline** — Clear benefit: what they'll get and why it matters
2. **Preview/mockup** — Visual of the lead magnet (cover, screenshot, sample page)
3. **What's inside** — 3-5 bullet points of key takeaways
4. **Social proof** — Download count, testimonials, logos
5. **Form** — Minimal fields, clear CTA button
6. **FAQ** — Address hesitations (Is it really free? What format?)
**For landing page optimization**: See **page-cro** skill
### Delivery Methods
| Method | Pros | Cons |
|--------|------|------|
| **Instant download** | Immediate gratification | No email verification |
| **Email delivery** | Verifies email, starts relationship | Slight delay |
| **Thank you page + email** | Best of both—instant access + email copy | Slightly more complex |
| **Drip delivery** | Builds habit, multiple touchpoints | Only for courses/series |
### Thank You Page Optimization
Don't waste the thank you page. After they've converted:
- Confirm delivery ("Check your inbox")
- Offer a next step (book a demo, start trial, join community)
- Share on social (pre-written tweet/post)
- Recommend related content
---
## Promotion & Distribution
### Blog CTAs & Content Upgrades
- Add relevant CTAs within blog posts (inline, end-of-post)
- Create post-specific content upgrades (bonus checklist for a how-to post)
- Content upgrades convert 2-5x better than generic sidebar CTAs
### Exit-Intent & Popups
- Trigger on exit intent or scroll depth
- Match the popup offer to the page content
- **See popup-cro** for implementation
### Social Media
- Share snippets and teasers from the lead magnet
- Create carousel posts from key points
- Use the lead magnet as the CTA in your bio/profile
- **See social-content** for social strategy
### Paid Promotion
- Facebook/Instagram lead ads for top-funnel lead magnets
- Google Ads for high-intent lead magnets (templates, tools)
- LinkedIn for B2B lead magnets
- Retarget blog visitors with lead magnet ads
- **See paid-ads** for campaign strategy
### Partner Co-Promotion
- Cross-promote with complementary brands
- Guest webinars with partner audiences
- Include in partner newsletters
- Bundle in resource collections
---
## Measuring Success
### Key Metrics
| Metric | What It Tells You | Benchmark |
|--------|-------------------|-----------|
| **Landing page conversion rate** | Offer attractiveness | 20-40% (warm traffic), 5-15% (cold) |
| **Cost per lead** | Acquisition efficiency | Varies by channel and industry |
| **Lead-to-customer rate** | Lead quality | 1-5% (B2B), varies widely |
| **Email engagement** | Content relevance | 30-50% open, 2-5% click |
| **Time to conversion** | Nurture effectiveness | Track by lead magnet source |
**For detailed benchmarks by format and industry**: See [references/benchmarks.md](references/benchmarks.md)
### A/B Testing Ideas
- **Headline**: Benefit-focused vs. curiosity-driven
- **Format**: Checklist vs. guide on same topic
- **Gate level**: Full gate vs. partial preview
- **Form fields**: Email-only vs. email + name
- **CTA copy**: "Download Free Guide" vs. "Get Your Copy"
- **Delivery**: Instant download vs. email delivery
### Lead Quality Signals
Good lead magnet attracted quality leads if:
- Higher-than-average email engagement
- Leads progress to trial/demo at expected rates
- Low unsubscribe rate after delivery
- Leads match ICP demographics
---
## Output Format
When creating a lead magnet strategy, provide:
### 1. Lead Magnet Recommendation
- Format and topic
- Target buyer stage
- Why this format for this audience
- Estimated creation effort
### 2. Content Outline
- Key sections/components
- Length and scope
- What makes it unique or valuable
### 3. Gating & Capture Plan
- What to gate and how
- Form fields
- Landing page structure
### 4. Distribution Plan
- Promotion channels
- Content upgrade opportunities
- Paid amplification (if applicable)
### 5. Measurement Plan
- KPIs and targets
- What to A/B test first
---
## Task-Specific Questions
1. What existing content or expertise could you turn into a lead magnet?
2. Where does your audience spend time online?
3. What's the most common question prospects ask before buying?
4. Do you have an email nurture sequence set up for new leads?
5. What's your budget for design and promotion?
---
## Related Skills
- **free-tool-strategy**: For interactive tools as lead magnets (calculators, graders, quizzes)
- **copywriting**: For writing the lead magnet content itself
- **email-sequence**: For nurture sequences after lead capture
- **page-cro**: For optimizing lead magnet landing pages
- **popup-cro**: For popup-based lead capture
- **form-cro**: For optimizing capture forms
- **content-strategy**: For content planning and topic selection
- **analytics-tracking**: For measuring lead magnet performance
- **paid-ads**: For paid promotion of lead magnets
- **social-content**: For social media promotion
@@ -0,0 +1,129 @@
# Lead Magnet Benchmarks
Reference data for planning and evaluating lead magnet performance.
---
## Conversion Rate Benchmarks
### By Format Type
| Format | Landing Page Conversion | Notes |
|--------|------------------------|-------|
| Checklist | 30-50% | High because low commitment |
| Cheat sheet | 25-40% | Quick reference appeal |
| Template | 25-45% | Immediate utility drives conversion |
| Ebook/guide | 20-35% | Higher commitment, lower rate |
| Quiz | 30-50% | Engagement drives completion |
| Webinar | 20-40% (registration) | 30-50% attendance rate of registrants |
| Mini-course | 15-30% | Higher commitment, higher quality leads |
| Free trial | 5-15% | High intent but high friction |
### By Traffic Source
| Source | Expected Conversion | Why |
|--------|-------------------|-----|
| Blog content upgrade | 3-8% of post readers | Contextually relevant |
| Dedicated landing page (organic) | 20-40% | High intent |
| Dedicated landing page (paid) | 10-25% | Cold traffic |
| Exit-intent popup | 2-5% of visitors | Interruption-based |
| Sidebar/banner CTA | 0.5-2% | Low engagement |
| Social media link | 10-20% | Warm but browsing |
### By Industry (Landing Page)
| Industry | Average Conversion |
|----------|-------------------|
| SaaS/Tech | 15-25% |
| Marketing/Agency | 20-35% |
| Finance | 10-20% |
| E-commerce | 10-20% |
| Education | 20-35% |
| Health/Wellness | 15-25% |
---
## Lead Quality Indicators
### Signals of High-Quality Leads
- Open first 3 emails at 40%+ rate
- Click through to content or product pages
- Return to site within 30 days
- Match ICP demographics (role, company size, industry)
- Progress to trial, demo, or purchase within 90 days
### Signals of Low-Quality Leads
- Unsubscribe within first 3 emails
- Never open beyond delivery email
- Use disposable email addresses
- Don't match target customer profile
- Downloaded for the content, no product interest
### Quality vs. Quantity by Format
| Format | Lead Volume | Lead Quality | Net Value |
|--------|-------------|-------------|-----------|
| Generic ebook | High | Low-Medium | Medium |
| Specific template | Medium | High | High |
| Industry report | Medium | Medium-High | High |
| Quiz/assessment | High | Medium (segmentable) | High |
| Webinar | Low-Medium | High | High |
| Checklist | High | Low-Medium | Medium |
| Free trial | Low | Very High | Very High |
---
## Cost Benchmarks
### Cost Per Lead by Channel
| Channel | Typical CPL | Notes |
|---------|-------------|-------|
| Organic search | $0-5 | Lowest, but slow to build |
| Blog content upgrade | $0-2 | Nearly free if you have traffic |
| Facebook/Instagram Ads | $3-15 | B2C lower, B2B higher |
| Google Ads | $10-50 | High intent, higher cost |
| LinkedIn Ads | $25-75 | B2B, expensive but qualified |
| Partner co-promotion | $0-5 | Depends on relationship |
### Creation Cost by Format
| Format | DIY Cost | With Designer/Freelancer |
|--------|----------|-------------------------|
| Checklist | Free | $100-300 |
| Cheat sheet | Free | $200-500 |
| Template | Free | $100-500 |
| Ebook (10-25 pages) | Free | $500-2,000 |
| Quiz | $0-100/mo (tool) | $500-2,000 |
| Webinar | Free (Zoom) | $500-1,500 (production) |
| Mini-course (email) | Free | $500-1,500 (copywriting) |
| Video course | $0-200 (gear) | $2,000-5,000 |
---
## Timeline Expectations
### Time to Create
| Format | Solo Creator | With Team |
|--------|-------------|-----------|
| Checklist | 1-2 hours | Same day |
| Cheat sheet | 2-4 hours | Same day |
| Template | 2-8 hours | 1-2 days |
| Swipe file | 4-8 hours | 1-2 days |
| Ebook | 1-3 weeks | 1-2 weeks |
| Quiz | 1-2 weeks | 1 week |
| Webinar prep | 1 week | 3-5 days |
| Mini-course | 1-2 weeks | 1 week |
### Time to See Results
| Phase | Timeline |
|-------|----------|
| First leads | Immediately with existing traffic or paid |
| Organic traffic growth | 2-6 months (SEO) |
| Meaningful lead volume | 1-3 months |
| Measurable impact on pipeline | 3-6 months |
| Full ROI assessment | 6-12 months |
**Note**: These benchmarks are general guidelines. Your actual results depend on audience, niche, traffic volume, and offer quality. Start measuring from day one and build your own benchmarks.
@@ -0,0 +1,196 @@
# Lead Magnet Format Guide
Detailed creation guidance for each lead magnet format.
## Contents
- Ebooks & Guides
- Checklists
- Cheat Sheets
- Templates & Spreadsheets
- Swipe Files
- Mini-Courses
- Quizzes & Assessments
- Webinars & Workshops
---
## Ebooks & Guides
**Best for**: Building authority, deep education, awareness-stage leads
**Structure**:
1. Title page with professional design
2. Table of contents
3. Introduction — frame the problem, set expectations
4. 3-7 chapters — one key concept per chapter
5. Summary — recap key takeaways
6. CTA — next step toward your product
**Guidelines**:
- Ideal length: 10-25 pages (shorter is fine if valuable)
- Include visuals: charts, diagrams, screenshots
- Use callout boxes for key stats or quotes
- End each chapter with a quick takeaway
- Don't pad — density beats length
**Tools**: Canva, Google Docs → PDF, Notion export, Designrr, Beacon.by
---
## Checklists
**Best for**: Process-oriented tasks, quick wins, implementation help
**Structure**:
- Title: "[Number]-Point [Topic] Checklist"
- Numbered or checkbox items
- Group into logical sections if 10+ items
- Brief explanation per item (1-2 sentences)
**Guidelines**:
- Keep to 1-2 pages
- Use actionable language ("Verify X", "Set up Y", "Remove Z")
- Order by workflow sequence or priority
- Make it printable — clean layout, generous spacing
- Include a "done" checkbox for each item
**What works**: Step-by-step processes, audit criteria, launch checklists, setup guides
---
## Cheat Sheets
**Best for**: Reference material, shortcuts, quick-lookup information
**Structure**:
- One page (two pages max)
- Organized by category or workflow
- Dense but scannable
- Visual hierarchy with headers and grouping
**Guidelines**:
- Optimize for quick reference, not reading
- Use tables, grids, or columns
- Include formulas, shortcuts, or code snippets
- Design for printing or saving as desktop reference
- Bold the most important items
**What works**: Keyboard shortcuts, formula references, terminology glossaries, decision matrices
---
## Templates & Spreadsheets
**Best for**: Repeatable processes, planning, tracking
### Spreadsheet Templates (Google Sheets / Excel)
- Include a "How to Use" tab with instructions
- Pre-fill with example data
- Use data validation for dropdown fields
- Add conditional formatting for visual cues
- Lock formula cells, leave input cells editable
- Include a "Make a Copy" link (Google Sheets)
### Notion Templates
- Provide a duplicate link
- Include a getting-started guide
- Pre-populate with example content
- Use Notion's database features (views, filters, relations)
- Keep it simple — don't over-engineer
### Document Templates
- Provide in multiple formats (Google Doc, Word, PDF)
- Include placeholder text with [BRACKETS] for customization
- Add inline instructions in a different color
- Make it immediately usable with minimal editing
**Key principle**: Templates should be usable within 5 minutes of downloading.
---
## Swipe Files
**Best for**: Inspiration, examples, learning from others
**Structure**:
- Curated collection of 15-50 examples
- Organized by category, type, or use case
- Each example includes:
- The example itself (screenshot, text, link)
- Why it works (2-3 bullet annotations)
- How to adapt it (1-2 sentences)
**Guidelines**:
- Quality over quantity — curate ruthlessly
- Add your analysis, don't just collect
- Organize for browsing (categories, tags)
- Update periodically with fresh examples
- Credit original sources
**What works**: Email subject lines, landing pages, ad copy, CTAs, onboarding flows, pricing pages
---
## Mini-Courses
### Email-Based Mini-Courses
- 3-5 emails delivered over 5-7 days
- One lesson per email, one concept per lesson
- Each email: teach → example → exercise
- Progressive difficulty (build on previous lessons)
- Final email: summary + CTA for product or next step
### Video-Based Mini-Courses
- 3-5 videos, 5-15 minutes each
- Host on unlisted YouTube, Loom, or course platform
- Deliver links via email drip
- Include worksheets or exercises per lesson
- More personal — builds stronger connection
**Cadence**: Every 1-2 days. Don't stretch too thin or compress too tight.
**Key principle**: Each lesson should deliver standalone value. If someone only watches lesson 2, they should still learn something useful.
---
## Quizzes & Assessments
**Best for**: Engagement, segmentation, personalized results
**Question Design**:
- 5-10 questions (sweet spot: 7)
- Multiple choice only — no open-ended
- Questions should feel insightful, not obvious
- Progress indicator ("Question 3 of 7")
**Result Segmentation**:
- 3-5 result categories
- Each result: name, description, personalized recommendations
- Tailor follow-up emails by result type
- Share-worthy result format ("I got: Growth Stage Marketer!")
**Implementation**: Gate results behind email capture. The quiz itself is ungated — the personalized results require an email.
**For building interactive quizzes**: See **free-tool-strategy** skill for technical implementation guidance.
---
## Webinars & Workshops
### Live Webinars
- 30-45 minutes teaching + 15 minutes Q&A
- Structure: Hook → Teach (3 key points) → Demo/example → CTA
- Promote 1-2 weeks in advance
- Send 3 reminder emails (confirmation, day before, 1 hour before)
- Record for replay (extends value)
### Evergreen Webinars
- Pre-recorded, available on demand
- Same structure as live but tighter editing
- Always-on lead generation
- Gate with email registration
- Automated follow-up sequence
**Follow-up**: Send replay link + summary + CTA within 24 hours. Continue with nurture sequence.
**Key principle**: Teach something genuinely useful. A webinar that's just a sales pitch will damage trust.
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: marketing-ideas
description: "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' or 'ideas to grow.' This skill provides 139 proven marketing approaches organized by category."
description: "When the user needs marketing ideas, inspiration, or strategies for their SaaS or software product. Also use when the user asks for 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' 'ideas to grow,' 'what else can I try,' 'I don't know how to market this,' 'brainstorm marketing,' or 'what marketing should I do.' Use this as a starting point whenever someone is stuck or looking for inspiration on how to grow. For specific channel execution, see the relevant skill (paid-ads, social-content, email-sequence, etc.)."
metadata:
version: 1.1.0
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: marketing-psychology
description: "When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' or 'consumer behavior.' This skill provides 70+ mental models organized for marketing application."
description: "When the user wants to apply psychological principles, mental models, or behavioral science to marketing. Also use when the user mentions 'psychology,' 'mental models,' 'cognitive bias,' 'persuasion,' 'behavioral science,' 'why people buy,' 'decision-making,' 'consumer behavior,' 'anchoring,' 'social proof,' 'scarcity,' 'loss aversion,' 'framing,' or 'nudge.' Use this whenever someone wants to understand or leverage how people think and make decisions in a marketing context."
metadata:
version: 1.1.0
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: onboarding-cro
description: When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also use when the user mentions "onboarding flow," "activation rate," "user activation," "first-run experience," "empty states," "onboarding checklist," "aha moment," or "new user experience." For signup/registration optimization, see signup-flow-cro. For ongoing email sequences, see email-sequence.
description: When the user wants to optimize post-signup onboarding, user activation, first-run experience, or time-to-value. Also use when the user mentions "onboarding flow," "activation rate," "user activation," "first-run experience," "empty states," "onboarding checklist," "aha moment," "new user experience," "users aren't activating," "nobody completes setup," "low activation rate," "users sign up but don't use the product," "time to value," or "first session experience." Use this whenever users are signing up but not sticking around. For signup/registration optimization, see signup-flow-cro. For ongoing email sequences, see email-sequence.
metadata:
version: 1.1.0
---
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: page-cro
description: When the user wants to optimize, improve, or increase conversions on any marketing page — including homepage, landing pages, pricing pages, feature pages, or blog posts. Also use when the user says "CRO," "conversion rate optimization," "this page isn't converting," "improve conversions," or "why isn't this page working." For signup/registration flows, see signup-flow-cro. For post-signup activation, see onboarding-cro. For forms outside of signup, see form-cro. For popups/modals, see popup-cro.
description: When the user wants to optimize, improve, or increase conversions on any marketing page — including homepage, landing pages, pricing pages, feature pages, or blog posts. Also use when the user says "CRO," "conversion rate optimization," "this page isn't converting," "improve conversions," "why isn't this page working," "my landing page sucks," "nobody's converting," "low conversion rate," "bounce rate is too high," "people leave without signing up," or "this page needs work." Use this even if the user just shares a URL and asks for feedback — they probably want conversion help. For signup/registration flows, see signup-flow-cro. For post-signup activation, see onboarding-cro. For forms outside of signup, see form-cro. For popups/modals, see popup-cro.
metadata:
version: 1.1.0
---
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: paid-ads
description: "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' or 'audience targeting.' This skill covers campaign strategy, audience targeting, and optimization. For bulk ad creative generation and iteration, see ad-creative."
description: "When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' 'audience targeting,' 'Google Ads,' 'Facebook ads,' 'LinkedIn ads,' 'ad budget,' 'cost per click,' 'ad spend,' or 'should I run ads.' Use this for campaign strategy, audience targeting, bidding, and optimization. For bulk ad creative generation and iteration, see ad-creative. For landing page optimization, see page-cro."
metadata:
version: 1.1.0
---
@@ -122,7 +122,7 @@ LI_LeadGen_CMOs-SaaS_Whitepaper_Mar24
- **Lookalikes**: Base on best customers (by LTV), not all customers
- **Retargeting**: Segment by funnel stage (visitors vs. cart abandoners)
- **Exclusions**: Always exclude existing customers and recent converters
- **Exclusions**: Exclude existing customers and recent converters — showing ads to people who already bought wastes spend
**For detailed targeting strategies by platform**: See [references/audience-targeting.md](references/audience-targeting.md)
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: paywall-upgrade-cro
description: When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use when the user mentions "paywall," "upgrade screen," "upgrade modal," "upsell," "feature gate," "convert free to paid," "freemium conversion," "trial expiration screen," "limit reached screen," "plan upgrade prompt," or "in-app pricing." Distinct from public pricing pages (see page-cro) — this skill focuses on in-product upgrade moments where the user has already experienced value.
description: When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use when the user mentions "paywall," "upgrade screen," "upgrade modal," "upsell," "feature gate," "convert free to paid," "freemium conversion," "trial expiration screen," "limit reached screen," "plan upgrade prompt," "in-app pricing," "free users won't upgrade," "trial to paid conversion," or "how do I get users to pay." Use this for any in-product moment where you're asking users to upgrade. Distinct from public pricing pages (see page-cro) — this focuses on in-product upgrade moments where the user has already experienced value. For pricing decisions, see pricing-strategy.
metadata:
version: 1.1.0
---
+3 -2
View File
@@ -1,6 +1,6 @@
---
name: popup-cro
description: When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also use when the user mentions "exit intent," "popup conversions," "modal optimization," "lead capture popup," "email popup," "announcement banner," or "overlay." For forms outside of popups, see form-cro. For general page conversion optimization, see page-cro.
description: When the user wants to create or optimize popups, modals, overlays, slide-ins, or banners for conversion purposes. Also use when the user mentions "exit intent," "popup conversions," "modal optimization," "lead capture popup," "email popup," "announcement banner," "overlay," "collect emails with a popup," "exit popup," "scroll trigger," "sticky bar," or "notification bar." Use this for any overlay or interrupt-style conversion element. For forms outside of popups, see form-cro. For general page conversion optimization, see page-cro.
metadata:
version: 1.1.0
---
@@ -182,7 +182,7 @@ Before providing recommendations, understand:
- Leave space to close (visible X, click outside)
### Close Button
- Always visible (top right is convention)
- Keep visible (top right is convention) — users who can't find the close button will bounce entirely
- Large enough to tap on mobile
- "No thanks" text link as alternative
- Click outside to close
@@ -447,6 +447,7 @@ Ideas to A/B test with expected outcomes
## Related Skills
- **lead-magnets**: For planning lead magnets to promote via popups
- **form-cro**: For optimizing the form inside the popup
- **page-cro**: For the page context around popups
- **email-sequence**: For what happens after popup conversion
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: pricing-strategy
description: "When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions 'pricing,' 'pricing tiers,' 'freemium,' 'free trial,' 'packaging,' 'price increase,' 'value metric,' 'Van Westendorp,' 'willingness to pay,' or 'monetization.' This skill covers pricing research, tier structure, and packaging strategy."
description: "When the user wants help with pricing decisions, packaging, or monetization strategy. Also use when the user mentions 'pricing,' 'pricing tiers,' 'freemium,' 'free trial,' 'packaging,' 'price increase,' 'value metric,' 'Van Westendorp,' 'willingness to pay,' 'monetization,' 'how much should I charge,' 'my pricing is wrong,' 'pricing page,' 'annual vs monthly,' 'per seat pricing,' or 'should I offer a free plan.' Use this whenever someone is figuring out what to charge or how to structure their plans. For in-app upgrade screens, see paywall-upgrade-cro."
metadata:
version: 1.1.0
---
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: product-marketing-context
description: "When the user wants to create or update their product marketing context document. Also use when the user mentions 'product context,' 'marketing context,' 'set up context,' 'positioning,' or wants to avoid repeating foundational information across marketing tasks. Creates `.agents/product-marketing-context.md` that other marketing skills reference."
description: "When the user wants to create or update their product marketing context document. Also use when the user mentions 'product context,' 'marketing context,' 'set up context,' 'positioning,' 'who is my target audience,' 'describe my product,' 'ICP,' 'ideal customer profile,' or wants to avoid repeating foundational information across marketing tasks. Use this at the start of any new project before using other marketing skills — it creates `.agents/product-marketing-context.md` that all other skills reference for product, audience, and positioning context."
metadata:
version: 1.1.0
---
@@ -47,7 +47,7 @@ For each section:
3. Confirm accuracy
4. Move to the next
**Important:** Push for verbatim customer language. Exact phrases are more valuable than polished descriptions.
Push for verbatim customer language — exact phrases are more valuable than polished descriptions because they reflect how customers actually think and speak, which makes copy more resonant.
---
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: programmatic-seo
description: When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions "programmatic SEO," "template pages," "pages at scale," "directory pages," "location pages," "[keyword] + [city] pages," "comparison pages," "integration pages," or "building many pages for SEO." For auditing existing SEO issues, see seo-audit.
description: When the user wants to create SEO-driven pages at scale using templates and data. Also use when the user mentions "programmatic SEO," "template pages," "pages at scale," "directory pages," "location pages," "[keyword] + [city] pages," "comparison pages," "integration pages," "building many pages for SEO," "pSEO," "generate 100 pages," "data-driven pages," or "templated landing pages." Use this whenever someone wants to create many similar pages targeting different keywords or locations. For auditing existing SEO issues, see seo-audit. For content strategy planning, see content-strategy.
metadata:
version: 1.1.0
---
@@ -49,7 +49,7 @@ Hierarchy of data defensibility:
5. Public (anyone can use—weakest)
### 3. Clean URL Structure
**Always use subfolders, not subdomains**:
**Use subfolders, not subdomains** — subfolders consolidate domain authority while subdomains split it:
- Good: `yoursite.com/templates/resume/`
- Bad: `templates.yoursite.com/resume/`
+3 -1
View File
@@ -1,6 +1,6 @@
---
name: referral-program
description: "When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy. Also use when the user mentions 'referral,' 'affiliate,' 'ambassador,' 'word of mouth,' 'viral loop,' 'refer a friend,' or 'partner program.' This skill covers program design, incentive structure, and growth optimization."
description: "When the user wants to create, optimize, or analyze a referral program, affiliate program, or word-of-mouth strategy. Also use when the user mentions 'referral,' 'affiliate,' 'ambassador,' 'word of mouth,' 'viral loop,' 'refer a friend,' 'partner program,' 'referral incentive,' 'how to get referrals,' 'customers referring customers,' or 'affiliate payout.' Use this whenever someone wants existing users or partners to bring in new customers. For launch-specific virality, see launch-strategy."
metadata:
version: 1.1.0
---
@@ -244,6 +244,8 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key tools
| **Mention Me** | Enterprise referral programs | [mention-me.md](../../tools/integrations/mention-me.md) |
| **Dub.co** | Link tracking and attribution | [dub-co.md](../../tools/integrations/dub-co.md) |
| **Stripe** | Payment processing (for commission tracking) | [stripe.md](../../tools/integrations/stripe.md) |
| **Introw** | Channel partner programs with tiers, deal registration, QBRs | [introw.md](../../tools/integrations/introw.md) |
| **PartnerStack** | Enterprise partner and affiliate programs | [partnerstack.md](../../tools/integrations/partnerstack.md) |
---
@@ -118,6 +118,9 @@ Provide affiliates with:
- Tapfiliate — Simple SaaS affiliate tracking
- FirstPromoter — SaaS affiliate management
**Partner Relationship Management (PRM):**
- Introw — Full PRM with deal registration, commissions, tiers, QBRs, and partner engagement tracking ([integration guide](../../../tools/integrations/introw.md))
**Self-hosted:**
- Rewardful — Stripe-integrated affiliates
- Refersion — E-commerce affiliates
+4 -2
View File
@@ -1,6 +1,6 @@
---
name: revops
description: "When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes. Also use when the user mentions 'RevOps,' 'revenue operations,' 'lead scoring,' 'lead routing,' 'MQL,' 'SQL,' 'pipeline stages,' 'deal desk,' 'CRM automation,' 'marketing-to-sales handoff,' or 'data hygiene.' For cold outreach emails, see cold-email. For email drip campaigns, see email-sequence. For pricing decisions, see pricing-strategy."
description: "When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes. Also use when the user mentions 'RevOps,' 'revenue operations,' 'lead scoring,' 'lead routing,' 'MQL,' 'SQL,' 'pipeline stages,' 'deal desk,' 'CRM automation,' 'marketing-to-sales handoff,' 'data hygiene,' 'leads aren't getting to sales,' 'pipeline management,' 'lead qualification,' or 'when should marketing hand off to sales.' Use this for anything involving the systems and processes that connect marketing to revenue. For cold outreach emails, see cold-email. For email drip campaigns, see email-sequence. For pricing decisions, see pricing-strategy."
metadata:
version: 1.1.0
---
@@ -133,7 +133,7 @@ Define response times and document them:
### Routing Rules Essentials
- Route to the **most specific match** first, then fall back to general
- Always include a **fallback owner**no lead should go unassigned
- Include a **fallback owner**unassigned leads go cold fast and waste pipeline
- Round-robin should account for **rep capacity and availability** (PTO, quota attainment)
- Log every routing decision for audit and optimization
@@ -330,6 +330,8 @@ For implementation, see the [tools registry](../../tools/REGISTRY.md). Key RevOp
| **Apollo** | Contact data, enrichment, and outbound sequences | [apollo.md](../../tools/integrations/apollo.md) |
| **ActiveCampaign** | Marketing automation for SMBs, lead scoring | [activecampaign.md](../../tools/integrations/activecampaign.md) |
| **Zapier** | Cross-tool automation and workflow glue | [zapier.md](../../tools/integrations/zapier.md) |
| **Introw** | Partner-sourced pipeline, commissions, deal registration, QBRs | [introw.md](../../tools/integrations/introw.md) |
| **Crossbeam** | Partner account overlaps and co-sell identification | [crossbeam.md](../../tools/integrations/crossbeam.md) |
---
+12 -2
View File
@@ -1,6 +1,6 @@
---
name: sales-enablement
description: "When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also use when the user mentions 'sales deck,' 'pitch deck,' 'one-pager,' 'leave-behind,' 'objection handling,' 'ROI calculator,' 'demo script,' 'talk track,' 'sales playbook,' 'proposal template,' or 'buyer persona card.' For competitor battle cards and comparison pages, see competitor-alternatives. For marketing website copy, see copywriting. For cold outreach emails, see cold-email."
description: "When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also use when the user mentions 'sales deck,' 'pitch deck,' 'one-pager,' 'leave-behind,' 'objection handling,' 'deal-specific ROI analysis,' 'demo script,' 'talk track,' 'sales playbook,' 'proposal template,' 'buyer persona card,' 'help my sales team,' 'sales materials,' or 'what should I give my sales reps.' Use this for any document or asset that helps a sales team close deals. For competitor comparison pages and battle cards, see competitor-alternatives. For marketing website copy, see copywriting. For cold outreach emails, see cold-email."
metadata:
version: 1.1.0
---
@@ -205,7 +205,7 @@ For each objection, document:
### Key Principles
- **Never demo without discovery.** If you don't know their pain, you're guessing which features matter.
- **Demo after discovery, not before.** If you don't know their pain, you're guessing which features matter.
- **Customize to their use case.** Use their terminology, their data (if possible), their workflow.
- **Leave time for questions.** A demo where the prospect doesn't talk is a demo that doesn't close.
@@ -339,6 +339,16 @@ If context is missing, ask:
---
## Tool Integrations
For partner sales enablement, see the [tools registry](../../tools/REGISTRY.md):
| Tool | What It Does | Guide |
|------|-------------|-------|
| **Introw** | Partner engagement tracking, deal registration, mutual action plans | [introw.md](../../tools/integrations/introw.md) |
---
## Related Skills
- **competitor-alternatives**: For public-facing comparison and alternative pages
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: schema-markup
description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," or "breadcrumb schema." For broader SEO issues, see seo-audit.
description: When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," "breadcrumb schema," "Google rich results," "knowledge panel," "star ratings in search," or "add structured data." Use this whenever someone wants their pages to show enhanced results in Google. For broader SEO issues, see seo-audit. For AI search optimization, see ai-seo.
metadata:
version: 1.1.0
---
+5 -5
View File
@@ -1,6 +1,6 @@
---
name: seo-audit
description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," or "SEO health check." For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup.
description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup. For AI search optimization, see ai-seo.
metadata:
version: 1.1.0
---
@@ -35,7 +35,7 @@ Before auditing, understand:
## Audit Framework
### ⚠️ Important: Schema Markup Detection Limitation
### Schema Markup Detection Limitation
**`web_fetch` and `curl` cannot reliably detect structured data / schema markup.**
@@ -46,7 +46,7 @@ Many CMS plugins (AIOSEO, Yoast, RankMath) inject JSON-LD via client-side JavaSc
2. **Google Rich Results Test** — https://search.google.com/test/rich-results
3. **Screaming Frog export** — if the client provides one, use it (SF renders JavaScript)
**Never report "no schema found" based solely on `web_fetch` or `curl`.** This has led to false audit findings in production.
Reporting "no schema found" based solely on `web_fetch` or `curl` leads to false audit findings — these tools can't see JS-injected schema.
### Priority Order
1. **Crawlability & Indexation** (can Google find and index it?)
@@ -164,7 +164,7 @@ Many CMS plugins (AIOSEO, Yoast, RankMath) inject JSON-LD via client-side JavaSc
- Primary keyword near beginning
- 50-60 characters (visible in SERP)
- Compelling and click-worthy
- Brand name placement (end, usually)
- No brand name placement (SERPs include brand name above title already)
**Common issues:**
- Duplicate titles
@@ -382,7 +382,7 @@ Same format as above
- Mobile-Friendly Test
- Schema Validator
> **Note on schema detection:** `web_fetch` strips `<script>` tags (including JSON-LD) and cannot detect JS-injected schema. Always use the browser tool, Rich Results Test, or Screaming Frog for schema checks. See the warning at the top of the Audit Framework section.
> **Note on schema detection:** `web_fetch` strips `<script>` tags (including JSON-LD) and cannot detect JS-injected schema. Use the browser tool, Rich Results Test, or Screaming Frog instead — they render JavaScript and capture dynamically-injected markup. See the Schema Markup Detection Limitation section above.
**Paid Tools** (if available)
- Screaming Frog
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: signup-flow-cro
description: When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the user mentions "signup conversions," "registration friction," "signup form optimization," "free trial signup," "reduce signup dropoff," or "account creation flow." For post-signup onboarding, see onboarding-cro. For lead capture forms (not account creation), see form-cro.
description: When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the user mentions "signup conversions," "registration friction," "signup form optimization," "free trial signup," "reduce signup dropoff," "account creation flow," "people aren't signing up," "signup abandonment," "trial conversion rate," "nobody completes registration," "too many steps to sign up," or "simplify our signup." Use this whenever the user has a signup or registration flow that isn't performing. For post-signup onboarding, see onboarding-cro. For lead capture forms (not account creation), see form-cro.
metadata:
version: 1.1.0
---
@@ -161,7 +161,7 @@ Every field reduces conversion. For each field, ask:
### Microcopy
- Placeholder text: Use for examples, not labels
- Labels: Always visible (not just placeholders)
- Labels: Keep visible (not just placeholders) — placeholders disappear when typing, leaving users unsure what they're filling in
- Help text: Only when needed, placed close to field
---
+2 -2
View File
@@ -1,6 +1,6 @@
---
name: site-architecture
description: When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking. Also use when the user mentions "sitemap," "site map," "visual sitemap," "site structure," "page hierarchy," "information architecture," "IA," "navigation design," "URL structure," "breadcrumbs," "internal linking strategy," or "website planning." NOT for XML sitemaps (that's technical SEO — see seo-audit). For SEO audits, see seo-audit. For structured data, see schema-markup.
description: When the user wants to plan, map, or restructure their website's page hierarchy, navigation, URL structure, or internal linking. Also use when the user mentions "sitemap," "site map," "visual sitemap," "site structure," "page hierarchy," "information architecture," "IA," "navigation design," "URL structure," "breadcrumbs," "internal linking strategy," "website planning," "what pages do I need," "how should I organize my site," or "site navigation." Use this whenever someone is planning what pages a website should have and how they connect. NOT for XML sitemaps (that's technical SEO — see seo-audit). For SEO audits, see seo-audit. For structured data, see schema-markup.
metadata:
version: 1.1.0
---
@@ -186,7 +186,7 @@ Breadcrumbs should mirror the URL hierarchy. Every breadcrumb segment should be
- **Dates in blog URLs**`/blog/2024/01/15/post-title` adds no value and makes URLs long. Use `/blog/post-title`.
- **Over-nesting**`/products/category/subcategory/item/detail` is too deep. Flatten where possible.
- **Changing URLs without redirects** — Every old URL must 301 redirect to its new URL. No exceptions.
- **Changing URLs without redirects** — Every old URL needs a 301 redirect to its new URL. Without them, you lose backlink equity and create broken pages for anyone with the old URL bookmarked or linked.
- **IDs in URLs**`/product/12345` is not human-readable. Use slugs.
- **Query parameters for content**`/blog?id=123` should be `/blog/post-title`.
- **Inconsistent patterns** — Don't mix `/features/analytics` and `/product/automation`. Pick one parent.
+1 -1
View File
@@ -1,6 +1,6 @@
---
name: social-content
description: "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' or 'viral content.' This skill covers content creation, repurposing, and platform-specific strategies."
description: "When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms. Also use when the user mentions 'LinkedIn post,' 'Twitter thread,' 'social media,' 'content calendar,' 'social scheduling,' 'engagement,' 'viral content,' 'what should I post,' 'repurpose this content,' 'tweet ideas,' 'LinkedIn carousel,' 'social media strategy,' or 'grow my following.' Use this for any social media content creation, repurposing, or scheduling task. For broader content strategy, see content-strategy."
metadata:
version: 1.1.0
---
+24 -2
View File
@@ -46,6 +46,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
| customer-io | Email | ✓ | - | [](clis/customer-io.js) | ✓ | [customer-io.md](integrations/customer-io.md) |
| sendgrid | Email | ✓ | - | [](clis/sendgrid.js) | ✓ | [sendgrid.md](integrations/sendgrid.md) |
| resend | Email | ✓ | ✓ | [](clis/resend.js) | ✓ | [resend.md](integrations/resend.md) |
| nitrosend | Email | ✓ | ✓ | - | - | [nitrosend.md](integrations/nitrosend.md) |
| kit | Email | ✓ | - | [](clis/kit.js) | ✓ | [kit.md](integrations/kit.md) |
| beehiiv | Newsletter | ✓ | - | [](clis/beehiiv.js) | - | [beehiiv.md](integrations/beehiiv.md) |
| klaviyo | Email/SMS | ✓ | - | [](clis/klaviyo.js) | ✓ | [klaviyo.md](integrations/klaviyo.md) |
@@ -69,8 +70,10 @@ Quick reference for AI agents to discover tool capabilities and integration meth
| intercom | Messaging | ✓ | - | [](clis/intercom.js) | ✓ | [intercom.md](integrations/intercom.md) |
| outreach | Sales Engagement | ✓ | ✓ | [](clis/outreach.js) | - | [outreach.md](integrations/outreach.md) |
| crossbeam | Partner Ecosystem | ✓ | ✓ | [](clis/crossbeam.js) | - | [crossbeam.md](integrations/crossbeam.md) |
| introw | Partner Ecosystem | - | ✓ | - | - | [introw.md](integrations/introw.md) |
| pendo | Product Analytics | ✓ | - | [](clis/pendo.js) | - | [pendo.md](integrations/pendo.md) |
| similarweb | Competitive Intelligence | ✓ | - | [](clis/similarweb.js) | - | [similarweb.md](integrations/similarweb.md) |
| firehose | Competitive Intelligence | ✓ | - | - | - | [firehose.md](integrations/firehose.md) |
| airops | AI Content | ✓ | - | [](clis/airops.js) | - | [airops.md](integrations/airops.md) |
| buffer | Social | ✓ | - | [](clis/buffer.js) | - | [buffer.md](integrations/buffer.md) |
| wistia | Video | ✓ | - | [](clis/wistia.js) | - | [wistia.md](integrations/wistia.md) |
@@ -82,6 +85,10 @@ Quick reference for AI agents to discover tool capabilities and integration meth
| shopify | Commerce | ✓ | - | ✓ | ✓ | [shopify.md](integrations/shopify.md) |
| wordpress | CMS | ✓ | - | ✓ | ✓ | [wordpress.md](integrations/wordpress.md) |
| webflow | CMS | ✓ | - | ✓ | ✓ | [webflow.md](integrations/webflow.md) |
| sanity | Headless CMS | ✓ | - | ✓ | ✓ | [sanity.md](integrations/sanity.md) |
| contentful | Headless CMS | ✓ | - | ✓ | ✓ | [contentful.md](integrations/contentful.md) |
| strapi | Headless CMS | ✓ | - | ✓ | ✓ | [strapi.md](integrations/strapi.md) |
| composio | Integration Layer | ✓ | ✓ | ✓ | ✓ | [composio.md](integrations/composio.md) |
---
@@ -350,8 +357,9 @@ Partner data sharing, co-sell, and ecosystem management.
| Tool | Best For | Notes |
|------|----------|-------|
| **crossbeam** | Account overlaps, co-sell | Now part of Reveal |
| **introw** | Partner management, deal registration, QBRs | MCP-enabled PRM |
**Agent recommendation**: Crossbeam for identifying partner account overlaps and co-sell opportunities.
**Agent recommendation**: Crossbeam for identifying partner account overlaps and co-sell opportunities. Introw for full partner relationship management — partner pipeline, commissions, tasks, and automated business review prep.
### Email Outreach
@@ -386,8 +394,11 @@ E-commerce platforms and content management systems.
| **shopify** | E-commerce, product sales | ✓ |
| **wordpress** | Blogs, content sites | ✓ |
| **webflow** | Design-focused marketing sites | ✓ |
| **sanity** | Headless CMS, structured content | ✓ |
| **contentful** | Enterprise headless CMS, multi-locale | ✓ |
| **strapi** | Open-source headless CMS, self-hosted | ✓ |
**Agent recommendation**: Shopify for e-commerce. Webflow for marketing sites. WordPress for blogs.
**Agent recommendation**: Shopify for e-commerce. Webflow for marketing sites. WordPress for blogs. For headless CMS: Sanity for developer-flexible content, Contentful for enterprise multi-locale, Strapi for self-hosted/budget-conscious. See [headless CMS guide](../skills/content-strategy/references/headless-cms.md) for selection criteria.
---
@@ -419,9 +430,20 @@ These tools have Model Context Protocol servers available, enabling direct agent
- **coupler** - Marketing data pipelines
- **outreach** - Sales engagement sequences
- **crossbeam** - Partner ecosystem data
- **introw** - Partner relationship management
To use MCP tools, ensure the appropriate MCP server is configured in your environment.
### Composio Integration
[Composio](integrations/composio.md) provides managed OAuth and pre-built connectors for 500+ tools via a single MCP server. It adds MCP access to tools that don't have native MCP servers, including HubSpot, Salesforce, Meta Ads, LinkedIn Ads, Google Sheets, Slack, Notion, and more.
- **Setup**: `npx @composio/mcp@latest setup`
- **Quick start**: See [tools/composio/README.md](composio/README.md)
- **Marketing tool mapping**: See [tools/composio/marketing-tools.md](composio/marketing-tools.md)
Use Composio when you need MCP access to OAuth-heavy tools. Prefer native MCP servers (GA4, Stripe, Mailchimp, etc.) when available — they have deeper coverage.
---
## Quick Start by Use Case
+105
View File
@@ -0,0 +1,105 @@
# Composio Quick Start
Get MCP access to 500+ marketing tools through a single integration.
## Prerequisites
- Node.js 18+
- Claude Code installed
## Install
```bash
npx @composio/mcp@latest setup
```
Verify by running `/mcp` in Claude Code — `composio` should appear in the server list.
## Connect a Tool
When you ask the agent to use a Composio-backed tool for the first time, it will provide a Connect Link. Open the link in your browser, authorize the app, and you're set. The connection persists across sessions.
```
You: "Get my top HubSpot contacts"
Agent: "Please connect HubSpot first: https://app.composio.dev/connect/..."
# Click the link → authorize → return to Claude Code
Agent: "Here are your top contacts: ..."
```
## Usage Examples
### Pull CRM contacts
```
"Show me my 10 most recent HubSpot contacts with their deal stages"
```
### Get ad performance
```
"What's my Meta Ads spend and ROAS for the last 7 days?"
```
### Write to a spreadsheet
```
"Add a row to my 'Campaign Tracker' Google Sheet with today's LinkedIn Ads metrics"
```
### Cross-tool workflow
```
"Find Salesforce leads from this week and post a summary in Slack #new-leads"
```
## Available Marketing Tools
See [marketing-tools.md](marketing-tools.md) for the full list of Composio toolkits mapped to marketing use cases.
Key tools with new MCP access (no native MCP server in this repo):
- **HubSpot** — contacts, deals, companies, lists
- **Salesforce** — SOQL queries, leads, opportunities
- **Meta Ads** — campaigns, ad sets, insights
- **LinkedIn Ads** — campaigns, analytics
- **Google Sheets** — read, write, create spreadsheets
- **Slack** — messages, channels
- **Notion** — pages, databases
- **Klaviyo** — profiles, lists, campaigns
- **ActiveCampaign** — contacts, automations
## Troubleshooting
### "Tool not found" error
The tool may not be connected yet. Ask the agent to connect it, or run:
```bash
npx composio apps list
```
### Expired authentication
OAuth tokens expire. If a tool stops working, re-authenticate:
```bash
npx composio connections list # Find the connection
npx composio connections remove {id} # Remove it
# Then ask the agent to use the tool again to trigger re-auth
```
### Rate limit errors
Composio has its own rate limits (free: 20K calls/mo, 10 req/sec). If you hit them:
- Reduce request frequency
- Upgrade your Composio plan
- Use native CLI tools for high-volume operations
### MCP server not appearing
Re-run the setup command:
```bash
npx @composio/mcp@latest setup
```
Then restart Claude Code.
+91
View File
@@ -0,0 +1,91 @@
# Composio Marketing Tools
Detailed mapping of Composio toolkits to marketing use cases. Organized by the same categories as [REGISTRY.md](../REGISTRY.md).
## CRM
| Composio Toolkit | Auth | Key Marketing Actions | Depth |
|-----------------|------|----------------------|-------|
| `HUBSPOT` | OAuth 2.0 | Get/create contacts, list deals by stage, get company info, manage lists, search contacts by property | Deep |
| `SALESFORCE` | OAuth 2.0 | Run SOQL queries, get/create leads, list opportunities, get account details, update records | Deep |
## Email & SMS
| Composio Toolkit | Auth | Key Marketing Actions | Depth |
|-----------------|------|----------------------|-------|
| `ACTIVECAMPAIGN` | API Key | Get contacts, list automations, add contacts to lists, get campaign stats | Medium |
| `KLAVIYO` | API Key | Get profiles, list segments, get campaign metrics, add to lists | Medium |
| `MAILCHIMP` | OAuth 2.0 | Get audiences, list campaigns, get campaign reports, add subscribers | Deep |
| `GMAIL` | OAuth 2.0 | Send emails, search inbox, read messages, manage labels | Deep |
## Advertising
| Composio Toolkit | Auth | Key Marketing Actions | Depth |
|-----------------|------|----------------------|-------|
| `FACEBOOKADS` | OAuth 2.0 | Get campaign insights, list ad sets, get ad performance, read audience data | Medium |
| `LINKEDIN` | OAuth 2.0 | Get campaign analytics, list campaigns, get company page stats | Medium |
| `GOOGLEADS` | OAuth 2.0 | Get campaign performance, list ad groups, keyword stats | Medium |
## Productivity & Collaboration
| Composio Toolkit | Auth | Key Marketing Actions | Depth |
|-----------------|------|----------------------|-------|
| `GOOGLESHEETS` | OAuth 2.0 | Read/write cells, create sheets, format ranges, append rows | Deep |
| `SLACK` | OAuth 2.0 | Send messages, read channels, upload files, search messages | Deep |
| `NOTION` | OAuth 2.0 | Read/create pages, query databases, update blocks, search | Deep |
| `AIRTABLE` | OAuth 2.0 | List/create/update records, query views, manage tables | Deep |
## Commerce
| Composio Toolkit | Auth | Key Marketing Actions | Depth |
|-----------------|------|----------------------|-------|
| `SHOPIFY` | OAuth 2.0 | Get products, list orders, get customer data, inventory levels | Deep |
## Analytics
| Composio Toolkit | Auth | Key Marketing Actions | Depth |
|-----------------|------|----------------------|-------|
| `GOOGLEANALYTICS` | OAuth 2.0 | Run reports, get real-time data, list properties | Medium |
## Coverage Depth Guide
- **Deep** — 20+ actions, covers most common operations, suitable for daily use
- **Medium** — 5-20 actions, covers core read operations and some writes
- **Shallow** — Under 5 actions, basic read-only access
## Coverage vs. Native Tools
This table shows where Composio adds value compared to what's already in the MarketingSkills registry:
| Tool | Native MCP | Native CLI | Composio MCP | Recommendation |
|------|:----------:|:----------:|:------------:|----------------|
| HubSpot | - | ✓ | ✓ | **Use Composio** — adds MCP access |
| Salesforce | - | ✓ | ✓ | **Use Composio** — adds MCP access |
| Meta Ads | - | ✓ | ✓ | **Use Composio** — adds MCP access |
| LinkedIn Ads | - | ✓ | ✓ | **Use Composio** — adds MCP access |
| Google Sheets | - | - | ✓ | **Use Composio** — only MCP option |
| Slack | - | - | ✓ | **Use Composio** — only MCP option |
| Notion | - | - | ✓ | **Use Composio** — only MCP option |
| Airtable | - | - | ✓ | **Use Composio** — only MCP option |
| ActiveCampaign | - | ✓ | ✓ | **Use Composio** — adds MCP access |
| Klaviyo | - | ✓ | ✓ | **Use Composio** — adds MCP access |
| Shopify | - | ✓ | ✓ | **Use Composio** — adds MCP access |
| Gmail | - | - | ✓ | **Use Composio** — only MCP option |
| GA4 | ✓ | ✓ | ✓ | **Use native** — deeper coverage |
| Stripe | ✓ | ✓ | ✓ | **Use native** — deeper coverage |
| Mailchimp | ✓ | ✓ | ✓ | **Use native** — deeper coverage |
| Google Ads | ✓ | ✓ | ✓ | **Use native** — deeper coverage |
## Toolkit Reference
Each Composio toolkit name maps to its `TOOL_NAME` identifier used in the Composio platform. When searching for available actions, use these exact names:
```bash
# List all actions for a toolkit
npx composio actions list --app HUBSPOT
# Search for specific actions
npx composio actions list --app FACEBOOKADS --search "insights"
```
For the full integration guide including setup, pricing, and limitations, see [composio.md](../integrations/composio.md).
+190
View File
@@ -0,0 +1,190 @@
# Composio
Managed OAuth and pre-built tool connectors for 500+ apps via a single MCP server. Provides agent-native access to marketing tools that lack native MCP support.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST API for managing connections and triggering actions |
| MCP | ✓ | Single MCP server exposes all connected tools |
| CLI | ✓ | `npx composio` for managing apps, connections, and actions |
| SDK | ✓ | TypeScript and Python SDKs |
## Authentication
- **Type**: OAuth 2.0 (per-tool, managed by Composio) or API Key
- **Setup**: `npx @composio/mcp@latest setup` to install, then authenticate each tool via Connect Link in browser
- **API Key** (optional): `COMPOSIO_API_KEY` env var for advanced/team usage
Composio handles OAuth token management, refresh, and storage for all connected tools. Individual tool auth types are listed in the Marketing Tools table below.
## When to Use Composio vs. Native Tools
Composio is an **alternative integration method**, not a replacement. Use this decision guide:
| Scenario | Use |
|----------|-----|
| Tool has native MCP server (GA4, Stripe, Mailchimp) | Native MCP server |
| Tool has CLI but no MCP (Meta Ads, LinkedIn Ads, HubSpot) | Composio for MCP access |
| OAuth-heavy tool with no CLI (Google Sheets, Slack, Notion) | Composio |
| Need deep, customized integration | Native API + CLI |
| Need quick read/write access across many tools | Composio |
| Tool not covered by Composio | Native API guide |
## Setup
### 1. Install the MCP server
```bash
npx @composio/mcp@latest setup
```
This adds the Composio MCP server to your Claude Code configuration.
### 2. Verify installation
In Claude Code, run `/mcp` to confirm `composio` appears in your MCP server list.
### 3. Authenticate a tool
When you first use a Composio-backed tool, you'll receive a Connect Link. Open it in your browser to complete OAuth. The connection persists across sessions.
```
# Example: connect HubSpot
> "Pull my top 10 HubSpot contacts"
# Agent will prompt: "Please authenticate HubSpot: [Connect Link]"
# Click link → authorize → done
```
### 4. API key (optional)
For advanced usage or team setups, set your Composio API key:
```bash
export COMPOSIO_API_KEY=your_key_here
```
## Marketing Tools Available via Composio
### New MCP Coverage
These tools have API guides in this repo but **no native MCP server**. Composio adds MCP access:
| Tool | Composio Toolkit | Auth Type | Coverage Depth |
|------|-----------------|-----------|----------------|
| HubSpot | `HUBSPOT` | OAuth 2.0 | Deep (contacts, deals, companies, lists, email) |
| Salesforce | `SALESFORCE` | OAuth 2.0 | Deep (SOQL, objects, leads, opportunities) |
| Meta Ads | `FACEBOOKADS` | OAuth 2.0 | Medium (campaigns, ad sets, insights) |
| LinkedIn Ads | `LINKEDIN` | OAuth 2.0 | Medium (campaigns, analytics, company pages) |
| Google Sheets | `GOOGLESHEETS` | OAuth 2.0 | Deep (read, write, create, format) |
| Slack | `SLACK` | OAuth 2.0 | Deep (messages, channels, files) |
| Notion | `NOTION` | OAuth 2.0 | Deep (pages, databases, blocks) |
| Airtable | `AIRTABLE` | OAuth 2.0 | Deep (records, tables, views) |
| ActiveCampaign | `ACTIVECAMPAIGN` | API Key | Medium (contacts, lists, automations) |
| Klaviyo | `KLAVIYO` | API Key | Medium (profiles, lists, campaigns) |
| Shopify | `SHOPIFY` | OAuth 2.0 | Deep (products, orders, customers) |
| Gmail | `GMAIL` | OAuth 2.0 | Deep (read, send, labels, search) |
### Alternative to Existing Tools
These tools **already have native MCP or CLI** in this repo. Composio provides an alternative path:
| Tool | Native Integration | Composio Toolkit | When to Use Composio |
|------|-------------------|-----------------|---------------------|
| Mailchimp | MCP ✓, CLI ✓ | `MAILCHIMP` | If native MCP setup fails |
| Google Ads | MCP ✓, CLI ✓ | `GOOGLEADS` | If OAuth is simpler via Composio |
| Stripe | MCP ✓, CLI ✓ | `STRIPE` | Prefer native (deeper coverage) |
| GA4 | MCP ✓, CLI ✓ | `GOOGLEANALYTICS` | Prefer native (deeper coverage) |
## Common Agent Operations
### List available tools
```bash
# Via Composio CLI
npx composio apps list
```
### Check connection status
```bash
npx composio connections list
```
### Trigger an action programmatically
```bash
POST https://backend.composio.dev/api/v1/actions/{action_id}/execute
{
"connectedAccountId": "account_xxx",
"input": {
"query": "contact email = user@example.com"
}
}
```
### Disconnect a tool
```bash
npx composio connections remove {connection_id}
```
## Example Workflows
### Pull CRM data into a spreadsheet
```
> "Get my top 20 HubSpot contacts by last activity and add them to a Google Sheet"
```
Agent uses Composio's `HUBSPOT` to fetch contacts and `GOOGLESHEETS` to write rows.
### Cross-platform ad reporting
```
> "Compare my Meta Ads and LinkedIn Ads spend this month"
```
Agent uses `FACEBOOKADS` and `LINKEDIN` toolkits to pull campaign data.
### Notify team about new leads
```
> "Get my Salesforce leads from today and post a summary in Slack #sales"
```
Agent uses `SALESFORCE` to read leads and `SLACK` to post messages.
## Limitations
- **Coverage depth varies** — some toolkits expose hundreds of actions (HubSpot, Google Sheets), others only a handful
- **No customization** — you can't modify Composio's action schemas or add custom endpoints
- **Vendor dependency** — if Composio's servers are down, all connected tools are unavailable
- **Rate limits apply** — Composio enforces its own rate limits on top of each tool's native limits
- **OAuth tokens** — managed by Composio; you don't control token refresh or storage
- **Action naming** — Composio action names may differ from native API terminology
## Pricing
| Plan | Monthly Price | API Calls | Notes |
|------|--------------|-----------|-------|
| Free | $0 | 20,000 | Good for exploration and personal use |
| Growth | $29 | 200,000 | For regular use across multiple tools |
| Business | $229 | 2,000,000 | For teams and heavy automation |
## Rate Limits
- Free tier: 20,000 calls/month, 10 req/sec
- Growth tier: 200,000 calls/month, 50 req/sec
- Business tier: 2,000,000 calls/month, 100 req/sec
## See Also
- [Quick start guide](../composio/README.md) — install, connect, and use in 5 minutes
- [Marketing tools mapping](../composio/marketing-tools.md) — detailed toolkit-to-category reference
## Relevant Skills
- analytics-tracking (cross-platform data via Composio connectors)
- email-sequence (ActiveCampaign, Klaviyo access)
- paid-ads (Meta Ads, LinkedIn Ads MCP access)
- referral-program (Shopify integration)
+160
View File
@@ -0,0 +1,160 @@
# Contentful
Enterprise headless CMS with multi-locale support, two-API architecture, and composable content.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | Content Delivery API (read), Content Management API (write) |
| MCP | - | No official MCP server |
| CLI | ✓ | `contentful-cli` for spaces, content types, migrations |
| SDK | ✓ | `contentful` (delivery), `contentful-management` (management) |
## Authentication
- **Delivery API (CDA)**: `Authorization: Bearer {delivery_token}`
- Base URL: `https://cdn.contentful.com`
- Read-only, CDN-cached
- **Preview API (CPA)**: `Authorization: Bearer {preview_token}`
- Base URL: `https://preview.contentful.com`
- Read-only, returns draft content
- **Management API (CMA)**: `Authorization: Bearer {management_token}`
- Base URL: `https://api.contentful.com`
- Read/write, not cached
- **Tokens**: Create in Settings → API keys (delivery) or Settings → CMA tokens (management)
## Common Agent Operations
### Get entries (Delivery API)
```bash
GET https://cdn.contentful.com/spaces/{space_id}/environments/{environment}/entries?content_type=blogPost&limit=10
Authorization: Bearer {delivery_token}
```
### Get single entry
```bash
GET https://cdn.contentful.com/spaces/{space_id}/environments/{environment}/entries/{entry_id}
Authorization: Bearer {delivery_token}
```
### Search and filter
```bash
# By field value
GET https://cdn.contentful.com/spaces/{space_id}/environments/{environment}/entries?content_type=blogPost&fields.slug=my-post
# Full-text search
GET https://cdn.contentful.com/spaces/{space_id}/environments/{environment}/entries?query=marketing+strategy
# By date range
GET https://cdn.contentful.com/spaces/{space_id}/environments/{environment}/entries?content_type=blogPost&fields.publishDate[gte]=2024-01-01
```
### Create entry (Management API)
CMA uses PUT with a client-generated `entry_id`. To auto-generate, use POST without an ID in the path.
```bash
PUT https://api.contentful.com/spaces/{space_id}/environments/{environment}/entries/{entry_id}
Content-Type: application/vnd.contentful.management.v1+json
X-Contentful-Content-Type: blogPost
Authorization: Bearer {management_token}
{
"fields": {
"title": {"en-US": "New Post"},
"slug": {"en-US": "new-post"},
"body": {"en-US": "Post content here"}
}
}
```
### Update entry
```bash
PUT https://api.contentful.com/spaces/{space_id}/environments/{environment}/entries/{entry_id}
Content-Type: application/vnd.contentful.management.v1+json
X-Contentful-Version: {current_version}
Authorization: Bearer {management_token}
{
"fields": {
"title": {"en-US": "Updated Title"}
}
}
```
### Publish entry
```bash
PUT https://api.contentful.com/spaces/{space_id}/environments/{environment}/entries/{entry_id}/published
X-Contentful-Version: {current_version}
Authorization: Bearer {management_token}
```
### Unpublish entry
```bash
DELETE https://api.contentful.com/spaces/{space_id}/environments/{environment}/entries/{entry_id}/published
X-Contentful-Version: {current_version}
Authorization: Bearer {management_token}
```
## CLI Commands
```bash
# Login
contentful login
# List spaces
contentful space list
# Export space content
contentful space export --space-id {space_id}
# Import content
contentful space import --space-id {space_id} --content-file export.json
# Create migration
contentful space migration --space-id {space_id} migration.js
# List content types
contentful content-type list --space-id {space_id}
```
## Key Objects
- **Space** — Top-level container for content (one per project)
- **Environment** — Isolated content branch (`master`, `staging`, etc.)
- **Content Type** — Schema definition with fields and validations
- **Entry** — Content item of a specific content type
- **Asset** — Media file (image, video, document)
- **Locale** — Language/region variant (e.g., `en-US`, `de-DE`)
## When to Use
- Multi-locale marketing content (global sites)
- Enterprise content operations with approval workflows
- Composable content architecture
- Teams needing established vendor support and SLAs
- Content reuse across multiple channels
## Rate Limits
Rate limits are plan-dependent. Check `X-Contentful-RateLimit-Second-Limit` response header for your actual limits.
- Delivery API (CDA): Varies by plan (typically high throughput)
- Preview API (CPA): Lower than CDA (varies by plan)
- Management API (CMA): ~10 requests per second (default)
- See [Contentful technical limits](https://www.contentful.com/developers/docs/technical-limits/) for current values
## Relevant Skills
- content-strategy (CMS selection, content modeling)
- programmatic-seo (CMS as data source for generated pages)
- site-architecture (multi-locale URL structure)
+159
View File
@@ -0,0 +1,159 @@
# Firehose
Real-time web data streaming API that monitors web pages and delivers matching content instantly via server-sent events (SSE). Built for competitive intelligence, brand monitoring, and news tracking without polling.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | RESTful endpoints for managing rules + SSE for streaming |
| MCP | - | Not available |
| CLI | - | Not available |
| SDK | - | Native AI agent skill available |
## Authentication
- **Type**: API Key
- **Currently**: Free beta — no credit card required
- **Get access**: Sign up at firehose.com
## Core Concepts
**Rules** — Filters that define what content to match. Uses Lucene query syntax.
**Stream** — A server-sent event (SSE) connection that delivers matching content in real-time as it's published on the web.
Instead of polling an endpoint on a schedule, you define rules once and receive a continuous stream of matches as they happen.
## Query Syntax (Lucene)
```
# Exact phrase
"your brand name"
# Field-specific
title:tesla
domain:reuters.com
domain:techcrunch.com
# Boolean operators
"Series A" AND (SaaS OR software)
competitor OR "competitor name" NOT "your company"
# Wildcard
market* AND funding
# Language filter
language:en
# Date range
publish_time:[2026-01-01 TO 2026-03-18]
# ML-classified categories
category:finance
category:technology
```
## Common Agent Operations
### Create a monitoring rule
```bash
POST https://api.firehose.com/rules
{
"query": "\"your brand name\" OR \"your product name\"",
"label": "brand-mentions"
}
```
### List active rules
```bash
GET https://api.firehose.com/rules
```
### Delete a rule
```bash
DELETE https://api.firehose.com/rules/{rule_id}
```
### Connect to the stream
```bash
GET https://api.firehose.com/stream
Authorization: Bearer {api_key}
# Returns server-sent events:
# data: {"url": "...", "title": "...", "publish_time": "...", "matched_rule": "..."}
```
### Example: Node.js stream consumer
```javascript
import EventSource from 'eventsource';
const stream = new EventSource('https://api.firehose.com/stream', {
headers: { Authorization: `Bearer ${process.env.FIREHOSE_API_KEY}` }
});
stream.onmessage = (event) => {
const item = JSON.parse(event.data);
console.log(`[${item.matched_rule}] ${item.title} — ${item.url}`);
};
```
## Use Cases for Marketing
### Competitive intelligence
Monitor competitors' press coverage, product announcements, and funding news in real-time.
```
query: "CompetitorName" AND (launch OR funding OR "product update" OR partnership)
```
### Brand monitoring
Track mentions of your brand across news and web content.
```
query: "YourBrand" OR "YourProductName" NOT site:yourdomain.com
```
### Category / market news
Stay current on your market without manually checking sources.
```
query: category:technology AND ("no-code" OR "low-code") AND funding
domain:techcrunch.com OR domain:venturebeat.com
```
### Lead trigger monitoring
Track signals that indicate a prospect is ready to buy (hiring, funding, tool mentions).
```
query: ("hiring" OR "we're growing") AND "RevOps" AND (HubSpot OR Salesforce)
```
### PR and link building
Get alerted when publications cover topics in your space, enabling timely outreach.
```
query: "best [category] tools" OR "top [category] software" AND publish_time:[now-7d TO now]
```
## When to Use
- Real-time competitive intelligence (faster than Google Alerts)
- Brand mention monitoring across news and web
- Market signal tracking for sales prospecting
- Automated content curation pipelines
- Trigger-based workflows (new mention → Slack alert, CRM update, etc.)
## Relevant Skills
- competitor-alternatives
- customer-research
- content-strategy
- cold-email
- marketing-ideas
+182
View File
@@ -0,0 +1,182 @@
# Introw PRM
Partner Relationship Management platform for managing channel partners, tracking partner-sourced deals, commissions, tasks, and engagement — with built-in business review generation.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | - | Not available |
| MCP | ✓ | Full read/write via Claude connector |
| CLI | - | Not available |
| SDK | - | Not available |
## Authentication
- **Type**: OAuth2 (via MCP connector)
- **Setup**: Connect via Claude MCP connector — no API key management needed
- **Scope**: All data is scoped to the authenticated organisation
## Common Agent Operations
All operations are performed via MCP tools. The following are the primary tool calls available.
### Search Partners
```
search_partners
dateRange: { field: "CREATED_AT" | "LAST_ACTIVITY_AT", from: "YYYY-MM-DD", to: "YYYY-MM-DD" }
```
Returns: partner name/ID, contact info, tier, lifecycle stage, categories, country, last activity date.
### Search CRM Objects (Deals, Tickets, Leads, Companies, Contacts)
```
search_crm_objects
objectType: "DEAL" | "TICKET" | "LEAD" | "COMPANY" | "CONTACT"
stage: "OPEN" | "WON" | "LOST"
view: "ALL" | "DUE" | "OVERDUE" | "INACTIVE"
rollingDateFilter: { field: "CLOSED_AT", value: "THIS_QUARTER" }
sortBy: { property: "AMOUNT", direction: "DESC" }
limit: 10
```
Synonym mapping: Opportunity/Forecast → `DEAL`, Account → `COMPANY`, Case → `TICKET`.
### Search Tasks
```
search_tasks
status: "TODO" | "IN_PROGRESS" | "PENDING" | "COMPLETED" | "DONE"
partnerId: "{partner_id}"
```
### Search Commissions
```
search_commissions
partnerId: "{partner_id}"
```
Returns: commission amounts, currency, payment status, associated partner and deals.
### Generate Business Review (QBR/MBR/WBR)
```
generate_business_review
duration: "QUARTERLY" | "MONTHLY" | "WEEKLY"
partnerId: "{partner_id}"
```
Returns: pipeline & forecast analysis, form submissions overview, mutual action plan, goal tracking, timed agenda and next steps.
### Search Partner Engagement
```
search_partner_engagement
partnerId: "{partner_id}"
type: "ROOM_VISIT" | "OBJECT_SHARE" | "COMMENT" | "FORM_SUBMIT" | "TASK_CREATED" | ...
dateRange: { from: "YYYY-MM-DD", to: "YYYY-MM-DD" }
```
Returns: comments, deal updates, asset views, task events, portal visits, form submissions, announcements, quotes.
### Add Comment to Deal/Object
```
add_comment
comment: "Comment text"
objectId: "{crm_object_id}"
objectType: "DEAL" | "TICKET" | "LEAD" | "COMPANY" | "CONTACT"
```
### Create or Update Tasks
```
add_task
name: "Task title"
dueDate: "2025-02-20"
assignedTo: "PARTNER" | "ORGANISATION"
partnerId: "{partner_id}"
update_task
taskId: 123
status: "TODO" | "IN_PROGRESS" | "DONE"
```
### Update CRM Object Properties
```
update_crm_object
objectId: "{crm_object_id}"
objectType: "DEAL"
propertiesToUpdate: { "amount": 50000, "stage": "Negotiation" }
```
### Share Lead or Register Deal
Two-step flow:
1. **Discovery**: provide `objectType` and `callToAction` to get form fields
2. **Submit**: provide `formId` and `userProvidedData` to submit
```
share_lead_or_register_deal
objectType: "Deal"
callToAction: "Register Deal"
partnerId: "{partner_id}"
```
## Key Metrics
### Partner Data
- `id` - Partner ID
- `name` - Partner company name
- `championEmail` - Primary contact email
- `tier` - Current tier level
- `lifecycleStage` - Partner lifecycle stage
- `categories` - Partner categories
- `country` - Partner country
- `lastActivityAt` - Last activity date
### CRM Object Data
- `objectId` - External CRM ID
- `objectType` - DEAL, TICKET, LEAD, COMPANY, CONTACT
- `stage` - OPEN, WON, LOST
- `amount` - Deal amount
- `closeDate` - Expected close date
### Commission Data
- `amount` - Commission amount
- `currency` - Payment currency
- `paymentStatus` - Current payment status
- `partnerId` - Associated partner
- `dealId` - Associated deal
### Engagement Data
- `type` - Activity type (ROOM_VISIT, COMMENT, FORM_SUBMIT, etc.)
- `partnerId` - Partner involved
- `crmObjectId` - Related CRM object
- `createdAt` - Activity timestamp
## When to Use
- Managing channel partner relationships and tracking partner activity
- Reviewing partner-sourced pipeline (deals, leads, opportunities)
- Preparing QBR/MBR/WBR meetings with automated business review generation
- Tracking partner commissions and payouts
- Managing mutual action plans via tasks assigned to partners or internal teams
- Processing deal registrations and lead sharing from partners
- Monitoring partner portal engagement and content asset views
## Rate Limits
- Rate limits managed by the MCP connector
- All data scoped to authenticated organisation
## Relevant Skills
- revops
- sales-enablement
- referral-program
- competitor-alternatives
+113
View File
@@ -0,0 +1,113 @@
# Nitrosend
AI-native email platform that combines transactional and marketing email in one stack, controlled entirely through AI assistants via MCP. No traditional dashboard required — build sequences, campaigns, and automations by prompting.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST API available |
| MCP | ✓ | Full MCP support — primary integration method |
| CLI | - | Not available |
| SDK | - | Use MCP or API directly |
## Authentication
- **Type**: API Key
- **MCP Setup**: Add Nitrosend MCP server to your Claude Code / AI assistant config
- **BYO Infrastructure**: Optionally bring your own SendGrid, Postmark, SES, or Resend keys
- **Get access**: Sign up at nitrosend.com — free tier includes 8K emails initially, then 500/month
## Pricing
| Plan | Cost | Volume |
|------|------|--------|
| Free | $0 | 8K initially, then 500/mo |
| Hobby | $20/mo | 25,000/mo |
| Pro | $100/mo | 150,000/mo |
| Scale | $300/mo | 500,000/mo |
| BYO | $60/mo | Unlimited (your infrastructure) |
Unlimited contacts on all plans — pay per email sent, not per subscriber.
## What Makes It Different
- **AI-first**: Designed to be controlled by Claude, ChatGPT, Codex, Cursor, Gemini, Windsurf — not a human clicking through a dashboard
- **Unified transactional + marketing**: Single platform for both, on separate infrastructure
- **Automatic optimization**: Continuously tests subject lines, send times, and content based on engagement
- **Auto-configured deliverability**: DKIM, SPF, DMARC, and dedicated IP warmup handled automatically
- **Migration-friendly**: Import from Mailchimp, Klaviyo, ActiveCampaign, HubSpot
## Common Agent Operations (via MCP)
### Create an email sequence
```
"Create a 5-email onboarding sequence for new SaaS trial users.
Email 1: Welcome + what to do first (send immediately)
Email 2: Key feature highlight (day 2)
Email 3: Use case / success story (day 4)
Email 4: Check-in + support offer (day 7)
Email 5: Upgrade prompt (day 12)"
```
Nitrosend builds the sequence, timing, and sends — no manual setup in a dashboard.
### Send a transactional email
```
"Send a password reset email to user@example.com with a reset link valid for 1 hour."
```
### Create a campaign
```
"Create a re-engagement campaign for subscribers who haven't opened in 90 days.
Subject line variants: [A] 'We miss you', [B] 'Still interested in [topic]?'
Test both, send winner to remaining list after 4 hours."
```
### Check sequence performance
```
"Show me open rates, click rates, and unsubscribes for the onboarding sequence."
```
### Import a list
```
"Import this CSV of 2,000 subscribers from our Mailchimp export."
```
## Deliverability Setup
Nitrosend handles this automatically on signup:
- DKIM signing
- SPF record configuration
- DMARC policy
- Dedicated IP provisioning (Pro+)
- IP warmup schedule
For BYO plan users: bring your own SendGrid, Postmark, SES, or Resend account and Nitrosend routes through your infrastructure.
## When to Use
- Building email sequences via AI without touching a dashboard
- Teams already using Claude Code or other AI coding tools as their primary workflow
- Combining transactional (password resets, receipts) and marketing (nurture, campaigns) in one place
- Rapid sequence prototyping — describe the sequence, get it built
- Migrating from Mailchimp/Klaviyo and wanting AI control going forward
## When to Use Something Else
- **Customer.io** — if you need complex event-based branching logic and behavioral triggers
- **Klaviyo** — if you're in e-commerce and need deep Shopify integration
- **Resend** — if you need transactional-only and prefer a pure API/code approach
- **Kit** — if you're a creator or newsletter-first
## Relevant Skills
- email-sequence
- onboarding-cro
- churn-prevention
- lead-magnets
+45 -1
View File
@@ -8,7 +8,7 @@ Developer-friendly transactional email service with modern API.
|-------------|-----------|-------|
| API | ✓ | Simple REST API for sending emails |
| MCP | ✓ | Available via Resend MCP server |
| CLI | - | Not available |
| CLI | | Official Resend CLI |
| SDK | ✓ | Official SDKs for Node.js, Python, Go, etc. |
## Authentication
@@ -17,6 +17,49 @@ Developer-friendly transactional email service with modern API.
- **Header**: `Authorization: Bearer {api_key}`
- **Get key**: API Keys section in Resend dashboard
## CLI
### Install
```bash
npm install -g resend-cli
```
### Setup
```bash
resend login
# or set env var: RESEND_API_KEY=re_xxx
```
### Common commands
```bash
# Send a test email
resend emails send --from hello@example.com --to user@example.com --subject "Test" --text "Hello"
# List recent emails
resend emails list
# Get email status
resend emails get <email_id>
# List domains
resend domains list
# Add a domain
resend domains create --name example.com
# Verify a domain
resend domains verify <domain_id>
# List API keys
resend api-keys list
# Create an API key
resend api-keys create --name "Production"
```
## Common Agent Operations
### Send email
@@ -155,6 +198,7 @@ await resend.emails.send({
- Receipt and notification emails
- Developer-friendly email integration
- React-based email templates
- Quick CLI testing of email flows without writing code
## Rate Limits
+148
View File
@@ -0,0 +1,148 @@
# Sanity
Headless CMS with real-time collaboration, GROQ query language, and schema-as-code.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | GROQ queries, Mutations API, Assets API |
| MCP | - | No official MCP server |
| CLI | ✓ | `sanity` CLI for studio, datasets, deployment |
| SDK | ✓ | `@sanity/client`, `next-sanity`, `@sanity/image-url` |
## Authentication
- **Type**: API Token (Bearer)
- **Header**: `Authorization: Bearer skXXXXXX`
- **Tokens**: Create in Sanity Manage → API → Tokens
- **Permissions**: Read-only or Read+Write per token
## Common Agent Operations
### Query documents (GROQ)
URL-encode the `query` parameter value in practice.
```bash
GET https://{projectId}.api.sanity.io/v2024-01-01/data/query/{dataset}?query=*[_type == "post"]{title, slug, publishedAt}
```
### Query with parameters
```bash
GET https://{projectId}.api.sanity.io/v2024-01-01/data/query/{dataset}?query=*[_type == "post" && slug.current == $slug][0]&$slug="my-post"
```
### Get document by ID
```bash
GET https://{projectId}.api.sanity.io/v2024-01-01/data/doc/{dataset}/{documentId}
```
### Create document (Mutations API)
```bash
POST https://{projectId}.api.sanity.io/v2024-01-01/data/mutate/{dataset}
{
"mutations": [
{
"create": {
"_type": "post",
"title": "New Post",
"slug": {"_type": "slug", "current": "new-post"},
"body": [{"_type": "block", "children": [{"_type": "span", "text": "Hello"}]}]
}
}
]
}
```
Use `createOrReplace` instead if you want to upsert (requires `_id` field).
### Delete document
```bash
POST https://{projectId}.api.sanity.io/v2024-01-01/data/mutate/{dataset}
{
"mutations": [
{"delete": {"id": "document-id"}}
]
}
```
### Patch document
```bash
POST https://{projectId}.api.sanity.io/v2024-01-01/data/mutate/{dataset}
{
"mutations": [
{
"patch": {
"id": "document-id",
"set": {"title": "Updated Title"}
}
}
]
}
```
## CLI Commands
```bash
# Create a new Sanity project
sanity init
# Start the studio locally
sanity dev
# Deploy studio to Sanity hosting
sanity deploy
# Export dataset
sanity dataset export production ./backup.tar.gz
# Import dataset
sanity dataset import ./data.ndjson production
# List datasets
sanity dataset list
# Run a GROQ query
sanity documents query '*[_type == "post"][0..9]{title, slug}'
```
## Key Objects
- **Document** — Top-level content item with `_id`, `_type`, `_rev`
- **Asset** — Images and files stored in Sanity CDN
- **Reference** — Link between documents (`{_type: "reference", _ref: "doc-id"}`)
- **Portable Text** — Rich text as structured array of blocks
- **Dataset** — Isolated content database (e.g., `production`, `staging`)
- **Slug** — URL-friendly identifier (`{_type: "slug", current: "my-slug"}`)
## When to Use
- Structured content for marketing sites and blogs
- Multi-channel content delivery (web, mobile, email)
- Real-time collaborative editing workflows
- Content-heavy sites with complex models
- Next.js or React-based frontends
## Rate Limits
Rate limits vary by plan. Documented defaults:
- CDN API (queries): High throughput, globally distributed (no hard per-second cap published)
- API (without CDN): Rate-limited per project (varies by plan)
- Mutations: Rate-limited per project (varies by plan)
- See [Sanity technical limits](https://www.sanity.io/docs/technical-limits) for current values
## Relevant Skills
- content-strategy (CMS selection, content modeling)
- programmatic-seo (CMS as data source for generated pages)
- site-architecture (URL structure from CMS slugs)
+167
View File
@@ -0,0 +1,167 @@
# Strapi
Open-source headless CMS with self-hosted option, REST and GraphQL APIs, and customizable admin panel. Targets Strapi 5.
## Capabilities
| Integration | Available | Notes |
|-------------|-----------|-------|
| API | ✓ | REST (default), GraphQL (plugin) |
| MCP | - | No official MCP server |
| CLI | ✓ | `strapi` CLI for project setup, content types, plugins |
| SDK | ✓ | `@strapi/sdk-js`, `@strapi/blocks-react-renderer` |
## Authentication
- **Type**: API Token or Users & Permissions JWT
- **Header**: `Authorization: Bearer {api_token}`
- **Tokens**: Create in Settings → API Tokens (full access, read-only, or custom)
- **JWT**: `POST /api/auth/local` with identifier + password returns JWT
## Common Agent Operations
### List documents
```bash
GET http://localhost:1337/api/articles?populate=*
Authorization: Bearer {api_token}
```
### Get single document
```bash
GET http://localhost:1337/api/articles/{documentId}?populate=*
Authorization: Bearer {api_token}
```
### Filter and sort
```bash
# Filter by field
GET http://localhost:1337/api/articles?filters[slug][$eq]=my-post
# Multiple filters
GET http://localhost:1337/api/articles?filters[category][name][$eq]=Marketing&filters[publishedAt][$notNull]=true
# Sort
GET http://localhost:1337/api/articles?sort=publishedAt:desc
# Pagination
GET http://localhost:1337/api/articles?pagination[page]=1&pagination[pageSize]=10
```
### Create document
```bash
POST http://localhost:1337/api/articles
Content-Type: application/json
Authorization: Bearer {api_token}
{
"data": {
"title": "New Article",
"slug": "new-article",
"body": "Article content here",
"category": "{category_documentId}"
}
}
```
### Update document
```bash
PUT http://localhost:1337/api/articles/{documentId}
Content-Type: application/json
Authorization: Bearer {api_token}
{
"data": {
"title": "Updated Title"
}
}
```
### Delete document
```bash
DELETE http://localhost:1337/api/articles/{documentId}
Authorization: Bearer {api_token}
```
### Get draft content
```bash
# Strapi 5 uses status parameter (replaces v4 publicationState)
GET http://localhost:1337/api/articles?status=draft
Authorization: Bearer {api_token}
```
Publishing and unpublishing are managed through the Strapi admin panel or Document Service API (server-side). The public REST API does not expose dedicated publish/unpublish endpoints.
### Populate relations and components
```bash
# Populate all relations
GET http://localhost:1337/api/articles?populate=*
# Populate specific relations
GET http://localhost:1337/api/articles?populate[0]=author&populate[1]=category
# Deep populate
GET http://localhost:1337/api/articles?populate[author][populate]=avatar
```
## CLI Commands
```bash
# Create new Strapi project
npx create-strapi@latest my-project
# Start development server
strapi develop
# Build admin panel
strapi build
# Generate content type
strapi generate content-type
# Generate controller
strapi generate controller
# Add GraphQL plugin
npm install @strapi/plugin-graphql
```
## Key Objects
- **Content Type** — Schema definition (collection type or single type)
- **Document** — Content item identified by `documentId` (Strapi 5 pattern)
- **Component** — Reusable field group (e.g., SEO fields, CTA block)
- **Dynamic Zone** — Flexible content area accepting multiple component types
- **Media** — Files managed through the Media Library
- **Locale** — i18n locale for content translation (plugin-based)
## When to Use
- Self-hosted CMS with full data ownership
- Budget-conscious projects (no per-seat pricing)
- Custom admin panel or plugin requirements
- Teams with DevOps capability
- Projects needing both REST and GraphQL access
## Rate Limits
- Self-hosted: No built-in rate limits (configure via middleware or reverse proxy)
- Strapi Cloud: Varies by plan
- Recommended: Add rate limiting middleware for production APIs
## Relevant Skills
- content-strategy (CMS selection, content modeling)
- programmatic-seo (CMS as data source for generated pages)
- site-architecture (URL structure from CMS slugs)