Audience research answers, for the people a brand sells to: who they are (buyer groups, sized in buyers, with buying roles), what they want, their problems and how we solve them, their words (the customer-quote bank), where they gather, and how to find and reach them. It owns the brand's one list of buyer groups and the quote bank; market research reads them and sizes the market around them (its figures are context; group sizes are counted here), and every maker reads them. A list of named people is a separate mode, only when asked. The craft is in references/audience-research.md and references/quote-bank.md; this file is the order of work.
The rule that matters most: the brand's own customers first, then free pass, report once (../marketing-guide/research-pattern.md (in the marketing-guide skill) — read it before the first search). One specific question for the brand's customer data is allowed up front; after that, cover every group on every dimension from free sources before the next message. Never stop to ask "which group should I go deeper on?". Paid reads only deepen it, with one credit yes.
Depth matches the ask; keep to these call caps (paid reads are credits, only after the one credit yes):
- Quick ("who's our customer, roughly?", a single question): no workers, about 20 web calls in all, the answer in chat plus a one-page report.
- Standard ("do the audience research", the default): at most three group workers, one level only, each capped (segment-pass § Budget); news done by you (about 6 searches) and sizing gaps the workers left (about 6 more). About 80 web calls in all.
- Deep (the marketer asks for depth, or after the paid top-up yes): up to five workers; the caps stay.
Never brief a worker to load this playbook or any skill — the brief is the
research-audience-segment-passskill pasted whole plus the inputs, and nothing else; workers use only web search and page reads, no GooseWorks calls. Sampling and saving the quote bank (references/quote-bank.md) are yours, not the workers'. Workers never start workers. Search before you fetch; fetch only a page you'll quote or count from.
What you get
- The audience report through the
write-reportskill (opens with one click, saved to the brand): in short; decisions for you; the buyer groups — ranked, each sized in buyers or companies, who uses / pays / approves, the lead one named — labelled provisional when the evidence doesn't clear the bar; per group what they want, their problems and how we solve them (or "you'd need proof of X first"), their words, where they gather and how to reach them; why they buy and why they leave (from the brand's own data, where it exists); how rivals talk to them; what to do; what we're not doing; what we couldn't check; sources with a source-skew line. - Buyer groups and the quote bank — the durable records every other playbook reads.
- Only in list mode: a list built, a list the marketer brings scored (and inbound leads ranked by who to answer first), or a standing watch — named accounts and people with dated sources, honest contact routes and a buying signal per row (references/list-mode.md).
Before you start
- Setup first: do the
marketing-guideskill §1–2 (connect, brand, brain read) before anything else; the job line is "I research your audience and save what I find through it." Here: callget_startedwithwants: "more"; when it asks which brand, ask in one line and call it again. On the brain path open the audience and customer chapters, 14 (rules), 22 (what we've made and run) and 23 (what is working), andgooseworks:brand_knowledge_searchfor customer evidence, synced reviews, pasted exports and earlier research; an audience proposal from an earlier run may still be waiting for a yes. Fallback brand read:gooseworks:brand_read(summary, kit — especiallyaudience— products, competitors, organic, learnings) andgooseworks:knowledge_searchfor the same. Either path:gooseworks:competitor_read; workspace:research/audience/(buyer groups, quote bank, last report — a re-run says what changed),research/market/(the latest market report — its market figures are context; group sizes are counted here),research/competitors/(rival records and report). Read everyoutreach/*/results-working.md(write-outreach) with open request lines —Hold needed(exclude those accounts until answered),Find needed(find that role at that account),Quote needed(add the phrase to the bank) — answering each under its line, and the lessons that change the fit. Claims: only the read step of theclaims-gateskill now. - Since last time. Run memory for this run's job (references/run-memory.md:
audience research,prospect list,lead scoringor a watch), including what the ledger shows happened to earlier lists and alerts. Its 3–5 lines open the reply and the report, and this run uses them (weight what replied, don't repeat what didn't). - Ask for the brand's own customer data — once, specifically, only when it has customers (audience research only; in list mode it moves to the closing decisions) (paid plans live, reviews of the brand, users or orders mentioned in the brain) and no export is on file. One message, then wait:
"Before I start: your own customers are the best evidence, and I can't read them publicly. Could you share <the export that fits the company type — references/audience-research.md § Customer data>, plus any cancel reasons, win/loss notes or support themes? Paste or upload it — or say "go" and I'll start from public sources." No customers yet (pre-launch), or the marketer says go: start the free pass. Personal data in an export never goes to the brain; only counts and patterns do.
- No other question before the report. A list ask ("50 right-fit people with emails", a file to score, "tell me when…") goes straight to list mode — no audience pass first; it uses the saved buyer groups if they exist, else drafts the fit from the ask, the site and the brain, and offers the audience report afterwards. Out of scope (consumers as named individuals, journalists, investors, creators to pay): one line and the nearest thing this playbook does.
Steps
-
Frame — the brand's own side first. If customer data came in, read it first (references/audience-research.md § Customer data): who actually pays (company types, roles, plans, sizes), who stays and who leaves, the reasons they give. Then the brand's own site in the host browser (what it sells, to whom, pricing, logos, its words), the brain's
audiencetext, and the latest market and competitor reports. Draft 2–5 candidate buyer groups by situation — never demographics — each with how to recognise one (usable as ad targeting or list criteria). Where the brand's own facts disagree (site vs brain vs customer data), customer data wins; otherwise make the conflict the first decision. -
News first. Web search, last 90 days, for what is changing for these people: tools and platforms they must adopt, hiring and layoffs in their roles, budget shifts, regulation, the conversation everyone in the category is having.
-
Research every group. Pick the top three candidate groups for workers (a fourth or fifth only if the evidence demands it, with a light pass from you; its moves are labelled unverified unless they rest on a page you read). One worker per group — a subagent where the host supports it — given the text of the
research-audience-segment-passskill as its whole brief, with the inputs it lists: wants, problems and how we solve them, first-hand words, where they gather, three moves, how rivals talk to them, inside its budget. Launch them together; never a worker per source or per topic. Without subagents, group by group, each written toresearch/audience/segments/<slug>.mdbefore the next. Never pause for paid reads. When they return, filter: drop any quote from vendor, agency, trade-press, case-study or job-post text (references/quote-bank.md); pick each group's report quotes by the recency rule in references/quote-bank.md § Sampling (older rows stay in the saved bank only); a group without enough recent first-hand quotes shows fewer and says "thin on recent voice". -
Size and roles. Take the workers' counts; fill only the gaps yourself. For each group, a count of buyers or companies — at least an order of magnitude whenever any proxy exists, labelled rough — (bottom-up: directories, store or company counts, job-post counts, industry figures, the brand's own customer mix), each input sourced or labelled an assumption; community member counts are reach, never group size. Who uses, who pays, who approves.
-
Synthesize — on the evidence you have. Rank the groups on stated criteria (size, pain, fit, reach). Name the top-ranked group as the lead; if it doesn't clear the evidence bar (references/audience-research.md § Evidence bar), label it "provisional — <what's missing>", keep it out of "In short" as a settled finding, and make the evidence gap a decision. Every move rests on sources this run read; a move on a channel it couldn't read is dropped or labelled "unverified — check the community and its rules first", and never becomes "Do this first". For you only where a finding matters ("nothing to do here" is fine). How rivals talk to them; don't follow the herd. Using the market and competitor reports read in setup (don't re-read them), say in one line where this one agrees or differs (a different lead group, a different first move).
-
List mode (only when asked) — runs instead of steps 1–5 ("Since last time" still runs first, for the list's job): follow references/list-mode.md — build a list, score a list they bring, or set up a watch, with the outcomes ledger (the
outcomes-ledgerskill,entity: person). -
Write and deliver. Write the report once, in the shape of references/audience-research.md § The report — its headings in its order; "Do this first" names who does it, and every group's unread sources merge into "What we couldn't check", each with what it would change. Check and deliver it through the
write-reportskill (topicaudience; brand copyresearch/audience/<YYYY-MM-DD>-report.md, keep-history), skipping its "offer to open it" — step 8 is the whole message. Save the buyer groups and the quote bank through thesave-to-brainskill (paths below). Propose the buyer groups to the brand — skipped when the lead is provisional: withbrand_knowledge_*tools, onegooseworks:brand_knowledge_saveaudienceitem per group (logical_keyresearch-audience.<group-slug>,who,pain,outcome,objections,triggers,channels, a few short buyerwordswith no names,is_primaryfor the lead,source: our_work,status: found,is_public: false,request_keyresearch-audience.<YYYYMMDD>.<group-slug>) — each waits for the marketer's yes in the app, and is never called confirmed; otherwisegooseworks:brand_update(knowledge.audience,agent_proposal, ≤ 2,000 characters, citing the bank). Then the End steps of run-memory: the run record (references/run-memory.md § End), saved with save-to-brain. -
One closing message, this shape and nothing else (write-report §2) — no file lists, no findings recap:
Do this first (because <the findings it rests on, in a few words>): <the move, who, by when>. · saved to your brand: open Decisions: <1–3 of: the evidence gap or brand-story choice · proof lines to sign off · "a paid read of <the forums we couldn't open> for up to N credits?" (the
spend-gateskill branch B) · a repeat (step 9)> · want a list of named people in ? When any forum the groups use was blocked or login-only (Reddit, G2, LinkedIn and the like), the paid read of those forums is always the first decision, worded as what it settles ("the lead group rests on reviews of rivals; a read of for up to N credits would confirm or replace it"). The named-list offer is always the last decision unless a list was already asked for. -
Offer a repeat only when it helps (marketing-guide §3 Schedules). Say the reason, the cadence and the trigger for this brand. Never repeat a list.
-
On their answers. Re-run only what changes, the top-up inside its ceiling (log every charge), re-deliver the same way. A rule the marketer states goes through the
save-learningskill as[outreach YYYY-MM-DD].
Approval gates
- One upfront question is allowed — the customer-data ask, only when the brand has customers. Everything else free needs no yes. A paid top-up needs one yes to a ceiling; it stops there.
- Research recommends; it never makes the asset and never contacts anyone. In list mode the marketer sends from their own tool; addresses are checked by the connector when it can, otherwise by the marketer before sending.
- The audience-field proposal is accepted by the owner in the app; schedules, saved rules and new claims only on the marketer's yes.
Output and write-back
| Artifact | Where (save mode) | Read by |
|---|---|---|
| Audience report | local gooseworks-reports/<brand-slug>/<D>-audience.md; workspace research/audience/<D>-report.md → Audience report — <Brand> — <D> (keep-history) |
the marketer, the next run, research-market and research-competitors (consistency) |
| Buyer groups | research/audience/buyer-groups.md → Buyer groups — <Brand> — <D> (supersede); summary proposed to the audience field |
research-market, plan-campaign, make-content, run-organic-social, the ad maker (make-static-ads), work-with-creators, list mode |
| Quote bank | research/audience/voc-bank.md → Voice-of-customer bank — <Brand> — <D> (supersede); voc-bank.jsonl (not imported) |
the ad maker (make-static-ads), make-content, run-organic-social, research-competitors, plan-campaign |
| Group notes | research/audience/segments/<slug>.md |
the next run |
| List mode: list report, list, dropped, ledger | local gooseworks-reports/<brand-slug>/<D>-list.md + <D>-list.csv; workspace research/audience/<D>-<list>/report.md → Prospect list report — <Brand> — <D> (keep-history; no people's data in the document), list.csv, segments.csv, catch-all.csv, dropped.csv (not imported); research/audience/ledger.csv (outcomes-ledger) |
write-outreach, the marketer's outreach tool, later runs |
| Fit definition and scoring rules | research/audience/fit-definition.md |
list mode, score-a-list, write-outreach |
| Watches | research/audience/watch/champions.csv, accounts.csv (not imported), watch/<D>.md (what changed) |
the scheduled watch, the marketer |
| Run records | runs/research-audience/<job-slug>/[<subject>/]<D>.md → Run record — <job>[ — <subject>] — <Brand> — <D> (keep-history, via run-memory; counts and links only, no personal data) |
the next run of the same job |
| Paid charges | research/credits-log/<YYYY-MM>.md (spend-gate) |
every playbook's estimates |
Done when
"Since last time" opened the reply (or "no earlier run of this job"), and the run record was saved with counts and links only. The report passes write-report §3. Before it, at most one question — the customer-data ask, when the brand has customers. It names 2–5 buyer groups by situation, each sized in buyers or companies (sourced or labelled), with buying roles and how to recognise one; a lead group named, labelled provisional with what's missing when the evidence bar isn't met; for every group: what they want, at least three problems in their words with counts in a table marked solved / partly / not solved with proof status, first-hand quotes (at least five for the lead group, three for the others, or "thin" said plainly; meeting the quote bank's recency rule), and three reach moves resting on sources this run read, each with who, what it needs, and a success check with a number and a date; at least four places the lead group gathers, with evidence the group is there. The closing message has the step 8 shape. A standard run stays inside the Standard depth caps above. Agreement or disagreement with the market and competitor reports is stated. The buyer groups and quote bank are saved. In list mode: the first rows arrive without an audience pass; every account passed its gates with a dated source; every person row has a dated title source, a contact route and an email status that says how far to trust it (verified only from a checker); every row has a specific fit reason and its signal (or "none"); region flags set; a shortfall stated with the universe size; the closing decisions offer the messages for the list. Score-a-list: the "answer first" leads named with why, every row with tier, confidence and action. A watch: created paused with a standing ceiling.
Out of scope
Market size, trends, demand, pricing norms and the category frame — research-market · what rivals run and price — research-competitors · creators to pay — work-with-creators · writing the messages — write-outreach; sending — not covered (the marketer's tool) · positioning — backlog · channel budgets — plan-campaign · contacting anyone · lists of private individuals.