Google Jobs Scraper — Salary, Apply Links & MCP-Ready
Pricing
from $3.00 / 1,000 job results
Google Jobs Scraper — Salary, Apply Links & MCP-Ready
Extract job listings from Google Jobs. Returns title, company, location, salary (parsed min/max), full description, apply link, employment type & more. MCP/API-ready.
Pricing
from $3.00 / 1,000 job results
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
1
Bookmarked
293
Total users
57
Monthly active users
16 hours ago
Last modified
Categories
Share
Extract structured job listings from Google Jobs with one record per listing. This Apify Actor accepts search queries or direct Google Jobs URLs and returns job title, company name, location, remote flag, employment type, salary fields, full description, highlights, apply link, source URL, and scrape timestamp. It is usable through Apify API and Apify MCP for workflows that need clean Google Jobs data in a dataset.
Best fit and connected workflows
This Actor fits workflows that start with a job title, skill phrase, city, or a direct Google Jobs URL and need normalized listings for review or downstream automation.
Common workflow paths include:
- Recruiting and sourcing workflows that gather roles by title, location, recency, or employment type.
- Job board workflows that need structured fields for display, filtering, or alerts.
- Labor market research workflows that compare salary ranges, posting dates, and source platforms across multiple queries.
- AI agent workflows that need a predictable tool with a clear input schema and a dataset-backed result set.
- Google Jobs research workflows that benefit from batch searches in a single run.
When your next workflow step shifts to a specific board or region, these verified related Actors connect naturally:
- Use APEC Jobs Scraper for research centered on APEC job board coverage.
- Use Ashby Jobs Scraper for roles published on Ashby-hosted careers pages.
- Use Bayt Jobs Data Scraper for MENA Listings for MENA-focused sourcing when Bayt is the target board.
Practical scenario
Maya, a recruiting coordinator, starts with the search phrase product manager remote and sets datePosted to week and maxResults to 25. The Actor returns records with job_title, company_name, location, is_remote, employment_type, salary_range, salary_min, salary_max, salary_period, date_posted, highlights, and apply_link. Maya reviews the salary fields and application links, then routes the dataset into a sourcing workflow to shortlist roles that match the hiring brief.
Input
Input fields
| Field | Type | Description |
|---|---|---|
searchQueries | array of strings | Job titles, skills, or keyword phrases to search on Google Jobs. Accepts multiple queries in one run. |
startUrls | array of URLs | Direct Google Jobs URLs for repeatable searches. |
maxResults | integer | Maximum total number of listings to extract across all queries. Range: 1 to 500. Default: 50. |
datePosted | string | Posting age filter: any, today, 3days, week, or month. |
employmentType | string | Employment filter: any, FULLTIME, PARTTIME, CONTRACTOR, or INTERN. |
remoteOnly | boolean | Adds remote to queries and marks results as remote. |
proxyCountry | string | 2-letter country code for the Google region to scrape. Default: US. |
Focused input example
{"searchQueries": ["software engineer New York"],"maxResults": 10,"datePosted": "week","employmentType": "FULLTIME","remoteOnly": false,"proxyCountry": "US"}
Output
Each dataset item represents one Google Jobs listing. The required fields are job_title, is_remote, search_query, source_url, and scraped_at. Other fields are populated when Google provides them.
Output fields
| Field | Type | Description |
|---|---|---|
job_title | string | Full job title as shown on Google Jobs. |
company_name | string or null | Hiring company name. |
location | string or null | City, state, region, or a remote or hybrid label. |
is_remote | boolean | Remote, work-from-home, or hybrid indicator. |
employment_type | string or null | Listing employment type. |
salary_range | string or null | Raw salary string from Google Jobs. |
salary_min | number or null | Parsed lower salary bound. |
salary_max | number or null | Parsed upper salary bound. |
salary_period | string or null | Pay period: YEAR, MONTH, WEEK, or HOUR. |
date_posted | string or null | Relative posting date. |
job_description | string or null | Plain-text job description from the detail panel. |
highlights | object or null | Structured qualifications, responsibilities, and benefits arrays. |
apply_link | string or null | Direct application URL. |
via_platform | string or null | Platform or job board that posted the listing. |
search_query | string | Query that produced the result. |
source_url | string | Google Jobs search URL used for extraction. |
scraped_at | string | ISO 8601 timestamp for the extraction time. |
Illustrative output record
{"job_title": "Senior Software Engineer","company_name": "Google","location": "Mountain View, CA","is_remote": false,"employment_type": "Full-time","salary_range": "$120,000-$180,000 a year","salary_min": 120000,"salary_max": 180000,"salary_period": "YEAR","date_posted": "3 days ago","job_description": "We are looking for a Senior Software Engineer to join our team...","highlights": {"qualifications": ["5+ years of experience", "BS in Computer Science"],"responsibilities": ["Design scalable systems", "Mentor junior engineers"],"benefits": ["Health insurance", "401k matching", "Remote work options"]},"apply_link": "https://careers.google.com/jobs/results/12345","via_platform": "LinkedIn","search_query": "software engineer New York","source_url": "https://www.google.com/search?q=software+engineer+New+York&ibp=htl%3Bjobs","scraped_at": "2026-03-31T14:23:45.123Z"}
How it works
This Actor uses the Google Jobs search experience as its source and writes structured listing data into the default dataset. The input schema supports batch keyword searches and direct Google Jobs start URLs.
The live contract runs on the ts-playwright template, uses the latest build by default, and sets a 600-second timeout with 1024 MB memory.
Pricing
This Actor uses Pay per event pricing plus Apify platform usage.
- The primary charged event is
Job Result. - One
Job Resultevent is charged for each extracted listing. - The live contract also defines an
Actor Startevent tied to Actor startup.
For current pricing details, open the live Pricing tab on the Actor page.
Example in words: if a execution extracts one hundred job listings, the charged event count follows the number of extracted results, and total usage reflects those events plus Apify platform usage shown in the Pricing tab.
Use with AI agents (MCP)
This Actor is usable through Apify MCP as a structured Google Jobs extraction tool. It accepts search phrases or direct Google Jobs URLs and returns normalized job records that an agent can sort, summarize, compare, or pass into another workflow.
Actor identity: khadinakbar/google-jobs-scraper
Find 20 full-time product manager jobs in London posted this week. Return the job title, company name, location, salary fields, date posted, apply link, and source URL for each listing. Use the results to identify roles with disclosed pay and return the dataset items in a structured table.
Output interpretation:
job_title,company_name, andlocationidentify the role and market.salary_min,salary_max, andsalary_periodmake pay data easier to compare across listings.apply_linkpoints to the application page when available.search_queryandsource_urlpreserve the exact retrieval context.scraped_atsupports freshness checks in downstream pipelines.
Provenance and scope:
- Each row comes from a Google Jobs search result.
highlightsandjob_descriptioncome from the detail panel when available.via_platformindicates the posting platform or board when Google surfaces it.
Pagination and cost guidance:
- Use
maxResultsto set the extraction ceiling for a run. - Use multiple queries in one run when you want grouped coverage by role or city.
- Use
remoteOnly,datePosted, andemploymentTypeto shape the result set before extraction. - Costs follow the charged-event model described in the Pricing tab.
Apify API example
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(token=os.environ["APIFY_TOKEN"])run = client.actor("khadinakbar/google-jobs-scraper").call(run_input={"searchQueries": ["data engineer New York"],"maxResults": 10,"datePosted": "week","employmentType": "FULLTIME","remoteOnly": False,"proxyCountry": "US"})dataset_id = run["defaultDatasetId"]items = list(client.dataset(dataset_id).iterate_items())for item in items:print(item["job_title"], item.get("company_name"), item.get("apply_link"))
Best results and outcome guidance
Use searchQueries for role, skill, or city phrases, and use startUrls when you already have a Google Jobs search URL. Keep queries specific enough to match the market you want, and pair them with datePosted, employmentType, and remoteOnly when those filters fit the brief. For country-specific research, set proxyCountry to the Google region you want to target. When you need several hiring angles, batch multiple queries in one run so each dataset item keeps its originating search_query.
Design note
I found that the live dataset contract requires job_title, is_remote, search_query, source_url, and scraped_at on every record, which makes provenance and freshness visible in the dataset itself.
FAQ
When should I use searchQueries instead of startUrls?
Use searchQueries when the request is a role, skill, or keyword phrase. Use startUrls when you already have a direct Google Jobs URL.
Can I run several job searches in one Actor run?
Yes. searchQueries accepts multiple entries, and the Actor runs them together.
Which fields help with salary analysis?
Use salary_range for the original text and salary_min, salary_max, and salary_period for structured comparisons.
How do I identify remote roles in the dataset?
Check is_remote, and combine it with location and employment_type when you want a fuller view of the listing.
How can I connect this Actor with other job scrapers?
Use the verified related Actors when your workflow shifts to a specific board or region: APEC Jobs Scraper, Ashby Jobs Scraper, and Bayt Jobs Data Scraper for MENA Listings.
Responsible use
Use the extracted data in ways that respect Google Jobs content, applicable laws, and the terms of the sites involved in your workflow. Review returned fields before relying on them in automated decision-making, especially when salary, employment type, or apply links are part of a downstream process.