Developer guide to get job application data from Teamtailor ATS API

Introduction

This article is part of an ongoing series that covers the Teamtailor API in depth. The focus here is narrow and practical: how to retrieve job application data using the Teamtailor ATS API.

If you are building integrations for recruiting analytics, internal dashboards, or downstream HR systems, job application data is the operational backbone. This guide walks through the exact endpoints and steps required to fetch candidate and application data reliably.

For a broader overview of the Teamtailor API, including authentication, rate limits, and overall API structure, refer to the full guide here.

Get Job Application Data from Teamtailor ATS API

Prerequisites

Before making API calls, ensure the following are in place:

  • A valid Teamtailor API key with permissions to access candidates and job applications.
  • Basic familiarity with making HTTP requests using Python.
  • The requests library installed in your Python environment.

API Endpoints

  • List Candidates
    GET https://api.teamtailor.com/v1/candidates
  • List Job Applications
    GET https://api.teamtailor.com/v1/job-applications

Step-by-Step Process

Step 1: Fetch Candidate Data

import requests

headers = {
    'Authorization': 'Token token=YOUR_API_KEY',
    'X-Api-Version': '20240404'
}

response = requests.get(
    'https://api.teamtailor.com/v1/candidates',
    headers=headers
)

if response.status_code == 200:
    candidates = response.json()['data']
else:
    print('Failed to fetch candidates', response.status_code)

Step 2: Fetch Job Application Data for All Candidates

response = requests.get(
    'https://api.teamtailor.com/v1/job-applications',
    headers=headers
)

if response.status_code == 200:
    job_applications = response.json()['data']
else:
    print('Failed to fetch job applications', response.status_code)

Step 3: Fetch Job Application Data for a Specific Candidate

candidate_id = 'SPECIFIC_CANDIDATE_ID'
url = f'https://api.teamtailor.com/v1/candidates/{candidate_id}/job-applications'

response = requests.get(url, headers=headers)

if response.status_code == 200:
    specific_candidate_applications = response.json()['data']
else:
    print('Failed to fetch job applications for candidate', response.status_code)

Common Pitfalls

Teams typically run into issues not because the API is complex, but because basics are overlooked. Watch out for the following:

  1. Missing or incorrect X-Api-Version in request headers.
  2. Forgetting to replace YOUR_API_KEY with a valid API key.
  3. Ignoring pagination when working with large candidate or application volumes.
  4. Exceeding rate limits due to unthrottled requests.
  5. Not validating HTTP response codes before parsing data.
  6. Assuming every candidate has at least one job application.
  7. Hard-coding API keys instead of securing them externally.

Frequently Asked Questions

  1. What is the rate limit for the Teamtailor API?
    Rate limits are defined by Teamtailor and can vary. Refer to the official API documentation or contact Teamtailor support for exact limits.
  2. How is pagination handled in Teamtailor API responses?
    Pagination details are included in the links object of the response. Use these links to fetch subsequent pages.
  3. Can job applications be filtered by stage?
    Yes. Use query parameters such as filter[stage-type] when calling the job applications endpoint.
  4. What information is returned in a job application object?
    Job application responses include metadata such as created-at, updated-at, and relationships to candidates and jobs.
  5. Can job applications be updated via the API?
    Yes, provided your API key has the required permissions. Updates are performed using the appropriate PATCH endpoints.
  6. Is a sandbox or test environment available?
    Sandbox availability depends on your Teamtailor plan. Contact Teamtailor support for confirmation.
  7. What is the recommended way to store the API key?
    Store API keys in environment variables or a secure secrets manager. Never commit them directly to source code.

Knit for Teamtailor ATS API Integration

If you want to avoid managing authentication, versioning, and long-term maintenance yourself, Knit provides a streamlined alternative.

By integrating with Knit once, you gain consistent access to the Teamtailor API without handling token management or endpoint upkeep. Knit abstracts the operational complexity while ensuring stable and reliable data access across your integrations.

#1 in Ease of Integrations

Trusted by businesses to streamline and simplify integrations seamlessly with GetKnit.