---
title: "Connect an ATS"
method: POST
path: "/hiring/ats"
tags: ["hiring"]
---

# Connect an ATS

`POST /hiring/ats`

## Request

- Base URL: `https://localhost:4410/api/v1`
- URL: `https://localhost:4410/api/v1/hiring/ats`
- Auth: HTTP bearer

Connects Ashby or Workable with an API key the owner makes in that ATS. Binderwork reads the candidates at the offer stage and writes back only the offer's outcome. The key is checked, sealed and never shown again.

## Request body

- object
  - `provider` 'ashby' | 'workable', required
  - `api_key` string, required
  - `subdomain` string

## Response `200`

The result.

- object
  - `provider` 'ashby' | 'workable', required
  - `name` string, required
  - `subdomain` string, nullable, required
  - `status` 'ok' | 'failing', required
  - `last_error` string, nullable, required
  - `last_synced_at` string, date-time, nullable, required
  - `reads` string, required
  - `writes` string, required

## Other responses

- `202`: Called by an agent or an API key, so the call did not run. A person approves it at approval_url; then GET the Location.
- `default`: An RFC 9457 problem.

---

[API](https://skmtc.dev/binderwork/apis/binderwork-api.md) · [All operations](https://skmtc.dev/binderwork/apis/binderwork-api/llms.txt) · [OpenAPI document](https://skmtc.dev/binderwork/apis/binderwork-api/revisions/f8fab0ebee53?raw)
