Google Jobs Scraper
Pricing
from $4.99 / 1,000 results
Google Jobs Scraper
A fast, high-performance scraper built for lead generation, competitor analysis, and business intelligence. Extracts detailed business profiles, including name, contact details, emails, phone numbers, location, ratings, and reviews from Google. Supports custom search URLs, proxy rotation, and pag...
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Coding Frontned
Maintained by CommunityActor stats
0
Bookmarked
17
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Collect up to 10 canonical job listings from one bounded Google Jobs response. The Actor uses Google’s public Jobs search surface, honors localization and proxy input, and fails closed when Google returns a challenge or an unrecognized empty page.
Reliability contract
- Saves job rows only—generic web-search fallback rows are never mixed into the dataset.
- Requires a non-empty title and company for every row.
- Deduplicates by Google job URL when available, otherwise by title, company, location, and source together.
- Normalizes Google redirect links and retains only HTTP(S) URLs.
- Represents genuinely unavailable optional facts as
nullor an empty apply-link array. - Writes a strict
OUTPUTrecord for successful, explicitly empty, and failed runs. - Bounds one response to 6 MB, each request to 10–90 seconds, and retries to zero through two.
- Targets the established
ibp=htl;jobsGoogle route; current Google responses may render the Jobs vertical asudm=8.
The default GOOGLE_SERP proxy is designed for Google result pages. A caller may supply another standard Apify proxy configuration, but direct or Residential Google access may be slower or challenged.
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | required | Job title or keywords, up to 200 characters. |
location | string | empty | Optional search location. |
maxItems | integer | 10 | Save 1–10 jobs from the bounded response. |
gl | string | us | Two-letter Google country code. |
hl | string | en | Language code, optionally with country suffix. |
maxRequestRetries | integer | 1 | Zero to two retries. |
requestTimeoutSecs | integer | 60 | Hard timeout per request, from 10 to 90 seconds. |
proxyConfiguration | object | Google SERP proxy | Standard Apify proxy settings. |
{"query": "software engineer","location": "San Francisco","maxItems": 5,"gl": "us","hl": "en","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["GOOGLE_SERP"]}}
Output
Each dataset row includes stable position/search context, required title/company, nullable source-backed details, normalized apply/job URLs, and the scrape timestamp.
{"position": 1,"jobTitle": "Software Engineer","company": "Example Company","location": "San Francisco, CA","source": "Example Careers","salary": null,"datePosted": "2 days ago","jobType": "Full-time","applyLink": null,"applyLinks": [],"jobUrl": "https://www.google.com/search?...","searchQuery": "software engineer","searchLocation": "San Francisco","page": 1,"scrapedAt": "2026-08-31T00:00:00.000Z"}
Google’s markup and result inventory are dynamic. Asking for 10 jobs is a cap, not a promise that Google will expose 10 matching cards.
Local verification
npm ci --ignore-scriptsnpm run checknpx --no-install apify validate-schemanpx --no-install apify run --purge --input-file ./qa-inputs/proxy.jsonnpm run validate
After a successful run, download the job rows from the Actor Dataset tab or from the local storage/datasets/default directory. The direct fixture in qa-inputs/local.json is useful for diagnosing access boundaries; the proxy fixture is the recommended local extraction check for Google Jobs.