Skip to content
NightBreaker Studio

Guides · Job data

Export job listings from Greenhouse, Lever and Ashby to a spreadsheet

Identify the careers platform, choose between its public feed and a ready-made Actor, then check the export before using it.

Updated 2026-10-28 · 6 min read

You need a list of open roles, not twenty browser tabs. Company career pages often expose structured job data; the useful part is bringing those records into a consistent table while keeping the source and its gaps visible.

This guide covers a small export first. Once the result matches the company’s own page, you can extend the same approach to several employers.

Find the right starting point

Open a job from the company’s careers page and inspect its address or application link. The public board identifier is not necessarily the company’s trading name.

Address patternPlatformExample board
boards.greenhouse.io/stripe or job-boards.greenhouse.io/stripeGreenhousestripe
jobs.lever.co/palantirLeverpalantir
jobs.ashbyhq.com/rampAshbyramp

These are address examples, not a promise that a particular employer will keep the same board. For myworkdayjobs.com, use the Workday guide.

For one board: read the public feed

The Greenhouse Job Board API, Lever Postings API and Ashby Job Postings API document these requests. Replace the board name with the one you found.

curl "https://boards-api.greenhouse.io/v1/boards/stripe/jobs?content=true"
curl "https://api.lever.co/v0/postings/palantir?mode=json"
curl "https://api.ashbyhq.com/posting-api/job-board/ramp?includeCompensation=true"

Each response is JSON, with a different shape. To turn it into CSV yourself, select the fields you need, flatten nested locations and departments, strip description markup and handle pagination where required. A reachable feed does not grant unrestricted republication rights: check the source terms for your intended use.

For several boards: use one output format

Career Pages Jobs Scraper has connectors for Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio, Teamtailor, Breezy HR, Rippling, BambooHR and SAP SuccessFactors.

  1. Open the Actor in Apify and review its current pricing and run limits.
  2. Paste one career-page URL into Company career page URLs (companies). Start with maxJobsPerCompany: 20.
  3. For the first check, leave date and location filters empty. Add title keywords, exclusions, location or remote filters after checking the unfiltered sample.
  4. Run it. When it finishes, inspect the output and the run’s SUMMARY record before exporting CSV, Excel or JSON.

The shared fields include source, company, jobId, title, location, postedAt and url. Salary, date and remote status may be missing or derived differently by each source. A common column name does not make all source data equally complete.

Check the result before scaling

  • Open two or three exported URLs and compare title, location and description with the live listing.
  • Check SUMMARY.failures. A finished run can contain results from some boards while another board failed.
  • Compare counts only after accounting for filters and maxJobsPerCompany. Zero rows can mean no matches, a moved board or a retrieval problem.
  • Keep source, jobId, url and scrapedAt when combining exports.

Estimate by output, not company count. At the listed starting rate of $1.50 per 1,000 job results, 200 saved rows represent $0.30 in result charges. Check the Actor’s pricing for any startup charge, plan conditions and other applicable charges. Repeated exports can bill the same job again.

Open Career Pages Jobs Scraper

Turn an export into a watchlist

A daily run gives you snapshots. To detect new roles, compare stable identifiers with those already seen. A date filter alone is insufficient: some sources omit dates, and a rolling window overlaps previous runs. The hiring-alert guide explains the distinction and the delivery checks.

← More guides