Source · Teamtailor

Teamtailor Jobs API.

Every public Teamtailor posting, one endpoint - no per-tenant X-Api-Key, no JSON:API pagination to flatten.

Public Teamtailor career sites
24h refresh
12 months retention

Why people are confused about the Teamtailor API

Teamtailor has one of the cleanest ATS APIs on the market - JSON:API spec compliant, X-Api-Key authentication, page-based pagination at /v1/jobs?page[size]=30. The catch for aggregators: it's per-tenant. Each Teamtailor customer mints their own X-Api-Key inside their admin, and a key from one tenant cannot read data from another. If you want postings across many Teamtailor-using companies, you'd need a key from every one.

On the public side, every Teamtailor customer's career site is statically rendered at <tenant>.teamtailor.com (and some on custom domains), with job data exposed in a discoverable pattern. JobsPipe indexes every public Teamtailor customer and serves their data alongside 30+ other sources in the same JSON schema - flattened out of JSON:API's nested resource/attributes envelope.

Option 1
Get an X-Api-Key from each Teamtailor customer

Clean API once you have a key, but you need one key per tenant and there's no path to aggregator-tier credentials.

Option 2
Scrape <tenant>.teamtailor.com career pages

Possible. Custom-domain tenants and Teamtailor's localization (career pages in 50+ languages) make this more work than it looks.

Option 3
Use JobsPipe

Every public Teamtailor career site, one endpoint, flattened JSON. Free tier covers 5,000 requests/month.

Teamtailor API documentation

Teamtailor's developer documentation lives at docs.teamtailor.com and covers the JSON:API-compliant REST surface - jobs, candidates, applications, departments, locations, custom fields, webhooks. Endpoints are at api.teamtailor.com/v1/, authentication is X-Api-Key in headers, and responses follow the JSON:API spec with type/id/attributes/relationships envelopes. The docs are good - the limitation for aggregators is that every endpoint is scoped to one customer's key. JobsPipe's normalized schema at /docs is flat and uses the same shape across Teamtailor, Workday, Greenhouse, and 30+ other sources.

Teamtailor X-Api-Key authentication

Teamtailor authenticates with two headers: X-Api-Key (the key from the customer's admin) and X-Api-Version (e.g. 20240404). The key is minted inside the tenant's Teamtailor admin under Settings → Integrations → API. There is no aggregator-tier credential and no way to read multiple tenants' data with one key. JobsPipe sidesteps the per-tenant key model by reading public career-site data instead - same coverage of postings, none of the per-tenant onboarding.

Sample request

curl "https://api.jobspipe.dev/v1/jobs?source=teamtailor" \
     -H "Authorization: Bearer $JOBSPIPE_KEY" \
     -H "Accept: application/json"

Sample response

{
  "id": "tt_NDk3MjE4MDQ0",
  "source": "teamtailor",
  "tenant": "klarna",
  "title": "Engineering Manager, Risk Platform",
  "company": "Klarna",
  "location": {
    "city": "Stockholm",
    "region": "AB",
    "country": "SE",
    "remote": false
  },
  "salary": {
    "min": 980000,
    "max": 1280000,
    "currency": "SEK",
    "period": "year",
    "source": "explicit"
  },
  "employment_type": "full_time",
  "posted_at": "2026-05-05T09:27:00Z",
  "expires_at": null,
  "apply_url": "https://career.klarna.com/jobs/...",
  "description": "Klarna is hiring an Engineering Manager to lead our Risk Platform team in Stockholm - the systems that score every transaction we process ..."
}

Every Teamtailor job record is returned in the same JSON shape as every other JobsPipe source. The full schema is documented in the docs.

Fields in every Teamtailor job record

idsourcetenanttitlecompanylocationsalaryemployment_typeremoteposted_atexpires_atapply_urldescription

FAQ

Do I need a Teamtailor X-Api-Key to use JobsPipe?+

No. JobsPipe reads only public career-site postings and doesn't use the authenticated Teamtailor API. You only need a JobsPipe key.

How fresh is Teamtailor data?+

Public Teamtailor career sites are re-crawled at least every 24 hours.

Does JobsPipe return Teamtailor's JSON:API envelope?+

No. We flatten Teamtailor's data:[{type,id,attributes,relationships}] envelope into the same flat JSON shape as every other source. You don't have to learn JSON:API parsing to read Teamtailor postings through JobsPipe.

Does JobsPipe handle Teamtailor customers on custom domains?+

Yes. Customers using career.<their-domain>.com instead of <tenant>.teamtailor.com are indexed alongside the rest.

Try Teamtailor data free - 5,000 requests/month, no credit card.

Get a free API key