JobStream — Greenhouse / Lever / Ashby Jobs Feed
Pricing
$2.50 / 1,000 job postings
JobStream — Greenhouse / Lever / Ashby Jobs Feed
Fresh, normalized, deduplicated job postings from Greenhouse, Lever, and Ashby public job boards. Tracks new / modified / expired across runs. Never bills you for zero results.
Pricing
$2.50 / 1,000 job postings
Rating
0.0
(0)
Developer
Leonid
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Fresh, normalized, deduplicated, change-tracked job postings pulled straight from the public Greenhouse, Lever, and Ashby APIs — no logins, no HTML scraping, no anti-bot. One clean schema across all three ATSs, with new / modified / expired tracking across runs.
Never bills you for zero results. If a board fails to fetch, JobStream skips it — it cannot report an empty run or charge you for jobs it couldn't load. You pay only for jobs actually delivered.
Features
- One unified schema across all three sources — title, company, parsed location, remote / hybrid, department, employment type, structured compensation, posted & updated timestamps, and a canonical apply URL.
- Deduplicated & change-tracked — every job carries
is_new,is_modified, andstatus(active / expired). Flip on Only changes to pull just the deltas — perfect for daily syncs and "new jobs today" alerts. - Reliable by design — public JSON endpoints (no anti-bot to break), plus a safeguard that refuses to wipe a board on a truncated/partial response. A failed fetch never expires your data and never produces a billable empty run.
- Bring your own boards, or use the bundled registry of 900+ validated companies (Stripe, Anthropic, Databricks, OpenAI, Spotify, and many more).
- Structured compensation wherever the ATS publishes it.
Input
{"sources": [{ "ats": "greenhouse", "token": "stripe", "company": "Stripe" },{ "ats": "lever", "token": "spotify", "company": "Spotify" },{ "ats": "ashby", "token": "openai", "company": "OpenAI" }],"fetchCompensation": true,"onlyChanges": false}
sources— the boards to pull. Each item is{ ats, token, company? }, whereatsisgreenhouse|lever|ashbyandtokenis the board slug (theXinboards.greenhouse.io/X,jobs.lever.co/X, orjobs.ashbyhq.com/X).useBundledRegistry— settrueto skipsourcesand poll the built-in list of 900+ companies. Narrow it withregistryAts(one ATS) andregistryLimit(cap).fetchCompensation,includeDescription,onlyChanges,maxWorkers— see the input editor for the full set of options.
Output
Each dataset item is one normalized job posting:
{"company": "Ramp","title": "Senior Software Engineer","location_raw": "New York","city": "New York", "region": "NY", "country": "US","remote": false, "workplace_type": "hybrid","department": "Engineering", "employment_type": "full_time","comp_min": 211400, "comp_max": 290600, "comp_currency": "USD", "comp_interval": "year","posted_at": "2026-05-11T20:00:11Z", "updated_at": "2026-05-11T20:00:11Z","apply_url": "https://jobs.ashbyhq.com/ramp/...","source_ats": "ashby","is_new": true, "is_modified": false, "status": "active"}
Items also include source_token, source_id, team, a stable dedup_key, and
first_seen / last_seen for change tracking.
Who it's for
Niche job boards that need fresh inventory, recruiters and HR-tech tools, labor-market analysts, and AI / RAG pipelines that need clean, current, structured job data.
Pricing
Pay per result — charged per job returned, and never for a run that returns nothing. Use Only changes to pull just new and modified jobs and keep recurring runs lean.