Google Jobs Scraper avatar

Google Jobs Scraper

Pricing

$3.00 / 1,000 job scrapeds

Go to Apify Store
Google Jobs Scraper

Google Jobs Scraper

Scrape Google for Jobs. 22+ fields per posting (title, company, salary, apply links, remote flag). US/BR/MX/CA/UK/IN/AU/JP/SG. Pay only per job returned.

Pricing

$3.00 / 1,000 job scrapeds

Rating

2.4

(4)

Developer

Gio

Gio

Maintained by Community

Actor stats

3

Bookmarked

1.4K

Total users

127

Monthly active users

10 hours

Issues response

6 hours ago

Last modified

Categories

Share

Google Jobs Scraper: Salaries, Companies and Apply Links

Google Jobs Scraper pulls job listings from Google for Jobs for any search query and location. Each posting comes back with title, company, salary range, employment type, remote flag, direct apply links, posting date and the full description.

It covers 9 countries (United States, Brazil, Mexico, Canada, United Kingdom, India, Australia, Japan and Singapore) and needs no login, no cookies and no proxy setup.

Export to JSON, CSV or Excel, call it through the API, schedule it, or plug it into an AI agent.

Quick start

  1. Type one or more job titles in Search queries (for example software engineer).
  2. Add a Location such as San Francisco, CA, or leave it empty for the whole country.
  3. Pick the Country and click Start.
{
"queries": ["software engineer", "data analyst"],
"location": "Austin, TX",
"countryCode": "us",
"datePosted": "week",
"maxItems": 100
}

What can you do with it?

  • Recruiting and sourcing: see who is hiring for which roles in any city, with apply links straight to LinkedIn, Indeed, Greenhouse, Lever and company career pages.
  • Salary benchmarking: collect disclosed salaryMin / salaryMax by role and city to build compensation bands.
  • Labor market research: measure hiring demand, employment-type mix and posting volume across roles, companies and regions.
  • Remote job alerts: filter with workFromHome and run it on a schedule to catch new remote openings.
  • AI and LLM datasets: get clean, structured job JSON for RAG pipelines, agents and analysis.

What data does it extract?

FieldDescription
titleJob title
companyName / companyLogoHiring company and logo URL
location / latitude / longitudeLocation text and coordinates when available
salaryMin / salaryMax / salaryCurrency / salaryPeriodDisclosed pay range, currency and period (HOUR, MONTH, YEAR)
jobType / workFromHomeEmployment type and remote flag
description / descriptionHtmlJob description as plain text and HTML
benefits / qualifications / responsibilitiesBullet lists parsed from the posting
applyOptionsApply links per job board (LinkedIn, Indeed, Greenhouse, Lever, company ATS)
postedAt / postedAtIso / postedViaHow recent the posting is and which board published it
jobId / sourceQuery / scrapedAtIdentifier, the query that found it and extraction time

Input

FieldTypeDescription
queriesArrayOne or more search keywords, e.g. ["software engineer", "data scientist"]. Each query runs on its own.
locationStringCity, state or region, e.g. "San Francisco, CA". Leave empty for country-wide results.
countryCodeStringus, br, mx, ca, gb, in, au, jp or sg. Default us.
languageCodeStringLanguage of the results, e.g. en, pt, es. Default en.
datePostedStringall, today, 3days, week or month. Default all.
jobTypeArrayFULLTIME, PARTTIME, CONTRACTOR, INTERN. Empty means all types.
workFromHomeBooleanReturn only remote jobs. Default false.
maxItemsIntegerMaximum number of jobs after removing duplicates. Default 500, min 50, max 10,000.
maxCostNumberSpending ceiling in USD for large runs (maxItems above 500). Default $2, max $20.

Use countryCode and languageCode (not country / language). Google turned off its Jobs widget in the EU/EEA, so EU countries are not available.

Output example

One record per job:

{
"jobId": "JqaxCjx4oqiOf07WAAAAAA==",
"title": "Senior Software Engineer",
"companyName": "Acme Inc",
"location": "San Francisco, CA",
"latitude": 37.7749,
"longitude": -122.4194,
"description": "We're hiring senior engineers for our infrastructure team...",
"postedAt": "5 days ago",
"postedAtIso": "2026-06-18T00:00:00.000Z",
"jobType": "FULLTIME",
"workFromHome": false,
"salaryMin": 180000,
"salaryMax": 240000,
"salaryCurrency": "USD",
"salaryPeriod": "YEAR",
"benefits": ["Health insurance", "401(k)", "Stock options"],
"qualifications": ["5+ years experience", "Go or Rust proficiency"],
"applyOptions": [
{ "network": "linkedin", "url": "https://www.linkedin.com/jobs/view/...", "directApply": false },
{ "network": "greenhouse", "url": "https://boards.greenhouse.io/acme/jobs/...", "directApply": false }
],
"postedVia": "LinkedIn",
"sourceQuery": "software engineer",
"scrapedAt": "2026-06-23T12:00:00.000Z"
}

Field notes

  • Salary fields are filled only when the employer discloses pay. Otherwise they are null. Salaries in USD, EUR, GBP, JPY and INR are recognized.
  • applyOptions has one entry per apply destination. The url is the real destination (Google's redirect is removed), so you get the actual LinkedIn, Greenhouse, Lever or company link.
  • postedAt is Google's relative text ("5 days ago"). postedAtIso is the same date as ISO 8601.
  • latitude, longitude and companyLogo are null when Google does not show them for that listing.
  • jobId is Google's identifier when available. Otherwise it is built from title, company and location so you can deduplicate across runs.

How many results can I get?

Google shows roughly 100 jobs per search. When maxItems is above 500, the scraper automatically splits the search by posting date and employment type and merges the results without duplicates, so you can go well past that limit. The maxCost setting keeps large runs within your budget.

For the widest coverage, use several specific queries together with a location.

Pricing

You pay per job returned (see the Pricing tab for the current price). Runs that return no jobs cost nothing for results.

Free Apify plan: free accounts receive a small set of sample jobs (clearly marked with a _notice field) so you can see the output format. Real Google Jobs data requires a paid Apify plan.

Integrations

  • API: start runs and download results with the Apify API or the JavaScript and Python clients.
  • Schedules: run it on a schedule for recurring job monitoring and get notified if a run fails.
  • AI agents (MCP): let ChatGPT, Claude and other assistants call this scraper through the Apify MCP server.
  • No-code: send results to Make, Zapier, Google Sheets, Slack or your database with Apify integrations and webhooks.

FAQ

How does it work? It searches the Google Jobs widget the same way a job seeker would, opens each listing and turns the visible data (title, company, salary, apply links, description) into a structured dataset, at scale.

Is it legal to scrape Google Jobs? It collects only publicly available job listings, with no login and no personal data. You are responsible for how you use the data and for following the laws and terms that apply to you. See Is web scraping legal?

Do I need a Google account? No. No account, cookies or credentials are needed. Unblocking is handled for you.

Can I scrape only remote jobs? Yes. Set workFromHome to true. You can also filter by jobType and datePosted.

My run succeeded but returned 0 jobs. Why? Sometimes Google shows a consent page with no job cards. The scraper detects it, reloads and retries with a fresh connection. If it still finds nothing, try a broader query or a different location. Empty runs are not charged for results.

Why did I get sample data? You are on the free Apify plan. Upgrade to a paid plan to get real listings.

Feedback

Found a problem or need a field that is missing? Open an issue in the Issues tab and we usually reply within a day. If the scraper saved you time, a review on the Apify Store helps a lot.