Google Jobs Scraper & API: Salaries and Apply Links
Pricing
from $2.00 / 1,000 job scrapeds
Google Jobs Scraper & API: Salaries and Apply Links
Google Jobs scraper and API for any job title in 76 countries: company, parsed salary, employment type, posted date, every job board with its apply link, highlights and optional full description. Remote, date and type filters, de-duplicated, plus a monitor mode that returns only new jobs.
Pricing
from $2.00 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
vncntlabs Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Google Jobs Scraper & API: salaries, apply links on every job board and new-job monitor
Google Jobs scraper and API. Search Google Jobs for any job title in 76 countries and get clean listings: company, location, salary parsed into numbers, employment type, posting date, every job board the job is posted on with its apply link, Google's qualifications, responsibilities and benefits, and optionally the full description. Run many titles x many locations at once, de-duplicated, or schedule monitor mode to get only new jobs.
Data comes from Google Jobs through a licensed SERP data API. There is no browser scraping, so there are no captchas and no proxies to pay for.
Who it's for
- Recruiters and staffing agencies sourcing openings and hiring companies.
- Job boards and aggregators filling their feeds.
- Sales teams finding companies that are hiring (a strong buying signal).
- Labor-market and salary researchers.
- Job seekers who want a daily feed of fresh openings.
What you get
| Search | Job titles/keywords x locations (city, state/region, country or "Remote"), up to 50 queries and 10 locations per run, up to 200 jobs per search |
| Filters | Remote (only / exclude), date posted (24 h, 3 days, week, month), employment type (full-time, part-time, contractor, internship, temporary) |
| Every job | Title, company, logo, location, remote flag, primary source ("via LinkedIn") and its direct apply URL, salary text plus min/max/currency/period and yearly equivalents, employment types, posted date and "posted ago" |
| Job boards | applyOptions: every site listing the job (LinkedIn, Indeed, Glassdoor, ZipRecruiter, the company's careers page...) with an apply link and a "direct" flag. On average 4-7 boards per job |
| Details | Qualifications, responsibilities and benefits lists; full description text (optional) |
| De-duplication | The same job found by several queries or locations is returned once |
| Monitor | Schedule it: each run returns only jobs this monitor has not returned before |
Input examples
Data analyst and nurse jobs in two cities:
{ "queries": ["data analyst", "registered nurse"], "locations": ["Austin, TX", "Chicago, IL"], "maxJobsPerSearch": 50 }
Remote, full-time Python jobs posted this week, with descriptions:
{ "queries": ["python developer"], "locations": ["Remote"], "postedWithin": "week","employmentTypes": ["full_time"], "includeDescription": true }
Daily feed of new openings (schedule it in Apify):
{ "mode": "monitor", "queries": ["product manager"], "locations": ["London", "Berlin"],"monitorStoreName": "pm-europe" }
Locations can be:
Austin, TX,Austin, Texas,Portland, Oregon,Toronto,Bangalore(cities; add the state or country when a name is ambiguous; the run summary tells you which place was used)Texas,Ontario, Canada,England(regions)United States,UK,Germany,India... (76 supported countries; not Australia or Mexico)Remote(remote jobs in the US) orRemote, United Kingdom- A DataForSEO location code such as
2840
Output
Job row (type: "job"), trimmed:
{"jobId": "8IaZDCaCasjzUqz9AAAAAA==", "title": "Software Engineer (.NET, C# and Angular)", "company": "Numerator","location": "United States", "isRemote": false, "via": "LinkedIn","applyUrl": "https://www.linkedin.com/jobs/view/software-engineer-net-c%23-and-angular-at-numerator-4479791958","applyBoards": ["LinkedIn", "Talents By Vaia", "Rovio"], "applyOptionsCount": 3,"applyOptions": [{ "source": "LinkedIn", "url": "https://www.google.com/goto?url=...", "direct": false }],"salary": "$91.8K–$138K a year", "salaryMin": 91800, "salaryMax": 138000, "salaryCurrency": "USD","salaryPeriod": "year", "salaryYearlyMin": 91800, "salaryYearlyMax": 138000,"employmentType": "Full-time", "employmentTypes": ["full_time"],"postedAt": "2026-10-14T14:41:50Z", "postedAgo": "2 days ago", "daysSincePosted": 2,"qualifications": ["Strong Angular skills", "..."], "responsibilities": ["..."], "benefits": ["..."],"query": "software engineer", "searchLocation": "United States", "rankInSearch": 1}
Every run also writes:
- A
searchrow per query x location:status(ok,no_results,error,not_processed), jobs found, removed by filters, duplicates merged, delivered, charged, and the Google search URL. skippedrows for invalid or duplicate inputs (for example an unknown city).- A run summary in the
OUTPUTrecord.
Dataset views: Jobs, Salaries, Run summary per search. Export to JSON, CSV, Excel or via the API.
Pricing (pay per event)
You pay only for results.
| Event | Charged when |
|---|---|
| Job scraped | Each job delivered to your dataset (monitor mode: each new job) |
| Search processed | Each query x location for which Google returned jobs (searches with no results are free) |
| Actor start | Once per run (Apify standard) |
Never charged: invalid inputs, searches with no results, provider errors and timeouts, duplicates removed across searches.
Set a maximum charge per run and the Actor stops cleanly before going over it.
Apify free plan: up to 3 queries, 1 location and 30 jobs per search per run.
Good to know
- Apply links.
applyUrlis the direct link of the primary listing (the "via" site). The links inapplyOptionsare Google redirect links (google.com/goto?...) that open the job on each board; they are what Google Jobs itself uses. - Filters run on the results. Google Jobs only partly honours date and type filters, so the Actor applies them itself on each job and, when any filter is on, fetches up to twice as many results to compensate. Each search row shows how many jobs each filter removed. You are only charged for jobs delivered.
- Dates. About a third of listings show no posting date. With a date filter they are dropped unless Keep jobs without a posting date is on.
postedAtis computed from Google's "3 days ago" text when no exact time is given. - Salaries are shown for roughly 20-40% of jobs (more in the US).
salaryYearlyMin/Maxconvert hourly/daily/weekly/monthly pay (2,080 hours, 260 days, 52 weeks, 12 months per year). - Speed. Searches run in parallel through a queued API, in batches of up to 50: each batch usually takes 30-90 seconds. Monitor mode uses the standard (cheaper) queue and can take a few minutes.
- Monitor runs. Each query x location x filter combination keeps its own memory in your named key-value store. A job is new when the monitor has never returned it and it was posted after the previous run (minus a 2-day grace window) or has no date. Jobs cut off by your maximum charge or beyond Max jobs per search are not marked as seen, so they show up in the next run. Run one schedule per store name at a time.
- Languages. Pick the Google interface language; job texts stay in their original language. Salary parsing understands common currency and number formats (e.g.
50.000 €,₹6L). Exact posting times are used in every language; relative "3 days ago" texts are parsed in English only.
FAQ
Is this legal? Google Jobs results are public. This Actor retrieves them through a licensed third-party SERP API and does not log in or bypass any protection. You are responsible for how you use the data, including personal data protection laws.
Why are there fewer jobs than I asked for? Google Jobs has no more matches for that search and place, your filters removed some (see the search row), or duplicates were merged.
Which countries are supported? 76 countries: Algeria; Angola; Antigua and Barbuda; Austria; Bahrain; Bangladesh; Belgium; Belize; Bolivia; Botswana; Brazil; Canada; Costa Rica; Denmark; Dominica; Egypt; El Salvador; Ethiopia; France; Germany; Ghana; Greece; Guyana; India; Indonesia; Iraq; Italy; Japan; Jordan; Kazakhstan; Kenya; Kuwait; Kyrgyzstan; Lebanon; Lesotho; Libya; Malawi; Malaysia; Mauritius; Morocco; Mozambique; Namibia; Netherlands; Nigeria; Oman; Pakistan; Philippines; Portugal; Qatar; Rwanda; Saint Helena, Ascension and Tristan da Cunha; Saint Vincent and the Grenadines; Saudi Arabia; Seychelles; Sierra Leone; Singapore; Somalia; South Africa; Spain; Sri Lanka; Suriname; Switzerland; Tanzania; Thailand; The Bahamas; The Gambia; Trinidad and Tobago; Tunisia; Uganda; United Arab Emirates; United Kingdom; United States; Uzbekistan; Vietnam; Zambia; Zimbabwe. Not available: Australia, Mexico and other countries not listed.
Attribution. Place-name ranking uses population data from GeoNames (geonames.org, CC BY 4.0).
Not affiliated with Google. "Google" is a trademark of Google LLC and is used here only to describe the data source.
Questions or a missing feature? Open an issue on the Actor page.