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.
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.
query Parameters
pageinteger · requiredPage number
sizeinteger · requiredNumber of items per page
source_idstringSource ID filter
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Responses
Successful operation
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.
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
titlestring · requiredindustrystring · requiredstate_namestring · requiredcountrystring · requiredrecruiter_namestring · requiredrecruiter_emailstring · requiredrecruiter_work_phone_nostring · requiredstatusstring · requireddescstring · required
client_namestringjob_codestringaddressstringworkplace_typestringcitystringzip_codestringemployment_typestringdurationstringstart_datestring · date-timeend_datestring · date-timeposting_datestring · date-timepay_frequencystringmin_pay_ratenumbermax_pay_ratenumberpay_rate_currencystringsource_idstringUnique identifier for this job from your source system. Must be unique per tenant. If not provided, a UUID is automatically generated — you do not need to supply this field.
ai_sourcing_enabledbooleanEnable AI sourcing for the job. Defaults to false if not provided.
scheduling_enabledbooleanEnable scheduling/outreach for the job. Defaults to false if not provided.
Responses
Created
List all jobs with sorting and filters
Fetch a paginated list of all job postings with full sort and filter support. Defaults to Active jobs sorted by posting_date DESC (latest first).
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
pageinteger · requiredPage number for pagination (default: 1)
Default: 1per_pageinteger · requiredNumber of results per page (default: 10)
Default: 10
sort_columnstringColumn to sort by (default: 'posting_date')
Default: posting_datesort_directionstring · enumSort direction — DESC for latest first, ASC for oldest first (default: 'DESC')
Enum values:ASCDESCDefault: DESCfilter_statusstring[]Filter by job status e.g. ['Active'], ['On Hold'], ['Inactive'] (default: ['Active'])
Default: ["Active"]
Responses
Successful operation
Search jobs by title or keyword
Search for active job postings by title, role name, or keyword. Returns paginated results sorted by posting date. Use this for simple text searches. For complex filters (date, location, multiple criteria) use a more advanced search.
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
search_valuestring · requiredJob title, role name, or keyword to search for (e.g. 'Python Developer', 'Backend Engineer')
pageintegerPage number for pagination (default: 1)
Default: 1per_pageintegerNumber of results per page (default: 5)
Default: 5filter_statusstring[]Filter by job status (default: ['Active'])
Default: ["Active"]sort_columnstringColumn to sort by (default: 'posting_date')
Default: posting_datesort_directionstring · enumSort direction (default: 'DESC')
Enum values:ASCDESCDefault: DESC
Responses
List of matching jobs
Get sourced candidates for a job
Returns AI-sourced candidates for a given job ID. Fetches candidates from the NinjaHire sourcing pipeline using the job's requirements. Returns rich candidate profiles including name, title, company, LinkedIn, skills, and experience.
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
job_idstring · requiredThe unique ID of the job to fetch sourced candidates for
sizeintegerNumber of candidates to return (default: 10)
Default: 10
Responses
List of sourced candidates with full profile data
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.
path Parameters
job_idstring · requiredID of the job to retrieve
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Responses
Successful operation
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.
path Parameters
job_idstring · requiredID of the job to update
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
titlestringclient_namestringindustrystringaddressstringworkplace_typestringcitystringstate_namestringzip_codestringcountrystringemployment_typestringdurationstringstart_datestring · dateend_datestring · dateposting_datestring · datepay_frequencystringmin_pay_ratenumbermax_pay_ratenumberpay_rate_currencystringrecruiter_namestringrecruiter_emailstringrecruiter_work_phone_nostringstatusstringdescstringai_sourcing_enabledbooleanEnable or disable AI sourcing
scheduling_enabledbooleanEnable or disable scheduling/outreach
Responses
Successful operation
Get job outreach and AI screening status
Retrieve the outreach and AI screening enabled status for a specific job. This endpoint returns whether outreach and AI screening is currently enabled or disabled for the given job, along with the job ID. Use this to check if a job is actively using outreach for candidate engagement and AI screening for candidate screening.
path Parameters
job_idstring · requiredJob ID (UUID) or source_id
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Responses
Success
schedulingbooleanWhether outreach and AI screening is enabled for the job
idstring · uuidThe job ID (UUID)
source_idstringThe source ID from the jobs table
Update job outreach and AI screening enabled status
Enable or disable AI screening and outreach for a specific job. Set scheduling to true to activate, false to deactivate.
path Parameters
job_idstring · requiredJob ID (UUID)
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
schedulingboolean · requiredSet to true to enable AI screening and outreach, false to disable.
Responses
Success
Get job AI sourcing status
Retrieve the AI sourcing status for a specific job. This endpoint returns whether AI sourcing is currently enabled or disabled for the given job, along with the job ID. Use this to check if a job is actively using AI for candidate sourcing.
path Parameters
job_idstring · requiredJob ID (UUID) or source_id
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Responses
Success
ai_sourcing_enabledbooleanWhether AI sourcing is enabled for the job
idstring · uuidThe job ID (UUID)
source_idstringThe source ID from the jobs table
Update job AI sourcing status
Enable or disable AI sourcing for a specific job. When enabled, the system will automatically source candidates using AI technology.
path Parameters
job_idstring · requiredJob ID (UUID)
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
ai_sourcing_enabledboolean · requiredSet to true to enable AI sourcing, false to disable.
Responses
Success
Get job outreach status by source ID
Retrieve the outreach status for a specific job using source_id. This endpoint returns whether outreach is currently enabled or disabled for the given job, along with the job ID. Use this to check if a job is actively using outreach for candidate engagement.
path Parameters
source_idstring · requiredsource_id from the jobs table
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Responses
Success
schedulingbooleanWhether outreach and AI screening is enabled for the job
idstring · uuidThe job ID (UUID)
source_idstringThe source ID from the jobs table
Update job outreach status by source ID
Enable or disable outreach for a specific job using source_id. Provide the source_id and set the scheduling parameter to true or false to control whether outreach is active for the job. This allows you to turn outreach on or off as needed.
path Parameters
source_idstring · requiredsource_id from the jobs table
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Responses
Created
messagestringidstring · uuidsource_idstringschedulingboolean
Get job AI sourcing status by source ID
Retrieve the AI sourcing status for a specific job using source_id. This endpoint returns whether AI sourcing is currently enabled or disabled for the given job, along with the job ID. Use this to check if a job is actively using AI for candidate sourcing.
path Parameters
source_idstring · requiredsource_id from the jobs table
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Responses
Success
ai_sourcing_enabledbooleanWhether AI sourcing is enabled for the job
idstring · uuidThe job ID (UUID)
source_idstringThe source ID from the jobs table
Update job AI sourcing status by source ID
Enable or disable AI sourcing for a specific job using source_id. When enabled, the system will automatically source candidates using AI technology. Provide the source_id and set the ai_sourcing_enabled parameter to true or false to control whether AI sourcing is active for the job. This feature helps automate candidate discovery and matching.
path Parameters
source_idstring · requiredsource_id from the jobs table
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
ai_sourcing_enabledboolean · requiredEnable or disable AI sourcing for the job. When enabled, the system will automatically source candidates using AI.
Responses
Success
messagestringai_sourcing_enabledbooleanidstring · uuidsource_idstring
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.
path Parameters
job_idstring · requiredID of the job to retrieve
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Responses
Call schedule setting found
window_start_timestring · pattern:^([01]\d|2[0-3]):([0…window_end_timestring · pattern:^([01]\d|2[0-3]):([0…daily_attemptsinteger · min: 0 · max: 5total_attemptsinteger · min: 0retry_intervalinteger · min: 0days_of_weekinteger[]email_enabledbooleanemail_notify_minutesinteger · min: 0email_repeatbooleansms_enabledbooleansms_notify_minutesinteger · min: 0sms_repeatbooleancall_schedule_minutesinteger · min: 0namestring
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.
path Parameters
jobIdstring · requiredID of the job to retrieve
Headers
Authorizationstring · requiredThe
Authorizationheader is used to authenticate with the API using your API key. Value is of the formatBearer YOUR_KEY_HERE.
Request Body
window_start_timestring · pattern:^([01]\d|2[0-3]):([0…· requiredwindow_end_timestring · pattern:^([01]\d|2[0-3]):([0…· required
daily_attemptsinteger · min: 0 · max: 5total_attemptsinteger · min: 0retry_intervalinteger · min: 0days_of_weekinteger[]email_enabledbooleanemail_notify_minutesinteger · min: 0email_repeatbooleansms_enabledbooleansms_notify_minutesinteger · min: 0sms_repeatbooleanvoicemail_enabledbooleanrepeat_callingbooleancall_schedule_minutesinteger · min: 0defaultbooleannamestring
Responses
Created
window_start_timestring · pattern:^([01]\d|2[0-3]):([0…window_end_timestring · pattern:^([01]\d|2[0-3]):([0…daily_attemptsinteger · min: 0 · max: 5total_attemptsinteger · min: 0retry_intervalinteger · min: 0days_of_weekinteger[]email_enabledbooleanemail_notify_minutesinteger · min: 0email_repeatbooleansms_enabledbooleansms_notify_minutesinteger · min: 0sms_repeatbooleanvoicemail_enabledbooleanrepeat_callingbooleancall_schedule_minutesinteger · min: 0namestring
