Google Jobs Scraper - Salary, Highlights & Apply Links
Pricing
from $1.58 / 1,000 jobs
Google Jobs Scraper - Salary, Highlights & Apply Links
Scrape Google Jobs (Google for Jobs) by search query and location. Output: one item per job with title, company, location, source board (via), posted date, employment type, salary, remote flag, full description, job highlights and every apply link. Filters: date posted, employment type, remote.
Pricing
from $1.58 / 1,000 jobs
Rating
0.0
(0)
Developer
Artificially
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Google Jobs Scraper – Salary, Highlights & Apply Links
Scrape Google Jobs (Google for Jobs, the "Jobs" tab in Google Search) by job title and location. One search covers LinkedIn, Indeed, Glassdoor, ZipRecruiter, Totaljobs, employer career sites and many other boards, already merged by Google. Every job comes back as clean JSON with title, company, location, the board it was found on (via), posted date, employment type, salary, remote flag, full description, Google's job highlights and every "Apply on …" link.
Built by Artificially | Follow us on X @artificially_io
Use with AI agents (MCP)
This actor works as a tool for Claude, ChatGPT, Cursor and other AI agents through Apify's MCP server. Ask something like "find remote data engineer jobs posted this week in London" and the agent calls it for you. Set compactOutput: true and a small maxResultsPerQuery (e.g. 10) so results fit easily in the agent's context.
Quick setup (sign in with your Apify account when asked):
- Claude (claude.ai or Claude Desktop): Settings → Connectors → Add custom connector, and paste
https://mcp.apify.com?tools=artificially/google-jobs-scraper - Claude Code or Cursor via the Apify CLI (latest version,
apify upgrade):apify mcp install claude-code --tools artificially/google-jobs-scraper(usecursorinstead ofclaude-codefor Cursor) - Any MCP client (Cursor, VS Code, Windsurf):
{"mcpServers": {"apify": { "url": "https://mcp.apify.com?tools=artificially/google-jobs-scraper" }}}
Try asking:
- "Find registered nurse jobs in Chicago posted this week on Google Jobs, with salary and apply links."
- "Search Google Jobs for remote data analyst roles in the US and summarize salary ranges."
Why this actor
- Every job board in one search – Google Jobs aggregates postings from hundreds of boards and career sites; you get them deduplicated by Google's own job ID.
- Real apply links – every "Apply on LinkedIn / Indeed / company site" button with its destination URL, flagged when it is a direct application.
- Structured fields – salary parsed into
min,max,currencyandperiod;postedAtas an ISO date; normalizedemploymentType;isRemote; highlights split into qualifications, responsibilities and benefits. - Filters that map to Google – date posted (24 hours, 3 days, week, month), employment type and remote only, plus country and language editions of Google (verified: US, UK, Canada, France).
- More than 10 jobs per search – Google shows about ten jobs per page. Ask for more and the actor follows further pages where available and runs related searches (by employment type, recency and seniority), keeping only new jobs.
- Monitoring mode – turn on
onlyNewSinceLastRun, schedule the actor, and each run returns only jobs you have not seen yet. - Uses Apify's official Google SERP proxy – no browser, no login, no cookies from you.
- You only pay for results – only valid jobs are saved and charged. Searches that return nothing are listed for free in
FAILED_SEARCHES.
Use cases
- Job boards and aggregators – fill a niche board with fresh listings from every major source, with working apply links.
- Recruiters and sourcers – see who is hiring for a role in a city, on which boards, and how fast.
- Sales "hiring signal" leads – companies hiring for specific roles are buying signals; feed new postings into your CRM daily.
- Salary and labor-market research – compare pay ranges, remote share and employment types across roles and countries.
- Job seekers and communities – alerts for "remote + senior + posted in the last 24 hours".
Input
| Field | Type | Description | Default |
|---|---|---|---|
queries | array | Job searches, e.g. ["software engineer", "registered nurse"] ("jobs" is added automatically) | Required |
location | string | City, region or country added as "in | – |
country | string | Google edition / results country (gl): us, uk, ca, fr, … | us |
language | string | Interface language (hl): en, de, fr, … | en |
datePosted | string | any, today, 3days, week, month | any |
employmentTypes | array | full-time, part-time, contractor, internship, temporary | – |
remoteOnly | boolean | Remote jobs only | false |
maxResultsPerQuery | integer | Jobs to save per search (1–500) | 10 |
maxResults | integer | Cap for the whole run | – |
expandQueries | boolean | Run related searches to reach maxResultsPerQuery | true |
includeDescription | boolean | Return the full description text | true |
onlyNewSinceLastRun | boolean | Return only jobs not returned by earlier runs with the same input | false |
compactOutput | boolean | Slim items with only the key fields. Best for AI agents | false |
maxConcurrency | integer | Searches in parallel (1–10) | 3 |
proxyConfiguration | object | Keep Apify proxy group GOOGLE_SERP | GOOGLE_SERP |
Example input
{"queries": ["data engineer", "python developer"],"location": "London","country": "uk","datePosted": "week","employmentTypes": ["full-time"],"maxResultsPerQuery": 30,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"] }}
Output
{"jobId": "1_Iqt1mT0QAAAAAA==","title": "Registered Nurse (RN) - Evening Shift","company": "Example Healthcare","location": "Chicago, IL","via": "LinkedIn","postedAt": "2026-09-22T12:00:00.000Z","postedAtRelative": "1 day ago","employmentType": "full-time","employmentTypeRaw": "Full-time","salary": { "raw": "$39–$45 an hour", "min": 39, "max": 45, "currency": "USD", "period": "hour" },"isRemote": false,"tags": ["No degree mentioned", "Dental insurance"],"description": "Summary\n\nWe are hiring registered nurses for our evening shift...","highlights": {"qualifications": ["Active RN license", "BLS certification"],"responsibilities": ["Provide direct patient care"],"benefits": ["Dental insurance", "Paid time off"],"sections": [{ "title": "Qualifications", "items": ["Active RN license", "BLS certification"] }]},"applyLinks": [{ "title": "Apply on LinkedIn", "source": "LinkedIn", "url": "https://www.linkedin.com/jobs/view/...", "directApply": false },{ "title": "Apply directly on Example Careers", "source": "Example Careers", "url": "https://careers.example.com/job/9", "directApply": true }],"applyUrl": "https://www.linkedin.com/jobs/view/...","shareUrl": "https://www.google.com/search?ibp=htl;jobs&q=registered+nurse&htidocid=...","query": "registered nurse","searchQuery": "registered nurse jobs in Chicago","scrapedAt": "2026-09-23T12:00:00.000Z"}
| Field | Description |
|---|---|
jobId | Google's job document ID; stable, use it to deduplicate across runs |
title, company, location | As shown by Google |
via | The board or site Google found the posting on |
postedAt, postedAtRelative | ISO date computed from Google's "N days ago", and the original text |
employmentType | full-time, part-time, contractor, internship, temporary or null (employmentTypeRaw keeps Google's text) |
salary | { raw, min, max, currency, period } or null when Google shows no pay; currency is null when Google shows no symbol |
isRemote | true for work-from-home jobs or remote/anywhere locations |
tags | Other Google chips such as benefits or "No degree mentioned" |
description | Full description as plain text (when includeDescription is on) |
highlights | Google's job highlights: qualifications, responsibilities, benefits, plus all sections as shown |
applyLinks, applyUrl | Every apply option with its URL; applyUrl is the first one |
shareUrl | Link to the job on Google Jobs |
query, searchQuery | Your search and the exact Google search that found the job |
The key-value store also contains:
SUMMARY– per-search counts, Google requests used, whether "more jobs" pagination was available, limits reached.FAILED_SEARCHES– searches that returned no jobs or were blocked, with a reason. These are never charged.
Pricing
Pay-per-event: a tiny fee per run plus a fee per job saved. You only pay for results – duplicates, filtered-out jobs, empty searches and blocked pages are free, and Google SERP proxy costs are included. Set a maximum cost per run in Apify Console and the actor stops cleanly when it is reached. See the Pricing tab for current prices.
FAQ
How many jobs can I get per search?
Google shows about ten jobs per results page. With maxResultsPerQuery above 10 the actor follows further result pages when Google provides them and runs related searches such as "… full time", "… senior" or "… in the last week" until the number is reached or no new jobs appear. Very narrow searches may simply have fewer jobs.
How do I monitor a search for new jobs?
Turn on onlyNewSinceLastRun and create an Apify Schedule, for example every morning with datePosted: "today". The actor remembers the job IDs returned for that exact input and the next runs return only new postings. Changing the searches or filters starts a fresh history.
Which countries and languages are supported?
Set country (e.g. us, uk, ca, fr) and language (e.g. en, fr). Verified so far: US, UK, Canada and France. Google currently answers searches for Germany (de) with a captcha, so those return no jobs; you are not charged when a search returns nothing. Other countries usually work but are not yet verified. Dates, salary periods and employment types are parsed best in English; the raw texts are always kept.
Why is salary missing for some jobs? Google shows pay only when the employer or board publishes it. We never guess.
Why did a search return nothing?
Check FAILED_SEARCHES. Either Google had no jobs for that search and filters (no_results), or the page could not be loaded. Make sure the proxy is set to the GOOGLE_SERP group. Failed searches are not charged.
Is this legal? The actor reads public Google Search result pages through Apify's official Google SERP proxy. It does not log in or collect personal data about candidates. You are responsible for using the data in line with applicable laws and the sites' terms.
Support
Found a search that does not work, or need another field? Open an issue on the actor's Issues tab – we usually respond within a day.
Related actors
- Career Site Jobs Scraper: jobs straight from company career sites on Greenhouse, Lever, Ashby, Workday and more.
- LinkedIn Jobs Scraper: job postings from LinkedIn search, across all companies.