Google Careers Scraper avatar

Google Careers Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Google Careers Scraper

Google Careers Scraper

Extract public Google Careers job postings with structured qualifications, responsibilities, compensation, work arrangement, and application details when published.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Google API

Google API

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Categories

Share

Extract public job listings from Google Careers. Search records include job identity, aliases, locations, experience labels, description and qualification text, responsibilities, skills explicitly mentioned in the posting, and public job/application links. Optional detail-page enrichment adds source-published compensation, benefits, and interview details when available.

The Actor uses bounded direct HTTPS requests and the page's public serialized job data plus rendered job-card metadata. It does not sign in, submit applications, solve CAPTCHAs, or bypass access controls.

Use cases

  • Build a lightweight public Google job feed for recruiting research.
  • Track public job titles and locations for a bounded set of queries.
  • Export qualification and detail-page links for manual review.

Quick start

  1. Open the Actor input tab.
  2. Add queries, locations, or approved startUrls.
  3. Set maxItems and, if needed, maxPages.
  4. Run the Actor and review the dataset and run summary.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Input

Custom startUrls (or the sourceUrls, urls, or url aliases) take precedence over generated URLs. Without a custom URL, each query/location/company combination is converted into a public results URL. If no source inputs are supplied, the default Google Careers results page is used.

InputDescription
queriesArray of job-title or keyword phrases. query and searchQuery are aliases.
locationsArray of location phrases used in generated URLs and row filtering. location is an alias.
companiesArray of company phrases used in generated URLs and row filtering. company is an alias.
startUrlsApproved https://www.google.com/about/careers/applications/jobs/results/... URLs.
maxItemsGlobal normal-row limit, 1–500; default 20.
maxPagesMaximum public result pages per source, 1–20; default 1.
startPageOne-based starting page, 1–100; default 1.
keywordCase-insensitive row filter across public job text.
experienceLevelCase-insensitive filter such as Early, Mid, or Advanced.
sortByrecommended, title_asc, or location_asc.
includeDescriptionKeep full public description text and sanitized HTML; default true.
includeQualificationsKeep public qualification/responsibility arrays; default true.
includeApplyUrlKeep the public application route; default true.
includeDetails / maxDetailItemsOptionally enrich a bounded number of public detail pages; detail fetching is disabled by default.
proxyConfigurationAccepted for compatibility but direct fetch remains in use; credentials are never logged.
pageCompatibility alias for startPage.

maxItems is global across all input sources. maxPages applies per source. A positive maxDetailItems requires includeDetails=true.

Dataset fields

Each dataset record contains source-backed job-posting data. Depending on what the public posting contains, it can include:

GroupFields
IdentityjobId, title, jobTitle, company, companyName, employerName
Locations and rolelocation, jobLocation, locations, experienceLevel, seniorityLevel, experienceYears, employmentType, workArrangement, workArrangementText
Full postingdescription, descriptionText, descriptionHtml, descriptionSections, minimumQualifications, minimumQualificationsText, preferredQualifications, preferredQualificationsText, responsibilities, responsibilitiesText, skills, educationRequirements, requiredLanguages
Compensationsalary, salaryText, salaryMin, salaryMax, salaryValue, salaryCurrency, salaryPeriod, salaryType, bonusText, bonusPercent, equityIncluded, benefitsIncluded, benefitsUrl
Application window, interview, and linksapplicationWindowText, applicationWindowOpenThroughDate, applicationWindowDateQualifier, interviewRequirement, interviewRequirementText, detailUrl, jobUrl, applyUrl, applicationUrl, applicationType, applyOptions, isActive

Optional values are omitted when the source does not provide them; unknown booleans are not coerced to false. Salary bounds and work/interview classifications are populated only from explicit public wording. Application-window dates are extracted only from the detail-page statement; the original wording and qualifiers such as “at least” are retained so a lower-bound date is not presented as a guaranteed closing deadline.

descriptionHtml preserves full source prose and paragraph/list/emphasis markup, removing active content, attributes, and expansion controls. experienceYears summarizes minimum qualifications only: its lower bound is the lowest mentioned specialist or alternative requirement, not necessarily the overall career-experience requirement; retain the accompanying text for context.

Blocked, empty, invalid, and failed requests do not create job records. Check the run summary and logs for the collection status.

Example input

{
"queries": ["data engineer", "technical program manager"],
"locations": ["New York", "Dublin"],
"maxItems": 10,
"maxPages": 2,
"sortBy": "title_asc"
}

Example output

The values below illustrate the shape and aliases; optional fields are only present when the live posting publishes supporting content.

{
"jobId": "123456789",
"title": "Senior Data Engineer",
"jobTitle": "Senior Data Engineer",
"company": "Google",
"companyName": "Google",
"employerName": "Google",
"location": "Mountain View, CA, USA",
"jobLocation": "Mountain View, CA, USA",
"locations": ["Mountain View, CA, USA", "Sunnyvale, CA, USA"],
"experienceLevel": "Mid",
"seniorityLevel": "Mid",
"experienceYears": { "min": 2, "max": null, "text": "2 years of experience with software development." },
"workArrangement": "remote",
"workArrangementText": "Remote eligible",
"description": "Build reliable data systems that help teams work with information at scale.",
"descriptionText": "Build reliable data systems that help teams work with information at scale.",
"descriptionSections": [{ "title": "Responsibilities", "text": "Build and operate reliable data pipelines.", "items": ["Build and operate reliable data pipelines."] }],
"minimumQualifications": ["Bachelor's degree or equivalent practical experience."],
"minimumQualificationsText": "Bachelor's degree or equivalent practical experience.",
"preferredQualifications": ["Experience designing distributed systems."],
"preferredQualificationsText": "Experience designing distributed systems.",
"responsibilities": ["Build and operate reliable data pipelines."],
"responsibilitiesText": "Build and operate reliable data pipelines.",
"skills": ["Python", "Distributed Systems"],
"educationRequirements": ["Bachelor's degree or equivalent practical experience."],
"salary": "US: $120000 - $160000 (USD) + 15% bonus target + equity + benefits",
"salaryText": "US: $120000 - $160000 (USD) + 15% bonus target + equity + benefits",
"salaryMin": 120000,
"salaryMax": 160000,
"salaryValue": 140000,
"salaryCurrency": "USD",
"salaryType": "employer_stated",
"bonusText": "15% bonus target",
"bonusPercent": 15,
"equityIncluded": true,
"benefitsIncluded": true,
"benefitsUrl": "https://www.google.com/about/careers/applications/benefits/",
"interviewRequirement": "in_person_interviews",
"interviewRequirementText": "In most instances, this position requires in-person interviews as part of the hiring process.",
"applicationWindowText": "The application window will be open until at least October 12, 2026. This opportunity will remain online based on business needs which may be before or after the specified date.",
"applicationWindowOpenThroughDate": "2026-10-12",
"applicationWindowDateQualifier": "at_least",
"detailUrl": "https://www.google.com/about/careers/applications/jobs/results/123456789-senior-data-engineer",
"jobUrl": "https://www.google.com/about/careers/applications/jobs/results/123456789-senior-data-engineer",
"applyUrl": "https://www.google.com/about/careers/applications/apply?jobId=opaque",
"applicationUrl": "https://www.google.com/about/careers/applications/apply?jobId=opaque",
"applicationType": "Google Careers",
"applyOptions": [{ "platform": "Google Careers", "originalUrl": "https://www.google.com/about/careers/applications/apply?jobId=opaque", "resolvedUrl": "https://www.google.com/about/careers/applications/apply?jobId=opaque", "destinationDomain": "www.google.com", "isEmployerSite": true, "directApply": true }],
"isActive": true
}

Run totals and source issues are available separately from job records in the Output tab.

Cost and limits

The Actor collects a bounded number of public results pages and can make additional detail requests when enrichment is enabled. Keep maxItems, maxPages, and maxDetailItems small for exploratory runs. Public pages can rate-limit automated requests; check the run summary and logs if a run stops early.

FAQ

Does this submit an application?

No. applyUrl is a public link for manual follow-up only.

Can I use a custom filtered results URL?

Yes. Pass an approved Google Careers results URL in startUrls. URLs with credentials or non-Careers hosts are rejected.

Why is a run empty or blocked?

Check the run summary and logs for access limits or source availability. Also confirm that your query, location, company, and filters match the public jobs you expect.

Disclaimer

Google Careers content, availability, job descriptions, locations, and application links can change. Confirm current details on the public Google Careers page before relying on a record.