persona_get
Fetch one of a brand's personas — who it is talking to, in their own words — so an agent can write for someone in particular.
Fetches a single Persona by the pair that addresses it: its Brand’s slug and its own.
A Persona is an audience archetype — who a brand is talking to. It is the counterpart to the Brand’s own sections, which say who it is talking as. Discover a brand’s personas with brand_get; there is no separate list tool, because the brand bundle already carries them.
Input
| Field | Type | Required | Description |
|---|---|---|---|
brand_name |
string |
yes | The slug of the brand that owns the persona. |
persona_name |
string |
yes | The persona slug. Unique within its brand, so it must be paired with brand_name. |
Output
{ persona }, carrying slug, name, description, revision, the age range, and four context sections:
| Section | What belongs in it |
|---|---|
profile |
Who they are: life stage, situation, role, context |
motivations |
What they want: jobs to be done, triggers, outcomes |
frictions |
What stops them: objections, doubts, perceived risk |
language |
The words they use for the problem — their verbatims |
Each section is free-form markdown and independently optional — one you haven’t written is null, which is normal rather than an error.
ageMin and ageMax are independently nullable: ageMin alone means “and older”, ageMax alone means “and younger”, and both null means the persona is not defined by age at all.
Example
“Write three ad headlines for Acme Running, aimed at Marathon Maya.”
persona_get({ brand_name: 'acme-running', persona_name: 'marathon-maya' });
// → { persona: { slug: 'marathon-maya', ageMin: 30, ageMax: 44,
// frictions: 'Thinks carbon plates are a gimmick…', … } }
The agent reads frictions and language alongside the brand’s voice, so the headline answers a real objection in words the reader would use.
Requires the brand:read scope — a persona is part of its brand’s context, not a separate permission.