Google Jobs Scraper avatar

Google Jobs Scraper

Pricing

from $1.99 / 1,000 search results

Go to Apify Store
Google Jobs Scraper

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

Search API

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

2

Monthly active users

10 days ago

Last modified

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

FieldRequiredDefaultDescription
queryYessoftware engineerJob title or keywords entered in Google Jobs.
locationNoNew York, NYCity, state, region, or country included in the search.
queriesNo[]Additional job queries. Native Google pages are processed concurrently and output is deduplicated globally.
maxItemsNo50Maximum unique job records.
maxConcurrencyNo2Concurrent search pages, from 1 to 4.
glNousTwo-letter Google country code.
hlNoenGoogle interface language.
maxScrollsNo10Maximum result-list loads.
maxRequestRetriesNo3Bounded retries for temporary failures and blocks.
navigationTimeoutSecsNo60Navigation timeout.
requestHandlerTimeoutSecsNo300Whole search-page handler timeout.
detailTimeoutSecsNo12Timeout while opening one job's detail panel.
proxyConfigurationNoGoogle SERP proxyApify Proxy or custom proxy configuration.
experienceLevelNoOptional entry, mid, senior, executive, or director filter.
salaryMin / salaryMaxNoOptional non-negative salary range filters.
remoteFilterNoOptional remote, hybrid, or onsite filter.
educationLevelNoOptional minimum education filter.
debugNofalseNon-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 install
npm test
npm run validate:dataset
apify 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.