---
title: "Send Interview"
method: POST
path: "/api/candidates/{candidate_id}/send-interview"
tags: ["async-interviews"]
---

# Send Interview

`POST /api/candidates/{candidate_id}/send-interview`

## Request

- Base URL: `https://api.ruzora.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ruzora.com/api/candidates/{candidate_id}/send-interview`
- Auth: HTTP bearer

Create an interview row + magic token + email the candidate.

On email failure: rollback the DB write so we don't leak a sent-but-
undelivered ghost row (matches L3's send-assessment pattern).

## Path parameters

- `candidate_id` string, uuid, required

## Request body

- SendInterviewRequest: POST /api/candidates/{id}/send-interview
  - `template_id` string, uuid, required
  - `expires_in_days` integer

## Response `201`

Successful Response

- InterviewSummary: Lightweight row for list endpoints (no responses, no transcripts).
  - `id` string, uuid, required
  - `candidate_id` string, uuid, required
  - `template_id` string, uuid, required
  - `template_name` string, required
  - `status` 'sent' | 'in_progress' | 'completed' | 'expired' | 'reviewed', required
  - `sent_at` string, date-time, nullable, required
  - `expires_at` string, date-time, required
  - `completed_at` string, date-time, nullable, required
  - `overall_ai_score` string, nullable, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api.md) · [All operations](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/revisions/f9b8223f3ac4?raw)
