Google Jobs Scraper - Salary, Apply Links, Descriptions avatar

Google Jobs Scraper - Salary, Apply Links, Descriptions

Pricing

from $2.00 / 1,000 job postings

Go to Apify Store
Google Jobs Scraper - Salary, Apply Links, Descriptions

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

Khandji Omar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

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

  1. 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.
  2. Salary as numbers: salaryMin, salaryMax, salaryPeriod (hour / year…) ready for analysis.
  3. Full content: description, qualifications, responsibilities and benefits.
  4. Reliable: retries with fresh sessions, per-search error reports, partial pages never lost.
  5. Filters: posted within (today, 3 days, week, month), job type, only jobs with a salary.
  6. 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

  1. Click Try for free — "data analyst" in Chicago is prefilled.
  2. Enter your job searches and locations.
  3. Click Start and download JSON, CSV or Excel.

Input

FieldWhat it does
queriesJob titles or keywords.
locationsCities, states or countries; each search runs in each location.
radiusKmAsks Google to search within this distance of each location (1 to 300 km). Google treats it as a hint, not a strict border.
strictLocationKeeps 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.
maxJobsPerSearch1 to 140. Default 50.
postedWithinAny time, today, last 3 days, this week, this month.
scheduleTypeFull-time, part-time, contractor, internship, temporary.
onlyWithSalaryKeep only postings that show a salary.
includeDescriptionTurn off for lighter rows.
country / languageGoogle Jobs market (us, gb, ca, au, in…) and language.
googleDomainGoogle site to search: google.com (default), google.co.uk, google.ca, google.de, google.fr, google.com.au…
maxTotalChargeUsdOptional 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?

EventPrice
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 feenone

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 ApifyClient
client = 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 country and the matching googleDomain.
  • 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; strictLocation removes them.
  • postedAt is 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.