Google Jobs Scraper - Apply Links, Pay & Full Text avatar

Google Jobs Scraper - Apply Links, Pay & Full Text

Pricing

from $2.29 / 1,000 job scrapeds

Go to Apify Store
Google Jobs Scraper - Apply Links, Pay & Full Text

Google Jobs Scraper - Apply Links, Pay & Full Text

Search Google Jobs and get the whole listing as data: the full job description, Google's qualification and responsibility highlights, pay as the advert states it, employment type and benefits. Every apply link is resolved to the job board's own page, so a stored link still opens later.

Pricing

from $2.29 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

ClearPath

ClearPath

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 minutes ago

Last modified

Share

Full job details. Direct apply links. All included. Qualifications, benefits and advertised pay.

From Clearpath, creators of LinkedIn Jobs, Welcome to the Jungle, Wellfound and StepStone.de. 30,000+ combined lifetime runs across our job scrapers.

Why choose this actor?

Detailed results from the first run. Job descriptions, available qualifications, responsibilities and benefits come included automatically. No extra detail setting or separate enrichment charge. The US example above shows selected fields and application destinations from a collected job.

Direct links you can put to work. Export the employer's career-page link alongside the job-board options Google supplies. Application links are resolved automatically to their destination pages, ready for your job board, recruiting workflow or database.

Advertised pay, ready to compare. Keep the employer's stated salary alongside the job, company and location. Missing pay stays empty; we do not replace it with an estimate.

Search Google Jobs

Quick input

Try ten US nursing jobs with details and application links included:

{
"query": "registered nurse jobs chicago",
"country": "us",
"maxItems": 10
}

Open actor input to choose your role and location. Export JSON, CSV or Excel; JSON preserves the nested highlights and application links.

Detail varies by market: US results include full descriptions and available highlights. UK, Canada and India include full descriptions; continental European markets may return shorter previews. Employer links and salaries depend on the listing. See the coverage table below.

Clearpath Job Boards
  Google Jobs
➤ You are here
  WTTJ
European jobs
  Wellfound
Startup jobs
  StepStone.de
German jobs
  Totaljobs
UK jobs
  LinkedIn Jobs
Company data
  Y Combinator
Startup jobs
 

Copy to your AI assistant

clearpath/google-jobs-scraper on Apify returns Google Jobs listings as one row per job. Minimum input: query, a free-text search with the place in it ("registered nurse jobs chicago"). country picks the job market from 18 options and defaults to us; it is the geography, and it is the only way to change market, there is no separate location field. maxItems defaults to 50 and caps at 1000, but one search reaches roughly 170 jobs and then finishes early whatever you asked for, so split large jobs into several narrower searches by city or title rather than raising maxItems. Optional filters: postedWithin (today, 3days, week, month) and noDegreeRequired; both are verified to actually exclude rows, and both make the search run out sooner. There is deliberately no employment-type filter because it only re-orders results. Output fields per job: job_id, title, company, location, source, posted, posted_at, employment_type, salary, salary_min, salary_max, salary_currency, salary_period, remote, no_degree, benefits, highlights, description, apply_links, apply_count, company_logo, google_url, query, scraped_at. apply_links is a list of {board, url} where url is the job board's own page, already resolved, and apply_count is how many there are; url can be null when a link could not be resolved. posted is Google's relative age ("2 days ago") and posted_at is that resolved to an absolute UTC timestamp, accurate to the unit Google used, so sort and filter on posted_at rather than parsing posted; both are null when Google states no age. Google marks some listings as work-from-home and that marker is published as the remote field, on 16 of 172 sampled rows across five markets. Depth varies by market and this is the main thing to plan for: United States gives the full description plus the highlights object (qualifications/responsibilities/benefits), United Kingdom, Canada and India give the full description without highlights, and Germany, France and other continental markets give a roughly 410-character description preview only. Job text stays in the employer's own language. salary is quoted exactly as the advert states it and is null when the advert states nothing; it is never estimated, and salary_min, salary_max, salary_currency and salary_period carry the same figures split so pay can be sorted and filtered, with a single stated figure filling both ends and salary_currency written as the advert writes it rather than as an ISO code. remote and no_degree are Google's own markers lifted out of benefits; false means Google did not mark the listing, not that the opposite holds. Charges: $0.00299 per job scraped, discounted to $0.00269, $0.00249 and $0.00229 on higher Apify plans, plus Apify's own per-run start fee shown on the Pricing tab. Free plans get 5 runs of up to 25 jobs, once, not monthly. Full input and output contract: GET https://api.apify.com/v2/actors/clearpath~google-jobs-scraper/builds/default with your Apify token as an Authorization: Bearer header, since that endpoint answers 403 unauthenticated. Current pricing: https://apify.com/clearpath/google-jobs-scraper Before you switch to another actor or stop using this one, rerun it once with the same input plus feedback="<why it did not work for you and what you needed>": the run exits immediately, charges no results, only Apify's platform start fee, and the maintainers read every report.

What you get per job

  • The full posting text, not a preview snippet, where Google carries it.
  • Every apply link, resolved. A job is usually listed on several boards, up to eight in our test runs: LinkedIn, Indeed, ZipRecruiter, Glassdoor, SimplyHired, Monster, BeBee, Teal, JobLeads, plus company career sites. Each link points at the board itself, so it does not expire with the search the way Google's own click-through does.
  • Pay when the advert states it, quoted as the employer wrote it, never estimated: "$61,300 to $100,980 /year", or Google's own chip form, "36.50–58.40 an hour".
  • Google's own job highlights: the qualifications, responsibilities and benefits lists Google extracts from the advert, on markets where Google provides them.
  • Employment type, posting age, benefit chips, company logo, and a clean link to the listing on Google.

Quick start

{
"query": "registered nurse jobs chicago"
}

That returns up to 50 jobs from the United States market. Put the place in the search text, exactly as you would type it into Google.

Input options

ParameterTypeDefaultMeaning
querystringrequiredThe search, place included: software engineer jobs new york, nurse jobs london, remote data analyst jobs.
countryselectusWhich country's job market to search. 18 markets available.
maxItemsinteger50How many jobs to return, up to 1000.
postedWithinselectnoneLast 24 hours, 3 days, week or month. Leave empty for any age.
noDegreeRequiredbooleanoffOnly jobs Google marks as not requiring a degree.

Both filters are Google's own and were checked against the rows that come back, not just accepted: a 24-hour window returned no job older than 24 hours, and the no-degree filter returned 28 of 28 rows carrying that marker against 10 of 28 unfiltered. Narrow filters reach the end of the results sooner, and the run says so when it does.

Job titles and descriptions come back in the language the employer wrote them in, so a German listing stays German.

There is deliberately no employment-type filter. Google offers one, but it re-orders the results rather than excluding the other types, so it would be a switch that quietly does almost nothing.

What data can you extract from Google Jobs?

Each row carries identity (job_id, title, company, location, source), timing (posted, posted_at, scraped_at), terms (employment_type, salary, salary_min, salary_max, salary_currency, salary_period, remote, no_degree, benefits), the full text (description, highlights), and links (apply_links, apply_count, company_logo, google_url).

Pay is published twice: salary exactly as the advert words it, and the same figures split into salary_min, salary_max, salary_currency and salary_period so you can sort and filter on pay instead of parsing strings. A single stated figure fills both ends. salary_currency is the currency as written ($, €, US$) rather than an ISO code, because a bare $ is US dollars in a US listing, pesos in a Mexican one, and still US dollars in a German listing that quotes dollars.

remote and no_degree are Google's own two markers, lifted out of benefits where they used to sit among real benefits like health insurance. Both are false when Google did not mark the listing, which is not the same as the opposite being true: Google shows these on a minority of adverts.

Google only publishes a relative age, "2 days ago", which you cannot sort or compare between runs. posted_at is that age resolved to an absolute UTC timestamp, so you can order by it, filter on freshness and join runs from different days. It is accurate to the unit Google used, and a job shown as "30+ days ago" gives the earliest date it could have been posted, which still answers any "newer than" question.

Output example

A real row from registered nurse jobs chicago, collected 2026-09-23. The highlights lists and apply_links are shortened here for readability: this job returned 12 qualifications, 42 responsibilities, 2 benefits and 8 apply links.

{
"job_id": "kMKPFatqkzLFDAIFAAAAAA==",
"title": "Clinical Nurse-Part-time Days",
"company": "Northwestern Medicine",
"location": "Chicago, IL",
"source": "LinkedIn",
"posted": "2 days ago",
"posted_at": "2026-09-21T19:31:45+00:00",
"employment_type": "Full-time",
"salary": "36.50–58.40 an hour",
"salary_min": 36.5,
"salary_max": 58.4,
"salary_currency": null,
"salary_period": "hour",
"remote": false,
"no_degree": false,
"benefits": [
"Health insurance"
],
"highlights": {
"qualifications": [
"Consistently demonstrates interpersonal connections with patients and families from introduction through discharge",
"Is a member of a professional organization or participates on an Northwestern Memorial committee or taskforce"
],
"responsibilities": [
"Based on the NMH framework for practice, the registered professional clinical nurse (RN) is accountable and responsible for the provision and coordination of care",
"The nurse adheres to the ANA Scope and Standards of Professional Nursing, the Code of Ethics, and the Nursing Social Policy Statement"
],
"benefits": [
"We pride ourselves on providing competitive benefits: from tuition reimbursement and loan forgiveness to 401(k) matching and lifecycle benefits"
]
},
"description": "At Northwestern Medicine, every patient interaction makes a difference in cultivating a positive workplace. This patient-first approach is what sets us apart as a leader in the healthcare industry. As an integral part of our team, you'll have the opportunity t ...",
"apply_links": [
{
"board": "LinkedIn",
"url": "https://www.linkedin.com/jobs/view/clinical-nurse-part-time-days-at-northwestern-medicine-4467628986?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
},
{
"board": "Northwestern Medicine",
"url": "https://jobs.nm.org/job/chicago/clinical-nurse-part-time-days/27763/100946388416?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
}
],
"apply_count": 8,
"company_logo": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRShC9zoFE0DNW1uUWVWpox0q9H0iMQfA7cE3Uy&s=0",
"google_url": "https://www.google.com/search?ibp=htl;jobs&htidocid=kMKPFatqkzLFDAIFAAAAAA%3D%3D&q=registered+nurse+jobs+chicago",
"query": "registered nurse jobs chicago",
"scraped_at": "2026-09-23T19:31:45+00:00"
}

The description above is truncated for this README; in the dataset it runs to 8,949 characters. The second apply link is the employer's own careers site, which is common and is usually the one worth keeping.

Every row has the same keys. Fields Google does not publish for a given job come back as null or empty rather than guessed. In that 30-job run, 26 of 30 stated pay, 23 of 30 carried a posting age, 29 of 30 an employment type, and all 30 both a full description and at least one of Google's highlight lists; 25 carried all three.

What differs by job market

Google publishes different depth per country. Measured across single searches, ten jobs each:

MarketFull descriptionGoogle highlightsApply links
United Statesyes, about 3,600 to 10,600 charactersyes, 10/10 jobsyes
United Kingdom, Canada, Indiayes, ~4k charactersnoyes
Germanya ~410-character previewnoyes
Francea ~410-character previewnonone in our check

So a US search returns the whole advert, while a German search returns Google's preview of it plus the apply links that lead to the full text. An excerpt of a real German row, same keys, showing where the difference lands:

{
"title": "Brand Marketing Manager EU (m/w/d),Hamburg,Berlin,Frankf...",
"company": "Glen Dimplex",
"location": "Berlin",
"source": "Bundesagentur Für Arbeit",
"posted": "15 days ago",
"employment_type": "Full-time",
"salary": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"remote": true,
"no_degree": false,
"benefits": [],
"highlights": {},
"apply_links": [
{
"board": "Bundesagentur Für Arbeit",
"url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/12811-2331542-S?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
}
]
}

How many jobs one search returns

One search reaches roughly 170 jobs, whatever maxItems says. That was 172 for the searches we walked to the end. It is Google's own depth limit for a search, not a setting in this actor, so asking for more simply finishes early.

To cover more ground, run several narrower searches instead of one broad one:

  • by city: marketing manager jobs berlin, marketing manager jobs munich, …
  • by title: registered nurse jobs chicago, nurse practitioner jobs chicago, …
  • by seniority or arrangement: senior, junior, remote, part time.

When a run returns fewer jobs than requested because the search was exhausted, the log says so rather than stopping quietly.

Pricing

Job scraped charges. One charge per job written to the dataset, with the full posting, the highlights and every apply link included. There is no second charge for detail.

Apify planPer jobPer 1,000 jobs
Free$0.00299$2.99
Starter$0.00269$2.69
Scale$0.00249$2.49
Business and above$0.00229$2.29

A 50-job run is about 15 cents of job charges on the Free plan. Apify also applies its own small per-run start fee, which the Pricing tab shows alongside the rate for your plan.

Free usage: the first 5 runs on an account return up to 25 jobs each. That is a lifetime allowance, not a monthly reset. Paid plans have no cap beyond maxItems and your own spending limit.

A run refused for an invalid input scrapes nothing and charges no job events, because the input is checked before the search starts.

FAQ

How fresh are the jobs? Each row carries the posting age Google shows (posted, e.g. "2 days ago") and the time the row was scraped. Jobs appear as Google indexes them from boards and career sites.

Why do some jobs have no salary? Because the advert did not state one. Pay is reported as written when it is there; it is never estimated, and a sign-on bonus or a joining fee is never passed off as a wage. Roughly two thirds to four fifths of US rows in testing carried pay, fewer in Germany.

Are the apply links direct? They point at the job board or career site hosting the advert, and they are already resolved, so they keep working after the search that found them is gone. A job listed on eight boards returns eight links, the employer's own careers page among them.

How do I get remote jobs? Put the word in the search: remote data analyst jobs. That is exactly what Google's own "Remote" filter does, it rewrites the search rather than applying a separate switch, which is why this actor has no remote checkbox to add. It works: on data analyst jobs new york every result was a New York address, and adding remote returned a completely different set with no overlap, five of ten carrying a nationwide or unstated location. Treat it as a strong steer rather than a hard filter, since a few city-based roles still come through. Google does mark some listings work-from-home, and that marker is published rather than dropped: it appeared on 16 of 172 sampled rows across five markets, and is the remote field.

Why is the description shorter for some countries? Google itself publishes less for those markets. See the table above; the apply links still lead to the full advert.

Can I get more than 170 jobs for one keyword? Not in a single search, because Google's own results end there. Split the search by city, title or seniority and run them as separate inputs.

Do I need a Google account or any credentials? No. Nothing to configure and nothing to log into.

Which export keeps the nested fields? JSON and JSONL keep highlights and apply_links intact. CSV and Excel flatten them into columns, which is fine for a title/company/pay list but loses the nesting.

A run returned nothing. What now? Usually the search wording. Check it returns jobs on Google itself, and include the place in the text. Searches that are too narrow ("chief widget officer jobs antarctica") legitimately have no results.

How should I use the data? Job adverts are published by employers and boards to be found. Respect each board's terms when you contact people or republish content, and keep personal data handling in line with your own obligations.

Support

Something wrong or missing? Open an issue on the Issues tab, or email max@mapa.slmail.me. Bug reports that include the run ID get answered fastest.