Google Jobs Scraper: Salary, Remote, Internship Tags
Pricing
$3.00 / 1,000 job results
Google Jobs Scraper: Salary, Remote, Internship Tags
Scrape Google Jobs listings with clean fields: parsed salary, remote flag, internship/entry/senior tag, ISO posted date, apply links, deduped.
Pricing
$3.00 / 1,000 job results
Rating
0.0
(0)
Developer
Night Shift Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google Jobs Scraper: clean salary, remote and internship data
Search Google Jobs (the jobs panel in Google Search) and get one tidy row per job. No raw nested blobs. Ask for 100 or 500 jobs and auto-expand finds them across nearby cities and similar titles. Salary, remote flag, job level and posted date are parsed for you, and duplicates are removed. No browser: plain HTTP, so runs are fast and cheap.
What you get
- Core fields:
title,company,location,via(the job board Google got it from),employmentType,postedText,salaryText,tags(benefits and other chips Google shows). - Level tag:
internship,entry,mid,seniororunknown, guessed from the title, job type and description. - Parsed salary:
salaryMin,salaryMax,salaryCurrency,salaryPeriod(hour, day, week, month, year) when the posting shows a salary. - Remote flag:
isRemoteis true when the location, title or tags say remote or work from home. - Posted date as ISO 8601:
postedAt, calculated from Google's relative text such as "3 days ago". - Apply links: every board Google lists, with a
directflag, plus a primaryapplyUrl. These are Google redirect links (https://www.google.com/goto?url=...) that forward to the employer or board. - Description: full
descriptiontext, a 300 characterdescriptionSnippet, andhighlights(qualifications, responsibilities, benefits) when Google shows them. - Stable id and share link:
jobId(Google's own id) andshareUrl. - No duplicates: the same job listed by several boards, or found by several searches, is returned once.
- Which search found it:
searchedQueryandsearchedLocation.
How many jobs you get: auto-expand
Google shows only about 10 jobs per search, and there is no page 2 over plain HTTP. We handle this for you with auto-expand: set maxResults (default 100) and the actor keeps running close variants of your search until it has that many unique jobs.
- Nearby locations: suburbs and neighbor cities. About 300 large US metros are bundled (Chicago also searches Naperville, Evanston, Schaumburg and so on, then the whole state). For Canada, the UK, India, Australia and Germany it adds the country's biggest cities. Elsewhere, only title variants are used.
- Similar job titles: synonyms (registered nurse, RN, staff nurse), intern/internship, senior/sr, and a "remote" version.
- Rings outward: your exact search first, then the closest variants, then further out.
- Duplicates removed across all searches by Google's job id (title + company + location as a backup), so you never pay twice for the same job.
- Stops early when it reaches
maxResults, runs out of variants, or three searches in a row bring fewer than 2 new jobs. - Search cap: at most
maxResults / 5 + 5searches per run (100 jobs = up to 25 searches), so cost stays predictable. The log shows how many searches ran. - Every job has
searchedQueryandsearchedLocationso you can see which variant found it.
Auto-expand finds more jobs, not unlimited jobs. A small town or a rare title may run out of variants before maxResults; you only pay for the jobs you get. Set autoExpand to false to run exactly the queries and locations you entered (about 10 jobs each), and use expandBy to allow only locations or only titles.
How to use
- Add one or more search queries (for example
registered nurse). - Add one or more locations (for example
Chicago, IL). If empty, the Google country is used (default: United States). Google shows no jobs for searches without a place. - Set
maxResults(for example 100). Leave auto-expand on. - For remote jobs, put the word
remotein the query (for exampledata analyst remote). - Leave the default proxy (Apify Proxy group GOOGLE_SERP) and run.
Example input
{ "queries": ["registered nurse"], "locations": ["Chicago, IL"], "maxResults": 100, "autoExpand": true }
Example output (shortened)
{"jobId": "t_17Wy_ye5djHz6QAAAAAA==","title": "AI Software Engineer Intern","company": "IBM","location": "New York, NY","isRemote": false,"level": "internship","employmentType": "Internship","postedText": "4 days ago","postedAt": "2026-10-14T12:00:00.000Z","salaryMin": 75600,"salaryMax": 166320,"salaryCurrency": null,"salaryPeriod": "year","salaryText": "75,600–166,320 a year","via": "LinkedIn","tags": ["Health insurance"],"applyUrl": "https://www.google.com/goto?url=...","applyLinks": [{ "source": "LinkedIn", "direct": false, "url": "https://www.google.com/goto?url=..." }],"searchedQuery": "software developer intern","searchedLocation": "Jersey City, NJ","searchQuery": "software engineer intern","searchLocation": "New York, NY"}
Pricing
Launch pricing (pay per event): $3.00 per 1,000 jobs ($0.003 per unique job returned), plus Apify's standard tiny run-start fee. You pay only for jobs saved to the dataset: duplicates, blocked searches and empty searches are not charged. Example: a 100-job run costs about $0.30. Proxy and compute are included in that price.
Notes
- Google Jobs is not available in every country; those searches return nothing.
- The query filters (date posted, job type) are not exposed: Google ignored them in our tests on this route.
salaryCurrencyis only filled when the posting shows a currency symbol or code.- Relative dates like "3 days ago" are converted to an approximate timestamp.
- Salary, description and highlights are only present when the posting publishes them.
- Only publicly visible job posting data is collected.