Google Jobs Scraper (salary, apply links, any country) avatar

Google Jobs Scraper (salary, apply links, any country)

Pricing

from $2.00 / 1,000 job listings

Go to Apify Store
Google Jobs Scraper (salary, apply links, any country)

Google Jobs Scraper (salary, apply links, any country)

Scrape job listings from Google Jobs: title, company, location, salary range, job type, posted date, source site and apply links, for any search, city and country. Built-in Google SERP proxy and retries. Pay per job.

Pricing

from $2.00 / 1,000 job listings

Rating

0.0

(0)

Developer

ScrapeMole

ScrapeMole

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

Google Jobs Scraper

Scrape job listings from Google Jobs, the job search that collects postings from LinkedIn, Indeed, Glassdoor, ZipRecruiter, company career sites and thousands of job boards. Get title, company, location, salary range, job type, posted date, source site, apply links and job description for any search, city and country. No code, no login, no API key.

You pay per job returned. Failed searches, blocked pages and searches with no results are never charged.

Why it's reliable

Google Jobs is one of the hardest Google surfaces to scrape: datacenter IPs get a CAPTCHA, the page wants JavaScript, and Google's generated CSS class names change often. This Actor:

  • Uses Apify's Google SERP proxy by default, which is built for Google search pages and included in the price.
  • Reads job cards by meaning, not by fragile class names: ARIA labels such as Posted, Salary and Employment Type, button roles and Google's job IDs. Class names are only a fallback hint.
  • Recognises every block page (CAPTCHA, "unusual traffic", consent wall, JavaScript wall) and retries with backoff instead of returning an empty list.
  • Never returns empty "successful" runs: a search that was blocked comes back as an error item with code BLOCKED and a fix, and isn't charged. A search with genuinely zero jobs comes back as NO_DATA.
  • Removes duplicates across searches using Google's job ID.
  • Real apply links: Google's apply redirects are resolved to the job board or employer page (Indeed, LinkedIn, ZipRecruiter, company career sites).

What you get

FieldExample
titleSenior Software Engineer, Platform
companyAcme Corp
locationNew York, NY
viaLinkedIn
salary{ "text": "$150K–$180K a year", "min": 150000, "max": 180000, "currency": "USD", "period": "year" }
employmentTypeFull-time
postedText, postedHoursAgo, postedDate"3 days ago", 72, "2026-10-05"
isRemotetrue / false
tags, qualificationsBenefits and requirements chips
applyLinks, applyUrlDirect apply links (LinkedIn, Indeed, company site...) when Google provides them
descriptionFull job description when Google includes it in the page
jobId, googleJobsUrl, query, positionFor dedupe, auditing and ranking

How to scrape Google Jobs

  1. Enter one or more job searches (e.g. data analyst, registered nurse, jobs at Stripe).
  2. Optionally add a location, pick the country, and filter by date posted, job type or remote.
  3. Set Max jobs per search and click Start. Export to JSON, CSV, Excel or Google Sheets.

Input example

{
"queries": ["data analyst", "business intelligence analyst"],
"location": "London",
"country": "GB",
"datePosted": "week",
"employmentType": "FULLTIME",
"maxJobsPerQuery": 10
}

Output example

{
"query": "data analyst",
"searchQuery": "data analyst full time jobs in London in the last week",
"country": "GB",
"position": 1,
"title": "Data Analyst",
"company": "Globex",
"location": "London, UK",
"via": "LinkedIn",
"postedText": "2 days ago",
"postedHoursAgo": 48,
"postedDate": "2026-10-06",
"salary": { "text": "£45,000–£55,000 a year", "min": 45000, "max": 55000, "currency": "GBP", "period": "year" },
"employmentType": "Full-time",
"isRemote": false,
"applyUrl": "https://www.linkedin.com/jobs/view/...",
"jobId": "eyJqb2JfdGl0bGUiOi...",
"googleJobsUrl": "https://www.google.co.uk/search?q=data+analyst+full+time+jobs+in+London+in+the+last+week&udm=8&hl=en&gl=uk"
}

Pricing

Pay per job. Proxy and platform costs are included, with no start fee and no charge for failed or empty searches.

Apify planPrice per job1,000 jobs
Free$0.004$4.00
Starter (Bronze)$0.003$3.00
Scale (Silver)$0.0025$2.50
Business (Gold)$0.002$2.00

Set Max cost per run and the Actor stops cleanly when it reaches it.

Use cases

  • Job boards and aggregators: fill niche boards with fresh listings by role, city and recency.
  • Recruiting and sales intelligence: find companies that are hiring right now (hiring = budget), with salary ranges.
  • Salary benchmarking: collect salary ranges by role and location.
  • Labor-market research: track demand for skills, remote share and posting volume over time.
  • Job-search agents: give an AI agent live job listings through the Apify API or MCP server.

API and integrations

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("scrapemole/google-jobs-scraper").call(run_input={
"queries": ["registered nurse"], "location": "Chicago", "datePosted": "3days", "maxJobsPerQuery": 10
})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job.get("title"), "@", job.get("company"), job.get("salary"))

Works with n8n, Make, Zapier, Google Sheets, webhooks and the Apify MCP server.

FAQ

Where do the jobs come from? From Google's own jobs search (the "Jobs" tab), which aggregates postings from job boards and employer career pages. via tells you the source and applyLinks takes you to the original posting.

How many jobs can I get per search? Up to 10. Google only renders the first 10 job cards of a Jobs search on the server; the rest load with in-page JavaScript. To get more jobs, add more searches: split by city, seniority ("senior", "junior"), job type or related titles. Duplicates across searches are removed and never charged twice.

Which interface language should I use? Keep language on en (the default) for the fullest data in any country: posted date, salary, job type and qualifications are read from Google's English labels. Other languages still return titles, companies, locations, apply links and descriptions.

Why is the salary missing for some jobs? Many employers don't publish a salary. When Google shows one, it's parsed into min, max, currency and period.

Do date filters work exactly? Recency is added to the search, and results are then filtered by the posted age Google shows ("3 days ago"), so you only get jobs inside the window you chose.

What does BLOCKED mean? Google refused the page even after retries. You're not charged. Keep the default Google SERP proxy; if you changed the proxy, switch back to it.

Is it legal? The Actor collects publicly listed job postings. It doesn't log in or collect applicant data. Make sure your use complies with the laws and terms that apply to you.

More from ScrapeMole

ScrapeMole builds focused, reliable scrapers for public data: pay per result, no start fees, clear error rows that are never charged, and a RUN_SUMMARY on every run.

Building an AI agent with its own wallet? The YouTube and Google Trends data is also sold per call over x402 (USDC on Base, no account): see scrapemole.pages.dev. Questions or a missing field? Open an issue on this Actor. ScrapeMole is the maker of this Actor.