Google Jobs Scraper avatar

Google Jobs Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Google Jobs Scraper

Google Jobs Scraper

The most advanced Google Jobs Scraper available! Built with enterprise-grade flexibility, lightning-fast performance, and comprehensive customization options. Extract detailed job data, application links, company information, and full job descriptions. Unlimited usage, no monthly rental fees.

Pricing

from $0.01 / 1,000 results

Rating

3.4

(13)

Developer

John

John

Maintained by Community

Actor stats

48

Bookmarked

3.3K

Total users

341

Monthly active users

0.71 hours

Issues response

3 hours ago

Last modified

Share

Scrape job listings from Google Jobs with location targeting, pagination control, and language/country filtering. Returns structured JSON with full job details, apply links, and highlights, ready for immediate use in pipelines or spreadsheets.

What This Actor Returns

Each dataset item is a single job listing with:

  • Job basics: title, company name, location, source platform (via)
  • Description: full job description text
  • Highlights: structured qualifications, responsibilities, and benefits
  • Extensions: raw tags like "Full-time", "3 days ago", "Health insurance"
  • Detected extensions: parsed metadata: posted_at, schedule_type, benefits flags
  • Apply options: direct application links (LinkedIn, Indeed, company site, etc.)
  • Job ID: Google's unique identifier for the listing
  • Search metadata: query, country, language, timestamp, pages processed

Use Cases

  • Job market research: track hiring trends by role, location, or industry
  • Recruiting pipelines: feed job data into ATS or CRM systems
  • Salary and benefits benchmarking: aggregate compensation signals across listings
  • Competitive intelligence: monitor which companies are hiring for specific roles
  • Academic research: analyze labor market dynamics at scale

Input Parameters

ParameterTypeRequiredDefaultDescription
querystringNoneJob search query (e.g., "Software Engineer", "Data Scientist in NYC")
locationstringNoneLocation filter (e.g., "San Francisco, CA", "London, UK"). If empty and country is set, the country name is used automatically.
countrystringDerived from google_domain (e.g. us for google.com, nl for google.nl)Country the search targets. Choose from the 83 countries where Google Jobs actually serves listings (see Supported countries).
languagestringNoneInterface language. Usually best left unset — Google then matches it to the country. Explicitly setting en returns zero results in many non-English countries.
google_domainstringgoogle.comGoogle domain to use (e.g., google.co.uk). Also sets the default country when country is empty.
num_resultsinteger100Maximum number of job listings to return
max_paginationinteger0Maximum pages to fetch. Set to 0 for unlimited (fetch all available results).
include_lradbooleanfalseEnable location radius search
lrad_valuestringNoneRadius in km when include_lrad is true (e.g., "25")
max_delayinteger1Delay between page requests in seconds
cleanup_resultsbooleantrueRemove internal API metadata from output

Location handling: Search by city, state, or country with the location field. A city-level location gives the best results. If you set a country but leave location empty, the actor fills in the country name as the location automatically (Google Jobs returns nothing for a country-only search). If you leave country empty, the actor derives it from google_domain (e.g. google.comus, google.nlnl — every domain in the list is covered), because Google Jobs returns nothing when no country is sent — it logs a WARNING with the value it assumed and records country_synthesized_from_domain in search_metadata; set country explicitly to override. If Google returns no results for a location-targeted search (which can happen for some non-US cities), the actor automatically retries with the location merged into the query, so a search like "Product Manager" in "Berlin" still returns listings.

Language handling: Leave language unset unless you specifically need a given interface language — Google then uses the language that matches the country automatically. In many non-English countries (the Netherlands, Germany, Spain, Brazil, Japan, and most of Latin America among them), explicitly requesting English (language: "en") makes Google Jobs return zero results; the actor warns in the run log when your input hits this known combination.

Supported countries

Google Jobs itself is only available in some countries, so this actor lets you target exactly the 83 countries verified to return listings:

  • Work with any language setting: Algeria, American Samoa, Anguilla, Antigua and Barbuda, Bahamas, Bahrain, Belize, Canada, Cuba, Dominica, Egypt, Gambia, Ghana, Guyana, Hong Kong, India, Iraq, Ivory Coast, Jamaica, Jordan, Kuwait, Libya, Malaysia, Mauritius, Morocco, Namibia, Nigeria, Oman, Pakistan, Palestine, Philippines, Puerto Rico, Qatar, Rwanda, Saint Vincent and the Grenadines, Saudi Arabia, Sierra Leone, Singapore, South Africa, Sri Lanka, Suriname, Trinidad and Tobago, Tunisia, U.S. Virgin Islands, Uganda, United Arab Emirates, United Kingdom, United States, Zambia, Zimbabwe
  • Work when language is left unset (recommended) or set to the local language: Argentina, Austria, Belgium, Bolivia, Brazil, Colombia, Costa Rica, Denmark, Dominican Republic, Ecuador, El Salvador, Germany, Greece, Guatemala, Honduras, Indonesia, Italy, Japan, Mexico, Netherlands, Nicaragua, Panama, Paraguay, Peru, Portugal, Russia, Spain, Switzerland, Taiwan, Thailand, Uruguay, Venezuela, Vietnam

Not available: Google Jobs currently serves no listings for Australia, New Zealand, Ireland, South Korea, Poland, Czech Republic, Turkey, Ukraine, Israel, Norway, Sweden, Finland, the Baltics, and most Balkan, Central Asian, and Pacific markets. A run targeting one of these stops immediately with the message "Google Jobs is not available in [country]" — you are not charged any page fee for it. France and Chile are technically accepted but currently return no listings; searches there run normally and, like every empty search, cost you no page fee.

Example Output

Each dataset item represents one job listing:

{
"title": "Senior Software Engineer",
"company_name": "Acme Corp",
"location": "San Francisco, CA",
"via": "via LinkedIn",
"description": "We are looking for a Senior Software Engineer to join our growing team...",
"extensions": ["Full-time", "3 days ago", "Health insurance", "Dental insurance"],
"detected_extensions": {
"posted_at": "3 days ago",
"schedule_type": "Full-time",
"health_insurance": true,
"dental_coverage": true
},
"job_highlights": [
{
"title": "Qualifications",
"items": ["5+ years of Python experience", "BS/MS in Computer Science or related field"]
},
{
"title": "Responsibilities",
"items": ["Design and build scalable backend services", "Collaborate with product and design teams"]
}
],
"apply_options": [
{ "title": "LinkedIn", "link": "https://www.linkedin.com/jobs/view/..." },
{ "title": "Indeed", "link": "https://www.indeed.com/viewjob?..." }
],
"job_id": "eyJqb2JfdGl0bGUiOiJTZW5pb3IgU29mdHdhcmUgRW5naW5lZXIifQ==",
"share_link": "https://www.google.com/search?q=Senior+Software+Engineer&ibp=htl;jobs&htidocid=...",
"query": "Software Engineer",
"location": "San Francisco, CA",
"country": "us",
"language": "en",
"google_domain": "google.com",
"search_timestamp": "2026-05-07T14:23:01.456789",
"total_jobs_found": 87,
"pages_processed": 9
}

Pricing

This actor uses pay-per-event billing, you only pay for pages actually fetched:

EventPriceWhen charged
Actor start$0.00005Per GB of memory when the run starts (minimum one event)
Result$0.00001Per job listing saved to the dataset
Page processed$0.15Per page of results actually retrieved (approx. 10 jobs/page), FREE plan price

Paid Apify plans get a discount on the page price: $0.11 on BRONZE and $0.10 on SILVER and above.

Pages are charged one at a time as they deliver: the first page is charged only after it has actually returned job listings, and each further page only when it is requested. You are not charged the page fee when a search returns no results — an empty search costs just the automatic actor-start fee (a fraction of a cent). Runs targeting a country where Google Jobs is unavailable stop before any search happens and are never charged a page fee. If your run's cost limit is reached mid-search, pagination stops gracefully and you keep everything fetched so far.

Estimated costs (FREE plan):

  • 0 jobs (empty search): $0.00 in page fees
  • 10 jobs (~1 page): ~$0.15
  • 100 jobs (~10 pages): ~$1.50
  • 1,000 jobs (~100 pages): ~$15.00

How to Get Started

  1. Go to the actor page on Apify and click Try for free
  2. Enter your search query and optional location
  3. Set num_results to control how many listings to retrieve
  4. Click Run: results appear in the dataset within seconds
  5. Export to JSON, CSV, or connect via the Apify API or MCP integration

Quickstart input:

{
"query": "Software Engineer",
"location": "San Francisco, CA",
"num_results": 50
}

🔌 Use this API from Claude (MCP)

Add this Actor as a tool in Claude Code (free trial), Claude Cowork (free trial), Cursor, or any other MCP client, via the hosted Apify MCP server. Use this Actor-specific URL:

https://mcp.apify.com/?tools=actors,docs,johnvc/Google-Jobs-Scraper

Setup walkthrough (Apify Console auto-embeds a YouTube URL placed on its own line):

Apify MCP integration docs: https://docs.apify.com/platform/integrations/mcp

With the server connected, your agent can search job listings by title and city, compare postings across employers, and pull salary and apply links into a single structured answer.

💸 Pay per run with crypto (x402)

The Google Jobs API supports agentic payments via the x402 protocol. AI agents and MCP clients can pay for runs in USDC (on Base) with no Apify account or API token needed: point your agent at the Apify MCP server and it can discover, pay for, and run this Actor autonomously. Read the Apify x402 announcement for details.

FAQ / Troubleshooting

No results returned? First: empty searches are free — you are never charged the page fee when a search returns no listings. To get results:

  • Check that your query is not empty
  • Remove the language setting. This is the most common cause of empty non-English-country searches: with language: "en", countries like the Netherlands, Germany, Spain, Brazil, or Japan return nothing. Leave it unset and Google picks the right language from the country.
  • Check the country is supported (see Supported countries above). Google Jobs serves no listings at all in Australia, New Zealand, Ireland, the Nordics, and a number of other markets — those runs stop immediately with a clear message and no page fee.
  • Use a job-title style query (e.g. "Product Manager", "Registered Nurse") rather than a descriptive phrase. Google Jobs matches on job titles, so niche or descriptive terms can return nothing.
  • For non-US searches, set the country (or your country's google_domain, e.g. google.de) and use a city in location (e.g. Berlin, Munich). The same search often returns nothing on google.com but full results with local targeting.
  • Google sometimes returns nothing for a separate location filter, especially for non-US cities. The actor automatically retries such searches with the city folded into the query (for example, "Product Manager Berlin"), so location-targeted searches keep working. You can also put the city directly in query yourself.
  • Setting only country with an empty location works — the actor fills in the country name as the location automatically. For sharper results, add a city-level location (e.g. London, United Kingdom).
  • Leaving country empty works too — the actor derives it from your google_domain (every domain in the list maps to its country, e.g. nl on google.nl) and flags the assumption with a WARNING in the run log.

Am I charged for a search with no results? No. The page fee is only charged after a page actually returns job listings. A run that finds nothing costs only the automatic actor-start fee (about $0.0001), whether the cause was a thin market, an over-narrow query, or an unsupported country.

Fewer results than expected?

  • Google Jobs may have fewer listings than num_results for your query, this is normal
  • Try broadening the query (e.g., "engineer" instead of "senior backend engineer")

Budget warning on startup?

  • Increase your actor run budget limit in the run configuration
  • Or reduce num_results / set a lower max_pagination limit

Actor exits immediately?

  • Check that your run has a sufficient budget for at least 1 page (~$0.15 minimum on the FREE plan)

Missing fields in some listings?

  • Not all Google Jobs listings include every field (salary, highlights, apply links vary by posting)
  • Use additionalProperties in your integration to handle optional fields gracefully

n8n integration

Available as an n8n community node, n8n-nodes-google-jobs-api. In n8n: Settings, Community Nodes, install n8n-nodes-google-jobs-api, then use it in any workflow (it also works as an AI Agent tool).


Ready-to-run examples that show this API solving a specific problem. Each opens its own setup so you can run it on your account in one click.


Where the Data Comes From

Every row this API returns starts out as a listing on Google Jobs, the results panel Google shows when someone searches for a role. Google aggregates those postings from company career pages and job boards, which is why each dataset item carries a via field naming the board a posting came from, plus an apply_options array with the direct application links. This is an independent tool. It is not affiliated with or endorsed by Google, and it is not Google's own API.

How is this different from searching Google Jobs by hand?

Scrolling the Google Jobs results panel in a browser hands you one card at a time and makes you keep loading more. This API walks the pagination for you and returns the whole set in a single run, with title, company_name, location, description, job_highlights, and detected_extensions already parsed into fields you can sort, filter, or export to CSV. An afternoon of scrolling and copy-paste becomes one run of a few minutes.

Does Google Jobs have a public API?

Not one that gives you the search results. Google's developer documentation covers the publishing side: how an employer marks up a job posting so that Google Jobs can index it. There is no supported endpoint for reading listings back out of the panel, and that gap is what this API fills. Pass a query and an optional location and you get structured JSON back, including job_id, share_link, apply_options, and run metadata such as total_jobs_found and pages_processed.


🌐 About Alpha OSINT

This Actor is part of Alpha OSINT, toolset of financial and operations data sources and APIs. See the Google Jobs API source page for related tools and use cases. For support or requests for this actor, please start a ticket directly on our support page.

Last Updated: 2026.08.23