Google Jobs Scraper
Pricing
from $1.99 / 1,000 search results
Google Jobs Scraper
Scrapes Google Jobs for any job title/location. Extracts job title, company, location, workplace/employment type, salary, description, posted/expires dates, apply URL, and more.
Pricing
from $1.99 / 1,000 search results
Rating
0.0
(0)
Developer
Search API
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
10 days ago
Last modified
Categories
Share
Search Google Jobs by job title and location, then collect normalized listing cards and expanded job details. The Actor opens Google's Jobs search surface, loads additional cards up to the configured limit, and expands each available job detail panel. If Google challenges the run network, it discovers indexed employer/job-board pages and emits records only when the source page publishes valid JobPosting JSON-LD.
Input
| Field | Required | Default | Description |
|---|---|---|---|
query | Yes | software engineer | Job title or keywords entered in Google Jobs. |
location | No | New York, NY | City, state, region, or country included in the search. |
queries | No | [] | Additional job queries. Native Google pages are processed concurrently and output is deduplicated globally. |
maxItems | No | 50 | Maximum unique job records. |
maxConcurrency | No | 2 | Concurrent search pages, from 1 to 4. |
gl | No | us | Two-letter Google country code. |
hl | No | en | Google interface language. |
maxScrolls | No | 10 | Maximum result-list loads. |
maxRequestRetries | No | 3 | Bounded retries for temporary failures and blocks. |
navigationTimeoutSecs | No | 60 | Navigation timeout. |
requestHandlerTimeoutSecs | No | 300 | Whole search-page handler timeout. |
detailTimeoutSecs | No | 12 | Timeout while opening one job's detail panel. |
proxyConfiguration | No | Google SERP proxy | Apify Proxy or custom proxy configuration. |
experienceLevel | No | — | Optional entry, mid, senior, executive, or director filter. |
salaryMin / salaryMax | No | — | Optional non-negative salary range filters. |
remoteFilter | No | — | Optional remote, hybrid, or onsite filter. |
educationLevel | No | — | Optional minimum education filter. |
debug | No | false | Non-sensitive selector and count diagnostics. |
Output
Records contain the fields Google exposes for each job when available:
- identity: stable
id,jobId, result type, global position, title, company, and company logo; - rich source metadata:
companyDetails,salaryDetails,structuredData, retrieval method and index provenance when the fallback is used; - location: location, city, state/region, country, remote/workplace type;
- employment and compensation: employment types, salary range, currency, period;
- job content: full description, qualifications, responsibilities, detailed benefits, card benefit highlights;
- dates and source: posted time, source board, source domain;
- application: primary apply URL and all available apply links;
- search context: query, requested location, locale, Google Jobs URL, scrape timestamp.
Unavailable optional fields are omitted recursively. The Actor does not invent values from the search input, does not store challenge pages, and does not store raw Google responses.
Local validation
npm installnpm testnpm run validate:datasetapify run --purge
Google commonly blocks datacenter IPs. Use an authorized Apify proxy configuration. CAPTCHA, authentication, or explicit access-control pages are reported as failures and are never stored as dataset records.
The source-page fallback is deliberately strict: it follows public indexed job URLs but emits a record only after validating a JobPosting JSON-LD object with a title, company, description, and canonical application URL. It does not bypass CAPTCHA or access controls.