from kombo import Kombo
from kombo.utils import parse_datetime
with Kombo(
integration_id="workday:HWUTwvyx2wLoSUHphiWVrp28",
api_key="<YOUR_BEARER_TOKEN_HERE>",
) as k_client:
res = k_client.ats.create_application(job_id="BDpgnpZ148nrGh4mYHNxJBgx", candidate={
"first_name": "Frank",
"last_name": "Doe",
"email_address": "frank.doe@example.com",
"company": "Acme Inc.",
"title": "Head of Integrations",
"phone_number": "+1-541-754-3010",
"location": {
"city": "New York",
"country": "US",
"state": "NY",
"zip_code": "10016",
},
"gender": "MALE",
"availability_date": parse_datetime("2021-01-01T00:00:00Z"),
"salary_expectations": {
"period": "YEAR",
"amount": 100000,
},
}, stage_id="8x3YKRDcuRnwShdh96ShBNn1", attachments=[
{
"name": "Frank Doe CV.txt",
"content_type": "text/plain",
"data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
"type": "CV",
},
], screening_question_answers=[
{
"question_id": "3phFBNXRweGnDmsU9o2vdPuQ",
"answer": "Yes",
},
{
"question_id": "EYJjhMQT3LtVKXnTbnRT8s6U",
"answer": [
"GUzE666zfyjeoCJX6A8n7wh6",
"5WPHzzKAv8cx97KtHRUV96U8",
"7yZfKGzWigXxxRTygqAfHvyE",
],
},
])
# Handle response
print(res)import { Kombo } from "@kombo-api/sdk";
const kombo = new Kombo({
integration_id: "workday:HWUTwvyx2wLoSUHphiWVrp28",
api_key: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await kombo.ats.createApplication({
job_id: "BDpgnpZ148nrGh4mYHNxJBgx",
body: {
stage_id: "8x3YKRDcuRnwShdh96ShBNn1",
candidate: {
first_name: "Frank",
last_name: "Doe",
email_address: "frank.doe@example.com",
company: "Acme Inc.",
title: "Head of Integrations",
phone_number: "+1-541-754-3010",
location: {
city: "New York",
country: "US",
state: "NY",
zip_code: "10016",
},
gender: "MALE",
availability_date: new Date("2021-01-01T00:00:00Z"),
salary_expectations: {
period: "YEAR",
amount: 100000,
},
},
attachments: [
{
name: "Frank Doe CV.txt",
content_type: "text/plain",
data: "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
type: "CV",
},
],
screening_question_answers: [
{
question_id: "3phFBNXRweGnDmsU9o2vdPuQ",
answer: "Yes",
},
{
question_id: "EYJjhMQT3LtVKXnTbnRT8s6U",
answer: [
"GUzE666zfyjeoCJX6A8n7wh6",
"5WPHzzKAv8cx97KtHRUV96U8",
"7yZfKGzWigXxxRTygqAfHvyE",
],
},
],
},
});
console.log(result);
}
run();require 'kombo'
Models = ::Kombo::Models
s = ::Kombo::Kombo.new(
integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28',
security: Models::Shared::Security.new(
api_key: '<YOUR_BEARER_TOKEN_HERE>'
)
)
res = s.ats.create_application(job_id: 'BDpgnpZ148nrGh4mYHNxJBgx', body: Models::Shared::PostAtsJobsJobIdApplicationsRequestBody.new(
stage_id: '8x3YKRDcuRnwShdh96ShBNn1',
candidate: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyCandidate.new(
first_name: 'Frank',
last_name: 'Doe',
email_address: 'frank.doe@example.com',
company: 'Acme Inc.',
title: 'Head of Integrations',
phone_number: '+1-541-754-3010',
location: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyLocation.new(
city: 'New York',
country: 'US',
state: 'NY',
zip_code: '10016'
),
gender: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyGender::MALE,
availability_date: DateTime.iso8601('2021-01-01T00:00:00Z'),
salary_expectations: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodySalaryExpectations.new(
period: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyPeriod::YEAR,
amount: 100_000.0
)
),
attachments: [
Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyAttachment.new(
name: 'Frank Doe CV.txt',
content_type: 'text/plain',
data: 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=',
type: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyAttachmentType::CV
),
],
screening_question_answers: [
Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyScreeningQuestionAnswer.new(
question_id: '3phFBNXRweGnDmsU9o2vdPuQ',
answer: 'Yes'
),
Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyScreeningQuestionAnswer.new(
question_id: 'EYJjhMQT3LtVKXnTbnRT8s6U',
answer: [
'GUzE666zfyjeoCJX6A8n7wh6',
'5WPHzzKAv8cx97KtHRUV96U8',
'7yZfKGzWigXxxRTygqAfHvyE',
]
),
]
))
unless res.post_ats_jobs_job_id_applications_positive_response.nil?
# handle response
endcurl --request POST \
--url https://api.kombo.dev/v1/ats/jobs/{job_id}/applications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Integration-Id: <x-integration-id>' \
--data '
{
"candidate": {
"first_name": "Frank",
"last_name": "Doe",
"company": "Acme Inc.",
"title": "Head of Integrations",
"email_address": "frank.doe@example.com",
"phone_number": "+1-541-754-3010",
"gender": "MALE",
"salary_expectations": {
"amount": 100000,
"period": "YEAR"
},
"availability_date": "2021-01-01",
"location": {
"city": "New York",
"zip_code": "10016",
"state": "NY",
"country": "US"
}
},
"stage_id": "8x3YKRDcuRnwShdh96ShBNn1",
"attachments": [
{
"name": "Frank Doe CV.txt",
"data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
"type": "CV",
"content_type": "text/plain"
}
],
"screening_question_answers": [
{
"question_id": "3phFBNXRweGnDmsU9o2vdPuQ",
"answer": "Yes"
},
{
"question_id": "EYJjhMQT3LtVKXnTbnRT8s6U",
"answer": [
"GUzE666zfyjeoCJX6A8n7wh6",
"5WPHzzKAv8cx97KtHRUV96U8",
"7yZfKGzWigXxxRTygqAfHvyE"
]
}
]
}
'const options = {
method: 'POST',
headers: {
'X-Integration-Id': '<x-integration-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
candidate: {
first_name: 'Frank',
last_name: 'Doe',
company: 'Acme Inc.',
title: 'Head of Integrations',
email_address: 'frank.doe@example.com',
phone_number: '+1-541-754-3010',
gender: 'MALE',
salary_expectations: {amount: 100000, period: 'YEAR'},
availability_date: '2021-01-01',
location: {city: 'New York', zip_code: '10016', state: 'NY', country: 'US'}
},
stage_id: '8x3YKRDcuRnwShdh96ShBNn1',
attachments: [
{
name: 'Frank Doe CV.txt',
data: 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=',
type: 'CV',
content_type: 'text/plain'
}
],
screening_question_answers: [
{question_id: '3phFBNXRweGnDmsU9o2vdPuQ', answer: 'Yes'},
{
question_id: 'EYJjhMQT3LtVKXnTbnRT8s6U',
answer: [
'GUzE666zfyjeoCJX6A8n7wh6',
'5WPHzzKAv8cx97KtHRUV96U8',
'7yZfKGzWigXxxRTygqAfHvyE'
]
}
]
})
};
fetch('https://api.kombo.dev/v1/ats/jobs/{job_id}/applications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/ats/jobs/{job_id}/applications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'candidate' => [
'first_name' => 'Frank',
'last_name' => 'Doe',
'company' => 'Acme Inc.',
'title' => 'Head of Integrations',
'email_address' => 'frank.doe@example.com',
'phone_number' => '+1-541-754-3010',
'gender' => 'MALE',
'salary_expectations' => [
'amount' => 100000,
'period' => 'YEAR'
],
'availability_date' => '2021-01-01',
'location' => [
'city' => 'New York',
'zip_code' => '10016',
'state' => 'NY',
'country' => 'US'
]
],
'stage_id' => '8x3YKRDcuRnwShdh96ShBNn1',
'attachments' => [
[
'name' => 'Frank Doe CV.txt',
'data' => 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=',
'type' => 'CV',
'content_type' => 'text/plain'
]
],
'screening_question_answers' => [
[
'question_id' => '3phFBNXRweGnDmsU9o2vdPuQ',
'answer' => 'Yes'
],
[
'question_id' => 'EYJjhMQT3LtVKXnTbnRT8s6U',
'answer' => [
'GUzE666zfyjeoCJX6A8n7wh6',
'5WPHzzKAv8cx97KtHRUV96U8',
'7yZfKGzWigXxxRTygqAfHvyE'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Integration-Id: <x-integration-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/ats/jobs/{job_id}/applications"
payload := strings.NewReader("{\n \"candidate\": {\n \"first_name\": \"Frank\",\n \"last_name\": \"Doe\",\n \"company\": \"Acme Inc.\",\n \"title\": \"Head of Integrations\",\n \"email_address\": \"frank.doe@example.com\",\n \"phone_number\": \"+1-541-754-3010\",\n \"gender\": \"MALE\",\n \"salary_expectations\": {\n \"amount\": 100000,\n \"period\": \"YEAR\"\n },\n \"availability_date\": \"2021-01-01\",\n \"location\": {\n \"city\": \"New York\",\n \"zip_code\": \"10016\",\n \"state\": \"NY\",\n \"country\": \"US\"\n }\n },\n \"stage_id\": \"8x3YKRDcuRnwShdh96ShBNn1\",\n \"attachments\": [\n {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n }\n ],\n \"screening_question_answers\": [\n {\n \"question_id\": \"3phFBNXRweGnDmsU9o2vdPuQ\",\n \"answer\": \"Yes\"\n },\n {\n \"question_id\": \"EYJjhMQT3LtVKXnTbnRT8s6U\",\n \"answer\": [\n \"GUzE666zfyjeoCJX6A8n7wh6\",\n \"5WPHzzKAv8cx97KtHRUV96U8\",\n \"7yZfKGzWigXxxRTygqAfHvyE\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Integration-Id", "<x-integration-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/ats/jobs/{job_id}/applications")
.header("X-Integration-Id", "<x-integration-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"candidate\": {\n \"first_name\": \"Frank\",\n \"last_name\": \"Doe\",\n \"company\": \"Acme Inc.\",\n \"title\": \"Head of Integrations\",\n \"email_address\": \"frank.doe@example.com\",\n \"phone_number\": \"+1-541-754-3010\",\n \"gender\": \"MALE\",\n \"salary_expectations\": {\n \"amount\": 100000,\n \"period\": \"YEAR\"\n },\n \"availability_date\": \"2021-01-01\",\n \"location\": {\n \"city\": \"New York\",\n \"zip_code\": \"10016\",\n \"state\": \"NY\",\n \"country\": \"US\"\n }\n },\n \"stage_id\": \"8x3YKRDcuRnwShdh96ShBNn1\",\n \"attachments\": [\n {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n }\n ],\n \"screening_question_answers\": [\n {\n \"question_id\": \"3phFBNXRweGnDmsU9o2vdPuQ\",\n \"answer\": \"Yes\"\n },\n {\n \"question_id\": \"EYJjhMQT3LtVKXnTbnRT8s6U\",\n \"answer\": [\n \"GUzE666zfyjeoCJX6A8n7wh6\",\n \"5WPHzzKAv8cx97KtHRUV96U8\",\n \"7yZfKGzWigXxxRTygqAfHvyE\"\n ]\n }\n ]\n}")
.asString();{
"status": "success",
"data": {
"id": "H77fDF8uvEzGNPRubiz5DvQ7",
"remote_id": "32",
"outcome": "PENDING",
"rejection_reason_name": null,
"rejected_at": null,
"current_stage_id": "5J7L4b48wBfffYwek9Az9pkM",
"job_id": "H5daSm8e85Dmvmne3wLeCPhX",
"candidate_id": "26vafvWSRmbhNcxJYqjCzuJg",
"screening_question_answers": [],
"custom_fields": {},
"integration_fields": [],
"remote_url": "https://example.com/applications/32",
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"remote_created_at": "2022-04-02T00:00:00.000Z",
"remote_updated_at": "2022-04-04T00:00:00.000Z",
"remote_data": null,
"current_stage": {
"id": "5J7L4b48wBfffYwek9Az9pkM",
"name": "Interview",
"remote_id": "5",
"index": 2
},
"job": {
"id": "H5daSm8e85Dmvmne3wLeCPhX",
"name": "Head of Integrations",
"remote_id": "1"
},
"candidate": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"company": "Acme, Inc.",
"title": "Head of Marketing",
"confidential": false,
"source": "Employee Referral",
"phone_numbers": [
{
"phone_number": "+1-541-754-3010",
"type": "HOME"
}
],
"email_addresses": [
{
"email_address": "john.doe@example.com",
"type": "PRIVATE"
}
],
"social_media": [
{
"link": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"type": "YOUTUBE",
"username": null
}
],
"location": {
"city": "Berlin",
"country": "DE",
"raw": "Berlin, Germany",
"state": "Berlin",
"street_1": "Lohmühlenstraße 65",
"street_2": null,
"zip_code": "12435"
},
"custom_fields": {},
"integration_fields": [],
"remote_url": "https://example.com/candidates/32",
"remote_created_at": "2022-04-02T00:00:00.000Z",
"remote_updated_at": "2022-04-04T00:00:00.000Z",
"remote_data": null,
"changed_at": "2022-04-04T00:00:00.000Z",
"remote_deleted_at": null,
"tags": [
{
"id": "7DHDky9zk4qnWkycuuQjFXNh",
"name": "Fast Learner",
"remote_id": "1"
}
]
}
},
"warnings": [
{
"message": "This is an example warning!"
}
]
}Create application
Create a new application and candidate for the specified job.
from kombo import Kombo
from kombo.utils import parse_datetime
with Kombo(
integration_id="workday:HWUTwvyx2wLoSUHphiWVrp28",
api_key="<YOUR_BEARER_TOKEN_HERE>",
) as k_client:
res = k_client.ats.create_application(job_id="BDpgnpZ148nrGh4mYHNxJBgx", candidate={
"first_name": "Frank",
"last_name": "Doe",
"email_address": "frank.doe@example.com",
"company": "Acme Inc.",
"title": "Head of Integrations",
"phone_number": "+1-541-754-3010",
"location": {
"city": "New York",
"country": "US",
"state": "NY",
"zip_code": "10016",
},
"gender": "MALE",
"availability_date": parse_datetime("2021-01-01T00:00:00Z"),
"salary_expectations": {
"period": "YEAR",
"amount": 100000,
},
}, stage_id="8x3YKRDcuRnwShdh96ShBNn1", attachments=[
{
"name": "Frank Doe CV.txt",
"content_type": "text/plain",
"data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
"type": "CV",
},
], screening_question_answers=[
{
"question_id": "3phFBNXRweGnDmsU9o2vdPuQ",
"answer": "Yes",
},
{
"question_id": "EYJjhMQT3LtVKXnTbnRT8s6U",
"answer": [
"GUzE666zfyjeoCJX6A8n7wh6",
"5WPHzzKAv8cx97KtHRUV96U8",
"7yZfKGzWigXxxRTygqAfHvyE",
],
},
])
# Handle response
print(res)import { Kombo } from "@kombo-api/sdk";
const kombo = new Kombo({
integration_id: "workday:HWUTwvyx2wLoSUHphiWVrp28",
api_key: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await kombo.ats.createApplication({
job_id: "BDpgnpZ148nrGh4mYHNxJBgx",
body: {
stage_id: "8x3YKRDcuRnwShdh96ShBNn1",
candidate: {
first_name: "Frank",
last_name: "Doe",
email_address: "frank.doe@example.com",
company: "Acme Inc.",
title: "Head of Integrations",
phone_number: "+1-541-754-3010",
location: {
city: "New York",
country: "US",
state: "NY",
zip_code: "10016",
},
gender: "MALE",
availability_date: new Date("2021-01-01T00:00:00Z"),
salary_expectations: {
period: "YEAR",
amount: 100000,
},
},
attachments: [
{
name: "Frank Doe CV.txt",
content_type: "text/plain",
data: "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
type: "CV",
},
],
screening_question_answers: [
{
question_id: "3phFBNXRweGnDmsU9o2vdPuQ",
answer: "Yes",
},
{
question_id: "EYJjhMQT3LtVKXnTbnRT8s6U",
answer: [
"GUzE666zfyjeoCJX6A8n7wh6",
"5WPHzzKAv8cx97KtHRUV96U8",
"7yZfKGzWigXxxRTygqAfHvyE",
],
},
],
},
});
console.log(result);
}
run();require 'kombo'
Models = ::Kombo::Models
s = ::Kombo::Kombo.new(
integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28',
security: Models::Shared::Security.new(
api_key: '<YOUR_BEARER_TOKEN_HERE>'
)
)
res = s.ats.create_application(job_id: 'BDpgnpZ148nrGh4mYHNxJBgx', body: Models::Shared::PostAtsJobsJobIdApplicationsRequestBody.new(
stage_id: '8x3YKRDcuRnwShdh96ShBNn1',
candidate: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyCandidate.new(
first_name: 'Frank',
last_name: 'Doe',
email_address: 'frank.doe@example.com',
company: 'Acme Inc.',
title: 'Head of Integrations',
phone_number: '+1-541-754-3010',
location: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyLocation.new(
city: 'New York',
country: 'US',
state: 'NY',
zip_code: '10016'
),
gender: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyGender::MALE,
availability_date: DateTime.iso8601('2021-01-01T00:00:00Z'),
salary_expectations: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodySalaryExpectations.new(
period: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyPeriod::YEAR,
amount: 100_000.0
)
),
attachments: [
Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyAttachment.new(
name: 'Frank Doe CV.txt',
content_type: 'text/plain',
data: 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=',
type: Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyAttachmentType::CV
),
],
screening_question_answers: [
Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyScreeningQuestionAnswer.new(
question_id: '3phFBNXRweGnDmsU9o2vdPuQ',
answer: 'Yes'
),
Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyScreeningQuestionAnswer.new(
question_id: 'EYJjhMQT3LtVKXnTbnRT8s6U',
answer: [
'GUzE666zfyjeoCJX6A8n7wh6',
'5WPHzzKAv8cx97KtHRUV96U8',
'7yZfKGzWigXxxRTygqAfHvyE',
]
),
]
))
unless res.post_ats_jobs_job_id_applications_positive_response.nil?
# handle response
endcurl --request POST \
--url https://api.kombo.dev/v1/ats/jobs/{job_id}/applications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Integration-Id: <x-integration-id>' \
--data '
{
"candidate": {
"first_name": "Frank",
"last_name": "Doe",
"company": "Acme Inc.",
"title": "Head of Integrations",
"email_address": "frank.doe@example.com",
"phone_number": "+1-541-754-3010",
"gender": "MALE",
"salary_expectations": {
"amount": 100000,
"period": "YEAR"
},
"availability_date": "2021-01-01",
"location": {
"city": "New York",
"zip_code": "10016",
"state": "NY",
"country": "US"
}
},
"stage_id": "8x3YKRDcuRnwShdh96ShBNn1",
"attachments": [
{
"name": "Frank Doe CV.txt",
"data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
"type": "CV",
"content_type": "text/plain"
}
],
"screening_question_answers": [
{
"question_id": "3phFBNXRweGnDmsU9o2vdPuQ",
"answer": "Yes"
},
{
"question_id": "EYJjhMQT3LtVKXnTbnRT8s6U",
"answer": [
"GUzE666zfyjeoCJX6A8n7wh6",
"5WPHzzKAv8cx97KtHRUV96U8",
"7yZfKGzWigXxxRTygqAfHvyE"
]
}
]
}
'const options = {
method: 'POST',
headers: {
'X-Integration-Id': '<x-integration-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
candidate: {
first_name: 'Frank',
last_name: 'Doe',
company: 'Acme Inc.',
title: 'Head of Integrations',
email_address: 'frank.doe@example.com',
phone_number: '+1-541-754-3010',
gender: 'MALE',
salary_expectations: {amount: 100000, period: 'YEAR'},
availability_date: '2021-01-01',
location: {city: 'New York', zip_code: '10016', state: 'NY', country: 'US'}
},
stage_id: '8x3YKRDcuRnwShdh96ShBNn1',
attachments: [
{
name: 'Frank Doe CV.txt',
data: 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=',
type: 'CV',
content_type: 'text/plain'
}
],
screening_question_answers: [
{question_id: '3phFBNXRweGnDmsU9o2vdPuQ', answer: 'Yes'},
{
question_id: 'EYJjhMQT3LtVKXnTbnRT8s6U',
answer: [
'GUzE666zfyjeoCJX6A8n7wh6',
'5WPHzzKAv8cx97KtHRUV96U8',
'7yZfKGzWigXxxRTygqAfHvyE'
]
}
]
})
};
fetch('https://api.kombo.dev/v1/ats/jobs/{job_id}/applications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kombo.dev/v1/ats/jobs/{job_id}/applications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'candidate' => [
'first_name' => 'Frank',
'last_name' => 'Doe',
'company' => 'Acme Inc.',
'title' => 'Head of Integrations',
'email_address' => 'frank.doe@example.com',
'phone_number' => '+1-541-754-3010',
'gender' => 'MALE',
'salary_expectations' => [
'amount' => 100000,
'period' => 'YEAR'
],
'availability_date' => '2021-01-01',
'location' => [
'city' => 'New York',
'zip_code' => '10016',
'state' => 'NY',
'country' => 'US'
]
],
'stage_id' => '8x3YKRDcuRnwShdh96ShBNn1',
'attachments' => [
[
'name' => 'Frank Doe CV.txt',
'data' => 'SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=',
'type' => 'CV',
'content_type' => 'text/plain'
]
],
'screening_question_answers' => [
[
'question_id' => '3phFBNXRweGnDmsU9o2vdPuQ',
'answer' => 'Yes'
],
[
'question_id' => 'EYJjhMQT3LtVKXnTbnRT8s6U',
'answer' => [
'GUzE666zfyjeoCJX6A8n7wh6',
'5WPHzzKAv8cx97KtHRUV96U8',
'7yZfKGzWigXxxRTygqAfHvyE'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Integration-Id: <x-integration-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kombo.dev/v1/ats/jobs/{job_id}/applications"
payload := strings.NewReader("{\n \"candidate\": {\n \"first_name\": \"Frank\",\n \"last_name\": \"Doe\",\n \"company\": \"Acme Inc.\",\n \"title\": \"Head of Integrations\",\n \"email_address\": \"frank.doe@example.com\",\n \"phone_number\": \"+1-541-754-3010\",\n \"gender\": \"MALE\",\n \"salary_expectations\": {\n \"amount\": 100000,\n \"period\": \"YEAR\"\n },\n \"availability_date\": \"2021-01-01\",\n \"location\": {\n \"city\": \"New York\",\n \"zip_code\": \"10016\",\n \"state\": \"NY\",\n \"country\": \"US\"\n }\n },\n \"stage_id\": \"8x3YKRDcuRnwShdh96ShBNn1\",\n \"attachments\": [\n {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n }\n ],\n \"screening_question_answers\": [\n {\n \"question_id\": \"3phFBNXRweGnDmsU9o2vdPuQ\",\n \"answer\": \"Yes\"\n },\n {\n \"question_id\": \"EYJjhMQT3LtVKXnTbnRT8s6U\",\n \"answer\": [\n \"GUzE666zfyjeoCJX6A8n7wh6\",\n \"5WPHzzKAv8cx97KtHRUV96U8\",\n \"7yZfKGzWigXxxRTygqAfHvyE\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Integration-Id", "<x-integration-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kombo.dev/v1/ats/jobs/{job_id}/applications")
.header("X-Integration-Id", "<x-integration-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"candidate\": {\n \"first_name\": \"Frank\",\n \"last_name\": \"Doe\",\n \"company\": \"Acme Inc.\",\n \"title\": \"Head of Integrations\",\n \"email_address\": \"frank.doe@example.com\",\n \"phone_number\": \"+1-541-754-3010\",\n \"gender\": \"MALE\",\n \"salary_expectations\": {\n \"amount\": 100000,\n \"period\": \"YEAR\"\n },\n \"availability_date\": \"2021-01-01\",\n \"location\": {\n \"city\": \"New York\",\n \"zip_code\": \"10016\",\n \"state\": \"NY\",\n \"country\": \"US\"\n }\n },\n \"stage_id\": \"8x3YKRDcuRnwShdh96ShBNn1\",\n \"attachments\": [\n {\n \"name\": \"Frank Doe CV.txt\",\n \"data\": \"SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=\",\n \"type\": \"CV\",\n \"content_type\": \"text/plain\"\n }\n ],\n \"screening_question_answers\": [\n {\n \"question_id\": \"3phFBNXRweGnDmsU9o2vdPuQ\",\n \"answer\": \"Yes\"\n },\n {\n \"question_id\": \"EYJjhMQT3LtVKXnTbnRT8s6U\",\n \"answer\": [\n \"GUzE666zfyjeoCJX6A8n7wh6\",\n \"5WPHzzKAv8cx97KtHRUV96U8\",\n \"7yZfKGzWigXxxRTygqAfHvyE\"\n ]\n }\n ]\n}")
.asString();{
"status": "success",
"data": {
"id": "H77fDF8uvEzGNPRubiz5DvQ7",
"remote_id": "32",
"outcome": "PENDING",
"rejection_reason_name": null,
"rejected_at": null,
"current_stage_id": "5J7L4b48wBfffYwek9Az9pkM",
"job_id": "H5daSm8e85Dmvmne3wLeCPhX",
"candidate_id": "26vafvWSRmbhNcxJYqjCzuJg",
"screening_question_answers": [],
"custom_fields": {},
"integration_fields": [],
"remote_url": "https://example.com/applications/32",
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"remote_created_at": "2022-04-02T00:00:00.000Z",
"remote_updated_at": "2022-04-04T00:00:00.000Z",
"remote_data": null,
"current_stage": {
"id": "5J7L4b48wBfffYwek9Az9pkM",
"name": "Interview",
"remote_id": "5",
"index": 2
},
"job": {
"id": "H5daSm8e85Dmvmne3wLeCPhX",
"name": "Head of Integrations",
"remote_id": "1"
},
"candidate": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"company": "Acme, Inc.",
"title": "Head of Marketing",
"confidential": false,
"source": "Employee Referral",
"phone_numbers": [
{
"phone_number": "+1-541-754-3010",
"type": "HOME"
}
],
"email_addresses": [
{
"email_address": "john.doe@example.com",
"type": "PRIVATE"
}
],
"social_media": [
{
"link": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"type": "YOUTUBE",
"username": null
}
],
"location": {
"city": "Berlin",
"country": "DE",
"raw": "Berlin, Germany",
"state": "Berlin",
"street_1": "Lohmühlenstraße 65",
"street_2": null,
"zip_code": "12435"
},
"custom_fields": {},
"integration_fields": [],
"remote_url": "https://example.com/candidates/32",
"remote_created_at": "2022-04-02T00:00:00.000Z",
"remote_updated_at": "2022-04-04T00:00:00.000Z",
"remote_data": null,
"changed_at": "2022-04-04T00:00:00.000Z",
"remote_deleted_at": null,
"tags": [
{
"id": "7DHDky9zk4qnWkycuuQjFXNh",
"name": "Fast Learner",
"remote_id": "1"
}
]
}
},
"warnings": [
{
"message": "This is an example warning!"
}
]
}Supported integrations
Supported integrations
Workday
SAP SuccessFactors
SmartRecruiters
Factorial
Oracle Recruiting Cloud
Lever
iCIMS
Cornerstone TalentLink
Tellent Recruitee
RecruiterFlow
Greenhouse (V1)
Greenhouse (V3)
Greenhouse Job Board
Teamtailor
Teamtailor Job Boards
Ashby
CEGID TalentSoft FrontOffice
concludis
Talention
P&I Loga
Onlyfy
Personio
UKG Pro
UKG Ready
Oracle Taleo
rexx systems
AFAS Software
BambooHR
Bullhorn
Bullhorn Login
Workable
Jobvite
Fountain
Softgarden
Softgarden Partner
Pinpoint
Welcome to the Jungle
d.vinci
JOIN
Sage HR
TRAFFIT
eRecruiter
Abacus Umantis
Haufe Umantis
Jobylon
Taleez
HR WORKS
OTYS
Zoho Recruit
Ceipal
Eploy
JobDiva
CareerPlug
Perview
Eightfold
Paycor
Avature
Apploi
Phenom
Paradox
Heyrecruit
RECRU
Recruit CRM
JazzHR
BITE
Brass Ring
Homerun
Mysolution
Carerix
HR Office
Talent Clue
InRecruiting by Zucchetti
JobAdder
Ubeeo
Connexys By Bullhorn
HR4YOU
Cornerstone OnDemand
Zvoove Recruit
Odoo
Spark Hire Recruit
Compleet (Pitcher API)
Compleet (only PersoProfiler)
Gem
Laura
Coveto (REST API)
Coveto (legacy SOAP API)
Mercury
Crelate
Manatal
Avionté
MHM HR
Asymbl
Breezy HR
Flatchr
Dayforce
Digital Recruiters
ApplicantStack
ReachMee
TalentAdore
Kombo Sandbox
GuideCom
Spott
Logic Melon
Loxo
Kula
TrackerRMS
Databites
- 🌐 Setting the source of the application
- 📎 Uploading attachments with the application
- ♻️ Retry behaviour
- ✏️ Writing answers to screening questions
- ⚠️ Handling ATS-specific limitations
Example Request Body
{
"candidate": {
"first_name": "Frank",
"last_name": "Doe",
"company": "Acme Inc.",
"title": "Head of Integrations",
"email_address": "frank.doe@example.com",
"phone_number": "+1-541-754-3010",
"gender": "MALE",
"salary_expectations": {
"amount": 100000,
"period": "YEAR"
},
"availability_date": "2021-01-01",
"location": {
"city": "New York",
"zip_code": "10016",
"state": "NY",
"country": "US"
}
},
"stage_id": "8x3YKRDcuRnwShdh96ShBNn1",
"attachments": [
{
"name": "Frank Doe CV.txt",
"data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
"type": "CV",
"content_type": "text/plain"
}
],
"screening_question_answers": [
{
"question_id": "3phFBNXRweGnDmsU9o2vdPuQ",
"answer": "Yes"
},
{
"question_id": "EYJjhMQT3LtVKXnTbnRT8s6U",
"answer": [
"GUzE666zfyjeoCJX6A8n7wh6",
"5WPHzzKAv8cx97KtHRUV96U8",
"7yZfKGzWigXxxRTygqAfHvyE"
]
}
],
"remote_fields": {}
}
Authorizations
Headers
ID of the integration you want to interact with.
Path Parameters
The Kombo ID or Remote ID of the Job this candidate should apply for. If you want to use the ID of the integrated system (remote_id) you need to prefix the id with "remote:". You can use the remote ID if you do not want to sync jobs.
Body
POST /ats/jobs/:job_id/applications Request body
Show child attributes
Show child attributes
Stage this candidate should be in. If left out, the default stage for this job will be used. You can obtain the possible stage_ids from the get-jobs endpoint.
Array of the attachments you would like to upload. The first CV in the attachments will be treated as the resume of the candidate when the tool allows previewing a resume.
Show child attributes
Show child attributes
(⚠️ Deprecated - Use automatic source writing instead) Optional source information that will be attached to the candidate. If you're a job board or recruiting service, you can use this to make sure your customers can see which candidates came from you.
This is deprecated because writing sources requires users to do some setup in most ATSs.
Show child attributes
Show child attributes
Credit the recruiter or team member who sourced this candidate.
While the source field tracks the channel/platform (e.g., "Awesome Jobboard"), the sourced_by field tracks the individual person responsible for finding the candidate.
Show child attributes
Show child attributes
Optional GDPR consent information required in some jurisdictions (like the Czech Republic or Slovakia).
Show child attributes
Show child attributes
Additional fields that we will pass through to specific ATS systems.
Show child attributes
Show child attributes
Array of answers to screening questions. Currently, not all question types are supported, and unsupported ones will not be submitted.
The available questions for a job can be retrieved from the get jobs endpoint. The answers will be validated based on the format of the questions. Make sure to follow this schema to avoid errors.
Show child attributes
Show child attributes
[
{
"question_id": "D8yPrjXXvA2XeBksTmrVvKSn",
"answer": "Yes"
}
]
Response
POST /ats/jobs/:job_id/applications Positive response
"success"Show child attributes
Show child attributes
{
"id": "H77fDF8uvEzGNPRubiz5DvQ7",
"remote_id": "32",
"outcome": "PENDING",
"rejection_reason_name": null,
"rejected_at": null,
"current_stage_id": "5J7L4b48wBfffYwek9Az9pkM",
"job_id": "H5daSm8e85Dmvmne3wLeCPhX",
"candidate_id": "26vafvWSRmbhNcxJYqjCzuJg",
"screening_question_answers": [],
"custom_fields": {},
"integration_fields": [],
"remote_url": "https://example.com/applications/32",
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"remote_created_at": "2022-04-02T00:00:00.000Z",
"remote_updated_at": "2022-04-04T00:00:00.000Z",
"remote_data": null,
"current_stage": {
"id": "5J7L4b48wBfffYwek9Az9pkM",
"name": "Interview",
"remote_id": "5",
"index": 2
},
"job": {
"id": "H5daSm8e85Dmvmne3wLeCPhX",
"name": "Head of Integrations",
"remote_id": "1"
},
"candidate": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"company": "Acme, Inc.",
"title": "Head of Marketing",
"confidential": false,
"source": "Employee Referral",
"phone_numbers": [
{
"phone_number": "+1-541-754-3010",
"type": "HOME"
}
],
"email_addresses": [
{
"email_address": "john.doe@example.com",
"type": "PRIVATE"
}
],
"social_media": [
{
"link": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"type": "YOUTUBE",
"username": null
}
],
"location": {
"city": "Berlin",
"country": "DE",
"raw": "Berlin, Germany",
"state": "Berlin",
"street_1": "Lohmühlenstraße 65",
"street_2": null,
"zip_code": "12435"
},
"custom_fields": {},
"integration_fields": [],
"remote_url": "https://example.com/candidates/32",
"remote_created_at": "2022-04-02T00:00:00.000Z",
"remote_updated_at": "2022-04-04T00:00:00.000Z",
"remote_data": null,
"changed_at": "2022-04-04T00:00:00.000Z",
"remote_deleted_at": null,
"tags": [
{
"id": "7DHDky9zk4qnWkycuuQjFXNh",
"name": "Fast Learner",
"remote_id": "1"
}
]
}
}
These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console.
Show child attributes
Show child attributes
Was this page helpful?