DEV Community

Cover image for Google Jobs listings as a CSV for $0.004 a job
Zachary Bucheister
Zachary Bucheister

Posted on

Google Jobs listings as a CSV for $0.004 a job

Google's Jobs tab aggregates Indeed, LinkedIn, Glassdoor and company career pages into one list, but it has no export and no API. I built a small Apify Actor that reads it and gives you one clean row per job. Here is how to get a CSV out of it in five minutes.

1. Run a search

Open https://apify.com/vibermacher/google-jobs, sign in (a free Apify account comes with monthly credit), and fill in:

  • query: registered nurse
  • location: Houston,Texas,United States (City,Region,Country is the most precise form)
  • country: us (also gb, ca, in)

Click Start. Rows appear in the Output tab as they are read, about 30 per search. Or start from a ready-made example and change nothing: registered nurse, Houston, software engineer, New York, data analyst, London, software developer, Toronto, software engineer, Bengaluru.

2. Export

Output tab → Export → CSV (or JSON, Excel). Every row has the title, company, parsed location, posted date as YYYY-MM-DD, the salary split into salary_min, salary_max, salary_currency and salary_period, the employment type, every apply link with its board, the full description and Google's own job id for deduping.

3. Or call it from code

curl -X POST "https://api.apify.com/v2/acts/vibermacher~google-jobs/run-sync-get-dataset-items?format=csv" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"registered nurse","location":"Houston,Texas,United States","country":"us"}' \
  -o jobs.csv
Enter fullscreen mode Exit fullscreen mode

Pass searches (a list of query/location/country objects) to run several searches in one call; a job two searches both find comes back once.

What it costs and where it stops

USD 0.004 per row, charged as rows are written, plus a small start fee. Set a maximum charge on the run and it stops cleanly at it. Honest limits: about 30 jobs per search (Google's infinite scroll is not available through the proxy), four countries, no job-type filter in the input (filter on employment_type in the output). Salaries are exactly what Google shows; when Google's own label does not fit the amount, the row says so instead of guessing.

If a run is blocked it fails and says so rather than returning empty "successes", and you only pay for rows written.

Top comments (0)