ATS Jobs Feed: Greenhouse, Lever, Ashby, Workable & more
Pricing
Pay per event
ATS Jobs Feed: Greenhouse, Lever, Ashby, Workable & more
Every open job from company career sites on 6 ATS in one clean schema, with salary, seniority, job function, remote/hybrid, country, tech stack and visa fields. Auto-detects the ATS from a company name. Incremental mode bills only new or changed jobs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Vivek Sinha
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
ATS Jobs Feed: Greenhouse, Lever, Ashby, Workable, SmartRecruiters & Recruitee
Get every open job straight from company career sites on six applicant-tracking systems, in one clean schema, with the fields recruiters, sales teams and job boards actually need already filled in: salary, seniority, job function, remote/hybrid/onsite, country, tech stack, years of experience and visa sponsorship.
Give it a list of companies. You can paste career-site URLs, or just company names, and the Actor finds the right job board for you.
Why this Actor
- 6 ATS platforms, 1 schema. Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee all come back with the same field names, so you never write per-ATS glue code.
- Auto-detection. Type
ramp,notion.soorfigmaand the Actor checks all six ATS and uses the board it finds. - Enriched, decision-ready rows. Every job gets a normalized
jobFunction,seniority,workplaceType,employmentType,countryCode, asalaryMin/salaryMax/salaryCurrency/salaryPeriod(structured where the ATS publishes it, otherwise parsed from pay-transparency text),techKeywords,yearsExperienceMinandvisaSponsorship. - Monitoring mode that saves you money. Turn on Incremental mode and schedule the Actor daily: it remembers what it saw before and outputs only new or changed jobs, so you only pay for what's new. Optionally get a free
closedrow when a job disappears. - You only pay for jobs that match your filters. Title, location, workplace type, job function, seniority and posting-age filters run before anything is charged.
- Free hiring-signal summaries. Every run saves a per-company summary (open jobs, new jobs in the last 7 and 30 days, mix by function, seniority and workplace type, top locations, salary-transparency share, median USD salary, top tech) to the key-value store as
COMPANY_SUMMARIES, at no extra cost. - Fast and reliable. It reads each ATS's public job-board endpoint, so there's no browser, no proxy and no captcha. A 13-company test run that returned 492 jobs (including Bosch Group with 5,000+ openings) finished in about a minute in local testing.
- Privacy by default. Email addresses in job text are redacted unless you switch that off.
Who uses it
- Sales and RevOps: find companies hiring for the role your product replaces or supports ("hiring 5+ data engineers" = buying signal).
- Recruiters and staffing agencies: a daily feed of fresh roles at target accounts.
- Job boards and niche aggregators: back-fill listings with direct-from-employer jobs and real apply links.
- Market and compensation research: salary bands, remote share and tech-stack demand across companies.
- AI agents and RAG: clean plain-text descriptions with consistent metadata.
Input
| Field | What it does |
|---|---|
companies | Career-site URLs (https://boards.greenhouse.io/stripe, https://jobs.lever.co/spotify, https://jobs.ashbyhq.com/ramp, https://apply.workable.com/huggingface, https://careers.smartrecruiters.com/Equinox, https://bunq.recruitee.com), ats:slug (lever:palantir), or a bare company slug or domain (ramp, notion.so). |
titleKeywords / excludeTitleKeywords | Keep or drop jobs by title words. |
locationKeywords | e.g. London, Germany, Remote. |
workplaceTypes | remote, hybrid, onsite. |
jobFunctions | engineering, data-ml, product, design, sales, marketing, customer, operations, finance, people-hr, legal-compliance, security, it, other. |
seniorities | intern, junior, mid, senior, staff, principal, lead, manager, director, vp, c-level. |
postedWithinDays | Only jobs posted in the last N days. |
descriptionFormat | text (default), html, both or none. |
incremental, stateKey, emitClosedJobs | Monitoring mode (see above). Use one stateKey per watchlist. |
companySummariesToDataset | Also add the per-company summary rows to the dataset. |
maxJobsPerCompany, maxJobs | Hard caps. You can also set a maximum charge per run. |
Example:
{"companies": ["https://boards.greenhouse.io/stripe", "lever:spotify", "ramp", "notion.so"],"jobFunctions": ["engineering", "data-ml"],"workplaceTypes": ["remote", "hybrid"],"postedWithinDays": 30,"incremental": true,"stateKey": "fintech-watchlist"}
Output (real example, description shortened)
{"recordType": "job","jobKey": "ashby:ramp:f564dcf9-9390-4a3f-896f-8047a5086040","ats": "ashby","companyName": "Ramp","title": "Mobile Engineer, Android","department": "Engineering","team": "Mobile","jobFunction": "engineering","seniority": "mid","employmentType": "full-time","workplaceType": "hybrid","location": "New York, NY (HQ)","allLocations": ["New York, NY (HQ)", "Remote (Canada)", "San Francisco, CA", "Remote (US)"],"countryCode": "US","salaryMin": 189000,"salaryMax": 330000,"salaryCurrency": "USD","salaryPeriod": "year","salarySource": "structured","compensationSummary": "$189K – $330K • Offers Equity","techKeywords": ["Python", "TypeScript", "Kotlin", "SQL", "React", "Flask"],"postedAt": "2025-07-31T21:58:34.674Z","daysSincePosted": 446,"jobUrl": "https://jobs.ashbyhq.com/ramp/f564dcf9-9390-4a3f-896f-8047a5086040","applyUrl": "https://jobs.ashbyhq.com/ramp/f564dcf9-9390-4a3f-896f-8047a5086040/application","descriptionText": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams…","descriptionWordCount": 728,"contentHash": "a322c596f9e2eee4","changeType": null}
The free COMPANY_SUMMARIES record for the same run reported, for Ramp: 169 open jobs, 52 posted in the last 30 days, 82% hybrid, 96% with a published salary, and a median USD salary midpoint of $221,550.
Export as JSON, CSV, Excel or XML, or connect via API, webhooks, Make, Zapier, n8n or MCP.
Pricing
Pay per event, with no subscription:
- $3.00 per 1,000 jobs returned (after your filters; in incremental mode only new or changed jobs).
- $5.00 per 1,000 company-summary rows, only if you ask for them in the dataset. The key-value-store copy is free.
- Rows for jobs that closed (incremental mode) are free.
Set a maximum charge per run and the Actor stops cleanly when it is reached.
FAQ
Is this legal? The Actor only reads the public job-board endpoints each ATS publishes so that job seekers and aggregators can list an employer's openings. It does not log in, bypass protections or collect candidate data. Job descriptions can still mention people, so email addresses are redacted by default. You are responsible for how you use the data.
My company wasn't found. Paste the full career-site URL. Auto-detect guesses the slug from the name and won't find boards with unusual slugs, or companies on ATS platforms not supported yet.
Which ATS platforms are not supported yet? Workday, iCIMS, Taleo, SuccessFactors and custom career sites.
How accurate are seniority and function? They are rule-based labels from the job title and department. They work well for common titles, but treat edge cases ("Manager" titles, mixed roles) as best-effort. Salary is only returned when the employer publishes it.
How fresh is the data? It is fetched live from the employer's board at run time, not from a cached database.