Google Jobs Scraper — Salaries, Descriptions & Apply Links
Pricing
Pay per event
Google Jobs Scraper — Salaries, Descriptions & Apply Links
Get Google Jobs listings by search term and location: job title, company, full description, parsed salary, posted date, remote flag and all apply links with real URLs. Many terms per run, any Google market, no login. $4.25 per 1,000 jobs.
Pricing
Pay per event
Rating
5.0
(1)
Developer
Flowo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
0.78 hours
Issues response
3 days ago
Last modified
Categories
Share
This actor searches Google Jobs for one or many job search terms and returns one row per unique job: title, companyName, location, the full description, parsed salary (salaryMin, salaryMax, currency, salaryPeriod), publishedAt and every apply option with its real target URL in applyOptions. No login or API key is needed.
You can set a location, a Google market and language, a posted-date filter, a job type and a remote-only switch. Results are ready for spreadsheets, job boards, salary research or AI agents.
What does it do?
You give the actor a list of job search terms (for example "registered nurse" or "data analyst") and, optionally, a location such as "Chicago, IL". It runs each term as a Google Jobs search, pages through the results and returns the details Google shows for each job: company, location, the job board it came from (via), description, highlights (qualifications, benefits, responsibilities), job type, tags, salary and posted date.
Each job appears once per run, even if several search terms find it. It is built for recruiters and sourcers, job-market analysts, HR-tech and job-board builders, salary researchers, and AI agents that answer "find me X jobs in Y".
How to use
- Open the actor in Apify Console and click Try for free.
- Enter one or more Job search terms, one per line.
- Add a Location (strongly recommended) and, if needed, a Country and Language.
- Optionally set Date posted, Job type, Remote jobs only and the limits.
- Click Start, then download the dataset as JSON, CSV, Excel or HTML, or read it through the API.
AI agents can call the actor through the Apify API or Apify MCP with the same JSON input.
Pricing
Pay per event:
| Event | Price |
|---|---|
| Job listing (one unique job saved to the dataset) | $0.00425 (= $4.25 per 1,000 jobs) |
| Actor start | $0.00005 (Apify's standard start price) |
Higher Apify plans get lower per-job prices: Bronze $3.825, Silver $3.40 and Gold and above $2.975 per 1,000 jobs. Duplicate jobs, searches without results and runs with invalid input are not charged.
Example: the default input (2 terms × up to 50 jobs) returns up to 100 jobs and costs about $0.43 on the free plan. Set Max jobs in total to cap the spend.
Input
| Field | Meaning |
|---|---|
queries (required) | Job search terms, one per line. Each term is a separate search. |
location | City, region or country added to every term, e.g. "New York, NY". |
country | Two-letter Google market code (default us), e.g. gb, de, in, jp. |
language | Label language (default en), e.g. de, fr, pt-BR. |
datePosted | any, today (last 24 hours), 3days, week or month. Works in every country and language. |
employmentType | any, fullTime, partTime, contract or internship. Works in every country and language; one type per run. |
remoteOnly | Only remote jobs (default false). Available in the US, UK, India, Germany and Brazil; elsewhere the run stops with an input error. |
maxItemsPerQuery | Max unique jobs per term, 1–500 (default 50). |
maxItems | Max jobs in the whole run (default 1000). |
proxyConfiguration | A proxy is required; the default Apify datacenter proxy works best. |
Example input:
{"queries": ["data analyst", "data engineer"],"location": "Bangalore","country": "in","datePosted": "week","maxItemsPerQuery": 100}
Output
Each dataset row is one job.
| Field | Description |
|---|---|
id, url | Google's job id and a Google Jobs link that opens the job |
title, companyName, location, via | Basic job data and the board Google took it from |
description, descriptionIsPreview | Description text; true when Google only shows a preview |
employmentType, isRemote, tags | Job type, remote flag, benefit and other chips |
salaryText, salaryMin, salaryMax, currency, salaryPeriod | Salary as shown and parsed |
publishedAtText, publishedAt | Posted date as shown and as an approximate ISO date |
highlights | Sections such as Qualifications, Benefits, Responsibilities |
applyOptions, applyUrl | All apply links with real target URLs; the first one |
imageUrl | Company logo |
query, position, page, country, language, scrapedAt | Search context |
Real example (description and lists shortened):
{"id": "_QNkGauliwHHe4OMAAAAAA==","title": "Software Engineer (Mid-Level)","companyName": "Brean Capital, LLC","location": "New York, NY","via": "Indeed","description": "Software Engineer (Mid-Level)\n\nCompany: Brean Capital, LLC\n...","descriptionIsPreview": false,"employmentType": "Full-time","isRemote": false,"salaryText": "110K–130K a year","salaryMin": 110000,"salaryMax": 130000,"currency": "USD","salaryPeriod": "year","publishedAtText": "2 days ago","publishedAt": "2026-10-22","tags": ["No degree mentioned", "Health insurance", "Dental insurance"],"highlights": [{ "title": "Qualifications", "items": ["Core Technical Stack: 3+ years of professional experience working with C# and ASP"] }],"applyOptions": [{ "title": "Apply directly on Indeed", "url": "https://www.indeed.com/viewjob?jk=2f463a74d9025996&utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic" }],"query": "software engineer","position": 1,"page": 1,"country": "US","language": "en"}
Use cases
- Recruiting and sourcing: watch openings for a role in a city, with company, description and apply links.
- Job-market analysis: compare demand for several roles in one market in a single run, each job counted once.
- Salary research: collect pay with parsed min, max, currency and period, for example hourly pay for part-time roles.
- Daily monitoring: schedule a run with
datePosted: 3days(ortoday),remoteOnlyand a job type to catch fresh remote listings. - Non-English markets: search with local terms, e.g. "Krankenpfleger" in Berlin with
country: de,language: de,employmentType: partTimeanddatePosted: week. - Job boards and AI agents: feed aggregated listings or answer "jobs for X in Y" requests.
Limitations
- Google returns about 10 jobs per page and usually ends a broad search after roughly 100–150 jobs; narrow searches end earlier.
- Salary, highlights, tags and the posted date are filled only when Google shows them. Salary is most common in the US; highlights were not seen in Germany, Japan, the UK or India.
- In some markets (for example Germany) Google shows only a description preview;
descriptionIsPreviewis thentrue. - Labels such as
employmentType,publishedAtTextand highlight titles follow the chosenlanguage.publishedAtis approximate. - Without a location, Google picks jobs near the proxy IP, often a random US city.
- Narrow filter combinations (for example part-time + remote + last 7 days for a niche role) can legitimately return no jobs.
- Markets where Google has no Jobs search (for example
cn) return no results and a warning. - A proxy is required. Residential proxies are blocked by Google more often than the default datacenter proxy.
- A job found by several terms is saved only for the first term that found it.
- Google can change its pages; if the layout changes, the actor stops with an error instead of returning wrong data.
Filters
- Date posted uses Google's
after:date operator, so it works the same in every country and language (tested in the US, UK, Canada, Germany, France, Spain, Brazil and Japan). The actor also drops jobs whose posted age is known and older than the window. - Last 24 hours (
today) finds few jobs, because Google lists few jobs that fresh; use3daysfor broader monitoring. - Job type uses the phrase Google itself shows in the market's language (for example
Teilzeit,temps partiel,パートタイム). - Remote jobs only needs a market where Google offers a Remote filter (US, UK, India, Germany, Brazil) and a Language of that market (e.g.
defor Germany). In Canada, France, Spain, Japan, Italy and Mexico, or with a different language, the run stops at once with a clear input error instead of returning nothing. - If the filters together leave no jobs, the run succeeds with 0 rows and a warning that names the filters.
FAQ
Is it legal to scrape Google Jobs? The actor collects job postings that Google shows publicly, without logging in. You are responsible for how you use the data and for complying with applicable laws and the terms of the sites involved. Listings can contain contact details a company chose to publish; handle them according to data-protection rules.
Which countries work? Any Google market that has the Jobs search. Date and job type filters were tested in the US, UK, Canada, India, Germany, Switzerland, France, Spain, Brazil, Japan and Italy. The remote filter works only where Google offers it (see Filters).
Why is location recommended?
Google builds the results from the search text. A location in the input is added to each term.
What happens when nothing is found? The run succeeds with no rows and no charge, with a warning for each such term.
Can I search many terms at once?
Yes. List them in queries; they share the location and filters.
Other actors
Other public data actors from the same author:
- Google Trends Scraper — interest over time, by region and related queries for search terms.
- Google Ads Transparency Scraper — ads run by a domain or advertiser.
- Google Play Reviews Scraper — app reviews with ratings and developer replies.