Google Jobs Scraper (salary, apply links, any country)
Pricing
from $2.00 / 1,000 job listings
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
Maintained by CommunityActor 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
BLOCKEDand a fix, and isn't charged. A search with genuinely zero jobs comes back asNO_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
| Field | Example |
|---|---|
title | Senior Software Engineer, Platform |
company | Acme Corp |
location | New York, NY |
via | |
salary | { "text": "$150K–$180K a year", "min": 150000, "max": 180000, "currency": "USD", "period": "year" } |
employmentType | Full-time |
postedText, postedHoursAgo, postedDate | "3 days ago", 72, "2026-10-05" |
isRemote | true / false |
tags, qualifications | Benefits and requirements chips |
applyLinks, applyUrl | Direct apply links (LinkedIn, Indeed, company site...) when Google provides them |
description | Full job description when Google includes it in the page |
jobId, googleJobsUrl, query, position | For dedupe, auditing and ranking |
How to scrape Google Jobs
- Enter one or more job searches (e.g.
data analyst,registered nurse,jobs at Stripe). - Optionally add a location, pick the country, and filter by date posted, job type or remote.
- 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 plan | Price per job | 1,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 ApifyClientclient = 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.
- YouTube Transcript & Subtitles Scraper
- Google Trends Scraper
- YouTube Scraper
- YouTube Comments Scraper
- Telegram Channel Scraper
- Amazon Product & Search Scraper
- YouTube Shorts Scraper
- YouTube Channel Scraper
- ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workable
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.