Country feed
Every US job posting from Greenhouse, Lever, Ashby, and Workable — pulled directly from employer career sites and normalized into a single JSON feed. Filter by state, city, remote, title, or salary. One HTTP call gets you a production-ready data source.
Maintaining scrapers for multiple ATS platforms is a full-time job. Sites change, schemas break, and your job board ends up serving listings that expired three weeks ago.
We handle collection and normalization across the four ATS platforms that power most US tech hiring. You get one stable endpoint, consistent fields, and data that's refreshed continuously — not nightly.
When you are ready for every filter, validation rule, and response field, use the Jobs API reference.
1,079,058
Total Jobs Indexed
+1,090
Added Past 24h
+524,854
Added Past 30 Days
20,108
Employers
Same query as the playground, as cURL. Use your real key on the server only.
curl -X GET "https://api.cleanjobdata.com/jobs?country_id=233" \ -H "Authorization: Bearer YOUR_API_KEY"
Sign up for CleanJobData, open the dashboard, and create or copy your API key. Send it as Authorization: Bearer <token> on every request (server-side only in production—never expose keys in mobile apps or public repos).
Start from country_id 233 (United States), then add title, workSetting, experience_level, city_id, or state_id when you need a tighter audience.
Use a modest limit while prototyping, default to sort_by=published for recency, then follow pagination.next_page for large imports. Back off with exponential retry if you hit rate limits.
Choose which fields you render in job cards versus what you index for search. On list endpoints, trim payloads with fields, include_fields, or exclude_fields, and only request description when you truly need full text on list views.