Skip to main content
As an assessment or background check provider, you want to reduce the friction for your customers to order assessments or background checks for their candidates. By building on top of Kombo’s Unified ATS Assessment & Background Check API, you can allow your customers to seamlessly start assessments or background checks right from their Applicant Tracking System (ATS). Here’s how it works:
  1. You submit your available packages to Kombo. We’ll take care of configuring them in your customer’s integration. Your customers can now submit assessment or background check orders from their ATS.
  2. When your customer triggers a new assessment or background check order in the ATS, Kombo sends you a webhook event, so you can automatically send out an email to the candidate and get the assessment or the background check process started.
  3. Once the candidate has completed the assessment or the background check, you send the results to Kombo. We then write them to the ATS system.
  4. Your customers can conveniently access the assessment or the background check results directly within their ATS.
Continue reading to learn more about what these steps look like in practice.

Setup: Connecting a new customer

Kombo Connect guides your customer through the process of connecting their ATS.

Use Kombo Connect to set up your integrations with your customers. We’ll guide your customers through the process of setting up their integrations.

Implementation Overview

1

Configure Available Packages

Submit all your available assessment and/or background check packages for the customer once they have connected via Kombo. Kombo automatically configures the ATS to surface the packages to your customer.
curl --location --request PUT 'https://api.kombo.dev/v1/assessment/packages' \
  --header 'X-Integration-Id: smartrecruiters:example_integration_id' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer example_kombo_token' \
  --data '{
    "packages": [
      {
        "id": "YOUR-PKG-ID-0001",
        "name": "Coding Test",
        "description": "Coding test description...",
        "type": "SKILLS_TEST"
      },
      {
        "id": "YOUR-PKG-ID-0002",
        "name": "Psychometric Test",
        "description": "Psychometric test description...",
        "type": "SKILLS_TEST"
      },
      {
        "id": "YOUR-PKG-ID-0003",
        "name": "Visa Status",
        "description": "Visa status check...",
        "type": "BACKGROUND_CHECK"
      },
      {
        "id": "YOUR-PKG-ID-0004",
        "name": "SSN Verification",
        "description": "SSN verification check...",
        "type": "BACKGROUND_CHECK"
      }
    ]
  }'
Your customer will then be able to view your submitted packages in their ATS:

What the UI for triggering a new assessment looks like in Greenhouse.

2

Reacting to New Assessment or Background Check Orders

For Inline Assessment, Please refer to this guide for reacting to new inline assessment orders.
When your customer triggers an assessment or background check for a specific candidate from their ATS. Kombo will then notify you that a new assessment or background check order has been created via the assessment:order-received webhook.
  • For assessments, you should then send out an email to the candidate to take the test on your platform. The candidate will then complete your assessment.
  • For background checks, you could send out an email to the candidate to fill in additional information required by the background check that are not stored on the ATS.
assessment:order-received
{
  "id": "B5KQKhAgTv6ZwzrfAbqbhipd",
  "integration_id": "workday:CBNMt7dSNCzBdnRTx87dev4E",
  "package_id": "typescript_test",
  "status": "OPEN",
  "candidate": {
    "remote_id": "12345",
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "+1 123 456 7890"
  },
  "application": {
    "remote_id": "54321"
  },
  "job": {
    "remote_id": "67890",
    "name": "Engineering Manager",
    "location": {
      "city": "Berlin",
      "country": "DE",
      "raw": "Berlin, Germany",
      "state": "Berlin",
      "street_1": "Lohmühlenstraße 65",
      "street_2": null,
      "zip_code": "12435"
    },
    "hiring_team": [
      {
        "first_name": "Jane",
        "last_name": "Doe",
        "remote_id": "78901",
        "email": "[email protected]",
        "hiring_team_roles": [
          "RECRUITER"
        ]
      }
    ]
  }
}
Please refer to this guide on how to validate Kombo’s webhooks.
You can reject your customer’s order of a package by responding with 422 status code and body in the following shape:
HTTP/1.1 422 Unprocessable Content
Date: Fri, 28 Jun 2024 12:00:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 187

{
  "status": "ORDER_REJECTED",
  "message": "There is an existing order for this candidate..."
}
We will propagate the error message from the message field back to the ATS’s UI if it is supported by their API, so that your customers can understand what’s going on.
The response to the assessment:order-received webhook’s body needs to match the shape described in the example to make us to reject the assessment order!Other errors will not cause us to reject the assessment. We will still accept it and make it available via the Get open orders endpoint so that you can retry at a later point.
3

Write Back Results

Once the candidate has completed your assessment or the background check has been updated for the candidate, you can update the results of the assessment or the background check via Kombo:
curl --location --request PUT 'https://api.kombo.dev/v1/assessment/orders/B5KQKhAgTv6ZwzrfAbqbhipd/result' \
  --header 'X-Integration-Id: smartrecruiters:example_integration_id' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer example_kombo_token' \
  --data '{
    "status": "COMPLETED",
    "score": 90,
    "max_score": 100,
    "result_url": "https://example.com",
    "completed_at": "2023-04-04T00:00:00.000Z",
    "attributes": [
      {
        "type": "TEXT",
        "label": "Role fit",
        "value": "Excellent"
      },
      {
        "type": "SUB_RESULT",
        "id": "<YOUR_INTERNAL_ID_OF_THE_TEST>",
        "label": "Personality test",
        "score": {
          "value": 97,
          "max": 100
        },
        "status": "COMPLETED"
      },
      {
        "type": "TEXT",
        "label": "SSN Status",
        "value": "Valid"
      }
    ],
    "attachments": [
      {
        "name": "Assessment Report.pdf",
        "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=",
        "content_type": "application/pdf"
      }
    ]
  }'
Kombo will write the assessment or background check results back into your customer’s ATS system. Your customer can then view the results directly in their ATS.

What an overview of a candidate's result looks like within Greenhouse.

What a detailed result looks like within Greenhouse.