Google Jobs API — Job Listings, Salary & Apply Links avatar

Google Jobs API — Job Listings, Salary & Apply Links

Pricing

$3.00 / 1,000 job delivereds

Go to Apify Store
Google Jobs API — Job Listings, Salary & Apply Links

Google Jobs API — Job Listings, Salary & Apply Links

Google Jobs listings as JSON for any job title, city and country: company, location, posted date, salary, job type, full description, highlights and every apply link. Unofficial Google Jobs API.

Pricing

$3.00 / 1,000 job delivereds

Rating

0.0

(0)

Developer

yestrue

yestrue

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Turn Google Jobs into clean JSON. Give the Actor a list of job titles and cities and it returns one record per posting: title, company, location, posted date, salary (as text and as numbers), job type, the full job description, Google's own highlights (qualifications, responsibilities, benefits) and every place you can apply — Indeed, LinkedIn, Glassdoor, the company's career site and more, with the direct ones flagged. Any country, any language, no API key, no browser to run.

Try it in 1 minute:

  1. Press Start — the prefilled input searches "software engineer" and "data analyst" jobs in Austin, TX.
  2. A few seconds later the Output tab lists the jobs with company, pay, job type, description and apply links.
  3. Download JSON, CSV or Excel, call it from the API, or schedule it to watch a job market every morning.

You pay only for jobs delivered. Searches with no jobs, captcha pages and errors are free — they come back as a status record that says why.

Use it to:

  • Build a job board or job alert without scraping a dozen job sites — Google already merges them.
  • Track salary ranges by role and city: pay comes as text plus salaryMin, salaryMax, salaryCurrency and salaryPeriod.
  • Watch who is hiring for a skill or a title: company, location, posting age, and the site each posting came from.
  • Feed an AI agent or a recruiting workflow the full job text and structured highlights instead of a screenshot of a search page.
  • Compare cities and countries in one run: every job search is run in every location you list.

What you get

One record per job:

FieldWhat it is
query, searchLocation, country, language, positionWhat was searched, where, and the job's rank in that search
jobIdStable id of the posting in Google Jobs
title, company, locationThe job title, the hiring company and the place of the job
viaThe site Google lists the posting from
postedText, postedAgeDays, postedAtApprox"4 days ago", whole days, and an ISO time worked out from it
salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriodThe pay as shown and as numbers (HOUR, DAY, WEEK, MONTH, YEAR); null when the posting shows none
employmentType, qualification, remote, benefits[]Full-time / part-time / contractor, degree note, a remote flag, benefit tags
descriptionThe posting text with line breaks. descriptionIsPreview is true when Google showed only the first lines (this happens for some sources and languages)
highlights[]Google's extracted sections as { title, items[] } — qualifications, responsibilities, benefits
applyUrl, applyOptions[]The first apply link and all of them as { source, url, direct }
googleJobsUrl, companyLogoA link that opens the posting in Google Jobs, and the logo when shown
status, error, scrapedAtOK, or NO_RESULTS / FAILED with the reason; collection time

Phone numbers and e-mail addresses are removed from the description text.

Input

FieldWhat it does
queriesJob titles or keywords, one per line. Required.
locationsCities or regions, one per line. Every job search runs in every location. Empty = no place.
countryTwo-letter country code of the Google edition, default us (gb, de, fr, ca, au, in, ...).
languageLanguage code, default en.
maxJobsPerQueryJobs per search (job title in one location), 1-10, default 10.
datePostedAny time, today, last 3 days, last week, last month. Jobs outside the period are not delivered and not charged; jobs without a date are kept.
maxConcurrencySearches read at the same time, 1-10 (default 3).

Get more than ten jobs: Google shows the ten best matches for each search, so widen the net — list several cities (Austin, TX, Dallas, TX, Houston, TX), several phrasings (software engineer, backend developer, full stack developer) or several countries in separate runs. A posting found by more than one search is delivered once per run.

Example output

{
"query": "software engineer",
"searchLocation": "Austin, TX",
"position": 1,
"title": "Associate Software Engineer",
"company": "Charles Schwab",
"location": "Austin, TX",
"via": "Schwab Jobs",
"postedText": "4 days ago",
"salaryText": "$44.23–$45.19 an hour",
"salaryMin": 44.23,
"salaryMax": 45.19,
"salaryCurrency": "USD",
"salaryPeriod": "HOUR",
"employmentType": "Full-time",
"applyOptions": [
{ "source": "Schwab Jobs", "url": "https://www.google.com/goto?url=…", "direct": false },
{ "source": "Glassdoor", "url": "https://www.google.com/goto?url=…", "direct": true }
],
"status": "OK"
}

Good to know

  • The data is what Google Jobs shows publicly for the search, in the language of the posting. Pay and job type appear only when the posting states them.
  • A search that gives nothing gets one free NO_RESULTS record. If Google answers with a captcha page the search gets one free FAILED record and is not retried — the Actor never solves captchas or works around blocks. Run it again a little later.
  • Apply links are Google's own redirect links; they open the application on the source site.
  • This is an unofficial tool and is not affiliated with Google.

Run it on a schedule, connect it to Make, Zapier, n8n or your own code through the Apify API, or call it from an AI agent. If something looks off for a country or language, open a ticket on the Issues tab and say which search it was — fixes are quick.