Install
openclaw skills install @social-media-skills/audience-researchUse to develop a deep, usable understanding of who a brand creates content for — sharp enough that every content skill resonates with them specifically. Run when the user says "who's my audience," "audience research," "target audience," "build a persona," "customer profile," "ideal customer profile" / "ICP," "who am I talking to," "understand my followers," or before content work that needs more audience depth than the brand-profile sketch. Reads brand-profile first and goes deeper: jobs-to-be-done, pains, objections, and the audience's ACTUAL language (voice-of-customer), grounded in real sources where possible — never demographic theater. Produces an audience.md that content-pillars, batch-content-plan, and the content skills read. Works for any business.
openclaw skills install @social-media-skills/audience-researchKnowing the audience deeply is the highest-leverage input to good content. You can have perfect voice and clean mechanics and still get ignored if the content doesn't speak to what the audience actually wants, in words they actually use. This skill builds that understanding — and writes it down so every other skill can use it.
It goes deeper than the audience sketch in brand-profile. Two ideas drive it:
brand-profile, when content needs to land harder and the audience sketch isn't enough.content-pillars or a big batch-content-plan (audience pains feed both).When NOT to use it: if a current audience.md exists, load it, summarize it, and move on
unless the user wants to revisit.
Load brand-profile.md. It has the positioning, the audience sketch, and the POV. This skill
expands that sketch into something operational. If there's no brand profile, run it first.
The difference between research and guessing is evidence. Mine the audience's real words and
problems from whatever sources are available (see references/voice-of-customer.md):
reddit-marketing).Use what the user provides; if the agent can access public sources, mine those too. Where evidence is thin, flag the gap and mark assumptions as hypotheses to validate — never fabricate audience language or pains.
Pick the 1–3 segments that matter most — not "everyone." For each, separate two roles when they differ (especially in B2B):
They're often different people with different needs; content usually leads with the follower.
See references/jobs-to-be-done.md.
For each segment, capture only what changes how you'd create content:
Demographics only if they genuinely change the content (e.g., region for a local business).
From the evidence, collect the audience's actual phrases — how they describe the problem, the
desired outcome, and their objections — in their words, not paraphrased into marketing-speak.
This bank is what makes copy feel like it gets them. See references/voice-of-customer.md.
Produce audience.md using references/audience-template.md. Flag the primary segment and the
core transformation (before → after). Summarize back and invite edits. Content skills read
this on every task.
If a field wouldn't change a single post, cut it. If you couldn't source a claim, flag it.
brand-profile — read first; supplies the audience sketch and positioning.content-pillars — audience pains/jobs become content pillars.batch-content-plan, the content skills — use segments, pains, and the language bank.voice-builder — the brand's voice (distinct from the audience's language captured here).references/jobs-to-be-done.md — the JTBD lens, pains/desires/objections, why it beats personas.references/voice-of-customer.md — mining real sources for the audience's language (the core).references/audience-template.md — the audience.md output schema.references/examples.md — audience profiles across business types vs the useless generic persona.