curl --request POST \
--url https://api.tidyhire.app/api/public/interview/invite \
--header 'Content-Type: application/json' \
--header 'x-tidyhire-api-key: <api-key>' \
--data '
{
"external_id": "ats-job-12345",
"job_title": "Senior Software Engineer",
"job_description": "We are looking for a Senior Software Engineer to join our team and build scalable backend services.",
"experience_level": "5-8 Years",
"seniority_level": "Senior",
"work_type": "Remote",
"employment_type": "Full Time",
"location": "New York, NY",
"must_have_skills": [
"JavaScript",
"Node.js",
"MongoDB"
],
"good_to_have_skills": [
"TypeScript",
"Redis"
],
"candidates": [
{
"name": "John Doe",
"email": "john.doe@example.com",
"phone": "+1234567890",
"metadata": {
"source": "linkedin",
"ats_candidate_id": "12345"
}
}
],
"interview_settings": {
"cutoff_score": 65,
"interview_duration": "30 Minutes"
},
"metadata": {}
}
'{
"success": true,
"data": {
"project_id": "64a1b2c3d4e5f6a7b8c9d0e1",
"job_url": "https://jobs.tidyhire.app/company/acme/job/64a1b2c3d4e5f6a7b8c9d0e2",
"project_login_url": "https://beta.tidyhire.app/app/projects/64a1b2c3d4e5f6a7b8c9d0e1",
"interviews": [
{
"id": "64a1b2c3d4e5f6a7b8c9d0e3",
"name": "John Doe",
"email": "john.doe@example.com",
"phone": "+1234567890",
"metadata": {
"source": "linkedin"
}
}
]
}
}Invite candidates to an AI-powered interview. This endpoint handles the full flow:
external_id doesn’t exist, a new project and job are automatically created.curl --request POST \
--url https://api.tidyhire.app/api/public/interview/invite \
--header 'Content-Type: application/json' \
--header 'x-tidyhire-api-key: <api-key>' \
--data '
{
"external_id": "ats-job-12345",
"job_title": "Senior Software Engineer",
"job_description": "We are looking for a Senior Software Engineer to join our team and build scalable backend services.",
"experience_level": "5-8 Years",
"seniority_level": "Senior",
"work_type": "Remote",
"employment_type": "Full Time",
"location": "New York, NY",
"must_have_skills": [
"JavaScript",
"Node.js",
"MongoDB"
],
"good_to_have_skills": [
"TypeScript",
"Redis"
],
"candidates": [
{
"name": "John Doe",
"email": "john.doe@example.com",
"phone": "+1234567890",
"metadata": {
"source": "linkedin",
"ats_candidate_id": "12345"
}
}
],
"interview_settings": {
"cutoff_score": 65,
"interview_duration": "30 Minutes"
},
"metadata": {}
}
'{
"success": true,
"data": {
"project_id": "64a1b2c3d4e5f6a7b8c9d0e1",
"job_url": "https://jobs.tidyhire.app/company/acme/job/64a1b2c3d4e5f6a7b8c9d0e2",
"project_login_url": "https://beta.tidyhire.app/app/projects/64a1b2c3d4e5f6a7b8c9d0e1",
"interviews": [
{
"id": "64a1b2c3d4e5f6a7b8c9d0e3",
"name": "John Doe",
"email": "john.doe@example.com",
"phone": "+1234567890",
"metadata": {
"source": "linkedin"
}
}
]
}
}external_id across multiple requests to invite candidates to an existing job.Your Tidyhire API key
A unique identifier from your ATS to link this job. If a project with this external_id already exists, candidates are added to it. Otherwise a new project and job are created.
1"ats-job-12345"
The title of the job position.
1"Senior Software Engineer"
A detailed description of the job role and responsibilities.
1"We are looking for a Senior Software Engineer to join our team and build scalable backend services."
Required experience level.
Fresher, 1-2 Years, 2-5 Years, 5-8 Years, 8-12 Years, Above 12 Years "5-8 Years"
Seniority level for the role.
Entry, Mid, Senior, Lead, Principal, Staff "Senior"
Work arrangement type.
Remote, On Site, Hybrid "Remote"
Type of employment.
Full Time, Part Time, Contract, Freelance "Full Time"
Job location.
1"New York, NY"
List of required skills. Minimum 3 skills.
3["JavaScript", "Node.js", "MongoDB"]List of preferred skills.
["TypeScript", "Redis"]List of candidates to invite. Minimum 1 candidate. Duplicate emails (already invited to this project) are skipped and returned in the response.
1Show child attributes
Show child attributes
Custom key-value data to attach to the project.
{}