Home / Tools / Google Jobs Scraper
Jobs & content
Google Jobs Scraper
Scrape Google Jobs (the jobs panel in Google Search) by keyword and location: title, company, location, salary (parsed), posted date, employment type, full description, highlights, and every apply link with board names. Deduplicated, 70+ countries.
- Price: $2 per 1,000 × job result
- Prefilled example: finished in 15 s on Oct 19, 2026 (Saved 10 job(s) from 1/1 search(es).)
- Works with: Apify Console, REST API, Python, JavaScript, MCP (Claude, Cursor, VS Code), n8n, Make, Zapier
- Last updated: 2026-10-19
Sample output
| Job title | Company | Via | Salary | Posted |
|---|---|---|---|---|
| Data Analyst V | TX-HHSC-DSHS-DFPS | Texas HHSC, Texas DSHS And Texas DFPS -… | – | 5 days ago |
| Data Analyst IV | Health & Human Services Comm | Indeed | 5,425.33–8,886.16 a month | – |
| Data Analyst II | The University of Texas at Austin | Monster | – | 24 days ago |
Real rows from the prefilled example run (Oct 19, 2026), 5 of 38+ fields shown. Export as JSON, CSV, Excel or HTML, or read them through the API.
Full JSON of one real output row (8 rows in the example dataset)
{
"title": "Data Analyst V",
"company": "TX-HHSC-DSHS-DFPS",
"location": "Austin, TX",
"jobLocation": null,
"otherLocationsCount": 0,
"remote": false,
"via": "Texas HHSC, Texas DSHS And Texas DFPS - Texas.gov",
"postedAt": "2026-10-14T10:00:08Z",
"postedAgo": "5 days ago",
"employmentType": "Full-time",
"employmentTypes": [
"Full-time"
],
"employmentTypeText": "Full-time",
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryInterval": null,
"salaryText": null,
"salarySource": null,
"benefits": [
"Health insurance",
"Paid time off",
"Dental insurance"
],
"noDegreeMentioned": false,
"applyUrl": "https://careers.hhs.texas.gov/hhscjobs/job/AUSTIN-Data-Analyst-V-TX-73301/1430015100/",
"applyOptions": [
{
"title": "Texas HHSC, Texas DSHS And Texas DFPS - Texas.gov",
"url": "https://careers.hhs.texas.gov/hhscjobs/job/AUSTIN-Data-Analyst-V-TX-73301/1430015100/?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic",
"domain": "careers.hhs.texas.gov",
"direct": false
},
{
"title": "Indeed",
"url": "https://www.indeed.com/viewjob?jk=d8595b6e5603b8aa&utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic",
"domain": "indeed.com",
"direct": true
},
{
"title": "LinkedIn",
"url": "https://www.linkedin.com/jobs/view/data-analyst-v-at-texas-health-and-human-services-4465564317?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic",
"domain": "linkedin.com",
"direct": false
},
"... 5 more"
],
"shareLink": "https://www.google.com/search?ibp=htl;jobs&q=data+analyst&htidocid=lQk6xffd4N-f9d1AAAAAAA%3D%3D&hl=en-US&shem=epsd1,esd2e,rimspwouoe,sdpie&shndl=37&shmd=H4sIAAAAAAAA_xXEsQrCMBAAUFz7CS7e4iKmEcFFp2LQ4iSkSLdyLSGNxFzonVA_wP8W3_CK76JYGxSEKmH8sMADFNyoB3Y4DSNQgiuRj255GkUyH7VmjqVnQQlDOdB...",
"companyLogo": null,
"companyUrl": null,
"jobId": "lQk6xffd4N-f9d1AAAAAAA==",
"query": "data analyst",
"searchLocation": "Austin,Texas,United States",
"locationInput": "Austin, TX",
"country": "US",
"language": "en",
"position": 1,
"source": "google_jobs",
"scrapedAt": "2026-10-19T10:00:14Z",
"description": "Join the Texas Health and Human Services Commission (HHSC) and be part of a team committed to creating a positive impact in the lives of fellow Texans. At HHSC, your contributions matter, and we support you at each stage of your life and work journey. Our comprehensive benefits p...",
"descriptionIsPreview": false,
"highlights": {
"qualifications": [
"Applicants from outside Texas must be willing to relocate within 30 days of hire",
"Knowledge of data analysis techniques and best practices",
"Knowledge of data quality and integrity processes",
"... 19 more"
],
"responsibilities": [
"Data Analyst V (DA V) position performs work for the Provider Finance Department under supervision of the manager of Data Integration",
"This position performs highly complex (senior-level) data collection, reporting, and analysis to monitor, evaluate, and increase efficiencies for the Provider Finance Department",
"The DA V defines, develops, and implements data standards, data quality measures, analyzes data quality results, and implements necessary changes to ensure data quality improvement",
"... 24 more"
],
"benefits": [
"Our comprehensive benefits package includes 100% paid employee health insurance for full-time eligible employees, a defined benefit pension plan, generous time off benefits, numerous opportunities for career advancement and more",
"Salary Range: $6,377.50 - $10,785.83",
"Pay Frequency: Monthly",
"... 5 more"
]
},
"highlightSections": [
{
"title": "Qualifications",
"items": [
"Applicants from outside Texas must be willing to relocate within 30 days of hire",
"Knowledge of data analysis techniques and best practices",
"Knowledge of data quality and integrity processes",
"... 19 more"
]
},
{
"title": "Benefits",
"items": [
"Our comprehensive benefits package includes 100% paid employee health insurance for full-time eligible employees, a defined benefit pension plan, generous time off benefits, numerous opportunities for career advancement and more",
"Salary Range: $6,377.50 - $10,785.83",
"Pay Frequency: Monthly",
"... 5 more"
]
},
{
"title": "Responsibilities",
"items": [
"Data Analyst V (DA V) position performs work for the Provider Finance Department under supervision of the manager of Data Integration",
"This position performs highly complex (senior-level) data collection, reporting, and analysis to monitor, evaluate, and increase efficiencies for the Provider Finance Department",
"The DA V defines, develops, and implements data standards, data quality measures, analyzes data quality results, and implements necessary changes to ensure data quality improvement",
"... 24 more"
]
}
]
}Output fields
From the Actor's dataset schema. Every row has the same flat shape, so it drops straight into a spreadsheet, a database or an agent's context.
| Field | Type | Description |
|---|---|---|
title | string | Job title |
company | string | Company / employer name |
location | string | Location as shown by Google ('Anywhere' = remote) |
jobLocation | string | Location from the job details if different |
otherLocationsCount | integer | Number of additional locations |
remote | boolean | Remote / work from home |
via | string | Job board Google got the posting from (LinkedIn, Indeed, company site...) |
postedAt | string | Posted date (ISO 8601, UTC, approximate) |
postedAgo | string | Posted, as shown by Google ('3 days ago') |
employmentType | string | Full-time, Part-time, Contractor or Internship |
employmentTypes | array | All employment types |
employmentTypeText | string | Employment type as shown |
salaryMin | number | Minimum salary |
salaryMax | number | Maximum salary |
salaryCurrency | string | ISO currency |
salaryInterval | string | YEAR, MONTH, WEEK, DAY or HOUR |
salaryText | string | Salary as shown |
salarySource | string | google (salary chip) or description (parsed from text) |
benefits | array | Benefit chips (health insurance, paid time off...) |
noDegreeMentioned | boolean | Google's 'No degree mentioned' flag |
applyUrl | string | Main apply link |
applyOptions | array | All apply links: title (board), url, domain |
shareLink | string | Google Jobs share link |
companyLogo | string | Company logo URL |
Pricing
Pay per result, billed by Apify. No subscription and no minimum. Discount tiers apply automatically on paid Apify plans.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Job result main Charged once for each job successfully saved to the dataset. | $0.002 | $0.0017 | $0.0015 | $0.0013 |
| Actor start Charged once when the Actor run starts. | $0.002 | $0.002 | $0.002 | $0.002 |
Examples on the Free plan: 100 job results = $0.20, 1,000 job results = $2, 10,000 job results = $20. Apify's Free plan includes $5 of monthly usage credit. Prices read from the Apify API at build time (2026-10-19).
Scheduled price change from 2026-11-02 (Free-plan tier): Job result: $0.002 → $0.003. Paid-plan tiers change accordingly. The table shows today's prices.
Example input
This is the prefilled input on the Store page. Keep it and click Start to see real data in seconds.
{
"queries": [
"data analyst"
],
"locations": [
"Austin, TX"
],
"country": "US",
"language": "en",
"maxResultsPerQuery": 10,
"datePosted": "anytime",
"remoteOnly": false,
"includeDetails": true,
"includeAllApplyLinks": true,
"dedupe": true
}Use it from code, no-code or an AI agent
cURL (one request, returns rows)
curl -X POST \
"https://api.apify.com/v2/acts/wrenfield-data~google-jobs-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries": ["data analyst"], "locations": ["Austin, TX"], "country": "US", "language": "en", "maxResultsPerQuery": 10, "datePosted": "anytime", "remoteOnly": false, "includeDetails": true, "includeAllApplyLinks": true, "dedupe": true}'Python
# pip install apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("wrenfield-data/google-jobs-scraper").call(
run_input={
"queries": [
"data analyst"
],
"locations": [
"Austin, TX"
],
"country": "US",
"language": "en",
"maxResultsPerQuery": 10,
"datePosted": "anytime",
"remoteOnly": False,
"includeDetails": True,
"includeAllApplyLinks": True,
"dedupe": True
},
max_total_charge_usd=1.00, # hard cap for this run
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)JavaScript / Node
// npm i apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('wrenfield-data/google-jobs-scraper').call({
"queries": [
"data analyst"
],
"locations": [
"Austin, TX"
],
"country": "US",
"language": "en",
"maxResultsPerQuery": 10,
"datePosted": "anytime",
"remoteOnly": false,
"includeDetails": true,
"includeAllApplyLinks": true,
"dedupe": true
}, { maxTotalChargeUsd: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);MCP (Claude, Cursor, VS Code, any MCP client)
{
"mcpServers": {
"wrenfield-google-jobs-scraper": {
"url": "https://mcp.apify.com?tools=wrenfield-data/google-jobs-scraper"
}
}
}Remote MCP server hosted by Apify. Sign in with OAuth on first use, or send Authorization: Bearer <APIFY_TOKEN>. The tool appears as wrenfield-data--google-jobs-scraper. More client setups on the MCP page.
n8n, Make, Zapier
Use the official Apify node or app, pick Run Actor, enter wrenfield-data/google-jobs-scraper and paste the input JSON above. Then read the run's dataset items. Ready-made n8n workflows are on the n8n templates page.
FAQ
How much does Google Jobs Scraper cost?
$0.002 per job result on the Apify Free plan ($2 per 1,000), billed per result by Apify with no subscription. Plus $0.002 per actor start. Higher Apify plans get the discounted tiers shown in the pricing table. You can cap any run with a maximum cost.
Is it legal to scrape Google Jobs?
The Actor only collects publicly visible job postings. Job postings may still contain personal data (e.g. a recruiter's name) and the content belongs to the employers and job boards. Make sure your use complies with applicable laws (e.g. GDPR) and the terms of the sites involved. If in doubt, consult a lawyer.
How many jobs can I get per search?
Google Jobs shows up to about 200 jobs for one query in one location. Use more specific locations and related job titles to get more jobs; duplicates are removed automatically.
Why are some descriptions short in Germany / the EU?
In some EU countries Google only shows a preview of the description and links to the job board for the rest. These jobs have descriptionIsPreview: true; all apply links are still included.
Why do results differ from what I see in my browser?
Google personalizes results by location, language and history. The Actor searches from the location you choose, without personalization. If you leave locations empty, Google picks results for the country as a whole.
Which countries are supported?
The 76 countries in the Country dropdown – the countries where Google Jobs is available. Google Jobs is not offered in some countries (e.g. Australia).
How fresh is the data?
Every run searches Google Jobs live. postedAt is derived from Google's "3 days ago" label, so it is accurate to the day.
Related tools
Compare and plan
Try Google Jobs Scraper now
Open it on Apify, keep the prefilled example and click Start. The Apify Free plan includes $5 of monthly credit, no card needed.
Open on Apify