Country feed
German jobs from companies posting on Greenhouse, Lever, Ashby, and Workable — mostly English-language roles at Berlin startups and international tech companies operating in Germany. Run the playground to inspect live results, then add your key to go to production.
Building for the German market means handling multi-language postings and messy regional location data. Most raw ATS exports make you solve this yourself.
We normalize German job data into a consistent, English-first schema. International products can integrate German tech roles without writing custom language or location parsers.
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=82" \ -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 82 (Germany), 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.