← Health board

Google Jobs Scraper: New Job Alerts, Salaries & Apply Links

Google Jobs listings for many roles in many US cities in one run — salary, highlights, full description and direct apply links — with a new-jobs-only mode for daily alerts.

—insufficient data
Run it on Apify → verified nightly

Verification

n/agolden-diff success
0canary runs
1days since last update

Output fields

Authoritative field set from the dataset schema.

FieldType
job_idstring|null
titlestring|null
companystring|null
locationstring|null
other_locations_countinteger|null
viastring|null
salary_textstring|null
salary_minnumber|null
salary_maxnumber|null
salary_periodstring|null
salary_currencystring|null
schedule_typesarray|null
work_from_homeboolean|null
no_degree_mentionedboolean|null
benefit_tagsarray|null
other_tagsarray|null
qualificationsarray|null
responsibilitiesarray|null
benefitsarray|null
descriptionstring|null
apply_urlstring|null
employer_apply_urlstring|null
apply_optionsarray|null
search_querystring|null
search_locationstring|null
matched_searchstring|null
noticestring|null
notice_typestring|null
source_urlstring|null

Sample row

{
  "job_id": "ZrBruAaEW4Eb97eJAAAAAA==",
  "title": "Sr Software Engineer",
  "company": "Charles Schwab",
  "location": "Austin, TX",
  "other_locations_count": 2,
  "via": "Schwab Jobs",
  "salary_text": "164K–205K a year",
  "salary_min": 164000,
  "salary_max": 205000,
  "salary_period": "year",
  "salary_currency": null,
  "schedule_types": [
    "Full-time"
  ],
  "work_from_home": false,
  "no_degree_mentioned": true,
  "benefit_tags": [
    "Dental insurance",
    "Health insurance",
    "Paid time off"
  ],
  "qualifications": [
    "8+ years of software engineering experience"
  ],
  "responsibilities": [
    "Design, develop, and maintain software solutions using modern engineering practices"
  ],
  "benefits": [
    "In addition to the salary range, this role is also eligible for bonus or incentive opportunities"
  ],
  "description": "Your opportunity\nAt Schwab, you’re empowered to make an impact on your career…",
  "apply_url": "https://www.schwabjobs.com/job/austin/sr-software-engineer/33727/101909398560",
  "employer_apply_url": "https://www.schwabjobs.com/job/austin/sr-software-engineer/33727/101909398560",
  "apply_options": [
    {
      "source": "Schwab Jobs",
      "url": "https://www.schwabjobs.com/job/austin/sr-software-engineer/33727/101909398560",
      "is_job_board": false
    },
    {
      "source": "CareerBuilder",
      "url": "https://www.careerbuilder.com/job-details/sr-software-engineer-blockchain-ann-arbor-mi--34192420-ab6d-446d-b589-b215d70fe39c",
      "is_job_board": true
    }
  ],
  "search_query": "software engineer",
  "search_location": "Austin, TX",
  "matched_search": "software engineer jobs in Austin, TX",
  "source_url": "https://www.google.com/search?q=software%20engineer%20jobs%20in%20Austin%2C%20TX&udm=8&hl=en&gl=us"
}

Inputs

FieldTypeReqDefaultDescription
query string no — A role or keywords, e.g. 'registered nurse' or 'python developer'. Kept forever alongside 'Jobs to search for' — saved tasks and API callers send it.
queries array no ["registered nurse"] One or many roles in ONE run, e.g. 'registered nurse', 'medical assistant'. Every role is searched in every location below, and a job found by two searches is returned once.
location string no — A US city as 'City, ST', e.g. 'Chicago, IL'. Kept forever alongside 'Locations'.
locations array no ["Chicago, IL"] One or many US cities as 'City, ST' (e.g. 'Chicago, IL', 'Austin, TX'). Leave empty to search without a place. A city is what lets the Actor add nearby cities; a state or 'Remote' is searched as written, without them.
maxJobsPerSearch integer no 30 Cap PER role-and-location pair, not per run. Google shows 10 jobs per search, so the Actor runs more searches (nearby cities, then job types) until it has this many new jobs or runs out of searches. 10 costs one search.
postedWithin string no "any" Keep only jobs Google shows as posted within this window. Applied before billing. Jobs Google shows no age for are kept, so nothing disappears unexplained. The age itself is never included in the output.
onlyNewJobs boolean no false Remember every job this monitor has delivered and return (and bill) only jobs it has not sent before. Schedule the Actor daily with this on for a new-jobs feed. The memory is kept in your own Apify account (key-value store 'google-jobs-seen').
monitorName string no — Optional name for the 'only new jobs' memory, e.g. 'nurses-chicago'. Leave empty and the memory is tied to the exact roles and locations you search. Use the same name to share one memory across differently configured runs.
remoteOnly boolean no false Keep only jobs Google marks 'Work from home'. Applied before billing.
expandNearbyCities boolean no true Also search the largest cities around each US location (Round Rock and Georgetown around Austin). Each nearby city added 8–10 new jobs per search when tested.
nearbyCities integer no 8 How many nearby cities to add at most. They are only searched while the cap above is not yet reached.
nearbyRadiusMiles integer no 25 How far from each location a nearby city may be.
expandJobTypes boolean no true Also search entry level, remote, contract, internship, part time and senior variants of each role. Each added 4–10 new jobs per search when tested.
includeDescription boolean no true The full posting text (median ~4,000 characters). Turn off for a lighter dataset; highlights stay either way.

Pricing

Pay per result (job-listing) — no charge for empty runs.
Example: 1000 job listings at $0.0025/result ≈ $2.50.

FAQ

How many jobs can I get for one role in one city?

As many as Google has across the searches the Actor runs for it. Google shows 10 jobs per search and will not page further without a browser, so the Actor adds the largest nearby cities (up to 30, within the radius you set) and six job-type variants. On 2026-10-31, with 30 nearby cities and a 30-mile radius, one run returned 173 software-engineer jobs around Austin (33 searches), 305 around Chicago (37), and 281 and 354 registered-nurse jobs around Austin and Chicago. Set 'Maximum jobs per role and location' to stop sooner; 10 costs one search.

How does 'Only jobs not sent before' work?

Each run remembers the Google job IDs it delivered, in a key-value store named 'google-jobs-seen' in your own Apify account, under a key for this monitor — your 'Monitor name', or one derived from the roles and places you search. The next run skips those jobs before billing and searches further to fill your cap with new ones. Run twice back to back on 2026-10-31, the second run returned 100 different jobs. When nothing new exists you get one free row saying so. Delete the store to start over.

Why are there no posting dates in the rows?

Google shows an age ('3 days ago'), not a date, and our rows carry no dates. 'Posted within' still uses that age to filter before billing; listings Google shows no age for are kept rather than silently dropped. For a daily feed, 'Only jobs not sent before' is the more exact tool: it compares job IDs, not dates.

Are the apply links the real postings?

Yes. Google's apply buttons are redirect links; the Actor ships the posting URL Google holds for each button instead, with tracking parameters removed. Across 1,113 jobs on 2026-10-31, 4,583 of 4,617 apply options carried a URL and 1,107 jobs had at least one. Google sometimes groups a near-identical posting from another city or employer under one job, and those links are passed on exactly as Google lists them.

What is employer_apply_url?

An apply link on the employer's own careers site or applicant-tracking system, filled only when a distinctive word of the employer's name appears in that link's source or address. Many listings are on job boards only, so it was filled for 169 of 1,113 jobs on 2026-10-31; when no link is clearly the employer's it stays empty rather than guessed.

How often is a salary shown?

When Google shows one: 482 of 1,113 jobs on 2026-10-31. You get Google's wording plus min, max and period. Most US listings print no currency symbol, so salary_currency is set only when one appears.

Which locations work?

US cities written as 'City, ST' get nearby cities added from the US postal place list. Anything else — a state, 'Remote', or a non-US place — is searched exactly as written, without nearby cities. Searches run on Google's US site in English; other countries were not tested.

What happens when Google does not answer?

Each search is retried once. A role and place whose searches all fail returns one free 'blocked' row; a search Google answers with no listings returns a free 'no_results' row. Nothing is billed for either.

Do I pay for the extra searches?

No. You pay per job returned after filters, at $2.50 per 1,000. A run that needs 30 searches to find 100 new jobs costs the same as one that needs 10.

Guides & use cases

Related actors