Google Jobs Scraper API: Salary & Direct Apply Links
Pricing
from $2.00 / 1,000 google jobs listing results
Google Jobs Scraper API: Salary & Direct Apply Links
Returns Google Jobs listings for search queries: title, company, location, postedAt, salary (parsed min/max/currency), direct apply links with source platform, description. Reliable schema for recruiters, market research and AI agents. Pay per result.
Google Jobs Scraper — a stable Google Jobs API for recruiters, researchers & AI agents
Turn any job search into clean, structured data: give this actor a query like "registered nurse jobs in dallas" and it returns the jobs Google surfaces as tidy records — title, company, location, posting date, salary, and direct apply links with the source platform — ready for your ATS, spreadsheet, or agent pipeline.
Built for one thing the popular Google Jobs actors are rated poorly for: a reliable, stable schema you can depend on.
What you get
- Clean, normalized records. Salary parsed into
salaryMin/salaryMax/salaryCurrency/salaryType(e.g.$40K–$43K a year→40000,43000,USD,year), posting age turned into an ISOpostedAtdate, employment type, and a full job description. - Direct apply links, de-Googled. Every listing's real apply URLs (employer
ATS, LinkedIn, Indeed, ZipRecruiter, Greenhouse, Lever, Workday, …) — not
Google redirect links — each tagged with the
platformanddomainwhere we can identify it. - Multiple queries per run, optional
location,countryCode, and apostedWithinDaysfreshness filter that maps to Google's own "Date posted" windows. - A stable, documented output schema with dataset views (overview, salary, apply links, full) and a run-report record so you always know what happened.
- Pay-per-result pricing: you're charged per job record, nothing else.
Input
{"queries": ["registered nurse jobs in dallas","software engineer jobs in seattle"],"location": "","countryCode": "us","maxResultsPerQuery": 50,"postedWithinDays": 7}
Only queries is required. Write queries the way you'd type them into Google.
postedWithinDays accepts 1, 3, 7 or 31 (it rounds up to Google's nearest
window). The default proxy is Apify's Unblocker group — see Limitations.
A sample record
Real record from a live capture (chef jobs in seattle, 2026-09-03) — every
field exactly as Google served it:
{"jobId": "LQVJsKheF836EEshAAAAAA==","title": "Full-Time Sous Chef — Culinary Leader in Seattle","company": "Wolfgang Puck Catering","location": "Seattle, WA","via": "JobLeads","postedAt": "2026-08-21","postedRelative": "13 days ago","employmentType": "Full-time","salaryMin": 40000,"salaryMax": 43000,"salaryCurrency": "USD","salaryType": "year","salaryRaw": "$40K–$43K a year","descriptionSnippet": "Wolfgang Puck Catering in Seattle is hiring immediately for a full-time Sous Chef to lead kitchen operations, supervise cooks and food-service staff, and ensure recipe and production standards are met.\nThe role is based at 2122 7th Avenue, Seattle, WA 98121 with schedule Monday through Friday (hours","applyLinks": [{ "url": "https://www.jobleads.com/us/job/full-time-sous-chef-culinary-leader-in-seattle--seattle--e056edee599e22a704dcc79c7e4aae156?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic", "platform": "JobLeads", "domain": "jobleads.com" },{ "url": "https://jooble.org/jdp/-7824064096309794040?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic", "platform": "Jooble", "domain": "jooble.org" }],"query": "chef jobs in seattle","capturedAt": "2026-09-03T07:04:47Z"}
The dataset also ends with a single run-report record (isRunReport: true)
summarizing counts, per-query outcomes, and whether a time or budget limit was
hit.
Typical uses
- Recruiters monitoring who's hiring for a role in a market, with apply links already resolved to the real ATS.
- Market & labor researchers pulling salary and employer data across roles and cities.
- AI agents that need a dependable jobs-data endpoint with a schema that doesn't shift under them.
For AI agents (MCP)
This actor is MCP-ready and pay-per-event: agents calling it through
mcp.apify.com (Claude, Cursor, VS Code, ChatGPT) pay per result record via
Apify prepaid credit or x402/USDC — no monthly plan.
- Input:
queries(string array, required), optionallocation,countryCode,maxResultsPerQuery,postedWithinDays. - Output: flat records with stable names and types —
jobId,title,company,location,postedAt,salaryMin/salaryMax/salaryCurrency/salaryType,applyLinks[],descriptionSnippet,query,capturedAt— plus a finalisRunReportrecord. - Reliability: the schema is versioned and documented, and every run self-stops cleanly inside its time budget — no hung agent calls.
Limitations (read these)
Honesty first — this is a scraper of a surface Google actively protects:
- Anti-bot is an arms race. This actor reads the public Google Jobs surface
(
google.com, no login, no captcha-solving). Google changes its layout and defenses; when it does, output can degrade until the parser is updated (see MAINTENANCE.md). We design so one field breaking never breaks the whole run. - Salary and apply links appear on only some listings. Google shows a
salary on roughly a third of jobs and apply links on most but not all. When a
field isn't shown, it's
null— we never invent it. "Completeness" here means relative to what Google displays (measured at 100% of shown fields in testing), not that every field is filled on every job. - Results per query. With the default Unblocker proxy (which reliably
gets past Google's bot wall in the cloud), each query returns the top page
of results Google serves (~10–15 of the most relevant jobs) — deep, clean,
and dependable. To pull deeper result sets you can switch
proxyConfigurationto the Residential group, which supports full pagination up tomaxResultsPerQuery, but is more likely to be throttled by Google. For breadth, prefer several focused queries over one broad one. - A supported proxy is required in the cloud. Google blocks datacenter IPs; the run needs an Apify plan that includes the Unblocker (default) or Residential proxy group.
- Memory. Minimum 1024 MB. If you switch to the Residential group for deep pagination, give the run at least 2048 MB — that path launches a browser to mint the session, which needs the headroom.
Keywords
Google Jobs, Google Jobs API, jobs API, job listings scraper, job search API, Google for Jobs, recruiting data, salary data, apply links, ATS leads, MCP, AI agents, agent tool, job listings API.