A persona group is the demographic and psychographic definition of a target segment. It tells Boses who to generate — not individual personas themselves, but the profile criteria from which personas are created.
Every simulation runs against a persona group. The group’s location field determines which cultural context snapshot (sourced from real consumer conversations in that market) is injected into persona generation. This means a Manila-based group and a Jakarta-based group respond differently, even when given identical demographic parameters.
Fields
| Field | Type | Description |
|---|
name | string | A descriptive label for the segment (e.g., "Metro Manila Millennials"). |
age_min | integer | Minimum age for personas in this group. |
age_max | integer | Maximum age for personas in this group. |
gender | string | "Male", "Female", or "All". |
location | string | City and country (e.g., "Jakarta, Indonesia"). Drives cultural context. |
income_level | string | "Low", "Middle", or "High". Affects spending habits, brand trust, and price sensitivity. |
occupation | string | A broad occupational category (e.g., "Office worker", "Small business owner", "Student"). |
persona_count | integer | How many individual personas to generate. |
Start with persona_count: 5. Five personas give you a representative spread of attitudes within the segment and keep generation time short (20–40 seconds). Increase to 8–10 when you need broader diversity of opinion, but expect longer generation and simulation times.
Supported markets
The location field determines which cultural context snapshot is used during persona generation. Cultural snapshots are sourced from real public conversations in each market and refresh automatically.
Supported markets: Philippines (PH), Indonesia (ID), Vietnam (VN).
You can use locations outside these three markets — personas will still be generated using grounding data — but the live cultural context injection is only active for PH, ID, and VN.
Creating a persona group manually
curl -X POST https://api.temujintechnologies.com/api/v1/projects/<PROJECT_ID>/persona-groups \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Jakarta Gen Z Shoppers",
"age_min": 18,
"age_max": 24,
"gender": "Female",
"location": "Jakarta, Indonesia",
"income_level": "Middle",
"occupation": "University student",
"persona_count": 5
}'
Creating a persona group via parse-prompt
If you have a brief description of your target audience, the parse-prompt endpoint converts it into structured demographic fields. Use the returned values to review and confirm before creating the group.
Step 1 — Parse a natural language description:
curl -X POST https://api.temujintechnologies.com/api/v1/projects/<PROJECT_ID>/persona-groups/parse-prompt \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Young professional women in Ho Chi Minh City, early 30s, working in finance or marketing, middle to upper-middle income"
}'
The response returns a populated set of demographic fields:
{
"name": "HCMC Professional Women",
"age_min": 28,
"age_max": 35,
"gender": "Female",
"location": "Ho Chi Minh City, Vietnam",
"income_level": "Middle",
"occupation": "Finance or marketing professional",
"persona_count": 5
}
Step 2 — Create the group using the returned fields:
curl -X POST https://api.temujintechnologies.com/api/v1/projects/<PROJECT_ID>/persona-groups \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "HCMC Professional Women",
"age_min": 28,
"age_max": 35,
"gender": "Female",
"location": "Ho Chi Minh City, Vietnam",
"income_level": "Middle",
"occupation": "Finance or marketing professional",
"persona_count": 5
}'
You can edit any of the parsed fields before submitting. The parse step is non-destructive — nothing is created until you call the POST /persona-groups endpoint.
Generating personas
Once you’ve created a persona group, trigger generation:
curl -X POST https://api.temujintechnologies.com/api/v1/projects/<PROJECT_ID>/persona-groups/<GROUP_ID>/generate \
-H "Authorization: Bearer <access_token>"
Generation runs as a background task. Poll GET /persona-groups/<GROUP_ID> and check the generation_status field:
| Status | Meaning |
|---|
pending | Generation has been queued. |
generating | Personas are being created. |
complete | All personas are ready. |
failed | Generation encountered an error. |
curl https://api.temujintechnologies.com/api/v1/projects/<PROJECT_ID>/persona-groups/<GROUP_ID> \
-H "Authorization: Bearer <access_token>"
Generation is typically complete in 20–40 seconds for a group of 5 personas. Larger groups (8–10) can take up to 90 seconds.
What happens during generation
When you trigger generation, Boses builds each persona in two stages: first creating the core demographic and psychographic identity, then expanding it into a full rich profile — including a name, backstory, brand relationships, digital habits, and price sensitivity signals. Real consumer signals from Reddit, Shopee, and app store reviews for the target market are woven in throughout both stages.
Boses also checks a library of previously generated personas for close matches. When a strong match exists, that tested persona is reused directly, giving your project access to individuals with a proven track record across multiple studies. After text generation completes, AI-generated avatar portraits are produced for each persona.