> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Teamtailor ATS Integration

> Teamtailor connector for Kombo's ATS API

The Teamtailor ATS integration allows you to sync ATS data between Teamtailor and your application through Kombo's unified API. The tool slug for this connector is `teamtailor`.

## Guides and Resources

<CardGroup cols={2}>
  <Card title="Connection Setup Guide" icon="link" href="https://help.kombo.dev/hc/en-us/articles/17658089783185">
    Step-by-step instructions to connect your Teamtailor account to Kombo.
  </Card>

  <Card title="Sandbox Environment" icon="flask" href="https://tt.teamtailor.com/users/new?locale=en">
    Access the Teamtailor sandbox environment for testing and development.
  </Card>

  <Card title="View Candidate Sources" icon="eye" href="https://help.kombo.dev/hc/en-us/articles/22529285720337-Teamtailor-How-to-view-a-candidates-source">
    How to view and manage candidate sources in Teamtailor.
  </Card>
</CardGroup>

## Supported Features & Coverage

<Tabs>
  <Tab title="Models">
    <Accordion title="Users">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | first\_name         |       |
      | last\_name          |       |
      | email               |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Jobs">
      | Field                | Notes |
      | -------------------- | ----- |
      | id                   |       |
      | remote\_id           |       |
      | changed\_at          |       |
      | remote\_deleted\_at  |       |
      | name                 |       |
      | description          |       |
      | employment\_type     |       |
      | status               |       |
      | visibility           |       |
      | department           |       |
      | post\_url            |       |
      | experience\_level    |       |
      | remote\_work\_status |       |
      | salary\_amount\_from |       |
      | salary\_amount\_to   |       |
      | salary\_currency     |       |
      | salary\_period       |       |
      | location             |       |
      | custom\_fields       |       |
      | integration\_fields  |       |
      | remote\_url          |       |
      | opened\_at           |       |
      | closed\_at           |       |
      | remote\_created\_at  |       |
      | remote\_updated\_at  |       |
      | remote\_data         |       |
    </Accordion>

    <Accordion title="Job postings">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | title               |       |
      | description\_html   |       |
      | status              |       |
      | visibility          |       |
      | job\_id             |       |
      | remote\_data        |       |
      | remote\_created\_at |       |
      | remote\_updated\_at |       |
    </Accordion>

    <Accordion title="Candidates">
      <Note>
        We only expose one location per candidate.
      </Note>

      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | first\_name         |       |
      | last\_name          |       |
      | confidential        |       |
      | source              |       |
      | phone\_numbers      |       |
      | email\_addresses    |       |
      | social\_media       |       |
      | location            |       |
      | custom\_fields      |       |
      | integration\_fields |       |
      | remote\_url         |       |
      | remote\_created\_at |       |
      | remote\_updated\_at |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Application Stages">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
    </Accordion>

    <Accordion title="Applications">
      | Field                        | Notes |
      | ---------------------------- | ----- |
      | id                           |       |
      | remote\_id                   |       |
      | changed\_at                  |       |
      | remote\_deleted\_at          |       |
      | outcome                      |       |
      | rejection\_reason\_name      |       |
      | rejected\_at                 |       |
      | current\_stage\_id           |       |
      | job\_id                      |       |
      | candidate\_id                |       |
      | screening\_question\_answers |       |
      | custom\_fields               |       |
      | integration\_fields          |       |
      | remote\_url                  |       |
      | remote\_created\_at          |       |
      | remote\_data                 |       |
    </Accordion>

    <Accordion title="Screening questions">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | title               |       |
      | description         |       |
      | format              |       |
    </Accordion>

    <Accordion title="Tags">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
    </Accordion>

    <Accordion title="Offers">
      | Field                   | Notes |
      | ----------------------- | ----- |
      | id                      |       |
      | remote\_id              |       |
      | changed\_at             |       |
      | remote\_deleted\_at     |       |
      | status                  |       |
      | employment\_start\_date |       |
      | custom\_fields          |       |
      | integration\_fields     |       |
      | remote\_created\_at     |       |
      | remote\_data            |       |
    </Accordion>

    <Accordion title="Rejection reasons">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Roles">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | remote\_label       |       |
      | scope               |       |
      | unified\_type       |       |
    </Accordion>

    <Accordion title="Candidate tags">
      | Field               | Notes |
      | ------------------- | ----- |
      | candidate\_id       |       |
      | tag\_id             |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>

    <Accordion title="Job-specific application stages">
      | Field               | Notes |
      | ------------------- | ----- |
      | index               |       |
      | job\_id             |       |
      | stage\_id           |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>

    <Accordion title="Job-specific screening questions">
      | Field                      | Notes |
      | -------------------------- | ----- |
      | index                      |       |
      | required                   |       |
      | precondition\_question\_id |       |
      | precondition\_options      |       |
      | job\_id                    |       |
      | question\_id               |       |
      | id                         |       |
      | changed\_at                |       |
      | remote\_deleted\_at        |       |
    </Accordion>

    <Accordion title="Job user role assignments">
      <Note>
        Teamtailor exposes hiring team members via two relations on the job:

        * **user** (shown as "Recruiter" in the UI) maps to unified type `RECRUITER`
        * **team-memberships** exposes 2 types of roles
        * **team-memberships** shown as "External Recruiter" in the UI maps to unified type `RECRUITER`
        * **team-memberships** shown as "Additional Users" in the UI have no unified type
      </Note>

      | Field               | Notes |
      | ------------------- | ----- |
      | job\_user\_id       |       |
      | role\_id            |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>

    <Accordion title="Job hiring team members">
      | Field               | Notes |
      | ------------------- | ----- |
      | roles               |       |
      | job\_id             |       |
      | user\_id            |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>

    <Accordion title="User roles">
      <Note>
        Teamtailor exposes each user's **role** attribute

        * **admin** maps to unified type `ADMIN`
        * **recruiter** maps to unified type `RECRUITER`
        * **external\_recruiter** maps to unified type `RECRUITER`
        * Any other **role** value has no unified type.
      </Note>

      | Field               | Notes |
      | ------------------- | ----- |
      | user\_id            |       |
      | role\_id            |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>
  </Tab>

  <Tab title="Actions">
    <Accordion title="Create candidate">
      <Note>
        It is not possible to answer screening questions of type 'file' via the Teamtailor API. The submitted answers will be uploaded as other attachments instead. Teamtailor only supports LinkedIn as a social link. Other links will be ignored.
      </Note>

      | Input Field                               | Notes |
      | ----------------------------------------- | ----- |
      | candidate.first\_name                     |       |
      | candidate.last\_name                      |       |
      | candidate.email\_address                  |       |
      | candidate.title                           |       |
      | candidate.phone\_number                   |       |
      | candidate.social\_links.url               |       |
      | application.job\_id                       |       |
      | application.stage\_id                     |       |
      | screening\_question\_answers.question\_id |       |
      | screening\_question\_answers.answer       |       |
      | attachments.name                          |       |
      | attachments.content\_type                 |       |
      | attachments.data\_url                     |       |
      | attachments.data                          |       |
      | attachments.type                          |       |
      | source.name                               |       |
      | source.unified\_key                       |       |
      | source.id                                 |       |
      | gdpr\_consent.given                       |       |
    </Accordion>

    <Accordion title="Create application">
      <Note>
        It is not possible to answer screening questions of type 'file' via the Teamtailor API. The submitted answers will be uploaded as other attachments instead. Teamtailor only supports LinkedIn as a social link. Other links will be ignored.
      </Note>

      | Input Field                               | Notes |
      | ----------------------------------------- | ----- |
      | candidate.first\_name                     |       |
      | candidate.last\_name                      |       |
      | candidate.email\_address                  |       |
      | candidate.title                           |       |
      | candidate.phone\_number                   |       |
      | candidate.social\_links.url               |       |
      | application.job\_id                       |       |
      | application.stage\_id                     |       |
      | screening\_question\_answers.question\_id |       |
      | screening\_question\_answers.answer       |       |
      | attachments.name                          |       |
      | attachments.content\_type                 |       |
      | attachments.data\_url                     |       |
      | attachments.data                          |       |
      | attachments.type                          |       |
      | source.name                               |       |
      | source.unified\_key                       |       |
      | source.id                                 |       |
      | gdpr\_consent.given                       |       |
    </Accordion>

    <Accordion title="Add tag to candidate">
      <Note>
        Parallel use of this action is not recommended for Teamtailor.
      </Note>

      | Input Field   | Notes |
      | ------------- | ----- |
      | candidate\_id |       |
      | tag.name      |       |
    </Accordion>

    <Accordion title="Remove tag from candidate">
      <Note>
        Parallel use of this action is not recommended for Teamtailor.
      </Note>

      | Input Field   | Notes |
      | ------------- | ----- |
      | candidate\_id |       |
      | tag.name      |       |
    </Accordion>

    <Accordion title="Add attachment to application">
      <Note>
        It's not possible to add new "CV"s. Every CV attachment that is added will have type "other" inside TeamTailor. This action will fall back to the "Add attachment to candidate" action. Therefore, there could be cases where the attachment may not be added to the application but rather to the candidate.
      </Note>

      | Input Field              | Notes |
      | ------------------------ | ----- |
      | application\_id          |       |
      | attachment.name          |       |
      | attachment.content\_type |       |
      | attachment.data\_url     |       |
      | attachment.data          |       |
    </Accordion>

    <Accordion title="Move application to stage">
      | Input Field     | Notes |
      | --------------- | ----- |
      | application\_id |       |
      | stage\_id       |       |
    </Accordion>

    <Accordion title="Reject application">
      <Note>
        When rejecting an application, Teamtailor shows it as rejected by "Deleted User" in the API. You can however specify a user id under remote\_fields.teamtailor.user\_id to provide an author for the note behind the rejection.
      </Note>

      | Input Field           | Notes |
      | --------------------- | ----- |
      | application\_id       |       |
      | rejection\_reason\_id |       |
      | note                  |       |
    </Accordion>

    <Accordion title="Add result link to application">
      <Note>
        In Teamtailor, we can not write additional details to the result link. We can only write the URL and label.
      </Note>

      | Input Field     | Notes |
      | --------------- | ----- |
      | application\_id |       |
      | label           |       |
      | url             |       |
    </Accordion>

    <Accordion title="Add note to application">
      <Note>
        To write a note, we need to select a valid admin user. We automatically select the first admin user in the system. You can overwrite this by submitting a valid user ID at `remote_fields?.teamtailor?.user_id` to this endpoint.
      </Note>

      | Input Field     | Notes |
      | --------------- | ----- |
      | application\_id |       |
      | content         |       |
    </Accordion>

    <Accordion title="Get application attachments">
      | Input Field     | Notes |
      | --------------- | ----- |
      | application\_id |       |
    </Accordion>

    <Accordion title="Get candidate attachments">
      | Input Field   | Notes |
      | ------------- | ----- |
      | candidate\_id |       |
    </Accordion>

    <Accordion title="Add attachment to candidate">
      <Note>
        It's not possible to add new "CV"s. Every CV attachment that is added will have type "other" inside TeamTailor.
      </Note>

      | Input Field              | Notes |
      | ------------------------ | ----- |
      | candidate\_id            |       |
      | attachment.name          |       |
      | attachment.content\_type |       |
      | attachment.data\_url     |       |
      | attachment.data          |       |
    </Accordion>

    <Accordion title="Add result link to candidate">
      <Note>
        In Teamtailor, we can not write additional details to the result link. We can only write the URL and label.
      </Note>

      | Input Field   | Notes |
      | ------------- | ----- |
      | candidate\_id |       |
      | label         |       |
      | url           |       |
    </Accordion>
  </Tab>

  <Tab title="Features">
    | Feature                        | Notes                                             |
    | ------------------------------ | ------------------------------------------------- |
    | Source Writing                 |                                                   |
    | Sync Only Created Applications |                                                   |
    | Connection Guide               |                                                   |
    | Prerequisites                  |                                                   |
    | Create credentials             |                                                   |
    | Candidate Cutoff Filtering     |                                                   |
    | Roles                          |                                                   |
    | System roles (e.g. Admin)      | Teamtailor exposes each user's **role** attribute |

    * **admin** maps to unified type `ADMIN`
    * **recruiter** maps to unified type `RECRUITER`
    * **external\_recruiter** maps to unified type `RECRUITER`
    * Any other **role** value has no unified type. |
      \|   Job roles (e.g. Hiring Manager) | Teamtailor exposes hiring team members via two relations on the job:
    * **user** (shown as "Recruiter" in the UI) maps to unified type `RECRUITER`
    * **team-memberships** exposes 2 types of roles
    * **team-memberships** shown as "External Recruiter" in the UI maps to unified type `RECRUITER`
    * **team-memberships** shown as "Additional Users" in the UI have no unified type |
      \| API Passthrough |  |
      \| Webhook Subscriptions | candidate.create: triggered when a candidate was created candidate.destroy: triggered when a candidate was deleted candidate.update: triggered when a candidate was updated job\_application.create: triggered when a job application was created job\_application.destroy: triggered when a job application was deleted job\_application.update: triggered when a job application was updated including stage changed job.create: triggered when a job was created job.destroy: triggered when a job was deleted job.update: triggered when a job was updated including being published or unpublished user.create: triggered when a user with access to the Teamtailor dashboard was created user.destroy: triggered when a user with access to the Teamtailor dashboard was deleted user.update: triggered when a user with access to the Teamtailor dashboard was updated Not covered: a tag was assigned or removed from a candidate Not covered: an interview was scheduled or updated Not covered: screening questions were updated for a job |
      \| Scope Testing |  |
      \| Delta Syncs |  |
      \| Custom Field Explorer |  |
      \|   Jobs |  |
  </Tab>
</Tabs>

## Integration Variants

**Current connector:** Choose this variant if you want to use the full Teamtailor ATS integration with comprehensive read/write capabilities for jobs, candidates, applications, and more

For **Teamtailor**, we also offer the following other connector variants:

<CardGroup cols={2}>
  <Card title="Teamtailor Job Boards" icon="https://storage.googleapis.com/kombo-assets/integrations/teamtailorjobboards/icon.svg" href="/ats/connectors/teamtailorjobboards">
    Choose this variant if you are a job board partner who wants to receive job postings and send applications to Teamtailor's Job Board API. This variant has limited functionality compared to the full ATS integration but integrations are automatically created when your customer posts a job within Teamtailor.
  </Card>

  <Card title="Teamtailor Assessment" icon="https://storage.googleapis.com/kombo-assets/integrations/teamtailor/icon.svg" href="/assessment/connectors/teamtailor">
    Teamtailor for the Assessment category
  </Card>
</CardGroup>

<Note>Multiple variants can be used within your Kombo environment at the same time.</Note>
