Export ZipRecruiter job listings by keyword and location: title, company, structured pay (min/max, period, annualised, employer vs estimate), benefits, remote/on-site, county and ZIP, 1-Click Apply flag and post dates. Optional full descriptions. No login. Not affiliated with ZipRecruiter.
A run that reaches its maximum cost per run now stops cleanly with its results saved and a status message, instead of ending as aborted.
A proxy group your account cannot use no longer stops the run at start-up; it falls back to the default Apify Proxy.
Memory is managed within the run's own limit, which removes a rare out-of-memory crash on large pages.
2026-10-10 — speed update
Faster: 1,000 jobs in ~80 s instead of ~270 s (measured on the same input).
40 result pages in parallel by default (input max 50); every page the row limit needs is queued at the start.
Hedged requests: a page still unanswered after the median page time gets one duplicate on a fresh proxy session; the first good answer wins and the other is aborted (aborted UNBLOCKER requests are not billed). Small runs duplicate at once and add a third attempt after 6 s; at the end of a run, idle slots duplicate the pages still out.
Per-attempt timeout 40 s (the unblocking proxy sometimes holds a request without answering).
One spare page per search, so the run ends as soon as the limit is met instead of waiting for its slowest page.
Stop immediately when Max jobs is reached; in-flight requests are cancelled.
Rows are pushed page by page; live status message.
Fixed a lost-update race in the saved-row counter that let a run exceed Max jobs (measured 1,131 / 1,000).
SUMMARY gains hedges, hedgeWins, firstRowSecs, pageSeconds; a PERF record holds the per-attempt timeline.
2026-10-10
First release.
Keyword × location grid with every ZipRecruiter filter that was verified to change results: radius, posted within, employment type, remote only, 1-Click Apply only, minimum salary.
Parses both page serialisations ZipRecruiter serves at random (readable enums and protobuf-JSON).
Structured pay: min / max / period / annualised / currency, plus paySource and payIsEstimated.
Benefits, workplace highlights, workplace type, county and ZIP, 1-Click Apply flag, posting / refresh / update timestamps.
Fair per-search share of the row limit; de-duplication by job ID across searches.
Optional fetchDetails: full description, industry, O*NET occupation, education, closing date, company website, employer rating.
UNBLOCKER proxy forced by default; refused pages retried on fresh IPs; runs that reach nothing fail with the reason.
SUMMARY record with outcome, request counts and per-search totals.