Reading Applications allows you to retrieve all applications from an ATS.

Reading All Applications

In order to ensure you read all applications from your customer’s ATS, you must configure the Only Sync Created Applications toggle to off in your dashboard. 1378 This can be done here in your Kombo Dashboard. Kombo uses multiple approaches (e.g., syncs and upstream webhooks) to ingest data from the ATS. Whenever we detect a change in the ATS—for example, a new candidate is created—you will receive a data-changed webhook allowing you to fetch any new data from Kombo. More information on fetching data can be found in Fetching Data. 1377 Once the first sync finishes, and whenever new data becomes available, you will receive a data-changed webhook. Then, using the GET Applications endpoint, applications can be read from the ATS into your system.

Set Screening Trigger stage

You will want to identify the trigger stage(s) for your screening. On the GET Jobs endpoint, you will see the stages object.
{
  "status": "success",
  "data": {
    "next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
    "results": [
      {
        "id": "26vafvWSRmbhNcxJYqjCzuJg",
        "remote_id": "32",
        "name": "Backend Engineer",
        ...,
        "stages": [
          {
            "id": "3PJ8PZhZZa1eEdd2DtPNtVup",
            "remote_id": "32",
            "name": "Initial Screening",
            "index": 0
          },
          {
            "id": "HWUTwvyx2wLoSUHphiWVrp28",
            "remote_id": "38",
            "name": "Interview",
            "index": 1
          },
        ],
      }
    ]
  }
}
You will have to identify the stage at which screening should occur. It is possible to use the index, stages.id, or stage name to identify the stage(s) to trigger screening. You may also want to involve your customer in identifying the trigger stage. We recommend using the stages.id.
If you plan on moving an application we would recommend that you also identify the stages.id for the next stage in the application process and store this in your database. As you will need this in order to move the application to the next stage.

Tracking Stages

You will have to keep track of applications during the application process in order to check whether the stage of the application has changed to the trigger stage. To see whether the stage of an application has changed, you have to implement some tracking logic on your end by calling the GET Applications endpoint with the updated_after filter and then comparing the stage of each candidate with the stage you currently have in your system. When you fetch the applications via the GET Applications endpoint, you will get the current_stage_id and current_stage properties for each application. The current_stage is just an expanded version of the current_stage_id, so you can use either of them.
{
  "status": "success",
  "data": {
    "next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
    "results": [
      {
        "id": "26vafvWSRmbhNcxJYqjCzuJg",
        "remote_id": "32",
        ...
        "current_stage_id": "5J7L4b48wBfffYwek9Az9pkM",
        ...
        "current_stage": {
          "id": "5J7L4b48wBfffYwek9Az9pkM",
          "remote_id": "32",
          "name": "Initial Screening"
        },
      }
    ]
  }
}
Please note that in many ATS, each job can have a custom hiring process (i.e., a custom configuration of application stages). You can find the stages for each job on the stages property when calling the GET Jobs endpoint.

Get Attachments

As a screening company you may want to read candidates’ CVs. This can be done using the GET Application Attachments endpoint.
For every application you must make a request to retrieve the attachment
  • This endpoint requires the permission Read document attachments to be enabled in your scope configuration.
You will need to provide the application_id for each application you want to get the attachments for.
curl --request GET \
  --url https://api.kombo.dev/v1/ats/applications/{123abc}/attachments \
  --header 'Authorization: Bearer <token>' \
  --header 'X-Integration-Id: <x-integration-id>'

Screening Questions

Once you read in applications you can get the screening questions and answers from the screening_question_answers object on the get applications endpoint response.
"screening_question_answers": [
          {
            "answer": {
              "choice": "TypeScript"
            },
            "question": {
              "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4",
              "title": "Which is your primary programming language",
              "type": "SINGLE_SELECT"
            }
          }
        ],