Best for
- Also use when content feels unfocused or generic (that's an audience problem), when conversion is low because messaging doesn't resonate, when starting any new project (audience should be first), or when any downstream…
MoizIbnYousaf/marketing-cli/skills/audience-research/SKILL.md
Build detailed buyer personas and audience profiles from research. Use this skill whenever the user mentions audience, buyer persona, ideal customer, target market, ICP, watering holes, 'who am I selling to', customer research, or audience profile. Also use when content feels unfocused or generic (that's an audience problem), when conversion is low because messaging doesn't resonate, when starting any new project (audience should be first), or when any downstream skill needs audience.md but it d
Decision brief
Every marketing skill gets better when you know your audience. Generic copy happens when you write for "everyone." Specific copy that converts happens when you write for a real person with real problems.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/audience-research"Inspect the Agent Skill "audience-research" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/audience-research/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Same as positioning - start with the outcome, not the product.
Same as positioning - start with the outcome, not the product.
For each distinct audience segment (usually 1-3), build:
Where does this audience already gather? This is where you'll distribute content.
For each persona, identify:
Permission review
The documentation includes network, browsing, or remote request actions.
When `exa-search` / Exa MCP or web search is available. Deep research into where the audienceEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 89/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 27 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Note: Examples below use fictional brands (Acme, Lumi, Helm). Replace with your own brand context.
Every marketing skill gets better when you know your audience. Generic copy happens when you write for "everyone." Specific copy that converts happens when you write for a real person with real problems.
This skill builds that audience profile. It's the foundation - 8 of 11 content
skills read audience.md to shape their output. Running this first makes
everything downstream sharper.
No SaaS tools needed. Systematic research plus web search.
brand/ directory exists in the project root.voice-profile.md, positioning.md, audience.md, competitors.md, creative-kit.md, stack.md, learnings.md.brand/ does not exist, proceed without it - this skill works standalone.Before starting, check whether ./brand/audience.md already exists.
Do not start from scratch. Instead:
Read the existing audience profile.
Present a summary of current personas:
EXISTING AUDIENCE PROFILE
Last updated {date} by /audience-research
Personas:
├── {Persona 1 name} {one-liner}
├── {Persona 2 name} {one-liner}
└── Primary: {primary persona name}
Watering holes: {N} mapped
──────────────────────────────────────────────
What would you like to do?
1. Refine existing personas with fresh research
2. Add a new persona segment
3. Deep-dive into watering holes
4. Full rebuild from scratch
Process the user's choice:
Before overwriting, show what changed and ask for confirmation.
Proceed to the full process below.
Build a complete picture of who buys this product, why they buy it, where they hang out, and what language they use. The output is structured enough for other skills to parse but human enough to be useful for strategy.
Choose based on what's available:
When no brand files exist and minimal information is provided. Ask 5 key questions:
From these 5 answers, generate a working persona. It won't be perfect but it gives every downstream skill something to work with.
When you have basic product info or existing brand files. Systematic persona construction using demographics, psychographics, and jobs-to-be-done.
When exa-search / Exa MCP or web search is available. Deep research into where the audience
lives online, what language they use, what they complain about, and what they
aspire to.
Same as positioning - start with the outcome, not the product.
The gap defines who your audience is: people stuck in the BEFORE state who want the AFTER state but haven't found a good way to get there.
For each distinct audience segment (usually 1-3), build:
Demographics (who they are):
Psychographics (how they think):
Jobs-to-be-done (why they hire your product - see references/jtbd-framework.md for the full framework, Forces of Progress, and job mapping template):
Language patterns (how they talk):
Where does this audience already gather? This is where you'll distribute content.
Search process (use exa-search / Exa MCP when available):
Map the landscape:
──────────────────────────────────────────────────
AUDIENCE WATERING HOLES
──────────────────────────────────────────────────
Online Communities
├── r/[subreddit] - [activity level, relevance]
├── [Forum/Discord] - [activity level, relevance]
└── [Facebook Group] - [activity level, relevance]
Content They Consume
├── [Newsletter] - [subscriber count if known]
├── [Podcast] - [relevance]
└── [Blog/Publication] - [relevance]
Social Platforms
├── [Platform] - [how they use it]
└── [Platform] - [how they use it]
Events & Conferences
└── [Event] - [relevance]
──────────────────────────────────────────────────
For each persona, identify:
Pain points (what hurts today):
Objections (what stops them from buying):
Search for actual quotes from the audience - Reddit posts, review sites, forum threads, social media. These are gold for copywriting.
Look for:
Write ./brand/audience.md with this structure. The ## Archetypes block at the top is the structured contract consumed by Studio's archetype-pulse-cards and any future skill that needs a card-shaped persona summary. The fuller persona blocks below it carry the long-form context.
---
title: Audience Profile
type: audience-research
skill: audience-research
date: [ISO date]
personas: [number]
primary_persona: [name]
archetypes: [number]
---
# Audience Profile - [Product/Project Name]
## Archetypes
Card-shaped summary of every persona. One archetype per persona. Required fields per archetype: `name`, `one_liner`, `demographic`, `top_pain`, `top_desire`, `watering_hole`, `language_quote`. Do not skip fields. If you do not have evidence for one, write "not measured" rather than fabricating.
### Archetype: [Name]
- **one_liner:** [Who they are and what they want, one sentence]
- **demographic:** [Role, company size, technical level - single line]
- **top_pain:** [The single biggest pain in their words]
- **top_desire:** [The single biggest goal in their words]
- **watering_hole:** [Primary community / channel where they live]
- **language_quote:** [One actual quote or representative phrase, in quotes]
### Archetype: [Name 2]
[Same six fields. Repeat for each persona.]
---
## Primary Persona: [Name]
**One-liner:** [Who they are and what they want in one sentence]
### Demographics
- **Role:** [title/role]
- **Company:** [size/type]
- **Technical level:** [low/medium/high]
### Psychographics
- **Goals:** [what they want]
- **Fears:** [what keeps them up at night]
- **Values:** [what they believe about this category]
### Jobs-to-be-Done
- **Functional:** [task they need done]
- **Emotional:** [how they want to feel]
- **Social:** [how they want to be perceived]
### Pain Points
1. [Pain point with emotional context]
2. [Pain point with emotional context]
3. [Pain point with emotional context]
### Objections
1. [Objection] → [How to address it]
2. [Objection] → [How to address it]
### Language Mines
> "[Actual quote or representative language]"
> "[Actual quote or representative language]"
---
## Watering Holes
[Community map from Step 3]
---
## Secondary Persona: [Name] (if applicable)
[Same structure, abbreviated]
| Level | Context Available | Output Quality |
|---|---|---|
| L0 | Nothing - 5 questions only | Working persona, generic watering holes |
| L1 | Product info + basic brand files | Targeted persona, category-specific insights |
| L2 | + competitor data from competitors.md | Differentiated personas, competitive gaps |
| L3 | + web research via exa-search | Real quotes, verified watering holes, data-backed |
| L4 | + existing audience.md (refinement) | Evolved personas with historical learning |
Project: Acme (verified meal delivery app)
Persona: Sarah, the Busy Parent
Persona: Ahmed, the College Student
After writing audience.md, present:
WHAT'S NEXT
Your audience profile is set. Every downstream
skill will use these personas. Recommended moves:
-> /positioning-angles Find the angle that
resonates with this
audience (~15 min)
-> /competitive-intel Map competitors your
audience is comparing
you against (~10 min)
-> /keyword-research Find what this audience
searches for (~15 min)
Or tell me what you're working on and
I'll route you.
After delivering the audience profile:
How did this land?
a) Great -- using these personas as-is
b) Good -- tweaked some details
c) Rewrote significantly
d) Haven't used yet
Processing feedback:
./brand/learnings.md with persona names and context.--cwd context if provided - the working directory determines which brand/ to read and write.Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. 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," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
coreyhaines31/marketingskills
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 o
event4u-app/agent-config
Use when the user says "review the design", "check the UI", or wants a comprehensive UI/UX review. Uses a 7-phase methodology covering interaction, responsiveness, accessibility, and more.
K-Dense-AI/scientific-agent-skills
Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.