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

# Integrate Cutshort with Your Applicant Tracking System

> Connect Cutshort to your applicant tracking system to automatically push shortlisted candidates, stage updates, and offer details.

Cutshort integrates with 50+ applicant tracking systems including Greenhouse, Lever, Workday, Zoho Recruit, Freshteam, and more. You can configure these integrations from your Cutshort dashboard, or use the API to push candidate data directly to your ATS.

## Supported ATS systems

* Greenhouse
* Lever
* Workday
* SAP SuccessFactors
* Zoho Recruit
* Freshteam
* BambooHR
* SmartRecruiters
* iCIMS
* Keka HR
* Darwinbox
* HROne

<Note>
  Additional systems are available via webhook-based custom integration. See [Pushing candidates via API](#pushing-candidates-via-api) below.
</Note>

## Native integrations (UI setup)

Connect a supported ATS directly from your Cutshort dashboard — no code required.

<Steps>
  <Step title="Open ATS settings">
    Go to your Cutshort dashboard → **Settings** → **Integrations** → **ATS**.
  </Step>

  <Step title="Select your ATS">
    Select your ATS from the list of supported systems.
  </Step>

  <Step title="Enter your ATS credentials">
    Enter your ATS API credentials. You can find these in your ATS's developer or API settings panel.
  </Step>

  <Step title="Map pipeline stages">
    Map your Cutshort pipeline stages (e.g., Shortlisted, Screening, Interview, Offer) to the corresponding stages in your ATS.
  </Step>

  <Step title="Connect">
    Click **Connect**. Cutshort will verify your credentials and begin syncing candidates automatically from that point forward.
  </Step>
</Steps>

## Pushing candidates via API

If your ATS is not natively supported, you can build a custom sync using Cutshort webhooks and your ATS's own API. The integration follows this flow:

1. Subscribe to the `candidate.shortlisted` and `candidate.stage_changed` webhook events in Cutshort.
2. When a webhook fires, call your ATS's API to create or update the candidate record.
3. Use the `candidate_id`, `job_id`, and `stage` values from the webhook payload to map records correctly.

The example below shows a Node.js Express handler that receives Cutshort webhook events and forwards new shortlists to an ATS client:

```javascript theme={null}
app.post('/cutshort-webhook', (req, res) => {
  const { event, data } = req.body;

  if (event === 'candidate.shortlisted') {
    const { candidate_id, job_id, candidate } = data;
    // Push to your ATS
    atsClient.createCandidate({
      name: candidate.name,
      email: candidate.email,
      job_external_id: job_id,
      source: 'Cutshort'
    });
  }

  res.sendStatus(200);
});
```

For full details on subscribing to events and verifying request signatures, see the [Webhooks guide](/guides/webhooks).

## Field mapping

Use the table below to map Cutshort candidate fields to the standard fields in your ATS:

| Cutshort field               | Typical ATS field    |
| ---------------------------- | -------------------- |
| `candidate.name`             | Candidate Name       |
| `candidate.email`            | Email Address        |
| `candidate.skills`           | Skills / Tags        |
| `candidate.experience_years` | Total Experience     |
| `candidate.current_company`  | Current Employer     |
| `job.id`                     | Job / Requisition ID |
| `stage`                      | Pipeline Stage       |
