City feed
SF's tech job market moves faster than most scrapers can keep up with. Our feed pulls directly from employer career pages and refreshes continuously — so your board only shows what's actually open.
San Francisco listings go stale within days. Most data sources are pulling from other aggregators, so by the time a listing reaches your job board, half the roles are already filled.
We go directly to employer career pages and refresh the SF index continuously. Every listing in this feed is active and sourced from the company posting it.
When you are ready for every filter, validation rule, and response field, use the Jobs API reference.
1,078,026
Total Jobs Indexed
+1,016
Added Past 24h
+525,356
Added Past 30 Days
20,093
Employers
Same query as the playground, as cURL. Use your real key on the server only.
curl -X GET "https://api.cleanjobdata.com/jobs?city_id=125809" \ -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 city_id 125809 (San Francisco), then add title or remote filters as needed.
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.