Company Jobs Feed — Greenhouse, Lever, Ashby & More avatar

Company Jobs Feed — Greenhouse, Lever, Ashby & More

Pricing

Pay per usage

Go to Apify Store
Company Jobs Feed — Greenhouse, Lever, Ashby & More

Company Jobs Feed — Greenhouse, Lever, Ashby & More

Pull open jobs from companies' official ATS career feeds (Greenhouse, Lever, Ashby, SmartRecruiters, Workable) into one normalized, deduplicated feed. Keyless public APIs. Zero-config returns live Stripe + Airbnb jobs. Hiring = buying intent for SDR lead-gen, recruiters, and VC deal-sourcing.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Bikram

Bikram

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Company Jobs Feed — Greenhouse, Lever, Ashby, SmartRecruiters & Workable

Pull open job postings straight from companies' own ATS career feeds and get one clean, normalized, deduplicated feed of every open role. Point it at a list of company slugs, pick the ATS they use (Greenhouse, Lever, Ashby, SmartRecruiters, or Workable), and the Actor returns each job mapped to the same set of fields — title, department, location, remote flag, employment type, posting date, compensation range (where the ATS exposes it), and direct job + apply URLs.

Run it with zero configuration to pull live Greenhouse jobs for Stripe and Airbnb.

What it does

Most companies host their careers page on a third-party Applicant Tracking System (ATS), and most of those ATSes expose a public, keyless JSON feed of the company's currently-open roles. This Actor reads those feeds directly — no login, no API key, no scraping of rendered HTML — and normalizes five different ATS formats into one consistent schema:

ATSPublic endpointAuth
Greenhousehttps://boards-api.greenhouse.io/v1/boards/{company}/jobs?content=trueNone
Leverhttps://api.lever.co/v0/postings/{company}?mode=jsonNone
Ashbyhttps://api.ashbyhq.com/posting-api/job-board/{company}?includeCompensation=trueNone
SmartRecruitershttps://api.smartrecruiters.com/v1/companies/{company}/postingsNone
Workablehttps://apply.workable.com/api/v1/widget/accounts/{company}None

Each ATS uses different field names, date formats, and structures. The Actor maps every record into one common schema, removes duplicates (on ats_source + job_id), sorts by posting date descending, and writes the result to your dataset — ready to export as JSON, CSV, or Excel, push to a webhook, or query from an AI agent over MCP.

Why a company jobs feed matters

Hiring is one of the strongest buying-intent and growth signals a company emits. A team that just opened ten roles is spending, scaling, and reorganizing — and that shows up in their ATS feed days or weeks before it shows up anywhere else.

  • SDRs & B2B sales — a company hiring a "RevOps Manager" or "VP of Demand Gen" is about to buy tooling in that category. Job feeds are a clean, timely lead-generation signal you can act on first.
  • Recruiters & sourcers — track exactly which roles a target company has open, in real time, without paying for an aggregator that's days stale.
  • VC & deal-sourcing — headcount growth by department is a leading indicator of traction. Watch a portfolio or a watchlist of startups and see who's scaling engineering vs. sales.
  • Competitive & market intelligence — see where competitors are investing (which teams they're growing, which markets they're hiring into, what comp they're posting).
  • Job boards & vertical aggregators — build a niche board sourced directly from companies' canonical feeds, with apply links that go straight to the source.

Input

Every field is optional. Empty input {} returns live Greenhouse jobs for Stripe + Airbnb.

FieldTypeDefaultDescription
atsstring"greenhouse"Which ATS the companies use: greenhouse, lever, ashby, smartrecruiters, or workable. All companies in one run must share the same ATS.
companiesarray["stripe","airbnb"]Company ATS slugs as they appear in the career-page URL (see per-ATS examples below).
includeDescriptionbooleanfalseInclude the full plain-text job description (description_plain). Off by default to keep items small.
maxJobsinteger200Cap on total job records output after dedupe.

A wrong slug returns an empty list with a clear warning in the log — the run does not crash, and other companies in the same run still return their jobs.

Zero-config (Stripe + Airbnb on Greenhouse):

{}

Greenhouse — multiple companies:

{ "ats": "greenhouse", "companies": ["stripe", "airbnb", "figma"] }

Lever:

{ "ats": "lever", "companies": ["spotify", "mistral"] }

Ashby (exposes compensation ranges):

{ "ats": "ashby", "companies": ["ramp", "openai", "notion"] }

SmartRecruiters:

{ "ats": "smartrecruiters", "companies": ["Visa"] }

Workable, with full descriptions:

{ "ats": "workable", "companies": ["zego"], "includeDescription": true }

Finding a company's slug

The slug is the company identifier in its ATS career-page URL:

  • Greenhouseboards.greenhouse.io/stripestripe
  • Leverjobs.lever.co/spotifyspotify
  • Ashbyjobs.ashbyhq.com/rampramp
  • SmartRecruiters — the company id in the postings API, e.g. Visa (note: case-sensitive)
  • Workableapply.workable.com/zegozego

Output schema

One normalized item per job. Missing fields are null — never fabricated.

FieldTypeDescription
companystringThe company slug you supplied.
ats_sourcestringgreenhouse · lever · ashby · smartrecruiters · workable.
job_idstringSource-unique posting identifier (used with ats_source for dedupe).
titlestringJob title.
departmentstringDepartment / team grouping, when the ATS provides it.
teamstringSub-team / function, when available.
locationstringOffice or location label as published.
is_remotebool / nulltrue / false from the ATS's remote flag (Ashby, SmartRecruiters, Workable, Lever) or derived from the location text (Greenhouse); null when unknown.
employment_typestringFull-time / contract / permanent, etc., when available.
posted_atstringPosting / publish date, ISO YYYY-MM-DD.
updated_atstringLast-updated date, ISO YYYY-MM-DD (Greenhouse only).
job_urlstringDirect link to the public job posting.
apply_urlstringDirect link to the application form.
comp_minnumber / nullMinimum posted salary (Ashby; Lever when present).
comp_maxnumber / nullMaximum posted salary.
currencystring / nullISO currency code for the comp range.
description_plainstringFull plain-text description — only present when includeDescription: true.
scraped_atstringISO timestamp of this run.

Sample item (Ashby, with compensation):

{
"company": "ramp",
"ats_source": "ashby",
"job_id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"title": "Security Engineer, Cloud",
"department": "Engineering",
"team": "Backend",
"location": "New York, NY (HQ)",
"is_remote": true,
"employment_type": "FullTime",
"posted_at": "2026-04-07",
"updated_at": null,
"job_url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"apply_url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application",
"comp_min": 211400,
"comp_max": 290600,
"currency": "USD",
"scraped_at": "2026-06-19T00:00:00+00:00"
}

Compensation coverage

Posted salary is only included when the company actually publishes it in its feed. Ashby exposes structured compensation reliably (when the role has a posted range), and Lever occasionally does via salaryRange. Greenhouse's board list, SmartRecruiters' postings list, and Workable's widget feed do not include salary, so comp_min / comp_max / currency are null for those sources.

Use cases

  • Buying-intent lead gen — watch a list of target accounts and surface new roles in categories that signal a purchase (RevOps, demand gen, data, security).
  • Recruiting intelligence — track exactly which roles a company has open, daily, straight from the source.
  • VC / deal sourcing — monitor headcount growth by department across a watchlist of startups.
  • Vertical job boards — source a niche board from companies' canonical ATS feeds with apply links that go to the source.
  • AI agents (MCP) — let an agent answer "what's open at Stripe and Ramp right now?" by calling this Actor live.

Run on a schedule (new-job alerts)

  1. Set ats and your companies list.
  2. Create an Apify Schedule — a daily run catches new postings within ~24h.
  3. Add a webhook to push results to email, Slack, a CRM, or your own system.

Use from Claude, Cursor & AI agents (MCP)

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/sse?actors=bikram07/multi-ats-jobs-feed",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}

Or call the API directly:

curl -X POST "https://api.apify.com/v2/acts/bikram07~multi-ats-jobs-feed/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ats":"ashby","companies":["ramp","notion"]}'

What it is NOT

  • Not LinkedIn, Indeed, or a job aggregator. It reads each company's own public ATS feed — you supply the company slugs. It does not search "all jobs everywhere."
  • You supply the companies. There is no global company directory; you tell it which company slugs to pull and which ATS they use.
  • One ATS per run. A single run pulls from one ATS. To combine Greenhouse + Lever + Ashby, run the Actor once per ATS (e.g. as separate scheduled tasks) and merge the datasets.
  • Public feeds only. It only sees roles the company has published to its public career feed. Internal, unlisted, or login-gated postings are not included.
  • No enrichment or scoring. Output is the ATS data, normalized. Fields a source doesn't publish (salary on Greenhouse, descriptions on SmartRecruiters/Workable widget) are left null, never invented.
  • Not affiliated with Greenhouse, Lever, Ashby, SmartRecruiters, or Workable. Independent tool built on their public career-feed APIs.

Built on the public career-feed APIs of Greenhouse, Lever, Ashby, SmartRecruiters, and Workable. Not affiliated with or endorsed by any of them.

Related searches: company jobs API · Greenhouse jobs scraper · Lever postings API · Ashby job board API · SmartRecruiters postings · Workable jobs feed · ATS jobs aggregator · hiring intent data · job postings for lead generation · recruiter sourcing feed · careers page scraper · normalized jobs feed