Company Job Postings: Greenhouse, Lever, Ashby & Workable avatar

Company Job Postings: Greenhouse, Lever, Ashby & Workable

Pricing

from $1.61 / 1,000 job postings

Go to Apify Store
Company Job Postings: Greenhouse, Lever, Ashby & Workable

Company Job Postings: Greenhouse, Lever, Ashby & Workable

Open job postings from any company's Greenhouse, Lever, Ashby or Workable careers page, in one schema. Filter by job title, location and remote. Optional hiring monitor: only new or changed jobs since the last run, for sales signals and job alerts. No login or API key.

Pricing

from $1.61 / 1,000 job postings

Rating

0.0

(0)

Developer

Tabulary

Tabulary

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does Company Job Postings do?

It returns every open job posting from the careers pages of the companies you choose, straight from their applicant tracking system (ATS): Greenhouse, Lever, Ashby and Workable. Give it board slugs or careers-page URLs, and it detects the ATS, reads the employer's public job board API and returns one clean record per job in a single schema. Filter by job title, location and remote, and turn on only new since the last run to get a daily feed of new roles. Sales teams use it for hiring signals, recruiters and job sites for fresh listings, and analysts and AI agents for hiring trends. No login or API key needed.

What you get

  • Company, ATS, job ID, title, department and location.
  • Remote flag, employment type (full time, part time, contract, internship and more), and posted and updated dates where the ATS publishes them.
  • Links to the job page and the application page.
  • The full job description as plain text, with email addresses masked.
  • The same fields whichever ATS a company uses, so four systems become one table.
  • Hiring monitor for scheduled runs: only jobs that are new or changed since the last run.
  • Export as JSON, CSV or Excel, send to Google Sheets, Slack, a CRM or a webhook, or call it as a tool from AI agents through the Apify MCP server.

How much does it cost?

You pay per job posting saved, with no monthly fee: $2.30 per 1,000 job postings on Apify's free plan, and 10–40% less on paid Apify plans. Each run also costs $0.001 to start. Apify's free plan includes $5 of credit every month, enough for about 2,100 job postings. Prices as of October 2026; the price shown on this page is the one that applies.

UseJob postingsCost on the free plan
All open jobs at 5 mid-size companiesabout 500about $1.15
Engineering jobs only at 20 companiesabout 400about $0.92
Daily hiring monitor for 50 companies, about 30 new jobs a dayabout 900 a monthabout $2.07 a month

Use the title, location and remote filters to pay only for the roles you need. Set Maximum cost per run to cap any run; the Actor stops cleanly at the cap and keeps everything it saved.

Ready-made inputs

Paste one of these into the JSON input tab, or set the same fields in the form.

All open jobs at a few companies (slugs or careers-page URLs, any mix of ATSs) · open this example

{ "companies": ["gitlab", "https://jobs.lever.co/dnb", "https://jobs.ashbyhq.com/notion"] }

Remote engineering roles only · open this example

{ "companies": ["gitlab", "stripe", "figma"], "titleKeywords": "engineer, developer", "remoteOnly": true }

Sales hiring signals: new sales and marketing roles, daily (schedule it every morning) · open this example

{ "companies": ["gitlab", "stripe", "figma", "notion"], "titleKeywords": "sales, account executive, marketing", "onlyNewSinceLastRun": true }

Jobs in one city · open this example

{ "companies": ["stripe", "figma"], "locationKeywords": "London" }

Hiring monitor: only new since the last run

  1. List the companies, set any filters and turn on Only new since last run.
  2. Save it as a task and add an Apify Schedule (for example every morning).
  3. Connect the output: Apify's built-in Slack and email notifications, a webhook, or Make, Zapier and n8n to push new roles into Google Sheets, HubSpot, Clay or a Teams channel.

Each run returns only jobs that are new, or whose posting was updated, since earlier runs with the same companies and filters. Jobs cut off by your spending limit are delivered next time. With filters, the memory is kept per set of filters, so separate tasks never interfere.

Input

FieldTypeDefaultDescription
companiesarrayrequiredBoard slugs (e.g. gitlab) or careers-page URLs (e.g. https://jobs.lever.co/dnb). A bare slug is checked against the four ATSs in a fixed order.
titleKeywordsstring"" (all)Comma-separated words; keeps jobs whose title contains any of them.
locationKeywordsstring"" (all)Comma-separated words; keeps jobs whose location contains any of them.
remoteOnlybooleanfalseKeep only jobs the ATS marks as remote.
onlyNewSinceLastRunbooleanfalseReturn only jobs that are new or changed since earlier runs (see Hiring monitor).

Finding a company's slug: open its careers page. The slug is the part after the ATS domain: boards.greenhouse.io/gitlab → gitlab, jobs.lever.co/dnb → dnb, jobs.ashbyhq.com/notion → notion, apply.workable.com/acme → acme. If a company's careers page is on its own domain, look for one of these links behind the "Apply" button.

Output

One dataset item per job. A real item from a run on 21 October 2026 (description shortened):

{
"company": "dnb",
"ats": "lever",
"job_id": "d0e51a7a-5f0f-483a-9b65-78a9024f1681",
"title": "2027 Enterprise Sales Development Program",
"department": "Sales",
"location": "Florham Park - New Jersey - United States",
"remote": false,
"employment_type": "full_time",
"posted_at": "2026-10-15T18:18:27.254Z",
"updated_at": null,
"url": "https://jobs.lever.co/dnb/d0e51a7a-5f0f-483a-9b65-78a9024f1681",
"apply_url": "https://jobs.lever.co/dnb/d0e51a7a-5f0f-483a-9b65-78a9024f1681/apply",
"description": "Shape the Future with Dun & Bradstreet. At Dun & Bradstreet, we believe data has the power to create a better tomorrow…"
}

employment_type is full_time, part_time, contract, internship, temporary, other or null (Greenhouse boards don't publish it). updated_at is null where the ATS doesn't publish an update time (Lever, Ashby, Workable). Dates are ISO 8601.

Use it from AI agents

Add the Actor to Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server (https://mcp.apify.com?tools=tabulary/multi-ats-job-postings). Ask in plain language, for example: "Which data engineering roles are GitLab and Stripe hiring for right now?" The agent fills in the input and gets structured job records back.

Use it from code

curl -X POST "https://api.apify.com/v2/acts/tabulary~multi-ats-job-postings/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companies": ["gitlab", "stripe"], "titleKeywords": "engineer"}'

The same works with the Apify Python and JavaScript clients. See the API tab for details.

Data source and limits

  • Greenhouse Job Board API (docs): "Job Board data is publicly available, so authentication is not required for any GET endpoints."
  • Lever Postings API (docs): published postings are public.
  • Ashby public job posting API (docs).
  • Workable public careers widget API (apply.workable.com), the same data its careers pages show.
  • The Actor makes at most about one request per second to each host and backs off when a host asks it to slow down. A bare slug can need up to four requests to find its ATS, and two companies can own the same slug on different systems, so pass the full careers-page URL when you can.
  • It reads the companies you list; it does not search every company on an ATS.
  • Jobs are returned as the employer publishes them; check the employer's page before acting on a posting. Email addresses in descriptions are masked.
  • Not affiliated with or endorsed by Greenhouse, Lever, Ashby or Workable.

Other Tabulary tools

Clean data from official and public sources, priced per result:

FAQ

Which companies can I track? Any company whose careers page runs on Greenhouse, Lever, Ashby or Workable. See "Finding a company's slug" above.

Do I need API keys or accounts? No. All four job boards are public and keyless.

Why did a company return 0 jobs? Either it has no open roles right now, or its slug belongs to a different company on another ATS. The run log says which board matched; pass the full careers-page URL to be exact.

Does it include salaries? Only where the employer writes them into the job description.

How do I get only new jobs every day? Turn on the hiring monitor, save the input as a task and schedule it (see Hiring monitor).

Something broke? Open an issue on the Issues tab. The Actor is tested daily.

Changelog

  • 2026-10-21: job title, location and remote filters; ready-made inputs; slug guide.
  • 2026-10-21: first version: Greenhouse, Lever, Ashby and Workable, ATS auto-detection, hiring monitor, masked emails.

About Tabulary

This tool is part of Tabulary: clean tables from official public sources. Every Tabulary tool uses the source's official API or open data where one exists, collects no personal data, and is tested on Apify every day. Questions or ideas? Open an issue on the Issues tab.