logo
Index
Webhook Verification
API Reference
Jobs
Get All Jobs with Pagination
Add a new job
Get Job by ID
Update Job by ID
Get job scheduling status
Update job scheduling status
Retrieve job scheduling settings
Update job scheduling settings
Candidates
Retrieve all candidates
Add a new candidate
Retrieve candidate details
Update candidate details
Applications
Retrieve all applications
Submit a new application
Retrieve a specific application
Update a specific application
Create a new application with questions
Questions
Retrieve job-related questions
Add new questions to a job
Update a specific question
Delete a specific questions
Generate job-related questions automatically
Calls
Initiate an instant call for an application
Retrieve call details for a specific call
Retrieve all calls
Tenants
Get webhook configuration for a tenant
Create or update a webhook URL for a tenant
Subscribe to a tenant webhook
Unsubscribe from a tenant webhook
powered by zuplo

Ninjahire API

Welcome to the Ninjahire API documentation. This API enables seamless integration with Ninjahire's recruitment system, allowing clients to submit job postings, candidate profiles, and applications directly to our platform. Whether you are using an external ATS or looking to interact with our system independently, this API provides all the necessary operations for managing job listings, candidates, and applications efficiently. You can explore various endpoints and their functionalities to streamline your workflows.

BASE URL
https://api.ninjahire.co

Jobs

The Jobs endpoints allow clients to manage job postings within the Ninjahire system. Clients can create, retrieve, update, and manage scheduling settings for jobs, as well as track interview schedules. This ensures complete control over the lifecycle of a job posting, from its creation to the scheduling of candidate interviews. The API also offers flexibility to handle various scheduling preferences, time zone adjustments, and interview settings. With these endpoints, clients can easily integrate job management into their recruitment workflows, enhancing efficiency and reducing manual intervention.

ENDPOINTS
GET/v1/jobs
POST/v1/jobs
GET/v1/jobs/:job_id
PATCH/v1/jobs/:job_id
GET/v1/jobs/:job_id/scheduling
PATCH/v1/jobs/:job_id/scheduling
GET/v1/jobs/:job_id/schedule-setting
PUT/v1/jobs/:job_id/schedule-setting

Candidates

Endpoints to submit, update, and manage candidate information including resumes and profiles.

ENDPOINTS
GET/v1/candidates
POST/v1/candidates
GET/v1/candidates/:candidate_id
PATCH/v1/candidates/:candidate_id

Applications

Endpoints to handle the creation and management of job applications, allowing you to track candidate submissions for specific job postings.

ENDPOINTS
GET/v1/applications
POST/v1/applications
GET/v1/applications/:application_id
PATCH/v1/applications/:application_id
POST/v1/applications/with-questions

Questions

This set of endpoints helps manage the interview and screening process by associating relevant questions with job postings.

ENDPOINTS
GET/v1/jobs/:job_id/questions
POST/v1/jobs/:job_id/questions
PATCH/v1/jobs/:job_id/questions/:question_id
DELETE/v1/jobs/:job_id/questions/:question_id
POST/v1/jobs/:job_id/questions/generate

Calls

This set of endpoints helps manage the calls, getting their summary and other details.

ENDPOINTS
POST/v1/applications/:application_id/instant-call
GET/v1/calls/:call_id
GET/v1/calls

Tenants

Endpoints to manage tenant-specific configurations and webhooks.

ENDPOINTS
GET/v1/tenant-webhook
POST/v1/tenant-webhook
POST/v1/tenant-webhook/subscribe/:tenant_webhook_id
POST/v1/tenant-webhook/unsubscribe/:tenant_webhook_id

Get All Jobs with Pagination

Fetch a list of all job postings available in the Ninjahire system. You can use optional query parameters to filter the results based on criteria such as status, location, or job type.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Query Parameters

page

required, integer

Page number

size

required, integer

Number of items per page

source_id

string

source id of the job

GET
/v1/jobs
1

Add a new job

Submit a new job posting to the Ninjahire system. This includes details such as job title, description, requirements, location, and other related metadata.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Request Body

title

required, string

client_name

optional, string

industry

required, string

job_code

optional, string

address

optional, string

workplace_type

optional, string

city

optional, string

state_name

required, string

zip_code

optional, string

country

required, string

employment_type

optional, string

duration

optional, string

start_date

optional, string

end_date

optional, string

posting_date

optional, string

pay_frequency

optional, string

min_pay_rate

optional, number

max_pay_rate

optional, number

pay_rate_currency

optional, string

recruiter_name

required, string

recruiter_email

required, string

recruiter_work_phone_no

required, string

status

required, string

desc

required, string

source_id

required, string
POST
/v1/jobs
1
EXAMPLE BODY
{
  "address": "130 Bayech Drive",
  "city": "San Jose",
  "source_id": "abc123",
  "client_name": "Pippedpipper",
  "country": "United States",
  "desc": "job",
  "pay_rate_currency": "USD",
  "workplace_type": "remote",
  "industry": "Reasearch Scientist",
  "duration": "2",
  "employment_type": "Contract",
  "end_date": "2025-01-25T05:00:00Z",
  "job_code": "123",
  "max_pay_rate": 38.45,
  "min_pay_rate": 48.45,
  "pay_frequency": "Per Hour",
  "posting_date": "2024-06-21T18:29:21Z",
  "recruiter_email": "John@ninjahire.co",
  "recruiter_name": "John",
  "recruiter_work_phone_no": "+19179991111",
  "start_date": "2024-07-22T04:00:00Z",
  "state_name": "CA",
  "status": "Active",
  "title": "LLM Engineer",
  "zip_code": "95134"
}

Get Job by ID

Fetch details of a specific job posting by providing its unique job ID. The response will include all available information about the job, such as title, description, and status.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

job_id

required, string

ID of the job to retrieve

GET
/v1/jobs/:job_id
1

Update Job by ID

Update an existing job posting's details by providing the job ID. You can modify fields such as the job description, requirements, and status.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

job_id

required, string

ID of the job to retrieve

Request Body

title

required, string

client_name

optional, string

industry

optional, string

address

optional, string

workplace_type

optional, string

city

optional, string

state_name

optional, string

zip_code

optional, string

country

optional, string

employment_type

optional, string

duration

optional, string

start_date

optional, string

end_date

optional, string

posting_date

optional, string

pay_frequency

optional, string

min_pay_rate

optional, number

max_pay_rate

optional, number

pay_rate_currency

optional, string

recruiter_name

optional, string

recruiter_email

optional, string

recruiter_work_phone_no

optional, string

status

optional, string

desc

optional, string
PATCH
/v1/jobs/:job_id
1
EXAMPLE BODY
{
  "address": "130 Bayech Drive",
  "city": "San Jose",
  "client_name": "Pipedpipper",
  "country": "United States",
  "desc": "updated -- We are seeking a skilled LLM Engineer with a strong background in Python and machine learning to join our engineering team. The ideal candidate will have at least 5 years of experience and be proficient in implementing multi-agent systems using frameworks like LangGraph. This position offers the flexibility of remote work while encouraging team collaboration through bi-weekly office meetings.",
  "pay_rate_currency": "USD",
  "workplace_type": "remote",
  "industry": "Reasearch Scientist",
  "duration": "2",
  "employment_type": "Contract",
  "end_date": "2025-01-25T05:00:00Z",
  "job_code": "123",
  "max_pay_rate": 38.45,
  "min_pay_rate": 38.45,
  "pay_frequency": "Per Hour",
  "posting_date": "2024-06-21T18:29:21Z",
  "recruiter_email": "john@ninjahire.co",
  "recruiter_name": "John",
  "recruiter_work_phone_no": "+19179991111",
  "start_date": "2024-07-22T04:00:00Z",
  "state_name": "CA",
  "status": "Active",
  "title": "LLM Engineer",
  "zip_code": "95134"
}

Get job scheduling status

Retrieve the scheduling status for a specific job. This endpoint returns whether scheduling is currently enabled or disabled for the given job, along with the job ID. Use this to check if a job is actively being scheduled for interviews.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

GET
/v1/jobs/:job_id/scheduling
1

Update job scheduling status

Enable or disable scheduling for a specific job by updating the scheduling parameter. Provide the job ID and set the scheduling parameter to true or false to control whether interviews can be scheduled for the job. This allows you to turn scheduling on or off as needed.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Request Body

scheduling

required, boolean
PATCH
/v1/jobs/:job_id/scheduling
1
EXAMPLE BODY
{
  "scheduling": true
}

Retrieve job scheduling settings

Fetch the scheduling settings configured for a specific job. This includes all rules and preferences that define how and when interviews can be scheduled, such as the daily scheduling window (start and end times), the maximum number of attempts to contact candidates, retry intervals, allowed days of the week, and notification settings (email, SMS, and voicemail). These settings ensure that interviews are scheduled in a way that aligns with the company's preferences and candidate availability.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

job_id

required, string

ID of the job to retrieve

GET
/v1/jobs/:job_id/schedule-setting
1

Update job scheduling settings

Modify the scheduling settings for a specific job by providing updated rules or constraints. This could include adjusting the time window for interviews, setting the number of daily and total contact attempts, modifying retry intervals, and configuring notification preferences such as email and SMS alerts. The scheduling settings ensure that interviews are arranged efficiently and within the defined parameters, allowing for flexible yet controlled scheduling workflows.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

jobId

required, string

ID of the job to retrieve

Request Body

window_start_time

required, string

window_end_time

required, string

daily_attempts

optional, integer, maximum value of 5, minimum value of 0

total_attempts

optional, integer, minimum value of 0

retry_interval

optional, integer, minimum value of 0

days_of_week

optional, array of integers

email_enabled

optional, boolean

email_notify_minutes

optional, integer, minimum value of 0

email_repeat

optional, boolean

sms_enabled

optional, boolean

sms_notify_minutes

optional, integer, minimum value of 0

sms_repeat

optional, boolean

voicemail_enabled

optional, boolean

repeat_calling

optional, boolean

call_schedule_minutes

optional, integer, minimum value of 0

default

optional, boolean

name

optional, string
PUT
/v1/jobs/:job_id/schedule-setting
1
EXAMPLE BODY
{
  "window_start_time": "08:00:00",
  "window_end_time": "18:00:00",
  "daily_attempts": 3,
  "total_attempts": 10,
  "retry_interval": 15,
  "days_of_week": [
    1,
    2,
    3,
    4,
    5
  ],
  "email_enabled": true,
  "email_notify_minutes": 10,
  "email_repeat": false,
  "sms_enabled": true,
  "sms_notify_minutes": 5,
  "sms_repeat": true,
  "voicemail_enabled": false,
  "repeat_calling": true,
  "call_schedule_minutes": 30,
  "name": "Default Schedule"
}

Retrieve all candidates

Fetch a list of all candidates in the system. You can use optional query parameters to filter candidates based on specific criteria, such as location, source, or status.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Query Parameters

page

required, integer

Page number

size

required, integer

Number of items per page

source_id

string

source id of the candidate

GET
/v1/candidates
1

Add a new candidate

Create a new candidate entry in the system by providing details such as first name, last name, phone number, email, city, state, and the source from which the candidate applied (e.g., LinkedIn). This endpoint allows for the registration of new candidates, adding them to the recruitment pipeline.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Request Body

file

optional, string

first_name

required, string

The candidate's first name.

last_name

optional, string

The candidate's last name.

email

required, string

The candidate's email address used for communication.

phone_no

required, string

The candidate's phone number, used for contact. Example: '+919803879562'.

city

optional, string

The candidate's current city of residence.

state_name

optional, string

The state where the candidate resides, for example, 'Minnesota'.

country

optional, string

The country where the candidate resides.

source

required, string

The source from which the candidate applied, such as 'LinkedIn' or 'Referral'.

source_id

required, string

A unique identifier for the source from where the candidate applied.

POST
/v1/candidates
1
EXAMPLE BODY
{
  "city": "Dallas",
  "country": "United States",
  "email": "candidate@Ninjahire.ai",
  "first_name": "firstname",
  "last_name": "lastname",
  "phone_no": "+919803879562",
  "source_id": "194897",
  "source": "LinkedIn",
  "state_name": "Minnesota"
}

Retrieve candidate details

Fetch detailed information about a specific candidate using their unique candidate ID. The response will include personal information such as the candidate's name, contact details, city, state, and the source of their application.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

candidate_id

required, string

ID of the candidate to retrieve

GET
/v1/candidates/:candidate_id
1

Update candidate details

Update the information of a specific candidate by providing their candidate ID. You can modify fields such as the candidate's name, phone number, email, city, state, or the source of their application. This endpoint is useful for keeping candidate information up to date.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

candidate_id

required, string

ID of the candidate to retrieve

Request Body

first_name

required, string

The candidate's first name.

last_name

optional, string

The candidate's last name.

email

required, string

The candidate's email address used for communication.

phone_no

required, string

The candidate's phone number, used for contact. Example: '+919803879562'.

city

optional, string

The candidate's current city of residence.

state_name

optional, string

The state where the candidate resides, for example, 'Minnesota'.

country

optional, string

The country where the candidate resides.

source

required, string

The source from which the candidate applied, such as 'LinkedIn' or 'Referral'.

source_id

required, string

A unique identifier for the source from where the candidate applied.

PATCH
/v1/candidates/:candidate_id
1
EXAMPLE BODY
{
  "first_name": "John",
  "last_name": "Doe",
  "email": "john.doe@Ninjahire.ai",
  "phone_no": "+11234567890",
  "city": "Dallas",
  "state_name": "Minnesota",
  "country": "United States",
  "source": "LinkedIn",
  "source_id": "194897",
  "recruiter_name": "Jane Smith",
  "recruiter_email": "jane.smith@Ninjahire.ai",
  "recruiter_work_phone_no": "+12125551234",
  "status": "Interviewing"
}

Retrieve all applications

Fetch a list of all job applications in the system. You can use optional query parameters to filter applications by candidate, job, or status. This is useful for tracking and managing the progress of applications across various job postings.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Query Parameters

page

required, integer

Page number

size

required, integer

Number of items per page

job_id

uuid

job uuid

source_id

string

source id of the application

job_source_id

string

source id of the job

candidate_source_id

string

source id of the candidate

GET
/v1/applications
1

Submit a new application

Create a new application for a job by providing the candidate ID, job ID, and the source of the application. This endpoint records the application in the system and links it to both the candidate and the job.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Request Body

file

optional, string

Resume file to upload

base64file

optional, string

Base64 encoded resume file. Use this instead of 'file' when uploading via base64

candidate_source_id

required, string

Source ID of the candidate

job_source_id

required, string

Source ID of the job

candidate_id

optional, string

ID of the candidate

job_id

optional, string

ID of the job

source_application_status

required, string

Status of the application in the source system

application_stage

required, string

Current stage of the application. ACTIVE/PASSIVE

POST
/v1/applications
1
EXAMPLE BODY
{
  "base64file": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsgMyAwIFIgXSAvQ291bnQgMSA+PgplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDIgMCBSIC9SZXNvdXJjZXMgPDwgL0ZvbnQgPDwgL0YxIDQgMCBSID4+ID4+IC9NZWRpYUJveCBbMCAwIDU5NS4yNzU1OTEgODQxLjg4OTc2OF0gL0NvbnRlbnRzIDUgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UeXBlMSAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuID4+CmVuZG9iago1IDAgb2JqCjw8IC9MZW5ndGggNDQgPj4Kc3RyZWFtCkJUCjcwIDUwIFRECi9GMSAxMiBUZgooSGVsbG8sIFdvcmxkISkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTAgMDAwMDAgbiAKMDAwMDAwMDA3OSAwMDAwMCBuIAowMDAwMDAwMTczIDAwMDAwIG4gCjAwMDAwMDAzMDEgMDAwMDAgbiAKMDAwMDAwMDM4MCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDYgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjQ5MgolJUVPRgo=",
  "candidate_source_id": "candidate123",
  "job_source_id": "job456",
  "candidate_id": "550e8400-e29b-41d4-a716-446655440000",
  "job_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "source_application_status": "Applied",
  "application_stage": "ACTIVE"
}

Retrieve a specific application

Fetch detailed information about a specific application using its unique application ID. The response includes the candidate details, job details, and the current status of the application.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

application_id

required, string

ID of the application to retrieve

GET
/v1/applications/:application_id
1

Update a specific application

Update the details of an existing application using its application ID. You can modify the application's status or other associated details, such as the candidate's progress in the recruitment process.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

application_id

required, string

ID of the application to retrieve

Request Body

source_application_status

required, string

hired

application_stage

required, string

active

file

optional, string
PATCH
/v1/applications/:application_id
1
EXAMPLE BODY
{
  "source_application_status": "hired",
  "application_stage": "active"
}

Create a new application with questions

Create a new application for a job and associate questions with it. This endpoint allows you to submit an application along with a set of questions that will be used during the screening process.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Request Body

file

optional, string

Resume file to upload

base64file

optional, string

Base64 encoded resume file. Use this instead of 'file' when uploading via base64

candidate_source_id

required, string

Source ID of the candidate

job_source_id

required, string

Source ID of the job

candidate_id

optional, string

ID of the candidate

job_id

optional, string

ID of the job

source_application_status

required, string

Status of the application in the source system

application_stage

required, string

Current stage of the application. ACTIVE/PASSIVE

questions

optional, array

Array of questions to associate with the application

POST
/v1/applications/with-questions
1
EXAMPLE BODY
{
  "base64file": "JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFsgMyAwIFIgXSAvQ291bnQgMSA+PgplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDIgMCBSIC9SZXNvdXJjZXMgPDwgL0ZvbnQgPDwgL0YxIDQgMCBSID4+ID4+IC9NZWRpYUJveCBbMCAwIDU5NS4yNzU1OTEgODQxLjg4OTc2OF0gL0NvbnRlbnRzIDUgMCBSID4+CmVuZG9iago0IDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UeXBlMSAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuID4+CmVuZG9iago1IDAgb2JqCjw8IC9MZW5ndGggNDQgPj4Kc3RyZWFtCkJUCjcwIDUwIFRECi9GMSAxMiBUZgooSGVsbG8sIFdvcmxkISkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTAgMDAwMDAgbiAKMDAwMDAwMDA3OSAwMDAwMCBuIAowMDAwMDAwMTczIDAwMDAwIG4gCjAwMDAwMDAzMDEgMDAwMDAgbiAKMDAwMDAwMDM4MCAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDYgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjQ5MgolJUVPRgo=",
  "candidate_source_id": "candidate123",
  "job_source_id": "job456",
  "candidate_id": "550e8400-e29b-41d4-a716-446655440000",
  "job_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "source_application_status": "Applied",
  "application_stage": "ACTIVE",
  "questions": [
    {
      "question_text": "What is your experience with JavaScript?",
      "source_id": "q1"
    },
    {
      "question_text": "Describe your previous project experience.",
      "source_id": "q2"
    }
  ]
}

Retrieve job-related questions

Fetch a list of all interview or screening questions associated with a specific job by providing the job ID. These questions are typically used during candidate interviews to assess their suitability for the role.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

job_id

required, string

ID of the job to generate questions

GET
/v1/jobs/:job_id/questions
1

Add new questions to a job

Submit new interview or screening questions for a specific job by providing the job ID. You can add multiple questions that will be used during the interview or screening process for candidates applying to this job.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Request Body

question_text

required, string

source_id

required, string

application_id

optional, string
POST
/v1/jobs/:job_id/questions
1
EXAMPLE BODY
{
  "question_text": "sample question for the job",
  "source_id": "sample source id",
  "application_id": "sample application id (optional). If not provided, the question will be added to the job."
}

Update a specific question

Update the information of a specific question by providing their question ID and job ID. This endpoint is useful for keeping question information up to date.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Query Parameters

source_id

required, string

Source ID of the question

application_id

optional, string

Application ID of the question

Path Parameters

job_id

required, string

ID of the job to generate questions

question_id

required, string

ID of the question

Request Body

question_text

required, string

source_id

required, string

application_id

optional, string
PATCH
/v1/jobs/:job_id/questions/:question_id
1
EXAMPLE BODY
{
  "question_text": "sample question for the job",
  "source_id": "sample source id",
  "application_id": "sample application id (optional). If not provided, the question will be added to the job."
}

Delete a specific questions

Remove a specific question by providing their question ID and job ID. This endpoint is useful for keeping question information up to date.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

job_id

required, string

ID of the job to generate questions

question_id

required, string

ID of the question

DELETE
/v1/jobs/:job_id/questions/:question_id
1

Generate job-related questions automatically

Automatically generate a set of interview or screening questions based on the job description and requirements for a specific job. This endpoint uses AI to create relevant questions for assessing candidates applying to the job.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

job_id

required, string

ID of the job to generate questions

POST
/v1/jobs/:job_id/questions/generate
1

Initiate an instant call for an application

Trigger an immediate phone call for a candidate associated with a specific application using the application ID. This endpoint is typically used to initiate an interview or contact attempt directly through the system.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

application_id

required, string

The ID of the application for which the instant call is triggered

POST
/v1/applications/:application_id/instant-call
1

Retrieve call details for a specific call

The Call detail endpoint provides details about a specific call, including its status, intelligence assessment, and summary.

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

GET
/v1/calls/:call_id
1

Retrieve all calls

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Query Parameters

page

required, integer

Page number

size

required, integer

Number of items per page

job_id

uuid

job uuid

candidate_id

uuid

candidate uuid

application_id

uuid

application uuid

application_source_id

string

source id of the application

job_source_id

string

source id of the job

candidate_source_id

string

source id of the candidate

GET
/v1/calls
1

Get webhook configuration for a tenant

Get webhook configuration for a tenant

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

GET
/v1/tenant-webhook
1

Create or update a webhook URL for a tenant

Create or update a webhook URL for a tenant

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Request Body

tenant_id

required, string

ID of the tenant

triggered_event

required, string enum

Event that triggers the webhook

Possible Enum Values

call_activity

application_activty

type

required, string enum

Type of webhook

Possible Enum Values

post_call_screening

fields

required, array of strings

Fields to include in the webhook payload

url

required, string

URL where webhook notifications will be sent

http_method

required, string enum

HTTP method to use for the webhook request

Possible Enum Values

POST

PUT

PATCH

content_type

required, string enum

Content type of the webhook payload

Possible Enum Values

application/json

application/x-www-form-urlencoded

secret

optional, string

Secret key used to sign webhook payloads

is_active

optional, boolean

Whether the webhook is active

POST
/v1/tenant-webhook
1
EXAMPLE BODY
{
  "tenant_id": "550e8400-e29b-41d4-a716-446655440000",
  "triggered_event": "call_activity",
  "type": "post_call_screening",
  "fields": [
    "id",
    "status",
    "candidate_id",
    "job_id"
  ],
  "url": "https://api.example.com/webhooks/tenant",
  "http_method": "POST",
  "content_type": "application/json",
  "secret": "whsec_1234567890abcdef",
  "is_active": true
}

Subscribe to a tenant webhook

Subscribe to a tenant webhook by setting is_deleted to false

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

tenant_webhook_id

required, string

ID of the webhook

POST
/v1/tenant-webhook/subscribe/:tenant_webhook_id
1

Unsubscribe from a tenant webhook

Unsubscribe from a tenant webhook by setting is_deleted to true

Protected by API Key

Headers

Authorization

required, string

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Path Parameters

tenant_webhook_id

required, string

ID of the webhook

POST
/v1/tenant-webhook/unsubscribe/:tenant_webhook_id
1