JobStream — Greenhouse / Lever / Ashby Jobs Feed avatar

JobStream — Greenhouse / Lever / Ashby Jobs Feed

Pricing

$2.50 / 1,000 job postings

Go to Apify Store
JobStream — Greenhouse / Lever / Ashby Jobs Feed

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

Leonid

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

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, and status (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? }, where ats is greenhouse | lever | ashby and token is the board slug (the X in boards.greenhouse.io/X, jobs.lever.co/X, or jobs.ashbyhq.com/X).
  • useBundledRegistry — set true to skip sources and poll the built-in list of 900+ companies. Narrow it with registryAts (one ATS) and registryLimit (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.