/v1/invitationsSend an interview invitation
Creates an invitation and emails the candidate a unique link. The candidate clicks the link, lands on a hosted simulation page, and takes the interview. The invitation moves through pending → started → completed. Your recruiting team can optionally supply its own interview questions via the questions field — the panel works them into the conversation.
Request body
| Field | Type | Description |
|---|---|---|
candidateEmailrequired | string | Email address that receives the invitation. |
candidateNamerequired | string | Used in the email greeting and during the interview. |
rolerequired | string | Target role the candidate is interviewing for. Max 200 chars. |
jobPostingrequired | string | Full job description. Used to generate the panelist mix. Max 2000 chars. |
questions | string[] | Interview questions your recruiting team wants the panel to ask this candidate. Up to 10 questions, each max 300 chars. The panel weaves them naturally into the conversation alongside its own follow-ups — they are not read out as a fixed script. Omit to let the panel derive all questions from the role and job posting. |
toughness | integer (1–5) | Difficulty of the panel. Defaults to 3 if omitted. |
durationMinutes | integer | Interview length. Allowed values: 10, 15, 20, 30, 45, 60. Defaults to 30. |
language | "en" | "de" | Locale for both the email and the interview. Defaults to "en". |
expiresAt | ISO 8601 timestamp | When the invitation link stops working. Defaults to 14 days from creation. |
metadata | object | Free-form key–value pairs (e.g. ATS req ID). Returned verbatim on result lookups. |
Example request
curl -X POST https://api.meetandgreet.ai/v1/invitations \
-H "Authorization: Bearer mga_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"candidateEmail": "alex@example.com",
"candidateName": "Alex Chen",
"role": "Senior Product Manager",
"jobPosting": "We are hiring a Senior PM to lead our checkout team...",
"questions": [
"Walk me through a product launch you led end to end.",
"How do you prioritize when engineering capacity is cut in half?"
],
"toughness": 3,
"durationMinutes": 30,
"language": "en",
"expiresAt": "2026-06-01T00:00:00Z"
}'Response (201 Created)
{
"id": "inv_01HX2BT8A3JXG5Z3F4WV7QY3K9",
"status": "pending",
"candidateEmail": "alex@example.com",
"candidateName": "Alex Chen",
"role": "Senior Product Manager",
"invitationUrl": "https://meetandgreet.ai/invite/abc123XYZ",
"expiresAt": "2026-06-01T00:00:00Z",
"createdAt": "2026-05-02T12:00:00Z",
"metadata": {}
}