Google Jobs Scraper: Job Listings by Keyword and City avatar

Google Jobs Scraper: Job Listings by Keyword and City

Pricing

from $4.85 / 1,000 jobs

Go to Apify Store
Google Jobs Scraper: Job Listings by Keyword and City

Google Jobs Scraper: Job Listings by Keyword and City

Scrape Google Jobs for any keyword and city in 30 countries. Get title, company, location, posted date, salary when shown, job type, full description and the apply link. Several search wordings per keyword return 60 to 70 unique jobs. No login, no API key. Pay per job, $5 per 1,000.

Pricing

from $4.85 / 1,000 jobs

Rating

0.0

(0)

Developer

Oski

Oski

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a month ago

Last modified

Security

Limited permissions

Share

Google Jobs Scraper: Salaries, Descriptions, Apply Links

Get job listings from Google's jobs search, which pulls together LinkedIn, Indeed, ZipRecruiter, Glassdoor, job boards and company career sites in one place. Type a job title and a city, and every job comes back with the company, location, job type, posted date, pay when listed, the full description, and direct apply links to the real job page instead of Google redirects.

Tired of a Google Jobs scraper that stops at 10 results, fails one run in five, or charges per page whether or not it finds anything? Google shows only 10 jobs per page, so this actor searches smart variations of your query (posted today, part time, contract, entry level and more), removes duplicates, and keeps going until it reaches your number or the variations run out. In testing, 6 searches returned 292 unique jobs in about two minutes, with a direct apply link on every one.

Also from Oski: LinkedIn Jobs Scraper for LinkedIn's own listings, and ATS Jobs Scraper for every open job straight from a company's careers page.

What you can use it for

  • Recruiters and agencies building a daily list of new openings in their niche and city, with the employer and apply link.
  • Job boards and aggregators filling a niche board with fresh listings from across the web.
  • Sales teams spotting companies that are hiring right now, a strong signal they have budget.
  • Labour-market researchers tracking pay, job types and demand by city.
  • Job seekers getting one clean list of everything posted this week, without opening a dozen sites.
  • AI builders collecting real job descriptions for matching, search or training data.

How to use it

  1. Under Job titles or keywords, add one or more searches, for example accountant or registered nurse.
  2. Add Locations (cities or regions) and pick the Country. Leave locations empty to search the whole country.
  3. Set Max jobs per search and Max jobs in total, optionally a Date posted window or Job types, then click Start.
  4. When it finishes, open the Output tab and download as CSV, Excel, JSON or HTML. The Search summary shows how many jobs each search found and why any came back empty.

How much does it cost?

  • $0.002 start fee per run.
  • $0.005 per search that Google answers (one keyword in one location), including searches where Google shows no jobs. Searches that fail outright are free.
  • $0.005 per job delivered. A job found by two of your searches is delivered and charged once.
You runYou getMathsCost
1 search50 jobs$0.002 + $0.005 + 50 x $0.005about $0.26
10 searches500 jobs$0.002 + 10 x $0.005 + 500 x $0.005about $2.55
40 searches2,000 jobs$0.002 + 40 x $0.005 + 2,000 x $0.005about $10.20

What you get for each job

In a 292-job test across New York and Chicago: company and full description on every job, location on 99%, job type on 91%, qualifications on 89%, posted date on 81% and pay on 59% (pay only appears when the employer lists it). Every one of the 1,383 apply links resolved to the real job page.

{
"title": "Software / Data Engineer (First Technology Hire - NYC Private Equity)",
"company": "Averity",
"location": "New York, NY",
"remote": false,
"job_type": "Full-time",
"posted_at": "2026-10-03",
"posted_at_exact": true,
"posted_text": "13 hours ago",
"salary_text": "125K–175K a year",
"salary_min": 125000,
"salary_max": 175000,
"salary_currency": "USD",
"salary_period": "year",
"via": "LinkedIn",
"apply_url": "https://www.linkedin.com/jobs/view/software-data-engineer-first-technology-hire-nyc-private-equity-at-averity-4473191168",
"apply_options": [{"source": "LinkedIn", "url": "https://www.linkedin.com/jobs/view/...", "google_url": "https://www.google.com/goto?url=..."}],
"description": "How would you like to be the first technology hire at a NYC private equity firm...",
"description_is_preview": false,
"qualifications": ["..."],
"responsibilities": ["..."],
"benefits": ["..."],
"tags": ["Health insurance"],
"keyword": "software engineer",
"location_searched": "New York",
"country": "US",
"google_area": "New York, NY",
"found_by_query": "software engineer New York"
}

When the page shows pay without a currency sign, the currency is taken from the country you searched.

Input

FieldWhat it does
Job titles or keywordsOne search per line. A pasted Google search link also works.
LocationsCities or regions, each searched with every keyword. Optional.
CountryWhich Google to search (30 countries).
Max jobs per search10 jobs per Google page; more uses variations. 60 to 75 unique jobs is a typical ceiling for one keyword and city.
Max jobs in totalThe run stops here.
Date postedAny time, past 24 hours, 3 days, week or month.
Job typesFull-time, part-time, contract, internship, temporary.
Remote jobsInclude, leave out, or remote only.

Example for a daily scheduled run:

{
"keywords": ["accountant", "financial analyst"],
"locations": ["London", "Manchester", "Birmingham"],
"country": "GB",
"datePosted": "today",
"maxJobsPerSearch": 50,
"maxJobs": 1000
}

Countries

Tested with full results in the United States, United Kingdom, Canada, India, Singapore, South Africa, the United Arab Emirates, Germany and France. In Germany and France, Google shows only a short description preview, flagged with description_is_preview: true; every other field is complete. In Australia and Ireland, Google rarely shows a jobs panel at all, so most searches there come back empty. The other countries in the list use the same method but have not been tested one by one.

If something looks wrong

You seeWhat it meansWhat to do
"showed no Google jobs panel"Google does not list jobs for that search in that country (common in Australia and Ireland).Try a nearby large city, or another country.
"had no matching jobs on Google"Google found nothing for that wording.Use a broader title, for example "nurse" instead of a niche speciality.
Fewer jobs than Max jobs per searchGoogle ran out of new jobs for that search.Add more locations or related titles: each one is a fresh pool of jobs.
"was refused by Google"A temporary block on Google's side.Run it again later.
Short descriptionsGermany and France show previews only.Follow the apply link for the full text.

Tips for bigger runs

  • Breadth beats depth: 10 related titles across 5 cities finds far more unique jobs than one title with a huge limit.
  • For monitoring, schedule a daily run with Date posted: Past 24 hours.
  • Put all your searches in one run: the start fee is paid once and four searches run at a time.

Scheduling and integrations

Run it on a schedule in Apify, send results to Google Sheets, Slack, Make, Zapier or n8n, or call it from your own code:

curl -X POST "https://api.apify.com/v2/acts/oski~google-jobs-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["data analyst"], "locations": ["New York"], "country": "US", "maxJobsPerSearch": 30}'

FAQ

Is it legal? It reads job listings that are publicly shown on Google search. You are responsible for how you use the data, so respect privacy and anti-spam law in your country.

Do I need a Google account or API key? No. The actor uses Apify's Google search proxy, which is included in the run.

Why not just page through Google? Google returns only the first 10 jobs per search to automated requests; later pages come back empty. The variations are how the actor gets past that.

How fresh is the data? Live: each run searches Google at that moment.

What if it breaks? Open an issue on the actor's page and it gets fixed fast.

Other scrapers from Oski