Google Jobs Scraper avatar

Google Jobs Scraper

Pricing

Pay per usage

Go to Apify Store
Google Jobs Scraper

Google Jobs Scraper

Scrape Google Jobs search results at scale. Extract job titles, companies, locations, salaries, descriptions, qualifications, and application links from Google's built-in job search aggregator.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Donny Nguyen

Donny Nguyen

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape Google Jobs search results at scale. Extract job titles, companies, locations, salaries, descriptions, qualifications, and application links from Google's built-in job search aggregator.

Google Jobs aggregates listings from dozens of job boards (LinkedIn, Indeed, Glassdoor, ZipRecruiter, and more) into a single searchable interface. This actor extracts structured data from those aggregated results, giving you a unified view of the job market without scraping each job board individually.

Features

  • Search by keyword query or provide direct Google Jobs URLs
  • Extract full job descriptions by clicking into each listing
  • Capture salary information when available
  • Collect application links from multiple sources per listing
  • Scroll through paginated results automatically
  • Residential proxy support for reliable access
  • Configurable limits per query and globally

Input Parameters

FieldTypeDefaultDescription
searchQuerystring""A job search query string (e.g., "software engineer remote", "marketing manager New York"). The actor automatically appends "jobs" and constructs the Google Jobs URL. You can provide either this field or the urls field, or both.
urlsarray[]List of Google search URLs with job queries. Use Google Jobs URLs in the format: https://www.google.com/search?q=software+engineer+jobs&ibp=htl;jobs. If searchQuery is also provided, URLs from both sources will be combined.
maxResultsinteger100Maximum total number of job listings to extract across all URLs. The actor stops once this limit is reached. Range: 1-1000.
maxJobsPerQueryinteger50Maximum number of job listings to extract per individual search query or URL. Set to 0 for unlimited (bounded only by maxResults). Range: 0-500.
useResidentialProxybooleantrueWhether to use residential proxies for scraping. Residential proxies are more expensive but much less likely to be blocked by Google. Recommended for production runs.
includeDescriptionbooleantrueWhether to click on each job card and extract the full job description text. Enabling this makes scraping slower but provides complete job details. Disable for faster runs if you only need titles, companies, and locations.

Output Fields

Each job listing produces a data object with the following fields:

FieldTypeDescription
titlestringJob title (e.g., "Senior Software Engineer", "Marketing Manager")
companystringCompany name posting the job
locationstringJob location (e.g., "New York, NY", "Remote")
salarystringSalary range or compensation info when displayed by Google (e.g., "$120K-$160K a year")
jobTypestringEmployment type (e.g., "Full-time", "Part-time", "Contract", "Temporary")
postedDatestringWhen the job was posted relative to now (e.g., "3 days ago", "2 weeks ago")
descriptionstringFull job description text extracted from the expanded detail panel. Only populated when includeDescription is enabled.
sourcestringThe primary source or job board the listing originates from (e.g., "LinkedIn", "Indeed", "Glassdoor")
applyLinkstringPrimary application URL for the job listing
applyLinksarrayAll available application links with source names. Each entry has source (string) and url (string) fields.
qualificationsarrayList of qualification bullet points extracted from the job details panel, when available.
searchUrlstringThe Google search URL that produced this result
scrapedAtstringISO 8601 timestamp of when the data was extracted

Error Output Fields

When a request fails, the output contains:

FieldTypeDescription
urlstringThe URL that failed
errorstringError code (e.g., "403", "429", "REQUEST_FAILED")
errorMessagestringHuman-readable error description
scrapedAtstringISO 8601 timestamp of the failure

Example Output

{
"title": "Senior Software Engineer",
"company": "Acme Corp",
"location": "San Francisco, CA",
"salary": "$150,000 - $200,000 a year",
"jobType": "Full-time",
"postedDate": "3 days ago",
"description": "We are looking for a Senior Software Engineer to join our platform team. You will design and build scalable microservices...",
"source": "LinkedIn",
"applyLink": "https://www.linkedin.com/jobs/view/123456",
"applyLinks": [
{ "source": "LinkedIn", "url": "https://www.linkedin.com/jobs/view/123456" },
{ "source": "Indeed", "url": "https://www.indeed.com/viewjob?jk=abcdef" },
{ "source": "Glassdoor", "url": "https://www.glassdoor.com/job-listing/..." }
],
"qualifications": [
"5+ years of experience with distributed systems",
"Proficiency in Go, Python, or Java",
"Experience with Kubernetes and cloud infrastructure"
],
"searchUrl": "https://www.google.com/search?q=senior+software+engineer+jobs+san+francisco&ibp=htl;jobs",
"scrapedAt": "2025-01-15T10:30:00.000Z"
}

Use Cases

Competitor Hiring Analysis

Track which roles your competitors are hiring for to understand their growth strategy and investment areas. Monitor job postings over time to identify trends in team expansion, new product lines, or geographic expansion.

{
"searchQuery": "Acme Corp",
"maxResults": 200,
"includeDescription": true
}

Salary Research and Benchmarking

Collect salary data across roles, locations, and industries to build compensation benchmarks. Google Jobs surfaces salary information from multiple sources, making it an efficient way to gather market rate data.

{
"urls": [
"https://www.google.com/search?q=data+scientist+jobs+new+york&ibp=htl;jobs",
"https://www.google.com/search?q=data+scientist+jobs+san+francisco&ibp=htl;jobs",
"https://www.google.com/search?q=data+scientist+jobs+austin&ibp=htl;jobs"
],
"maxResults": 500,
"maxJobsPerQuery": 100
}

Job Market Trend Monitoring

Track demand for specific skills, technologies, or roles across the job market. Identify emerging trends by comparing posting volumes and requirements over time.

{
"searchQuery": "machine learning engineer remote",
"maxResults": 100,
"includeDescription": true
}

Lead Generation for Recruiting

Identify companies actively hiring for specific roles to target with recruiting services. Extract company names, locations, and job details to build prospecting lists.

{
"searchQuery": "VP of Engineering startup",
"maxResults": 150,
"includeDescription": false
}

Skills Gap Analysis

Analyze job descriptions to identify the most commonly required skills, certifications, and qualifications for a given role. Useful for career planning, training program development, and educational content creation.

{
"searchQuery": "cybersecurity analyst",
"maxResults": 200,
"includeDescription": true
}

Cost Estimate

This actor uses the following pricing model:

  • Per result: $0.0015 per job listing extracted
  • Per start: $0.00005 per actor run

Example cost calculations:

ScenarioResultsEstimated Cost
Single query, 50 jobs50$0.075
Single query, 100 jobs100$0.15
5 queries, 50 jobs each250$0.375
Large research, 500 jobs500$0.75
Enterprise batch, 1000 jobs1000$1.50

Note: Costs may vary based on proxy usage and retry rates. Residential proxy usage may incur additional Apify platform costs. Enabling includeDescription increases runtime but does not change the per-result price.

Tips

  • Use searchQuery for quick searches: Just type what you would type into Google, like "python developer remote" -- the actor handles URL construction.
  • Use urls for precise control: Construct Google Jobs URLs with specific filters (location, date posted) and pass them directly.
  • Disable descriptions for speed: If you only need job titles, companies, and locations, set includeDescription to false for significantly faster scraping.
  • Balance query limits: Use maxJobsPerQuery to ensure even coverage when running multiple search queries.
  • Residential proxies: Keep useResidentialProxy enabled for production runs. Google aggressively blocks datacenter IPs on job search pages.