Personas
A persona is a reusable interviewer configuration. It captures who the AI is interviewing for — a role name and an interview language. By default ZenHire generates the interviewer system prompt from a templated v1 prompt, but you may supply your own. You create a persona once and reuse it across every candidate session for that role.
Prompt authoring. Omit
system_promptand ZenHire generates one server-side from the role + language. Supply your ownsystem_promptto store it verbatim, and optionally abase_prompt_overrideto customize the behavioral base layer (turn-taking / pacing). Job-description-to-prompt generation is not exposed in v1.
Create a persona
POST https://platform.zenhire.ai/api/v1/interview/personas
| Field | Type | Required | Notes |
|---|---|---|---|
role_name | string | yes | The role being interviewed for. Max 200 chars. Injected into the generated prompt. |
language | string | yes | Interview language (engines are multilingual). Max 64 chars. One language per persona. |
system_prompt | string | no | Supply your own interviewer prompt to store verbatim (max 20 000 chars). Omit it to have ZenHire generate one from the v1 template. |
base_prompt_override | string | no | Override the global behavioral base prompt (turn-taking / pacing). Omit or send null to inherit the ZenHire default. |
curl -X POST "https://platform.zenhire.ai/api/v1/interview/personas" \
-H "X-API-Key: zh_api_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "role_name": "Customer Success Manager", "language": "de" }'
Response (HTTP 201):
{
"id": "0f2c9e2a-7b1d-4a8e-9b3c-1f2a3b4c5d6e",
"client_id": "9a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"role_name": "Customer Success Manager",
"language": "de",
"status": "active",
"created_at": "2026-05-29T10:00:00.000Z"
}
List personas
GET https://platform.zenhire.ai/api/v1/interview/personas
Returns the personas owned by your client.
curl "https://platform.zenhire.ai/api/v1/interview/personas" \
-H "X-API-Key: zh_api_YOUR_KEY"
{
"data": [
{
"id": "0f2c9e2a-7b1d-4a8e-9b3c-1f2a3b4c5d6e",
"client_id": "9a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"role_name": "Customer Success Manager",
"language": "de",
"status": "active",
"created_at": "2026-05-29T10:00:00.000Z"
}
]
}
Get one persona
GET https://platform.zenhire.ai/api/v1/interview/personas/{personaId}
Returns a single persona including the generated system_prompt. You can only
read personas owned by your own client.
{
"id": "0f2c9e2a-7b1d-4a8e-9b3c-1f2a3b4c5d6e",
"client_id": "9a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"role_name": "Customer Success Manager",
"language": "de",
"system_prompt": "You are an AI interviewer for the role of …",
"status": "active",
"created_at": "2026-05-29T10:00:00.000Z",
"updated_at": null
}
Next
Start an interview against a persona — see Sessions.