A person is a reusable persona
A person is a saved persona: a name, demographics, a trait-forward bio, and any workspace-specific custom fields. It is the description of who experiences your artifact, and it is reusable. One person can take part in many studies and asks. A person is not the same thing as a participant. The persona is the durable definition; a participant is one instance of that persona inside a single run. Run the same person across two studies and you get two participants, both reading from the same profile. The persona is the template; the participant is the cast member in one show. Each profile carries structured fields that shape how it reacts. Demographics (age, gender, country, occupation) sit alongside five universal enums: education level, household, locale type, income level, and employment status. There is also a versioned accessibility profile that records how the person actually experiences content (screen reader use, caption needs, reduced motion, high contrast). These are not decoration. Education level drives comprehension, vocabulary, and reading depth across every modality; the accessibility profile changes how a simulated person moves through your artifact. The full enum vocabularies live in the person reference.A person is a simulated persona, not a real human. ish leans into the approximation: an “ish” of someone is close enough to make a better decision before you ship, not a precise prediction. Frame the findings the same way.
Two ways to get the people you need
You rarely start a run by hand-building a profile. You either pull from a pool that already exists or generate new people to fit a brief.Sample from the pool
Filter the people available to your workspace by demographic and pick a sample. Good when the pool already covers who you are building for.
Generate to fit a brief
Describe the audience (and optionally ground it in real evidence) and ish builds matching personas. Good when the pool is thin for your archetype.
Generating people
Generation turns a written brief, real research artifacts, or both into matching personas. Hand it a description of who you are building for, point it at any sources (transcripts, emails, PDFs, images, audio) that capture how real people reacted, and it builds people grounded in that evidence. When sources are attached it can also produce grounded scenarios: recorded reactions the persona carries into a simulation as past context. Generation runs as an async job and blocks by default while it works (typically 30 to 60 seconds), then returns the resulting profiles. You can opt out of waiting and pick the results up later. Audience size is capped at 10 per generation; omit it to let ish propose a count. Generated people count toward your plan’s custom-person cap, which is separate from the per-run credit pool. When the pool has nothing that matches your filters, generating people that fit the brief is the right next move, regardless of what the pool happens to contain.Sampling from the pool
When you select people for a run, two modes are available and they are mutually exclusive:- Explicit profiles. Name the people directly by id.
- A demographic-filtered sample. Combine filters (country, gender, age range, occupation, name or bio substring, the extended enums, accessibility needs) and take a sample.
country = SE, NO matches either. Across dimensions they AND: adding an age range narrows the country match further. Occupation is a loose, case-insensitive substring match, so manager also catches hotel and retail managers; enumerate the whole-token variants you mean, or pair occupation with other filters, to recover the specificity you want.
Where a person lives: visibility
Every profile has a visibility scope that decides who can see and use it. There are three, and a default list walks them in priority order: your own workspace first, then the platform pool, then community-shared.workspace
workspace
The profile is private to its owning workspace. Only that workspace sees it. People you create or generate land here. A profile must be in your workspace before you can enrich it with new files or evidence.
shared
shared
platform
platform
The admin-curated pool that every workspace can sample from. It is large (tens of thousands of profiles) and broad: it skews away from tech and Western defaults, so a narrow archetype may resolve to only a handful of matches. Sample from it freely, but you cannot delete a profile that lives here.
workspace, shared, and platform; the stored profile row records these as private, published, and platform. The older private and public filter values are still accepted as aliases for workspace and platform. When you read a profile, the visibility field reports the row value (private, published, platform).
Because the platform pool is so much larger than a typical workspace, an unscoped list can bury your own handful of people. Both surfaces default a no-filter list to your own workspace people and tell you how to widen it. Reach for the platform scope deliberately.
How people fit a run
Whichever way you build them, people feed a study run or an ask the same way: select the audience, dispatch, read the reactions. A run without people flags reuses the participants already on that iteration, which is what you want when you are re-running the same audience against a changed artifact. The selection vocabulary (the filters, the enums, the accessibility booleans) is shared across the run and ask surfaces, so what you learn here transfers.Same model, both surfaces
The CLI and the MCP server expose the same person model: read, generate, enrich, delete. The verbs line up.p- (for example p-d4e, as in --person p-795,p-af2), the MCP server uses tp- (for example tp-d4e). Either is accepted anywhere its own surface expects an id, alongside the full UUID. For full flags, parameters, and return shapes, see the CLI person reference and the MCP person tools.
Related
Sources
The real evidence that grounds generated people.
Workspace
The container that owns your people, studies, and sources.
Study
Where a selected audience experiences your artifact.
Person reference
Every flag, enum, and field on the person commands.