> ## 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.

# Workable ATS Integration

> Workable connector for Kombo's ATS API

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

## Guides and Resources

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

  <Card title="Sandbox Environment" icon="flask" href="https://www.workable.com/free-trial">
    Access the Workable sandbox environment for testing and development.
  </Card>

  <Card title="Source Setup Guide" icon="settings" href="https://help.kombo.dev/hc/en-us/articles/17077471178769">
    Learn how to set up candidate sources in Workable.
  </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               |       |
      | status              |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Jobs">
      | Field                | Notes |
      | -------------------- | ----- |
      | id                   |       |
      | remote\_id           |       |
      | changed\_at          |       |
      | remote\_deleted\_at  |       |
      | name                 |       |
      | job\_code            |       |
      | description          |       |
      | confidential         |       |
      | employment\_type     |       |
      | status               |       |
      | visibility           |       |
      | category             |       |
      | 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          |       |
      | remote\_created\_at  |       |
      | remote\_data         |       |
    </Accordion>

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

    <Accordion title="Candidates">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | first\_name         |       |
      | last\_name          |       |
      | company             |       |
      | title               |       |
      | 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                |       |
      | remote\_data        |       |
    </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\_updated\_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="Interviews">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | title               |       |
      | starting\_at        |       |
      | ending\_at          |       |
      | application\_id     |       |
      | 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>
        Workable hiring team uses **jobMembers** (**collaboration\_role**) and **jobRecruiters**

        * **hiring\_manager** (shown as "Hiring Manager" in the UI) maps to unified type `HIRING_MANAGER`
        * **recruiting\_admin** and **recruiter** (shown as "Recruiter" in the UI) map to unified type `RECRUITER`
        * **admin**, **simple**, and **reviewer** have no unified type
        * Unknown **collaboration\_role** values have no unified type
        * Each **jobRecruiters** (shown in the UI as "External Recruiter") entry maps to unified type `RECRUITER`
      </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>
        Workable assigns each member a **roles** list of string ids; Kombo ignores entries starting with **hris.**

        * **workable.superadmin** and **ats.admin** map to unified type `ADMIN`
        * **ats.simple**, **ats.reviewer**, and any other **roles** entry have no unified type.
      </Note>

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

    <Accordion title="Interviewing team members">
      | Field               | Notes |
      | ------------------- | ----- |
      | interview\_id       |       |
      | user\_id            |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>
  </Tab>

  <Tab title="Actions">
    <Accordion title="Create candidate">
      <Note>
        When `sourced_by` is provided, the `source` is not used.
      </Note>

      | Input Field                               | Notes |
      | ----------------------------------------- | ----- |
      | candidate.first\_name                     |       |
      | candidate.last\_name                      |       |
      | candidate.email\_address                  |       |
      | candidate.company                         |       |
      | candidate.title                           |       |
      | candidate.phone\_number                   |       |
      | candidate.location.city                   |       |
      | candidate.location.country                |       |
      | 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                                 |       |
      | sourced\_by.user\_id                      |       |
    </Accordion>

    <Accordion title="Create application">
      <Note>
        When `sourced_by` is provided, the `source` is not used.
      </Note>

      | Input Field                               | Notes |
      | ----------------------------------------- | ----- |
      | candidate.first\_name                     |       |
      | candidate.last\_name                      |       |
      | candidate.email\_address                  |       |
      | candidate.company                         |       |
      | candidate.title                           |       |
      | candidate.phone\_number                   |       |
      | candidate.location.city                   |       |
      | candidate.location.country                |       |
      | 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                                 |       |
      | sourced\_by.user\_id                      |       |
    </Accordion>

    <Accordion title="Add tag to candidate">
      | Input Field   | Notes |
      | ------------- | ----- |
      | candidate\_id |       |
      | tag.name      |       |
    </Accordion>

    <Accordion title="Remove tag from candidate">
      | Input Field   | Notes |
      | ------------- | ----- |
      | candidate\_id |       |
      | tag.name      |       |
    </Accordion>

    <Accordion title="Add attachment to application">
      <Note>
        Workable only allows us to upload attachments of non-`CV` by submitting a comment. For non-`CV`s, we will create a comment with the first job admin we find. For the attachment of the type `CV`, we will override the original one, please submit it as `OTHER` if you wish to preserve the original. 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.data\_url |       |
      | attachment.data      |       |
      | attachment.type      |       |
    </Accordion>

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

    <Accordion title="Reject application">
      | Input Field           | Notes |
      | --------------------- | ----- |
      | application\_id       |       |
      | rejection\_reason\_id |       |
      | note                  |       |
    </Accordion>

    <Accordion title="Add result link to application">
      | Input Field                         | Notes |
      | ----------------------------------- | ----- |
      | application\_id                     |       |
      | label                               |       |
      | url                                 |       |
      | details.custom\_field\_name\_prefix |       |
      | details.attributes.key              |       |
      | details.attributes.value            |       |
    </Accordion>

    <Accordion title="Add note to application">
      | 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>
        Workable only allows us to upload attachments of non-`CV` by submitting a comment. For non-`CV`s, we will create a comment with the first job admin we find. For the attachment of the type `CV`, we will override the original one, please submit it as `OTHER` if you wish to preserve the original.
      </Note>

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

    <Accordion title="Add result link to candidate">
      | Input Field                         | Notes |
      | ----------------------------------- | ----- |
      | candidate\_id                       |       |
      | label                               |       |
      | url                                 |       |
      | details.custom\_field\_name\_prefix |       |
      | details.attributes.key              |       |
      | details.attributes.value            |       |
    </Accordion>
  </Tab>

  <Tab title="Features">
    | Feature                        | Notes                                                                                                      |
    | ------------------------------ | ---------------------------------------------------------------------------------------------------------- |
    | Source Writing                 |                                                                                                            |
    | Sync Only Created Applications |                                                                                                            |
    | Connection Guide               |                                                                                                            |
    | Prerequisites                  |                                                                                                            |
    | Create credentials             |                                                                                                            |
    | Candidate source tracking      |                                                                                                            |
    | Candidate Cutoff Filtering     |                                                                                                            |
    | Roles                          |                                                                                                            |
    | System roles (e.g. Admin)      | Workable assigns each member a **roles** list of string ids; Kombo ignores entries starting with **hris.** |

    * **workable.superadmin** and **ats.admin** map to unified type `ADMIN`
    * **ats.simple**, **ats.reviewer**, and any other **roles** entry have no unified type. |
      \|   Job roles (e.g. Hiring Manager) | Workable hiring team uses **jobMembers** (**collaboration\_role**) and **jobRecruiters**
    * **hiring\_manager** (shown as "Hiring Manager" in the UI) maps to unified type `HIRING_MANAGER`
    * **recruiting\_admin** and **recruiter** (shown as "Recruiter" in the UI) map to unified type `RECRUITER`
    * **admin**, **simple**, and **reviewer** have no unified type
    * Unknown **collaboration\_role** values have no unified type
    * Each **jobRecruiters** (shown in the UI as "External Recruiter") entry maps to unified type `RECRUITER` |
      \| API Passthrough |  |
      \| Webhook Subscriptions | candidate\_created: triggered when a new candidate was created candidate\_moved: triggered when a candidate was moved to a different stage Not covered: a job was published Not covered: a job was unpublished Not covered: an application stage changed Not covered: a tag was assigned to a candidate Not covered: screening questions were updated for a job Not covered: an interview was scheduled Not covered: an interview was updated Webhooks from Workable do not arrive immediately but are delayed by a few minutes. |
      \|   Automatic Setup |  |
      \| Scope Testing |  |
      \| Delta Syncs |  |
      \| EEO Questions | Workable automatically sends candidates an email after application to collect EEO data |
  </Tab>
</Tabs>
