Add a candidate
const url = 'https://app.dover.com/api/v1/external/add-candidate';const options = { method: 'POST', headers: {Authorization: '<Authorization>', 'Content-Type': 'application/json'}, body: '{"channel":"AGENCY","source":"example","sourcer_name":"example","sourcer_email":"example","agency_name":"example","job_id":"example","hiring_pipeline_stage_id":"example","hiring_pipeline_stage_name":"example","candidate_email":"example","candidate_first_name":"example","candidate_last_name":"example","candidate_linkedin_url":"example","resume_url":"https://example.com","additional_comments":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://app.dover.com/api/v1/external/add-candidate \ --header 'Authorization: <Authorization>' \ --header 'Content-Type: application/json' \ --data '{ "channel": "AGENCY", "source": "example", "sourcer_name": "example", "sourcer_email": "example", "agency_name": "example", "job_id": "example", "hiring_pipeline_stage_id": "example", "hiring_pipeline_stage_name": "example", "candidate_email": "example", "candidate_first_name": "example", "candidate_last_name": "example", "candidate_linkedin_url": "example", "resume_url": "https://example.com", "additional_comments": "example" }'Add a candidate to a job. channel is required (AGENCY, REFERRAL, SOURCED or APPLIED) and drives how the candidate is attributed in reporting; see the field descriptions for the accompanying source / sourcer_* / agency_name fields.
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”object
How the candidate entered your pipeline. AGENCY: submitted by a recruiting agency (set agency_name and the agency contact’s sourcer_name / sourcer_email). REFERRAL: referred by someone (set the referrer’s sourcer_name / sourcer_email; source is one of Employee, Investor, Friend, or omitted). SOURCED: found by your team (source is the site, defaults to LinkedIn). APPLIED: applied on their own (source is the job board, optional).
Responses
Section titled “Responses”Response after adding a candidate to the external API.
object
Indicates if the candidate was successfully added.
A message providing additional information about the operation.
Example
{ "success": false, "message": "Candidate missing required fields: ['first_name']"}