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.
https://api.ninjahire.co
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 to submit, update, and manage candidate information including resumes and profiles.
Endpoints to handle the creation and management of job applications, allowing you to track candidate submissions for specific job postings.
This set of endpoints helps manage the interview and screening process by associating relevant questions with job postings.
This set of endpoints helps manage the calls, getting their summary and other details.
Endpoints to manage tenant-specific configurations and webhooks.
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
page
Page number
size
Number of items per page
source_id
source id of the job
1
Submit a new job posting to the Ninjahire system. This includes details such as job title, description, requirements, location, and other related metadata.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
title
client_name
industry
job_code
address
workplace_type
city
state_name
zip_code
country
employment_type
duration
start_date
end_date
posting_date
pay_frequency
min_pay_rate
max_pay_rate
pay_rate_currency
recruiter_name
recruiter_email
recruiter_work_phone_no
status
desc
source_id
1
{
"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"
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
job_id
ID of the job to retrieve
1
Update an existing job posting's details by providing the job ID. You can modify fields such as the job description, requirements, and status.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
job_id
ID of the job to retrieve
title
client_name
industry
address
workplace_type
city
state_name
zip_code
country
employment_type
duration
start_date
end_date
posting_date
pay_frequency
min_pay_rate
max_pay_rate
pay_rate_currency
recruiter_name
recruiter_email
recruiter_work_phone_no
status
desc
1
{
"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"
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
1
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
scheduling
1
{
"scheduling": true
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
job_id
ID of the job to retrieve
1
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
jobId
ID of the job to retrieve
window_start_time
window_end_time
daily_attempts
total_attempts
retry_interval
days_of_week
email_enabled
email_notify_minutes
email_repeat
sms_enabled
sms_notify_minutes
sms_repeat
voicemail_enabled
repeat_calling
call_schedule_minutes
default
name
1
{
"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"
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
page
Page number
size
Number of items per page
source_id
source id of the candidate
1
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
file
first_name
The candidate's first name.
last_name
The candidate's last name.
The candidate's email address used for communication.
phone_no
The candidate's phone number, used for contact. Example: '+919803879562'.
city
The candidate's current city of residence.
state_name
The state where the candidate resides, for example, 'Minnesota'.
country
The country where the candidate resides.
source
The source from which the candidate applied, such as 'LinkedIn' or 'Referral'.
source_id
A unique identifier for the source from where the candidate applied.
1
{
"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"
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
candidate_id
ID of the candidate to retrieve
1
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
candidate_id
ID of the candidate to retrieve
first_name
The candidate's first name.
last_name
The candidate's last name.
The candidate's email address used for communication.
phone_no
The candidate's phone number, used for contact. Example: '+919803879562'.
city
The candidate's current city of residence.
state_name
The state where the candidate resides, for example, 'Minnesota'.
country
The country where the candidate resides.
source
The source from which the candidate applied, such as 'LinkedIn' or 'Referral'.
source_id
A unique identifier for the source from where the candidate applied.
1
{
"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"
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
page
Page number
size
Number of items per page
job_id
job uuid
source_id
source id of the application
job_source_id
source id of the job
candidate_source_id
source id of the candidate
1
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
file
Resume file to upload
base64file
Base64 encoded resume file. Use this instead of 'file' when uploading via base64
candidate_source_id
Source ID of the candidate
job_source_id
Source ID of the job
candidate_id
ID of the candidate
job_id
ID of the job
source_application_status
Status of the application in the source system
application_stage
Current stage of the application. ACTIVE/PASSIVE
1
{
"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"
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
application_id
ID of the application to retrieve
1
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
application_id
ID of the application to retrieve
source_application_status
hired
application_stage
active
file
1
{
"source_application_status": "hired",
"application_stage": "active"
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
file
Resume file to upload
base64file
Base64 encoded resume file. Use this instead of 'file' when uploading via base64
candidate_source_id
Source ID of the candidate
job_source_id
Source ID of the job
candidate_id
ID of the candidate
job_id
ID of the job
source_application_status
Status of the application in the source system
application_stage
Current stage of the application. ACTIVE/PASSIVE
questions
Array of questions to associate with the application
1
{
"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"
}
]
}
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
question_text
source_id
application_id
1
{
"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 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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
source_id
Source ID of the question
application_id
Application ID of the question
job_id
ID of the job to generate questions
question_id
ID of the question
question_text
source_id
application_id
1
{
"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."
}
Remove a specific question by providing their question ID and job ID. This endpoint is useful for keeping question information up to date.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
job_id
ID of the job to generate questions
question_id
ID of the question
1
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.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
application_id
The ID of the application for which the instant call is triggered
1
The Call detail endpoint provides details about a specific call, including its status, intelligence assessment, and summary.
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
1
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
page
Page number
size
Number of items per page
job_id
job uuid
candidate_id
candidate uuid
application_id
application uuid
application_source_id
source id of the application
job_source_id
source id of the job
candidate_source_id
source id of the candidate
1
Get webhook configuration for a tenant
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
1
Create or update a webhook URL for a tenant
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
tenant_id
ID of the tenant
triggered_event
Event that triggers the webhook
call_activity
application_activty
type
Type of webhook
post_call_screening
fields
Fields to include in the webhook payload
url
URL where webhook notifications will be sent
http_method
HTTP method to use for the webhook request
POST
PUT
PATCH
content_type
Content type of the webhook payload
application/json
application/x-www-form-urlencoded
secret
Secret key used to sign webhook payloads
is_active
Whether the webhook is active
1
{
"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 by setting is_deleted to false
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
tenant_webhook_id
ID of the webhook
1
Unsubscribe from a tenant webhook by setting is_deleted to true
Authorization
The Authorization
header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE
.
tenant_webhook_id
ID of the webhook
1