Structured job datastraight from employers.
Access 1M+ job listings from ATS platforms and company career sites in a single, structured JSON feed. No scrapers to maintain. Just one simple REST API.
1,000,000
Total jobs indexed
~37,714
Avg. posted per day (7d)
+450,000
Added past 30 days
3,500
Employers
One endpoint. Everything you need.
A single GET /jobs call returns each job as one structured object. Nothing to stitch together yourself.
- Full company profile: logo, socials, size, team
- Structured location: city, state, and country IDs
- Salary parsed into min, max, and currency
- Pagination and query metadata on every response
curl https://api.cleanjobdata.com/jobs?title=backend&remote=true&extra_fields=description {
"data": [
{
"id": 40652107,
"title": "Senior Backend Engineer",
"description": "We're looking for a backend engineer to help scale our payments infrastructure...",
"locations": [
{
"kind": "city_state_country",
"city_id": 4671654,
"city_name": "Austin",
"state_id": 5254411,
"state_name": "Texas",
"country_id": 233,
"country_name": "United States",
"country_code": "US",
"is_primary": true,
"lat": 30.2672,
"lng": -97.7431
}
],
"company": {
"name": "Loop",
"logo": "https://logo.clearbit.com/loop.com",
"description": "Loop builds payments infrastructure for modern fintechs.",
"website_url": "https://loop.com",
"linkedin_url": "https://linkedin.com/company/loop",
"twitter_url": "https://twitter.com/loop",
"github_url": "https://github.com/loop",
"team": [
{
"name": "Jamie Chen",
"title": "CTO",
"linkedin_url": "https://linkedin.com/in/jamiechen"
}
],
"employee_count": "201-500",
"industry": "Fintech",
"headquarters": "Austin, TX",
"founded": 2019
},
"salary_min": 150000,
"salary_max": 190000,
"salary_currency": "USD",
"employment_type": "FULL_TIME",
"experience_level": "SE",
"has_remote": true,
"remote_type": "fully_remote",
"published": "2026-09-01T12:00:00.000Z",
"application_url": "https://loop.com/jobs/1234"
}
],
"pagination": {
"limit": 20,
"next_page": "eyJ2IjoxLCJzYiI6InB1Ymxpc2hlZCJ9",
"prev_page": null
},
"meta": {
"query_time_ms": 42,
"filters_applied": [
{ "key": "title", "value": "backend" },
{ "key": "remote_only", "value": true }
]
}
}One schema, every source.
Normalized schema
Jobs from every source we index map to the same object, so you don't rewrite parsers when a source changes its format.
Powerful filters
Filter by keyword, country, city, remote, seniority, salary range, employment type, and more, all composable.
Rich location data
Locations come with lat/lng, city ID, country code, and timezone where we can resolve them. Geo suggest API included on all paid plans.
Company metadata
Logo, LinkedIn, headcount, description, and social links returned alongside each job; no extra calls needed.
Salary extracted
Salary parsed into min, max, and currency wherever the source provides it.
Continuously updated
New postings are indexed as employers publish them. The daily average and 30-day counters up top are live, not marketing copy.
Integrate in three steps.
Get your API key
Create a free account. No credit card. Your key is available instantly in the dashboard.
Call /jobs
Pass your key as Bearer auth. Combine filters. Paginate with the cursor returned in each response.
Build your product
Render results on your job board, feed them into your AI pipeline, or sync to your database via n8n or cron.
Pre-scoped feeds by region.
Each feed is a ready-made query with live preview results. Useful for testing coverage before you integrate.
United States
Country feed
United Kingdom
Country feed
Germany
Country feed
Canada
Country feed
Australia
Country feed
India
Country feed
Global remote
Remote feed
Remote React jobs
Developer feed
25 feeds total: cities, states, countries, and role-specific. Browse all feeds →
We'll build your job board for you.
Branded frontend, real listings from day one, job search, employer posting, resume parsing. Designed, built, and kept running after launch.
Start free. Scale when you need to.
Trial
free for 14 days
- 14-day free trial
- 300 requests / day across jobs endpoints
Starter
billed monthly
- 50,000 requests / mo
- Up to 2.5M jobs / mo (50,000 requests × 50 jobs)
Pro
billed monthly
- 200,000 requests / mo
- Up to 20M jobs / mo (200,000 requests × 100 jobs)
Enterprise
tailored scale
- Unlimited API requests, no monthly cap
- Daily flat-file database dumps (gzipped NDJSON)
Daily flat-file dumps, licensed for your product.
For teams that need bulk data, not an API key: redistribution, resale, or training AI models on structured job postings.
Questions, answered.
Can I use CleanJobData for a commercial job board?
How is this different from scraping job sites myself?
Do I need an API key to try the playground?
What can I filter and what comes back in each job?
title), geography (country_id, state_id, city_id), remote=true, experience_level, and salary=min,max in one request. See the Jobs API reference for the full parameter list. Each job comes back as structured JSON (company, locations, salary, employment type, remote flag), and list responses exclude the full description by default; add extra_fields=description if you need it.