Pricing
$3.00 / 1,000 job scrapeds
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 $0.003 per job.
Scrape Google for Jobs at scale with full salary data and apply links. 22 structured fields per job, multi-network apply tracking, automatic matrix expansion for large runs.
Highlights
- โ
22 fields per job including
salaryMin/salaryMax/salaryCurrency/salaryPeriod - โ Apply links per network (LinkedIn, Indeed, Glassdoor, Workday, Greenhouse, Lever, company ATS)
- โ Matrix expansion for runs > 500 jobs โ automatically rotates date filters + employment types to escape Google's pagination ceiling
- โ
Hard cost ceiling (
maxCost, default $2) so runs never blow past your budget - โ Brightdata Scraping Browser under the hood โ no cookies, no manual auth, just results
- โ Self-healing: detects soft-consent redirects and Brightdata exit-IP burns, auto-reconnects for a fresh session
Table of Contents
Pricing
| Event | Price | Description |
|---|---|---|
job-scraped | $0.008 | Charged once per job pushed to the dataset |
- $0.05 minimum charge per run (prevents tiny abandoned runs from bypassing cost)
- No actor-start fee
- You only pay for jobs we successfully extract โ empty runs cost $0
Coverage
Google's Jobs widget is region-restricted (disabled in the EU since 2023). Supported regions:
| Country code | Region |
|---|---|
us | ๐บ๐ธ United States |
br | ๐ง๐ท Brazil |
mx | ๐ฒ๐ฝ Mexico |
ca | ๐จ๐ฆ Canada |
gb | ๐ฌ๐ง United Kingdom |
in | ๐ฎ๐ณ India |
au | ๐ฆ๐บ Australia |
jp | ๐ฏ๐ต Japan |
sg | ๐ธ๐ฌ Singapore |
EU countries (DE, FR, IT, ES, NL, etc.) are not supported โ Google disabled the Jobs widget in the EEA after antitrust regulations.
Input
Required
| Field | Type | Description |
|---|---|---|
queries | string[] | Array of search keywords (e.g. ["software engineer", "data scientist"]) |
Optional
| Field | Type | Default | Description |
|---|---|---|---|
location | string | country default | City, region or full address (e.g. "San Francisco, CA") |
countryCode | string | "us" | Two-letter country code |
languageCode | string | "en" | Two-letter language code |
maxItems | integer | 500 | Hard cap on total jobs scraped (min 50) |
datePosted | string | โ | today / 3days / week / month / all |
jobType | string[] | โ | ["FULLTIME","PARTTIME","CONTRACTOR","INTERN"] |
workFromHome | boolean | false | Filter for remote roles only |
maxCost | number | 2 | Hard cost ceiling in USD โ actor stops expanding once spent estimate reaches this |
proxyConfiguration | object | RESIDENTIAL | Standard Apify proxy config |
Example input
{"queries":["software engineer","data scientist"],"location":"San Francisco, CA","countryCode":"us","languageCode":"en","maxItems":500,"datePosted":"week","jobType":["FULLTIME"],"workFromHome":false,"maxCost":4}
Output
Each row in the dataset is one job with the schema below:
{"jobId":"eyJhbGciOi...","title":"Senior Software Engineer","companyName":"Acme Inc","companyLogo":"https://encrypted-tbn0.gstatic.com/images?q=...","location":"San Francisco, CA, US","latitude":37.7749,"longitude":-122.4194,"description":"We're hiring senior engineers for our infrastructure team...","descriptionHtml":"<p>We're hiring senior engineers for our infrastructure team...</p>","postedAt":"5 days ago","postedAtIso":"2026-04-10T00: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"],"responsibilities":["Design distributed systems","Mentor junior engineers"],"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-05-24T12:00:00.000Z"}
Field reference
| Field | Type | Notes |
|---|---|---|
jobId | string | Google's internal identifier (or synthesized from title|company|location for dedup) |
title | string | Job title |
companyName | string | Hiring company |
companyLogo | string | URL of company logo image (Google CDN) |
location | string | Human-readable location string |
latitude, longitude | number | GPS coordinates when Google provides them |
description, descriptionHtml | string | Plain text + HTML versions of job description |
postedAt | string | Relative date string from Google (e.g. "5 days ago") |
postedAtIso | string | ISO 8601 โ parsed from postedAt |
jobType | string | FULLTIME / PARTTIME / CONTRACTOR / INTERN |
workFromHome | boolean | True for fully remote |
salaryMin, salaryMax | number | Salary range when disclosed |
salaryCurrency | string | ISO currency code |
salaryPeriod | string | HOUR / MONTH / YEAR |
benefits, qualifications, responsibilities | string[] | Bullet lists extracted from job posting |
applyOptions | object[] | {network, url, directApply} per apply destination |
postedVia | string | The job board that posted it on Google |
sourceQuery | string | Which input queries[] produced this row |
scrapedAt | string | ISO 8601 timestamp of extraction |
Example use cases
Recruiter โ track competitor hiring
{"queries":["senior backend engineer"],"location":"Austin, TX","datePosted":"week","maxItems":100}
Returns this week's senior backend roles in Austin with salary, company, and one-click apply.
Salary benchmarking โ by role and city
{"queries":["product manager"],"location":"Seattle, WA","datePosted":"month","maxItems":300,"maxCost":3}
Combine with simple aggregation to get median / p90 salary for PMs in Seattle this month.
Remote-only sourcing
{"queries":["devops engineer"],"countryCode":"us","workFromHome":true,"maxItems":200}
Filter for fully remote roles across the US.
Multi-role digest for a job board
{"queries":["data scientist","ml engineer","data engineer"],"location":"London","countryCode":"gb","maxItems":500,"maxCost":5}
Aggregate three related roles in one run for a daily digest.
Cost calculator
| Jobs scraped | Cost |
|---|---|
| 50 | $0.40 |
| 100 | $0.80 |
| 250 | $2.00 |
| 500 | $4.00 |
| 1,000 | $8.00 |
| 2,000 | $16.00 |
Costs are deterministic โ you're charged per successfully extracted job, not per API call.
FAQ
Q: Why does Google Jobs scraping need Brightdata?
A: Google's Jobs vertical (udm=8) ships a different consent flow than regular search and frequently rejects datacenter IPs with a "before you continue" redirect. Brightdata Scraping Browser carries the CF / consent cookies needed to render the Jobs widget.
Q: My run returned 0 jobs but succeeded โ why? A: Google occasionally serves a soft-consent redirect (page title becomes the URL itself, 0 cards render). The actor detects this and (1) reloads the page, (2) reconnects to Brightdata for a fresh exit IP, retrying up to 3 times. If it still fails after that, you weren't charged for the empty run.
Q: Can I scrape EU jobs?
A: No โ Google disabled the Jobs vertical in the EEA in 2023 due to antitrust action. The widget simply isn't there. If you set countryCode: "de" the actor will fail gracefully.
Q: How does maxItems > 500 actually find more?
A: Google caps visible results per single filter slice to ~100. To unlock more, the actor automatically expands the search matrix by iterating over datePosted (today โ 3days โ week โ month) and jobType filters, deduplicating by jobId. Costs scale with successful extractions, not slices attempted.
Q: How fresh is the data? A: Real-time from Google's index. Jobs are typically posted to Google within hours of being added to the source job board (LinkedIn, Indeed, etc.).
Q: Can I get the full apply URL on LinkedIn / Greenhouse without a Google redirect?
A: Yes โ applyOptions[].url is the canonical destination URL (we decode Google's redirect wrapper).
Notes & limits
- EU countries are not supported (Google disabled the widget there in 2023).
- Pagination ceiling: Google caps visible results to ~100 per filter slice.
maxItems > 500triggers matrix expansion automatically. jobIdis sourced from Google's internal identifier when available; otherwise synthesized fromtitle|company|locationfor cross-run dedup.- Apply networks detected: LinkedIn, Indeed, Glassdoor, Workday, Greenhouse, Lever, Ashby, BambooHR, plus direct company career pages.
- Empty runs ($0 charged) typically mean Google flagged the IP โ re-running usually succeeds.
Related actors
- stepstone-scraper โ Germany / DACH job board (StepStone)
- craigslist-scraper โ Multi-city classified ads including gigs and jobs
- upwork-jobs-scraper โ Freelance gigs on Upwork
If this actor saved you time, please leave a โญโญโญโญโญ review on the Apify Store โ it helps a lot ๐
