Multi-ATS Job Feed Aggregator (Greenhouse, Lever, Ashby)
Pricing
from $2.00 / 1,000 job posting retrieveds
Multi-ATS Job Feed Aggregator (Greenhouse, Lever, Ashby)
Fetch open job postings from Greenhouse, Lever, and Ashby company career boards via their own public JSON APIs. One normalized record schema across all three platforms. No personal data, contact info in descriptions stripped by default.
Pricing
from $2.00 / 1,000 job posting retrieveds
Rating
0.0
(0)
Developer
Inn Corp
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Multi-ATS Job Feed Aggregator
Give it board identifiers for Greenhouse, Lever, and Ashby and get back one normalized record shape across all three, contact info stripped out of the description text by default. Real demand exists for this kind of feed, and the incumbents we checked were inconsistently rated, so the gap is not data access, it is a normalized, trustworthy schema. This Actor: one schema instead of three raw ones, honest nulls instead of guesses, and a courtesy privacy default we haven't seen offered elsewhere in the category.
What it does
- Give it board tokens/slugs/names for any mix of Greenhouse, Lever, and Ashby career boards.
- Get back one job record per posting, same field names regardless of which
platform it came from:
platform,boardId,jobId,title,department,location,remote,employmentType,postedDate,url,description,applyUrl,fetchedAt. - Full job description text included by default (
includeDescription), fetched in the same request this Actor already makes per board on all three platforms, so turning it off saves no requests, only output size. - Emails and phone-number-shaped text found inside description text are
regex-stripped by default (
stripContactInfo), a courtesy default we haven't seen offered by comparable actors in this category. - Deduped within each board by the platform's own job ID.
- A bad board identifier produces one clean warning; the run continues with every other board, and nothing is charged for the board that failed.
What it deliberately does not do
- No fourth platform faked. Workable was evaluated for v1 and dropped. See "What we verified" below for the full evidence trail. Nothing pretends to support it.
- No invented fields. Every value comes straight from the platform's own
response. The two fields that are lightly derived, not invented, are
documented:
remote(Ashby returns it directly asisRemote; Greenhouse and Lever do not expose a boolean at all, so it is set from whether the platform's own location/workplace text says "remote", and leftnullwhen there is nothing to check) and GreenhouseemploymentType(Greenhouse's API has no standard field for it; if the company published a custom metadata field literally named "Employment Type" it is used, otherwise the field isnull, never guessed). - No guarantee on contact-info stripping. It is a regex courtesy, not a compliance control: common email and phone shapes are caught, unusual formats might not be. Read it as "we strip what we find," not "we guarantee none remains."
- No candidate or applicant data, ever. These endpoints cannot return it even if asked; see Ethics below.
What we verified (2026-08-25)
Every platform below was hit live before any code was written, against real company boards, not remembered from documentation:
- Greenhouse —
boards-api.greenhouse.io/v1/boards/{token}/jobs?content=true, no auth. Verified againstgitlab(210 open roles) androbinhood(258). Thecontent=trueflag is a live-confirmed, official query parameter that returns each job's departments, offices, and full description HTML in the same list response — no per-job detail request needed. - Lever —
api.lever.co/v0/postings/{site}?mode=json, no auth. Verified againstleverdemo(Lever's own public demo board) andpalantir(308 open roles). - Ashby —
api.ashbyhq.com/posting-api/job-board/{name}, no auth. Verified againstramp(139 open roles) andnotion. - Workable — dropped. The documented public endpoint
(
apply.workable.com/api/v3/accounts/{account}/jobs) returns HTTP 200 with a well-formed but completely empty result ({"total":0,"results":[]}) for every one of 20+ real company accounts tested, including one (Automattic) pulled directly from a live Workable-hosted careers page — its account ID was read straight out of that page's own HTML, and the exact endpoint path (/api/v3/accounts/{id}/jobs) was confirmed by downloading and reading Workable's own careers-page JavaScript bundle. A companion/jobs/filtersfacet endpoint came back empty for all 20+ accounts too. Twenty-plus real companies all showing zero open roles at once is not a coincidence; it reads as the endpoint no longer serving data to non-browser callers, whatever the underlying reason. Rather than fake support for a platform that does not actually return data, v1 ships three platforms, honestly, and Workable will only be added back if a working keyless path is found.
Ethics and data source
Every field comes from a company's own public job-board API: the same keyless JSON endpoint each platform's "embed our openings on your careers page" widget calls, built by Greenhouse, Lever, and Ashby for exactly this kind of external consumption. This Actor returns job postings, not people — none of these endpoints expose applicant or candidate data, so there is nothing of that kind to fetch even by mistake. If you supply your own company's board identifier, you are pulling your own listings; if you supply a public company's, you are pulling what that company already publishes to every visitor of its careers page and every other tool built on the same API.
Output examples
Real records from a live run, one per platform (maxJobsPerBoard: 1,
includeDescription: true), description trimmed for length:
{"platform": "greenhouse","boardId": "gitlab","jobId": "8503792002","title": "Account Executive - Italy","department": "EMEA - Commercial","location": "Remote, Italy","remote": true,"employmentType": null,"postedDate": "2026-04-17","url": "https://job-boards.greenhouse.io/gitlab/jobs/8503792002","applyUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8503792002","description": "GitLab is the intelligent orchestration platform for DevSecOps...","fetchedAt": "2026-08-25T03:34:28+00:00"}
{"platform": "lever","boardId": "leverdemo","jobId": "33538a2f-d27d-4a96-8f05-fa4b0e4d940e","title": "AbelsonTaylor Writer","department": "Professional Services","location": "Arlington, TX","remote": false,"employmentType": "Regular Full Time (Salary)","postedDate": "2019-03-21","url": "https://jobs.lever.co/leverdemo/33538a2f-d27d-4a96-8f05-fa4b0e4d940e","applyUrl": "https://jobs.lever.co/leverdemo/33538a2f-d27d-4a96-8f05-fa4b0e4d940e/apply","description": "Welcome to the Demo Job Listing for Lever! This is a fictional job created solely for demonstration purposes...","fetchedAt": "2026-08-25T03:34:28+00:00"}
{"platform": "ashby","boardId": "ramp","jobId": "34413f8d-26bf-4bbc-8ade-eb309a0e2245","title": "Security Engineer, Cloud","department": "Engineering","location": "New York, NY (HQ)","remote": true,"employmentType": "FullTime","postedDate": "2026-04-07","url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245","applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application","description": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams...","fetchedAt": "2026-08-25T03:34:28+00:00"}
Typical uses
- Build one watchlist across every ATS a target company list actually uses, instead of three separate scrapers.
- Feed an AI agent or job board with a clean, consistent schema regardless of which ATS the employer picked.
- Monitor a competitor's or portfolio company's hiring by department or location over time.
- Pull a company's own postings into an internal dashboard without hand parsing three different JSON shapes.
Input
| Field | Meaning |
|---|---|
greenhouseTokens | Greenhouse board tokens, e.g. "gitlab" from boards.greenhouse.io/gitlab. |
leverSites | Lever site slugs, e.g. "palantir" from jobs.lever.co/palantir. "leverdemo" is Lever's own public demo board. |
ashbyJobBoardNames | Ashby job board names, e.g. "ramp" from jobs.ashbyhq.com/ramp. |
maxJobsPerBoard | Cap per board, default 200. |
includeDescription | Full description text, default on. Costs no extra requests on any of the three platforms. |
stripContactInfo | Regex-strip emails and phone-shaped text from descriptions, default on. Courtesy best-effort, not a guarantee. |
At least one of greenhouseTokens, leverSites, or ashbyJobBoardNames
must be non-empty; mixing all three in one run is the normal case.
Fair pricing
Pay per job record returned, plus a small per-board charge on every board that is queried successfully, once pay-per-event pricing is enabled. Boards that fail (bad token, deleted board, network error) are never charged. No subscription.