Google Jobs Scraper - Salary, Apply Links, Descriptions
Pricing
from $2.00 / 1,000 job postings
Google Jobs Scraper - Salary, Apply Links, Descriptions
Scrape Google Jobs for any keyword and city: title, company, location, salary (min/max), posted date, job type, skills, years of experience, full description and every apply link (LinkedIn, Indeed, Glassdoor, career sites). $2.50 per 1,000 jobs on paid plans (from $2), no start fee.
Pricing
from $2.00 / 1,000 job postings
Rating
0.0
(0)
Developer
Khandji Omar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Google Jobs Scraper — Salary, Apply Links, Descriptions
Scrape Google Jobs — the index that merges LinkedIn, Indeed, Glassdoor, ZipRecruiter and company career sites — for any keyword and location: job title, company, location, source, posted date, job type, salary parsed into min / max / period, qualifications, benefits, full description and every "Apply on" link. Built for reliability: every Google page is retried on a fresh session, and one failed page never fails the run. $2.50 per 1,000 jobs on paid Apify plans (down to $2), no start fee.
What does this Google Jobs scraper do?
Type job searches ("registered nurse", "python developer", "warehouse") and locations ("Houston", "Texas", "London"). The scraper reads Google Jobs and returns one clean row per job posting, with duplicates removed. Google shows 10 jobs per page, so each search runs several filter variants in parallel (full time, part time, remote, contract, posted today…) to collect up to 140 different jobs per search.
Why use it
- One source for every job board: LinkedIn, Indeed, Glassdoor, ZipRecruiter, Built In and company career pages in a single feed — with each board's direct apply link.
- Salary as numbers:
salaryMin,salaryMax,salaryPeriod(hour / year…) ready for analysis. - Full content: description, qualifications, responsibilities and benefits.
- Reliable: retries with fresh sessions, per-search error reports, partial pages never lost.
- Filters: posted within (today, 3 days, week, month), job type, only jobs with a salary.
- Cheaper than the alternatives: from $0.002 to $0.0025 per job on paid plans, no start fee.
How to use it in 3 steps
- Click Try for free — "data analyst" in Chicago is prefilled.
- Enter your job searches and locations.
- Click Start and download JSON, CSV or Excel.
Input
| Field | What it does |
|---|---|
queries | Job titles or keywords. |
locations | Cities, states or countries; each search runs in each location. |
radiusKm | Asks Google to search within this distance of each location (1 to 300 km). Google treats it as a hint, not a strict border. |
strictLocation | Keeps only jobs whose location matches the city or the state/region you typed (Austin, TX keeps all of Texas). Remote jobs are kept. Default off. |
maxJobsPerSearch | 1 to 140. Default 50. |
postedWithin | Any time, today, last 3 days, this week, this month. |
scheduleType | Full-time, part-time, contractor, internship, temporary. |
onlyWithSalary | Keep only postings that show a salary. |
includeDescription | Turn off for lighter rows. |
country / language | Google Jobs market (us, gb, ca, au, in…) and language. |
googleDomain | Google site to search: google.com (default), google.co.uk, google.ca, google.de, google.fr, google.com.au… |
maxTotalChargeUsd | Optional hard cost cap for the run. |
{"queries": ["registered nurse", "physical therapist"],"locations": ["Houston", "Dallas"],"maxJobsPerSearch": 100,"postedWithin": "week","onlyWithSalary": true}
Output
Real example (Chicago, lists and description shortened):
{"jobId": "llN7Zv11AL5HcVBoAAAAAA==","title": "Data Analyst II","companyName": "Shirley Ryan AbilityLab","location": "Chicago, IL","via": "Built In Chicago","postedAgo": "17 days ago","postedAt": "2026-09-14","scheduleType": "Full-time","salary": "71.2K–124K a year","salaryMin": 71200.0,"salaryMax": 124000.0,"salaryPeriod": "year","isRemote": false,"benefits": ["Health insurance"],"qualifications": ["…"],"responsibilities": ["…"],"description": "…","applyUrl": "https://builtin.com/job/…","applyLinks": [{"source": "builtin.com", "url": "https://builtin.com/job/…"},{"source": "linkedin.com", "url": "https://www.linkedin.com/jobs/view/…"}],"extensions": ["4 days ago", "Full-time"],"experienceYears": 1,"skills": ["Workday"],"visaSponsorship": null,"education": null,"googleUrl": "https://www.google.com/search?q=Registered+Nurse+%28Rn%29%2C+Primary+Care+The+University+of+Texas+at+Austin+Dell+Medical+Center&udm=8&hl=en&gl=us","rank": 4,"searchQuery": "registered nurse","searchLocation": "Austin, TX","country": "us","language": "en"}
On top of what Google shows, every row carries facts read from the description by plain rules (no AI, no extra cost):
experienceYears (the lowest number of years asked), skills (from a list of about 90 tools), visaSponsorship
(yes / no when the text says so) and education. They stay empty when the text does not say.
extensions is the raw list of tags under the job, googleUrl reopens the job on Google, and rank, searchQuery,
searchLocation, country and language say which search found it. (These last eleven values come from another real posting: "Registered Nurse (Rn), Primary Care" at The University of Texas at Austin Dell Medical Center.)
How much does it cost?
| Event | Price |
|---|---|
| Job posting, paid Apify plans | $0.0025 ($2.50 per 1,000), down to $0.002 on the largest plans |
| Job posting, free Apify plan | $0.003 |
| Start fee | none |
Up to 20 jobs of every run are free (at most half of the run). Searches Google cannot answer are reported in the run summary and never charged. Paid Apify plans get lower tier prices.
Use cases
- Job boards and aggregators — fresh postings from every source, deduplicated.
- Recruiters and staffing agencies — who is hiring for which role, where, at what pay.
- Sales teams — companies hiring = companies growing and buying.
- Salary research — pay ranges by title and city.
- Career sites and newsletters — daily feeds of new jobs in a niche.
Use it from code (API)
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("om_kh/google-jobs-scraper").call(run_input={"queries": ["machine learning engineer"],"locations": ["New York"],"postedWithin": "3days",})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], job["companyName"], job.get("salary"), job["applyUrl"])
curl -X POST "https://api.apify.com/v2/acts/om_kh~google-jobs-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"queries": ["nurse"], "locations": ["Houston"], "maxJobsPerSearch": 20}'
Integrations and MCP
Schedule it daily with postedWithin: "today" and send new jobs to Google Sheets, Slack, Airtable
or your ATS with n8n, Make or Zapier. AI agents can call it through https://mcp.apify.com as
om_kh/google-jobs-scraper.
Tips and limits
- Google Jobs holds a few hundred postings per search at most: for full coverage, split by city or by more specific titles.
- Always give a location. With a country alone, Google mostly returns United States jobs.
For another country, set the location, the
countryand the matchinggoogleDomain. - Countries. Checked on 6 October 2026 with one large city per country and the local Google
domain. Local jobs came back in 31 countries: United States, United Kingdom, Canada, India,
Germany, France, Spain, Italy, Netherlands, Switzerland, Belgium, Austria, Denmark, Brazil,
Mexico, Argentina, Colombia, Chile, Japan, Singapore, Philippines, Indonesia, Malaysia,
Thailand, Pakistan, United Arab Emirates, Saudi Arabia, Egypt, South Africa, Nigeria, Kenya.
In Belgium, Austria, Denmark and Thailand the search must be written in the local language
("emploi", "stellenangebote", "job", "งาน") with the matching
language. No job came back in 9, in English or in the local language: Australia, New Zealand, Ireland, Sweden, Norway, Finland, Poland, Portugal, South Korea. Other countries were not checked. - When Google answers with no job at all, the run says so in plain words ("Google Jobs may not exist in this country") and charges nothing.
- Google sometimes mixes in jobs from other places;
strictLocationremoves them. postedAtis computed from Google's "3 days ago" label (day precision).- Salary is only present when the employer or the board publishes it.
FAQ
Do I need a Google account or an API key? No.
Does it include LinkedIn and Indeed jobs? Yes, when Google Jobs lists them — with the direct LinkedIn / Indeed apply links.
Is it legal? It reads public search results. Use the data in line with the laws and terms that apply to you.
Related Actors
- ATS Jobs API — jobs straight from Greenhouse, Lever, Ashby, Workday boards.
- Careers Page Scraper — all jobs of a list of company websites.
- Hiring Signals API — which companies are hiring for which roles.