Skip to content

Google Jobs Scraper

Try for free

Scrape public Google Jobs listings by role and city. Each row includes the company, location, full description, highlights, and direct apply links.

💼 Google Jobs Scraper

Collect job listings from the public Google Jobs tab and save one row per job. Each row has the title, company, location, description, schedule and posting-age tags, structured highlights, and the apply links Google shows. No login and no job-board account, at $4 per 1,000 jobs.

Search any role in any supported country, filter by how recently it was posted, and export the jobs as JSON, CSV, or Excel.

✨ Why use Google Jobs Scraper?

  • 🔓 No login — reads the public Google Jobs tab.
  • 🔎 Search like a person — role or keywords plus a city, region, or country.
  • 🌍 Country and domain control — pick the Google country code, domain, and interface language.
  • 🕒 Freshness filter — keep jobs posted in the last 24 hours, 3 days, 7 days, or 30 days.
  • 🧱 Structured rows — highlights such as qualifications and benefits, plus apply options and share links.
  • 💸 Pay per job — a search that saves zero jobs is not charged.

🎯 Use cases

  • 👀 Hiring watch — track openings for a role in one city.
  • 📎 Recruiting pipelines — collect apply links and sources for candidates.
  • 🧪 Job market research — compare how the same role is described across job boards.
  • 🗓️ Daily lists — keep a feed of roles posted in the last day.
  • 🏢 Competitor hiring — see which companies hire for a skill or title.

🚀 How to use

  1. Enter a Search query and a Location.
  2. Set Maximum results and, if you want, Posted within.
  3. Click Start.
  4. Download the dataset as JSON, CSV, or Excel, or read it through the API.

📥 Input

FieldTypeDescription
querystringRole or keywords, the same words you would type into Google Jobs.
locationstringCity, region, or country. A city gives the closest match.
maxResultsintegerStop after this many listings. Google returns about 10 per page.
countrystringTwo-letter country code, such as us, uk, de, ca.
languagestringInterface language, such as en, de, es. Leave empty to use the country language.
googleDomainstringGoogle host, such as google.com or google.de.
postedWithinstringany, 24h, 3d, 7d, or 30d. Listings with no date stay in.
locationRadiusKmintegerOptional search radius in kilometers.
proxyConfigurationobjectProxy settings. Datacenter is the default.
{
  "query": "Software Engineer",
  "location": "San Francisco, CA",
  "maxResults": 10,
  "country": "us",
  "postedWithin": "any"
}

If a location search comes back thin, the run tries once more with the city added to the query.

📤 Output

One dataset row per job.

FieldDescription
title, company_name, viaJob title, company, and the board Google credits.
location, search_locationThe place on the listing, and the place you searched.
descriptionJob description text.
extensions, detected_extensionsTags such as posting age and schedule type.
job_highlightsSections like Qualifications and Benefits with their items.
apply_options, source_link, share_linkApply links and the Google share link.
job_id, query, country, language, google_domainSearch context.
search_timestamp, total_jobs_found, pages_processedRun details.

A trimmed item from a real run:

{
  "title": "Software Engineering LMTS",
  "company_name": "Salesforce",
  "location": "San Francisco, CA",
  "search_location": "San Francisco, CA",
  "via": "LinkedIn",
  "description": "To get the best candidate experience, please consider applying for a maximum of …",
  "extensions": ["23 hours ago", "Full-time"],
  "detected_extensions": { "posted_at": "23 hours ago", "schedule_type": "Full-time" },
  "job_highlights": [
    { "title": "Qualifications", "items": ["B.S/M.S. in Computer Science or equivalent field with 8+ years of software devel…"] }
  ],
  "apply_options": [
    { "title": "LinkedIn", "link": "https://www.google.com/goto?url=CAES3QEB6zswFQeQXNXb86l1VTK_…" },
    { "title": "Workday", "link": "https://www.google.com/goto?url=CAESqQIB6zswFQS9cvIgXK-D_mPU…" }
  ],
  "share_link": "https://www.google.com/search?ibp=htl;jobs&q=Software%20Engineer&htidocid=1TcMD-…",
  "query": "Software Engineer",
  "country": "us",
  "language": "en",
  "google_domain": "google.com",
  "total_jobs_found": 10,
  "pages_processed": 1
}

💰 Pricing

Each saved job costs $0.004, which is $4 per 1,000 jobs. A search that saves zero jobs has a result charge of zero. Compute, browser time, and proxy traffic are billed as platform usage on top.

Worked example: a 10-job search costs 10 x $0.004 = $0.04 in event fees. A billed staging run of that size cost about $0.062 in total, including browser compute and proxy.

❓ FAQ

The run saved nothing. Why?

The query may be too narrow, Google may have no listings for that country, or Google showed a traffic check. The run retries once after a traffic check; if it still sees one, it saves nothing and you can run it again.

There are fewer rows than the maximum.

The run stops when Google has no further listings for that search.

Which countries return nothing?

Google Jobs does not serve listings for Australia, New Zealand, Ireland, South Korea, Poland, Czech Republic, Turkey, Ukraine, Israel, Norway, Sweden, Finland, or the Baltic states. Those runs stop before a search and are not charged.

Do I need an account or proxy?

No account on any job board is needed. Datacenter proxies are the default.

Is it legal?

It reads public search pages. You are responsible for following Google's terms and the laws that apply to your use of the data.

Can I schedule it or use the API?

Yes. Schedule runs, start them through the API, and read the dataset in any export format.

⚠️ Limits

  • 🔢 Up to 100 jobs per run, about 10 per page. The actor compares the whole job lists from its Google sessions and keeps them in memory before it saves any, so the list is capped.
  • 🐢 Google answers plain HTTP with a script challenge, so this actor uses a remote browser. A run takes roughly 50 to 120 seconds in our tests (100 jobs in about 55 seconds when the first session gets through).
  • 🚧 Google shows a traffic check to many browser exits. The actor tries up to twelve fresh sessions (three at a time, exits in the searched country first, then US exits); if every one is checked the run fails with no rows and says so in its status. This happens more often when many runs start at once. Browser sessions always open www.google.com with your country code and location, which select the same market as the country domain. The date filter was not confirmed on a successful page during testing for the 24-hour option.
  • 🔗 Apply links are kept only when they belong to the open listing, so some rows have none. Listings after the first page usually have no apply links.
  • 💰 Salary, highlights, and apply links appear only when Google shows them.
  • 🌐 Public listings only.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.