PEOPLEDEVELOPER TOOLS API MCP READY

Google Jobs API

Job listings from Google Jobs for any query and geography — title, company, location, posting age, application links and the full description — across 184 Google domains, 102 language codes and unlimited pagination.

MEDIAN LAGon demand
PARAMETERS10
TOTAL USERS2,921
MONTHLY ACTIVE434
RUNS SUCCEEDED99.6%
RATING3.49 (10)

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
query string yes Job search query, e.g. 'Software Engineer'
location string no City-level location gives the best results. Empty plus a country code uses the country name automatically.
country enum no derived from domain 10 supported codes. Derived from google_domain when unset — Google Jobs returns nothing with neither country nor language.
language enum no en 102 language codes. Falls back to English rather than returning nothing.
google_domain enum no google.com 184 domains; also determines the default country
num_results integer no 100 Maximum listings to return
max_pagination integer no 0 Pages to fetch, ~10 listings each. 0 = unlimited. — drives your bill
include_lrad boolean no false Enable radius filtering around the location
lrad_value string no 5 Radius in km; only used when include_lrad is on
max_delay integer no 1 Seconds between requests, to stay under rate limits

Worked examples

Basic — one role, one city
{
  "query": "Software Engineer",
  "location": "San Francisco, CA"
}
Country-wide — no city, country code drives the location
{
  "query": "Data Scientist",
  "country": "de",
  "google_domain": "google.de",
  "language": "de"
}
Radius search — within 10 km of a point
{
  "query": "Registered Nurse",
  "location": "Austin, TX",
  "include_lrad": true,
  "lrad_value": "10"
}
Full sweep — unlimited pagination
{
  "query": "Marketing Manager",
  "location": "London",
  "google_domain": "google.co.uk",
  "max_pagination": 0
}
POWER-USER TIP
Never send neither a country nor a language — Google Jobs returns an empty result set when both are absent. The Actor derives a country from google_domain and falls back to English rather than handing you a silent zero, and logs a warning when it does — so a run that returns nothing is worth checking the log for.

Coverage

184
Google domains — google.com .co.uk .ca .de .fr .com.au .co.jp +177
102
language codes — en es fr de it pt ja ko zh ru ar +91
10
country codes — us ca uk de fr au jp in br mx

Tasks

Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.

Request a task →

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~Google-Jobs-Scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"Software Engineer","location":"San Francisco, CA","num_results":100}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/Google-Jobs-Scraper").call(
    run_input={"query": "Data Scientist", "location": "Berlin", "country": "de"}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item.get("title"), "-", item.get("company_name"))

What people use it for

Alternatives