Only the new jobs: a daily Greenhouse, Lever and Ashby feed with Python and GitHub Actions
Description and use
An automated daily feed of new jobs from Greenhouse, Lever and Ashby using Python and GitHub Actions, storing all seen jobs in a CSV and outputting only new ones.
Problem
Need a daily feed that lists only new job postings from Greenhouse, Lever and Ashby boards.
Outcome
The repo now produces two CSVs: one with all seen jobs and one with only new jobs each run, without needing a database or hosting.
Workflow
- Create boards.txt listing boards to watch
- Run jobs_feed.py daily via GitHub Actions
- Script reads each board’s JSON endpoint
- Generate a stable key per job (ats:board:id)
- Load data/jobs.csv of seen keys
- Append new jobs to data/new_jobs.csv and update data/jobs.csv
- Commit CSVs to repo
Evidence
The useful version is a feed: check the same boards every morning and see only the postings that appeared since yesterday.
A job is new when its key is not in that file.
GitHub Actions runs it daily and commits the two CSVs.
- Record date: 2026-11-02T02:43:56.485Z