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.

api.joblistingsapi.com/v1
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.

Compare plans →