●13 ATS platforms · one schema · refreshed every 30 min
Job postings that
arrive already clean.
One API for normalized, deduplicated job postings from 13 ATS platforms. Role taxonomy, normalized seniority, and structured GeoNames locations on every record — so you query an endpoint instead of babysitting thirteen scrapers.
274,110 active jobs across 21,550 companies, refreshed every 30 minutes.
GET /v1/jobs?role_category=engineering&seniority=senior&limit=1
X-API-Key: jla_live_••••••••
{
"success": true,
"jobs": [
{
"id": 4821977,
"title": "Senior Backend Engineer",
"company": "Monzo",
"location": {
"raw": "London, UK (Hybrid)",
"city": "London",
"region": "England",
"country_code": "GB"
},
"employment_type": "FULL_TIME",
"remote_policy": "hybrid",
"is_remote": false,
"remote_scope": "United Kingdom",
"seniority": "senior",
"role_category": "engineering",
"role_subcategory": "backend",
"salary": {
"min": 85000,
"max": 110000,
"currency": "GBP",
"period": "YEAR",
"display": "£85k–£110k"
},
"duplicate_cluster_id": "9d1f7c2a-3b6e-4a02-b8d4-7e1c9af0e215",
"listed_at": "2026-06-09T08:14:00Z",
"created_at": "2026-06-09T08:31:42Z",
"updated_at": "2026-06-11T06:02:10Z",
"valid_through": "2026-06-30T23:59:59Z",
"status": "active",
"url": "https://boards.greenhouse.io/monzo/jobs/4821977",
"source": "greenhouse"
}
],
"next_cursor": "eyJpZCI6NDgyMTk3N30"
}01 / Arrives clean
Normalized on every record
Role taxonomy, normalized seniority, and a GeoNames-backed location structure (city, region, ISO country code) sit on every single record — free tier included. No post-processing, no string-matching company names yourself.
- →role_category + role_subcategory
- →seniority normalized
- →structured location
02 / First-party sources
Straight from the ATS
Every posting is pulled directly from the company's applicant tracking system across 13 platforms, and every record carries the original posting URL. No scraped aggregator soup, no LinkedIn reposts — first-party data you can attribute.
- →13 ATS platforms
- →original url on every record
- →no LinkedIn, ever
03 / Built for sync
Mirror it incrementally
Pull deltas with updated_since, page stably with cursor pagination, and collapse the same posting seen on multiple boards using its dedup cluster ID. Keep a local mirror fresh without re-reading the whole dataset.
- →updated_since deltas
- →cursor pagination
- →duplicate_cluster_id
Sourced first-party from
- Greenhouse
- Lever
- Workable
- Ashby
- SmartRecruiters
- Recruitee
- Teamtailor
- Rippling
- BambooHR
- Pinpoint
- Personio
- Comeet
- JazzHR
Pricing
Start free. Scale when you mirror.
Free
$0/mo
5K requests/mo. Clean schema, all base filters, normalized taxonomy.
Starter
$99/mo
200K requests/mo. Adds full description_html on every record.
Growth
$299/mo
2M requests/mo. Salary, role & seniority filters, cursor pagination.
Scale
$999/mo
10M requests/mo. structured_description and a 200-record page size.