Skip to main content
POST
Use the same ats_job_id across multiple requests to add more candidates to the same project.

Authorizations

string | header
required
API key of the form <token>, passed as the x-tidyhire-api-key header.

Body

AI call request data
string
required
Job ID from your ATS that identifies the job these candidates belong to.Example: "ats-job-12345"
string
Job title for the role. Also used as the project name.Example: "Senior Software Engineer"
object[]
required
Candidates to call. Max 50 per request.
string
required
Behavior and script instructions for the AI agent, covering who it is, why it is calling, and how it should screen the candidate. Generate a script or write your own.Example: "You are a recruiter for {{sender_company}}. Screen the candidate about their experience with distributed systems."Supports dynamic variables like {{candidate_first_name}} and {{sender_company}}.
object
The final verdict the AI should reach about the candidate (e.g. “Qualified” / “Not Qualified”).
object[]
Data points to extract from the conversation.
string
ISO 8601 datetime to schedule the call. Call starts immediately if omitted.Example: "2026-05-27T10:00:00Z"
object
Retry policy, working hours, and WhatsApp notification settings. See Call Settings for a complete explanation with examples.
string
The first thing the AI says when the candidate picks up. Defaults to "Hello".Example: "Hello {{candidate_first_name}}, this is {{sender_company}} calling."Supports the same dynamic variables as instructions.
object
Defaults to a female English voice. Assistant name is Ria, uses Indian accent with no background effects. Book a call with the team to customize.

Response

AI calls initiated successfully
boolean
Indicates if the request was successful. Example: true
object

Common Errors

Reason: Every candidate failed processing — the request succeeded but no calls were initiated.