POST
/
ats
/
jobs
/
{job_id}
/
applications
curl --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",
      "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"
      ]
    }
  ]
}'
{
  "status": "success",
  "data": {
    "id": "26vafvWSRmbhNcxJYqjCzuJg",
    "remote_id": "32",
    "outcome": "HIRED",
    "rejection_reason_name": "Any text string",
    "current_stage_id": "5J7L4b48wBfffYwek9Az9pkM",
    "job_id": "H5daSm8e85Dmvmne3wLeCPhX",
    "candidate_id": "H77fDF8uvEzGNPRubiz5DvQ7",
    "custom_fields": {},
    "changed_at": "2022-08-07T14:01:29.196Z",
    "remote_deleted_at": null,
    "remote_created_at": "2022-08-07T14:01:29.196Z",
    "remote_updated_at": "2022-08-07T14:01:29.196Z",
    "remote_data": null
  },
  "warnings": [
    {
      "message": "<string>"
    }
  ]
}

Visit our in depth guide to learn more about:

This endpoint requires the permission Create and manage candidates and applications to be enabled in your scope config.

Example Request Body

{
  "stage_id": "8x3YKRDcuRnwShdh96ShBNn1",
  "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",
      "country": "US"
    }
  },
  "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"
      ]
    }
  ]
}

Authorizations

Authorization
string
headerrequired

Create an API key on the Secrets page in the Kombo dashboard.

Headers

X-Integration-Id
string
required

ID of the integration you want to interact with.

Path Parameters

job_id
string
required

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

application/json
stage_id
string

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.

candidate
object
required
attachments
object[]

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.

source
object
deprecated

(⚠️ 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.

gdpr_consent
object

Optional GDPR consent information required in some jurisdictions (like the Czech Republic or Slovakia).

remote_fields
object

Additional fields that we will pass through to specific ATS systems.

screening_question_answers
object[]

Array of answers to screening questions. Currently, not all question types are supported and unsupported ones will not be submitted.

The available questions a job can be retrieved from the get jobs endpoint. The answers will be validated based on the format of the the questions. Make sure to follow this schema to avoid errors.

Response

200 - application/json
status
enum<string>
required
Available options:
success
data
object
required
warnings
object[]
required