Google Jobs Scraper: Fresh Listings, No Charge for Empty Runs avatar

Google Jobs Scraper: Fresh Listings, No Charge for Empty Runs

Pricing

from $3.00 / 1,000 jobs

Go to Apify Store
Google Jobs Scraper: Fresh Listings, No Charge for Empty Runs

Google Jobs Scraper: Fresh Listings, No Charge for Empty Runs

Job listings from Google Jobs for any search and location: title, company, salary, posting age and apply links. Optionally only jobs you have not seen before.

Pricing

from $3.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Sébastien Doom

Sébastien Doom

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Features

Limited permissions

Share

Google Jobs Scraper

Job listings from Google Jobs for any search and location: title, company, salary, posting age and apply links. Never charged for an empty run, optionally only the jobs you have not seen before, $0.003 per job.

  • Never charged for empty runs: a search with no result, a search that could not be made, or a search refused costs nothing.
  • Only new jobs: for a daily or weekly feed, skip the jobs already returned and pay for the new ones only.
  • $0.003 per job, no start fee.

What you get for each job

One row per job:

  • Listing: title, company, location (the job's own), via (the site Google found it on), description, scheduleType (full-time, contractor...), isRemote (true when the listing is remote, otherwise null).
  • Pay and age: salary when the posting states one, postedAgo (for example "3 days ago").
  • Apply links: applyLinks, each with a title and a url.
  • Identity: jobKey, a 32-character hash that identifies the job, used by "only new jobs".
  • Your search: searchQuery and searchLocation (the query and location you gave) and scrapedAt (ISO timestamp).

Data comes from Google Jobs through a search API.

Pricing

Pay per event, no start fee:

EventPrice
Job$0.003

A row is delivered to the dataset, then charged. Never charged:

  • jobs skipped by "Only jobs not seen before";
  • searches that return no job;
  • searches skipped because of a bad search input or a temporary unavailability of the source;
  • searches refused because of the monthly capacity or the run limit (see below).

Set a maximum charge for the run and the Actor stops cleanly when it is reached. If the service fails during a run, the message says how many jobs were delivered and billed before the failure.

Scheduled feeds: only new jobs

Tick Only jobs not seen before and give the feed a Feed name (lowercase letters, digits and dashes). The Actor remembers the jobs it returned for that feed during the last 30 days and skips them. Runs left on the default feed name share one memory of seen jobs, so give separate feeds distinct feed names. Use one feed name per recurring task, then schedule the task daily or weekly.

Each search looks at its first N results (Jobs per search), so a run returns the new ones among those first N. Skipped jobs are not charged.

Locations

Write locations in Google's canonical form "City, State, Country", for example "Austin, Texas, United States", "London, England, United Kingdom" or "Paris, Ile-de-France, France". Short forms such as "New York, NY" can resolve to the wrong place.

Launch limits

  • At most 20 result pages per run during launch (up to 200 jobs). Each search uses one page per 10 jobs asked for; pages served from recent cache do not count. The input accepts up to 50 searches, but a run stops at its page limit and says so: the remaining searches are not made and not charged.
  • A monthly capacity is shared by all users. When it is reached the run stops with the date searches resume, and is not charged for the refused searches.
  • Jobs per search: 10 to 100, in whole pages of 10 (rounded up).

Input

{
"searches": [
{ "query": "software engineer", "location": "Austin, Texas, United States" },
{ "query": "data analyst", "location": "London, England, United Kingdom" }
],
"country": "us",
"language": "en",
"maxJobsPerSearch": 20,
"onlyNewJobs": true,
"feedName": "tech-jobs"
}

Output

{
"jobKey": "9f2c4a7e1b3d58a60c7e2f41d9b8a35e",
"title": "Software Engineer",
"company": "Acme Corp",
"location": "Austin, TX",
"via": "LinkedIn",
"description": "We are looking for...",
"applyLinks": [{ "title": "Apply on LinkedIn", "url": "https://www.linkedin.com/jobs/view/123" }],
"salary": "$120K-$150K a year",
"postedAgo": "3 days ago",
"scheduleType": "Full-time",
"isRemote": null,
"searchQuery": "software engineer",
"searchLocation": "Austin, Texas, United States",
"scrapedAt": "2026-11-05T09:00:00.000Z"
}

Fields the posting does not state are null.

Limits

Google Jobs listings only, as Google shows them: no company reviews, no contact details, no applying on your behalf.