Google Jobs Scaper avatar

Google Jobs Scaper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Google Jobs Scaper

Google Jobs Scaper

Search Google Jobs by job title, keyword, and location. This actor returns structured job listings with titles, companies, locations, salaries, descriptions, job types, apply links, and stable job IDs.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

ToolsAPI

ToolsAPI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Google Jobs API & Job Scraper

Extract Google Jobs search results using a job query and location. This Apify Actor is designed as a reusable jobs-data API that returns clean, structured JSON for recruiting tools, job boards, lead generation workflows, hiring research, labor market analysis, and automation pipelines.

Google Jobs is powerful because it brings together job listings from many different job platforms, company career pages, staffing sites, and job boards into one search experience. Instead of checking each hiring platform one by one, this actor helps you collect Google Jobs results in a structured dataset that can be used in your own apps, dashboards, spreadsheets, and workflows.

This actor helps you collect job titles, company names, locations, salaries when available, posting age, job descriptions, job types, apply links, source URLs, work mode, and stable job IDs in a structured Apify dataset.


πŸš€ What does this actor do?

This Google Jobs scraper automates job search data collection and delivers normalized job records including:

  • Cross-Platform Job Discovery: Google Jobs surfaces listings from many job boards, employer career pages, staffing sites, and hiring platforms in one place
  • Job Details: Job title, company, location, and description
  • Compensation Data: Salary or pay range when shown in Google Jobs results
  • Posting Data: Posted date or relative posting age when available
  • Job Type: Full-time, part-time, contract, internship, remote, hybrid, or on-site indicators when available
  • Work Mode: Remote, hybrid, or on-site when detected
  • Apply Links: Application URLs and source names when available
  • Stable IDs: A generated jobId for deduplication and integrations
  • CSV and JSON Export: Saves structured results to the Apify dataset and key-value store
  • API Access: Use Apify API endpoints to call the actor from other apps
  • Debug Output: Saves debug files when Google blocks or returns no extractable results

πŸ’‘ Use Cases

  • Recruiting Research: Find active job postings by role and location
  • Job Board Enrichment: Pull job listings into your own platform or database
  • Lead Generation: Discover companies hiring for specific roles
  • Market Research: Track demand for skills, titles, and roles across regions
  • Salary Research: Compare visible pay ranges across jobs and markets
  • Hiring Intelligence: Monitor competitor hiring activity
  • Cross-Platform Job Search: Use Google Jobs as a discovery layer across many job boards and employer websites
  • Automation Workflows: Send job data to Google Sheets, Airtable, CRMs, dashboards, or internal tools
  • API Products: Use Apify as the hosted backend for a jobs-data API

πŸ“‹ Input Configuration

Required Fields

  • Query: The job title, keyword, skill, or search phrase to search for, such as software engineer, business analyst, warehouse associate, or sales manager
  • Location: The city, region, state, province, or country to search in, such as Toronto Canada, Austin TX, London UK, or New York NY

Optional Fields

  • Max Pages: Maximum number of Google Jobs result pages to process
  • Language: Google interface language, such as en
  • Country: Google country code, such as ca, us, gb, or au
  • Proxy Option: Residential proxy, auto/default Apify proxy, or no proxy
  • Retries per Page: Number of retry attempts if Google blocks a page
  • Request Delay: Delay between page loads to reduce blocking risk
  • Include Raw Data: Include raw extracted data for debugging
  • Save Debug Files: Save screenshots, HTML, and debug JSON when blocked or no results are found

πŸ“₯ Example Input

{
"query": "business analyst",
"location": "Toronto Canada",
"maxPages": 1,
"country": "ca",
"language": "en",
"proxyGroup": "residential",
"maxRetriesPerPage": 3,
"requestDelayMs": 12000,
"saveDebugFiles": true
}

πŸ“€ Output Data

The actor returns structured records with the following fields:

FieldDescription
titleJob title
companyCompany or employer name
locationJob location shown in the result
salarySalary, hourly rate, or pay range when available
postedAtPosting age, such as 3 days ago, when available
descriptionJob description or visible job text
jobTypeJob type or work arrangement when available
workModeRemote, hybrid, or on-site when detected
applyLinksList of application links with source names and URLs
sourceUrlFirst visible source URL when available
jobIdStable generated job identifier
searchQueryOriginal query used for the run
searchLocationOriginal location used for the run
countryGoogle country code used
languageGoogle language used
scrapedAtTimestamp when the result was collected

πŸ“¦ Example Output

{
"title": "Business Analyst",
"company": "Example Company",
"location": "Toronto, ON",
"salary": "$75K - $95K a year",
"postedAt": "3 days ago",
"description": "We are looking for a Business Analyst to join our team...",
"jobType": "Full-time",
"workMode": "Hybrid",
"applyLinks": [
{
"source": "Company website",
"url": "https://example.com/jobs/123"
}
],
"sourceUrl": "https://example.com/jobs/123",
"jobId": "google_jobs_abc123",
"searchQuery": "business analyst",
"searchLocation": "Toronto Canada",
"country": "ca",
"language": "en",
"scrapedAt": "2026-06-03T14:00:00.000Z"
}

πŸ”Œ API Usage

After deploying this Actor to Apify, other apps can call it through the Apify API.

curl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~google-jobs-api/run-sync-get-dataset-items?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "business analyst",
"location": "Toronto Canada",
"maxPages": 1,
"country": "ca",
"language": "en",
"proxyGroup": "residential",
"requestDelayMs": 12000
}'

The response is a JSON array of normalized job listings.


πŸ“Š Downloading Results

Results are saved to the default Apify dataset.

From Apify Console, you can export the dataset as:

  • JSON
  • CSV
  • Excel
  • XML
  • HTML
  • RSS

When results are found, the actor also saves these files to the key-value store:

jobs.csv
jobs.json
OUTPUT

If Google blocks the run or no jobs are extracted, debug files may be saved:

debug-*.html
debug-*.png
debug-*.json

⚠️ Proxy and Blocking Notice

Google may block automated traffic, especially from datacenter, free, shared, or heavily used proxy IPs. If Google returns a reCAPTCHA or unusual traffic page, the actor will return a clear blocked status and save debug files instead of returning incorrect data.

For best results, use:

  • Low maxPages, starting with 1
  • Slow request delays, such as 12000 milliseconds or higher
  • maxConcurrency set to 1
  • Residential proxies if available on your Apify plan
  • Fewer repeated searches in a short period of time

Free/default proxy access may not be enough for Google Jobs. Residential proxies may improve reliability, but they do not guarantee success. Google controls access to its pages and may still block automated requests.


πŸ§ͺ Run Statuses

The actor saves a run summary to the key-value store as OUTPUT.

Possible statuses:

StatusMeaning
succeededJobs were found and saved
blockedGoogle returned a reCAPTCHA or unusual traffic page
no_resultsThe page loaded, but no jobs were extracted

Example blocked output:

{
"query": "business analyst",
"location": "Toronto Canada",
"maxPages": 1,
"country": "ca",
"language": "en",
"proxyGroup": "residential",
"totalSaved": 0,
"status": "blocked",
"reason": "Google returned a reCAPTCHA or unusual traffic page after retries.",
"blockedAttempts": 4,
"datasetItems": 0,
"csvFile": null,
"jsonFile": null,
"debugFilesPattern": "debug-*.html, debug-*.png, debug-*.json"
}

  • Business analyst
  • Software engineer
  • Data analyst
  • Product manager
  • Warehouse associate
  • Sales representative
  • Customer service representative
  • Registered nurse
  • Delivery driver
  • Project manager
  • Marketing manager
  • Accountant
  • Electrician
  • Plumber
  • Administrative assistant
  • Remote customer support

βœ… Best Practices

Use specific job queries instead of overly broad searches.

Good examples:

business analyst finance
software engineer react
registered nurse night shift
warehouse associate forklift
sales development representative remote
project manager construction

Avoid vague searches like:

job
work
hiring
anything remote
best jobs

For better results, include the role, seniority, skill, industry, or work mode in the query and use a clear location.


For testing, start with:

{
"query": "business analyst",
"location": "Toronto Canada",
"maxPages": 1,
"country": "ca",
"language": "en",
"proxyGroup": "residential",
"maxRetriesPerPage": 3,
"requestDelayMs": 12000
}

For larger searches, use:

{
"query": "business analyst finance",
"location": "Canada",
"maxPages": 2,
"country": "ca",
"language": "en",
"proxyGroup": "residential",
"maxRetriesPerPage": 3,
"requestDelayMs": 15000
}

Avoid running very broad searches with high page limits. Specific queries usually return cleaner and more useful data.


❓ FAQ

What can I use this actor for?

You can use it for recruiting research, job board enrichment, hiring intelligence, salary research, company lead generation, and automated jobs-data workflows.

Why use Google Jobs instead of scraping only one job board?

Google Jobs is useful because it can surface job listings from many different sources, including job boards, company career pages, staffing sites, and hiring platforms. This gives you a broader view of available jobs without needing to check each platform separately.

Does this actor work on the Apify Free plan?

The actor can run on the Apify Free plan, but Google may block free/default proxy traffic. For Google Jobs, residential proxies are recommended when available. Even with residential proxies, successful extraction is not guaranteed because Google may still return a reCAPTCHA or unusual traffic page.

Do paid Apify users get guaranteed results?

No. Paid users with residential proxy access are more likely to get results than free/default proxy users, but Google may still block automated requests. The actor includes session handling, retries, block detection, and debug files, but it does not guarantee Google will serve job results every time.

What should I do if the run is blocked?

Try:

  • Lowering maxPages to 1
  • Increasing requestDelayMs
  • Using residential proxies if available
  • Running fewer searches back-to-back
  • Trying again later
  • Checking the saved debug files

Yes, when apply links are visible and extractable from the loaded results. Some listings may not expose complete apply links directly.

Can I call it as an API?

Yes. Once deployed on Apify, you can call it through Apify API endpoints and receive JSON results from the default dataset.

Can I export the results?

Yes. Results are saved to the Apify dataset, which can be downloaded as JSON, CSV, Excel, XML, RSS, or HTML from Apify. The actor also saves jobs.csv and jobs.json to the key-value store when results are found.

Why did I get zero results?

There are three common reasons:

  1. Google returned a reCAPTCHA or unusual traffic page.
  2. Google returned a page layout the actor could not extract yet.
  3. There were no visible job listings for the query and location.

Check OUTPUT and the debug files to see what happened.


πŸ§‘β€πŸ’» Developer Notes

This actor is designed to work as both an Apify Console tool and an API backend.

It uses:

  • PlaywrightCrawler
  • Apify Proxy configuration
  • Crawlee SessionPool
  • Cookie persistence per session
  • Block detection
  • Session retirement on block
  • Retry handling
  • Dataset output
  • CSV and JSON key-value store output
  • Debug HTML, screenshot, and JSON files

The default dataset is the main API output. Use Apify’s run-sync-get-dataset-items endpoint when you want another app to call the actor and receive job listings directly as JSON.

Common integration targets include:

  • Google Sheets
  • Airtable
  • Zapier
  • Make
  • CRMs
  • job boards
  • recruiting dashboards
  • internal lead generation tools
  • custom backend services

πŸ› οΈ Need a Custom Scraper?

Need different fields, another job board, or a custom Apify Actor for your workflow?

I build custom scraping and automation tools for job data, ecommerce research, supplier discovery, lead generation, price monitoring, and marketplace data extraction.

Contact: jcustombussiness@gmail.com

Please include:

  • Website URL
  • Data fields you need
  • Example search or listing pages
  • Desired output format, such as CSV, JSON, Excel, or API
  • How often you want the scraper to run

Custom scraper availability depends on website access, data availability, and technical feasibility.


πŸ“Œ Summary

Google Jobs API & Job Scraper turns a job query and location into structured job listings that can be used in apps, dashboards, spreadsheets, recruiting workflows, and data products.

The main advantage of Google Jobs is that it brings together job listings from many platforms, job boards, staffing sites, and employer career pages. This actor helps you access that broad job discovery layer through a clean Apify-powered API.

Use it to search jobs faster, collect hiring data, monitor markets, discover companies that are hiring, and connect Google Jobs results to your own tools through Apify.


Disclaimer

Use this actor responsibly and in compliance with Google’s terms of service and all applicable laws. Google may block automated access, and successful extraction is not guaranteed.