Hiring Signals + ATS Jobs: Greenhouse Lever Ashby Workable avatar

Hiring Signals + ATS Jobs: Greenhouse Lever Ashby Workable

Pricing

from $1.80 / 1,000 job postings

Go to Apify Store
Hiring Signals + ATS Jobs: Greenhouse Lever Ashby Workable

Hiring Signals + ATS Jobs: Greenhouse Lever Ashby Workable

Find companies hiring now. Open jobs from public Greenhouse, Lever, Ashby and Workable boards plus a company hiring-signal row: new roles, hiring surges, first sales/security hires, growing teams and new locations. Paste domains or slugs; daily delta mode. No API key.

Pricing

from $1.80 / 1,000 job postings

Rating

0.0

(0)

Developer

Technical Dost Solutions

Technical Dost Solutions

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

Hiring Signals & ATS Jobs Scraper — Greenhouse, Lever, Ashby, Workable

Find companies that are hiring right now, and see what they are hiring for. Paste company domains, names or careers URLs, and this Actor returns every open job from their public Greenhouse, Lever, Ashby or Workable job board, plus one company hiring-signal row per company: new roles in the last 7 and 30 days, hiring surges, growing departments, first sales or security hires, new office locations and salary bands. Built for B2B sales and RevOps teams, recruiters and staffing agencies, and VC or market analysts who want hiring intent as a lead trigger, not a raw job dump.

Schedule it with Only new since last run on and each run returns only roles you have not seen yet, and a signal row only when a company opened or closed roles. No API key, no login, no proxy.

Why this Actor

  • Hiring intent, not just rows. A company that just posted 5 account-executive roles is buying sales tools. A company posting its first security engineer is buying security software. The companySignal row tells you that in one line (signalSummary) with a 0–100 signalScore.
  • Domains in, boards out. You do not need to know which ATS a company uses. Enter notion.so or datadoghq.com and the Actor checks Greenhouse, Lever, Ashby and Workable and keeps the board with the most open roles.
  • Monitoring mode. A named key-value store remembers each stream, so daily or weekly runs only return new jobs and changed companies. You never pay twice for the same job.
  • Fair pricing. Job rows are priced at market rate. Signal rows are charged only when a company has at least one signal. Companies with no board, or no signal, are free.

What you get

Company hiring-signal row (recordType = "companySignal")

FieldExample
company, companyDomain, ats, careersUrlFigma, figma.com, greenhouse, https://job-boards.greenhouse.io/figma
signalScore68 (0–100 hiring-intent score)
signalSummaryHiring surge: 47 new roles in 30 days; Growing: Sales (+8); 48 open sales roles; Hiring RevOps / sales ops
signalTypeshiring_surge, new_roles_7d, first_hire, department_growth, new_location, sales_team_build, revops_hiring, new_since_last_run, roles_closed
openRoles, matchingRoles144, 49 (roles that match your filters)
newRoles7d, newRoles30d12, 47
newSinceLastRun, closedSinceLastRun3, 1 (monitoring mode)
salesRoles, engineeringRoles48, 27
firstHireFunctions["security"]
growingDepartments, topDepartments, topFunctions["Sales (+8)"], ["Sales (44)", "Engineering (27)"], ["sales (48)"]
newLocations["Tokyo"]
salaryBandMedian, salaryCurrency, rolesWithSalary217225, USD, 163
remoteShare0.58
sampleNewRolesUp to 5 newest role titles
signalId, companyId, scrapedAtStable IDs and ISO 8601 timestamp

Job row (recordType = "job")

FieldExample
jobKey (stable ID), jobIdashby:ramp:f9d015d7-…
company, companyDomain, ats, boardSlugRamp, null, ashby, ramp
title, jobFunctionManager, Account Executive, Strategic, sales
department, teamSales, Account Executive
location, country, isRemote, workplaceTypeRemote (US), US, true, remote
employmentTypeFull-Time
salaryMin, salaryMax, salaryCurrency, salaryInterval520000, 620000, USD, year
firstPublishedAt, updatedAt, daysOpenISO 8601 dates, 2
jobUrl, applyUrl, careersUrlPublic posting links
isNewSinceLastRuntrue (monitoring mode; null on the first run)
companyOpenRoles, companyNewRoles30dCompany context on every job
descriptionPlain text, only when Include job description is on

Two table views: Hiring signals — sales prospecting (score, company, why now, sales roles and first hires first) and Open jobs. Export to CSV, Excel, JSON, Google Sheets or your CRM.

jobFunction is classified from the title and department into: sales, revops, marketing, customer_success, engineering, data_ai, security, product, design, finance, people, legal, operations, other.

How to use

  1. Add your Companies, one per line. Any of these work:
    • a domain: notion.so, datadoghq.com
    • a name or board slug: stripe, ramp
    • a board URL: https://jobs.ashbyhq.com/ramp, https://jobs.lever.co/palantir, https://boards.greenhouse.io/figma, https://apply.workable.com/huggingface
    • an explicit board: greenhouse:anthropic, lever:spotify, ashby:linear, workable:huggingface
  2. Pick an Output: jobs and signals, jobs only, or signals only.
  3. Optional: filter by job function, title keywords, department, location, remote, or posted within N days.
  4. For monitoring, turn on Only new since last run and give each list its own Stream name. Then add a Schedule (Console → Schedules → daily or weekly).

Example input: SDR team, companies building a sales team

{
"companies": ["figma.com", "notion.so", "linear.app", "vercel.com", "ramp", "datadoghq.com"],
"outputMode": "signals",
"jobFunctions": ["sales", "revops"],
"onlyNew": true,
"stateKey": "sales-tools-weekly"
}

Example input: staffing agency, new remote engineering roles every day

{
"companies": ["greenhouse:anthropic", "ashby:openai", "lever:spotify", "stripe"],
"outputMode": "jobs",
"jobFunctions": ["engineering", "data_ai"],
"remoteOnly": true,
"excludeTitleKeywords": ["intern"],
"onlyNew": true,
"stateKey": "agency-eng-daily"
}

Example input: VC analyst, 30-day hiring velocity across a portfolio

{
"companies": ["ramp", "plaid.com", "duolingo", "figma.com", "openai.com"],
"outputMode": "signals"
}

Use cases

  • Sales prospecting: a sales-tool SDR team runs it weekly on 2,000 target domains and works only the companies that opened sales, RevOps or first-in-function roles.
  • Recruiting and staffing: an agency monitors 300 scale-ups and gets new engineering roles daily in its CRM.
  • Investment research: a VC analyst tracks 30-day hiring velocity across a portfolio and its competitors.

Pricing (pay per event — no subscription, no start fee)

EventPriceWhen it is charged
Job row (job)$0.0018 per job ($1.80 per 1,000)Each job row delivered. In monitoring mode only new jobs are delivered.
Company hiring signal (company-signal)$0.025 per companyOnly when the company has at least one hiring signal.

Companies with no public board, empty boards and companies with no signal are free. Use Max rows per run or a maximum charge per run to cap spend. Signals-only runs are the cheapest way to watch thousands of companies.

Integrations

n8n

  • Import the ready-made workflow: download integrations/n8n-workflow.json and use Workflows → Import from file. Every Monday it runs the Actor through the Apify API, keeps companies with signalScore ≥ 50 and appends them to Google Sheets. Create an HTTP Header Auth credential with Authorization: Bearer <your Apify API token>.
  • Or use n8n's Apify node: Run an Actor → technicaldost/ats-jobs-hiring-signals → Get dataset items.

Make (Integromat)

  1. Add Apify → Run an Actor, Actor technicaldost/ats-jobs-hiring-signals, Run synchronously = Yes, and paste one of the JSON inputs above.
  2. Add Apify → Get Dataset Items using the run's defaultDatasetId.
  3. Add a Filter (for example recordType = companySignal and signalScore ≥ 50), then Google Sheets → Add a Row, HubSpot → Create/Update a Company or Slack → Create a Message.
  4. Schedule the scenario daily or weekly.

No Apify module? Use HTTP → Make a request: POST https://api.apify.com/v2/acts/technicaldost~ats-jobs-hiring-signals/run-sync-get-dataset-items with the header Authorization: Bearer <token> and your JSON input as the body. The response is the array of rows.

Zapier, API, Python, MCP

  • Zapier: use the Apify app (Run Actor → Find dataset items).
  • REST API: call the run-sync-get-dataset-items endpoint above, or start a run and read its dataset.
  • Python / JavaScript: use the apify-client package.
  • AI agents: call this Actor through the Apify MCP server, for example "which of these 50 companies started hiring sales reps this month?".

FAQ

Where does the data come from? The public job-board APIs that Greenhouse, Lever, Ashby and Workable provide for embedding careers pages. The same data is shown on each company's public careers page. No login is used.

Which companies are covered? Any company that hosts its careers page on Greenhouse, Lever, Ashby or Workable. That is a large share of venture-backed tech companies. Companies on Workday, iCIMS, SmartRecruiters, Taleo or a custom careers site are not covered yet and are reported as "not found" (free).

How does auto-detection work, and can it pick the wrong company? For a domain or name, the Actor tries a few slug variants (e.g. datadoghq.com → datadoghq, datadog) on each ATS and keeps the board with the most open roles. Two different companies can share a slug on different ATS platforms (for example a small agency called "Notion" on Workable). When precision matters, enter the board URL or ats:slug. The chosen board is always in ats, boardSlug and careersUrl.

How fresh is the data? Live. Each run reads the boards at that moment.

What counts as a "first hire"? In monitoring mode: a job function that was not on the board at the previous run. On a first run: a function where the company (with 40 or fewer open roles) has only one or two roles, all posted in the last 30 days. Treat it as a strong hint, not a fact.

Why is companyDomain empty for some companies? It comes from your input or from the job URLs. Lever, Ashby and Workable URLs live on the ATS domain, so enter a domain if you need it.

Why are salaries missing for some jobs? Salaries are returned only when the company publishes a pay range on its board (common in US states with pay-transparency laws).

Compliance

Not affiliated with Greenhouse, Lever, Ashby or Workable. This Actor reads only public job postings through public, unauthenticated job-board endpoints, at a polite request rate. It collects no personal data about candidates or employees. Job descriptions are the copyright of the hiring company: use them for research and prospecting, and do not republish them as your own job board without permission. You are responsible for complying with the terms of the sites you use, and with GDPR, CAN-SPAM and other outreach laws when you contact companies.

Support

Found a bug or need another ATS (SmartRecruiters, Recruitee, Personio, Teamtailor)? Open an issue on the Issues tab.