Structured job data, apply links, and hiring signals for about a dollar per thousand listings
If you have ever tried to collect job postings for a research project or a recruiting tool, you know the problem. Google Jobs (the "Google for Jobs" panel in search results) aggregates listings from LinkedIn, Indeed, and thousands of company career pages, but there is no official API for it. The Google Jobs API on Apify fills that gap: you give it a search query, it returns structured JSON for every listing Google shows, with the title, company, location, full description, qualifications, benefits, and direct apply links.
I work with this kind of data for labor market analysis, and the difference between scraping raw HTML yourself and getting parsed JSON is measured in days of cleanup work you skip.
The Google Jobs API scrapes Google Jobs search results and returns each listing as one structured JSON record. A search query goes in, a dataset of job objects comes out. Each record has the job basics (title, company name, location, and the source platform, the "via LinkedIn" or "via Indeed" tag), the complete job description rather than a truncated preview, and the job highlights already parsed into qualifications, responsibilities, and benefits lists.
Two fields save the most cleanup time. The detected extensions field parses out the posted date, schedule type, and benefits flags like health insurance, so you can filter full time roles posted this week without writing regex against description text. And apply options gives you direct application links to LinkedIn, Indeed, or the company's own site for every listing.
You can filter by location, country, language, and Google domain, turn on a radius search, and control pagination. Pricing is pay per event: a $0.20 setup fee per run plus $0.015 per page of about 10 jobs. A thousand jobs costs roughly $1.70.
Labor market researchers get listing level data at scale, so tracking hiring trends by role, region, or industry stops requiring stitched together job board exports. Recruiters feed live listings into an ATS or CRM with apply links and employer names intact. Compensation analysts aggregate benefits flags and schedule types across thousands of postings to see what employers actually offer, and competitive intelligence teams watch which roles a rival is hiring for, often the earliest public signal that strategy is shifting.
The API ships with three example tasks. Each opens with the input already configured, so you can run it on your own account in one click. Each gets its own section below, and they all live on the Google Jobs examples page.
This task pulls remote software engineering listings with the company, source platform, and direct apply links, and it is built to be called through MCP, the protocol AI agents use to run tools. Point Claude or another MCP client at it and your agent can answer "what remote backend roles opened this week?" with live data instead of guesses. Run the remote software engineer jobs task to try it.
Healthcare hiring moves fast and statewide tracking by hand is tedious. This task searches nursing roles across Texas and returns each listing with the employer, job highlights, and an apply link per role. It works as a repeatable, exportable query for researchers studying healthcare labor shortages and for staffing agencies filling regional pipelines. Run the Texas nursing jobs task to see the output shape.
This one turns the API into a monitoring tool inside Claude Cowork, Anthropic's desktop workspace. Connect the actor via MCP, name an employer, and ask Claude to check their open roles. The task returns that company's current listings, so you can watch a competitor, a client, or a target employer over time. Run the company job ads task to set it up.
The fastest path is the actor page itself. Open the Google Jobs Scraper on Apify, click Try for free, and run a query like this:
{
"query": "Software Engineer",
"location": "San Francisco, CA",
"num_results": 50
}Results land in a dataset within seconds and export to JSON or CSV. For pipelines, call it from Python with the Apify client:
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("johnvc/google-jobs-scraper").call(run_input={"query": "Data Scientist", "location": "Austin, TX", "num_results": 100})
jobs = list(client.dataset(run.default_dataset_id).iterate_items())There is also an n8n community node (n8n-nodes-google-jobs-api) if you build workflows there, and the MCP integration works with Claude, Cursor, and ChatGPT. A free Apify account includes enough credit to test all three example tasks.
No. Google does not expose the public Google Jobs search results as an API. Scraping the results page, which is what this actor does for you, is the practical way to get the data.
Sometimes. Salary shows up in the extensions field when the posting includes it. Many postings do not.
About $1.70: a $0.20 setup fee plus $0.015 per page of roughly 10 jobs.
Yes. Set the country, language, and google_domain inputs to target any Google Jobs locale.
Broaden the query, drop the location filter, or set the country and language explicitly. Overly specific combinations sometimes come back empty.
Yes. The Actor runs over MCP, so Claude and other MCP clients can call it as a tool in plain English and get clean JSON rows back.
If you want job listings as clean JSON instead of a scraping project, try the Google Jobs API on a free account and start with one of the example tasks.
0
0
0