All notable changes to Google Jobs Scraper are recorded here. The newest release is first.
Apify renders this as a Changelog tab on the Store page. Keeping it current is a
visible signal that the Actor is maintained, which feeds the quality score that
drives Store and MCP search ranking. Add an entry with every published build.
Filters and monitoring (backward compatible: every new input is optional and off by default; prices unchanged).
jobType: keep only full-time, part-time, contract, temporary, internship, volunteer or per-diem jobs. With one type its words are added to the search; every row is checked and non-matching jobs are free.
remoteOnly: keep only work-from-home jobs; adds remote to the search.
language: keep jobs whose description is in the chosen language; Google is asked for that language too. New column descriptionLanguage.
excludeCompanies: skip jobs from listed companies (whole-word, suffix-insensitive).
onlyNewSinceLastRun and seenJobsStoreName: scheduled runs return and bill only jobs earlier runs have not delivered (named key-value store on your account).
workFromHome is now also set from Google's "Work from home" chip in the job's detail panel (it is missing on the list card) and from remote titles.
- Search variants that a filter would drop anyway (for example "part time" with Job type full-time) are no longer run.
First public release.
- Google Jobs search by keyword, location, country (14 countries) and date posted, or by pasted Google Jobs URLs.
- Full job rows: title, company, location, source board, salary parsed to min/max/period/currency, job type, posting date, job highlights, full description and every apply link.
- Deeper searches through automatic search variants with duplicate removal; duplicates are never charged.
- Google SERP proxy included; recruiter and contact names, emails (also obfuscated spellings), phone numbers (any 7-15 digit run, UK and international formats), personal profile links and the names of staff quoted in testimonials inside descriptions are removed.
- Variants run only where the first page proved yield (at least 4 new in-window jobs), one or two at a time, with a hard cap of max(2, ceil(maxItems / 10) x 2.5) Google requests per run.
datePosted is applied through a query phrase Google Jobs honours, and every row is checked against the window: older jobs, or jobs without a posting age, are dropped and never charged.
- Every row carries
status, so a missing record (not_found) and a failure (error) are told apart from real data. Only ok rows are charged.
- Records are validated against a schema before they are written, so an upstream change produces loud warnings instead of silently billing for empty rows.
- Callable with no arguments by an AI agent, which the input schema's defaults make safe.