Google Search Careers Scraper - one job board, in full detail
Most job data is thin by design. An aggregator shows a title, a company and a location, because that is all a results row needs to be clickable. The trouble starts when you want to analyse rather than browse: to know what a role actually requires, how one employer describes seniority, or which of its bets are being staffed. The Google Search Careers Scraper reads Alphabet's own careers site and returns each opening as a row carrying the full posting - the description, the minimum and preferred qualifications, the responsibilities as written, the location, the date and a direct application link. Submit up to 1,000 queries in a run, set language and country, choose how deep to go per query, and export as CSV, JSON or Excel.
The ten columns on this page are measured rather than assumed. They are the header row of real Livescraper careers exports, identical across 11 runs, and every fill rate quoted comes from the 131 rows those runs returned - covering 68 distinct job titles and 52 distinct locations. That matters because the reference for this endpoint documents the request side in full and does not enumerate the response columns at all, so a page that simply repeated the docs could not have told you what arrives. Six columns were populated on every row: query, title, company, location, posted and description. Three more - apply_url, qualifications and responsibilities - appeared on 104 of the 131. The tenth, job_id, is named in the header but was empty on every row and does not appear in the JSON export at all; it is listed here with that stated plainly rather than quietly dropped, because a column that exists and never fills is exactly the kind of thing that wastes an afternoon.
Four measured behaviours are worth knowing before you write an importer. First, those three partial columns are not independently sparse - they are the same 104 rows every time, with not one row carrying a partial set, so they behave as a single optional block and one presence check covers all three. Second, posted is a genuine ISO date in all 131 rows, with no relative strings mixed in, so it parses and sorts without normalisation; our sample ran from July 2025 to July 2026, which shows postings persist well beyond a few weeks. Third, location is a list hiding in a string: a role open in several offices puts all of them in one cell joined by a pipe, and one row in our sample carried seventeen that way, so split before you group by city or your geography will be nonsense. Fourth, company is not a constant - the careers site covers the Alphabet group, and alongside Google we saw GFiber, Verily Life Sciences, Wing, Waymo and YouTube.
Typical uses follow from the depth. Careers advisers and candidates read the qualifications column to replace folklore about the hiring bar with the text of the bar itself, minimum and preferred separated as the employer separates them. People and rewards teams sweep the whole board and read how responsibilities scale across levels within one job family, which is a sounder input to a levelling framework than a title ladder borrowed from elsewhere. Strategy teams re-run on a cadence and treat the result as a time series, watching where headcount is being added across the group - a cluster of new roles at one subsidiary in one region is a signal that tends to precede the announcement. One further note on input: a plain search term works, and in our runs a filtered careers URL pasted directly also worked and returned its result set as rows. The published reference describes only text queries, so treat the URL route as observed rather than promised, and confirm it on the free tier. Your first 500 rows cost nothing and need no credit card.