Hiring Signals & Buying Intent Data from Job Postings icon

Hiring Signals & Buying Intent Data from Job Postings

Buying-intent signals for sales teams: see which target companies are hiring for the roles you sell to, how many roles, how fresh, and what's new since last week. Scored per company, from career pages and job searches. Schedule it for a weekly intent feed.

$0.01 each company signalupdated 2026-11-07
Try it

Build the input, get the call

Change any field; the code on the right follows. Copy it, or run the same input on Apify.

Your target accounts: the company website (stripe.com), its name, or its jobs page link (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Recruitee, Personio, Teamtailor and more). Websites and names are matched to the company's jobs...

Find companies you don't know yet: job searches like `data engineer` or `head of security`. Every company hiring for it becomes a signal.

Where to search, e.g. `Germany`, `London`, `United States`.

Signal criteria

A role counts when its title contains any of these words - the teams that buy what you sell (e.g. `security`, `data engineer`, `revops`). Leave empty to count every open role.

Roles whose title contains any of these never count, e.g. `intern`, `working student`.

Only roles whose location contains any of these, e.g. `Germany`, `Remote`, `New York`.

Only roles posted in the last N days count (roles without a date always count). 0 = any age.

Keep only these seniority levels.

Keep only these job functions (engineering, data, sales, ...).

Keep only these work arrangements. Jobs whose posting doesn't state it are dropped when this is set.

Keep only these employment types.

Count a role only if its description or skills mention any of these, e.g. `Snowflake`, `Kubernetes` - great for tech-stack signals.

Never report companies whose name contains any of these (e.g. existing customers, recruiters).

Report a company only when at least this many roles match.

Include each company's matching roles (title, link, location, seniority, date) in its record.

Maximum number of company signals to return (highest score first).

How many result pages to read per discovery search (about 10 jobs each).

Monitoring

Report a company only the first time it shows a signal, or when it opens new matching roles since the last run with the same input. You pay only for changes.

Layoff notices

Add the company's recent WARN notices (date, employees affected, site, layoff or closure) from state labor departments. A company hiring in one team while filing layoffs elsewhere is a different conversation. Free: no extra charge.

States whose WARN lists to read. Empty reads all of them.

Only WARN notices filed in this many days.

Output

What you get back

A real row from the README, and the fields every row has.

companyStripe
signalScore100
matchingRoles11
newMatchingRoles2
rolesPostedLast7Days4
totalOpenRoles708
openRolesChange12
functions{"data":6,"engineering":4,"sales":1}
roles[{"title":"Data Engineer, Payments","url":"https://stripe.co...
FieldWhat it holds
company / companySlug / companyLogoCompany name, its career-page handle, and logo when available
input / jobsPage / jobsPageFoundByFor companies given as a website or name: what you gave, the jobs board found, and how (website: linked from the site; name: the board of that name, checked to belong to the site)
statusOnly on free rows: no-job-board-found (no supported board) or no-matching-roles
signalScore0-100: volume of matching roles (up to 50) + roles posted in the last 7 days (up to 30) + new roles since last run (20)
matchingRoles / newMatchingRolesRoles matching your criteria, and how many are new since the last run
rolesPostedLast7DaysMatching roles opened in the past week
totalOpenRoles / openRolesChangeAll open roles at the company, and the change since the last run
functions / seniority / topLocationsBreakdown of the matching roles (e.g. {"data": 6, "engineering": 4})
matchedKeywordsWhich of your keywords matched, and how often
remoteShareShare of matching roles that are remote (%)
newestRolePostedAt / firstSeenAtNewest matching role, and when the company first showed a signal
rolesThe matching roles (new ones first): title, link, location, seniority, function, work mode, posting date
board / scrapedAtWhere the roles came from, and when
layoffNotices / layoffEmployees / latestLayoffNoticeWith Add US layoff notices on: the company's recent WARN layoff and closure notices (state, date, employees affected, site, type), the employees they cover, and the newest notice date

Download as JSON, CSV, Excel or XML from the run, or have it sent to Google Sheets, Slack or a webhook.

Guide

How Hiring Signals & Buying Intent Data from Job Postings works

Inputs, options and tips, from the tool's own documentation.

Know which companies are about to buy. When a company opens roles for the team you sell to - data engineers, security, RevOps, support - it's usually expanding that team and about to spend on its tools. This Actor watches your target accounts' career pages (or discovers companies through job searches) and gives you one scored signal per company: how many matching roles, how fresh, which functions, seniority and locations, and what's new since last week.

Built for SDRs and account executives prioritising outreach, RevOps teams feeding intent data into the CRM, founders doing account-based selling, recruiters and agencies spotting growing teams, and investors tracking portfolio and competitor growth.

At a glance

  • Price: 1 cent per company with matching roles; companies without them are free. Free plan: up to 50 companies per run.
  • First run: the prefilled input checks Stripe, Spotify and Ramp for data and machine-learning roles in about 3 seconds.
  • Sample data: results from a recent run as CSV or JSON. Opens in your browser, no account needed.
companysignalScorematchingRolesone of the roles
Stripe806Machine Learning Engineer, Radar
Spotify604Data Scientist - Business Analytics
Ramp301Senior Analyst, Employee Lifecycle Data (Workday)

Why this Actor

  • Signals, not job dumps. One row per company, ranked by a simple score (more matching roles, fresher roles, and new roles since last run score higher), with the matching roles listed underneath. Ready to hand to a sales team.
  • Your definition of intent. Choose the role keywords that matter for your product, and narrow by seniority, job function, work mode, employment type, region and recency. Require tech-stack mentions (e.g. roles that mention Snowflake) for technographic signals, and exclude existing customers.
  • Tracks change over time. Every signal shows new matching roles and the change in the company's total open roles since the previous run. With Only new or changed companies, a weekly schedule becomes an intent feed - you're charged only for changes.
  • Just paste the website. Give a company's website (stripe.com) or name and it finds the company's jobs board itself, and only accepts a board that links back to that website. Reads Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Recruitee, Personio, Teamtailor and more; a jobs page link works too. No API keys or logins.
  • Fast and cheap to run. Runs finish in seconds. A dozen target accounts take a few seconds.
  • Handles rate limits for you. Waits as long as a site asks when it says "slow down" (HTTP 429), and retries timeouts and dropped connections automatically.

How to use it

  1. Paste your target accounts' websites - for example stripe.com (a name or a jobs page link like https://jobs.lever.co/spotify works too). Or add job searches (like data engineer in Germany) to discover companies you don't know yet. You can combine both.
  2. Enter the roles that signal intent for you, and anything to ignore.
  3. Press Start. Then schedule it weekly with Only new or changed companies and connect Slack, Google Sheets or your CRM.

Example input

json
{
  "companies": [
    "stripe.com",
    "https://jobs.lever.co/spotify",
    "ramp.com"
  ],
  "searches": ["data engineer"],
  "searchLocation": "Germany",
  "roleKeywords": ["data", "analytics", "machine learning"],
  "excludeKeywords": ["intern"],
  "postedWithinDays": 30,
  "onlyChanged": true
}

Weekly intent feed

Turn on Only new or changed companies and schedule the Actor weekly. The first run reports every company with a signal; after that you only get companies that are new or opened new matching roles. Connect Slack, e-mail, Google Sheets, HubSpot or Salesforce (via Zapier or Make) so your team sees them where they work.

Hiring and layoffs side by side

Turn on Add US layoff notices (WARN) to match each company against the official WARN lists of California, Colorado, Iowa, Maryland and Texas. US employers must file these notices before larger layoffs and closures, so a company that is hiring data engineers while filing a closure for a warehouse shows both in one record. Pick the states and how far back to look (default: a year). Matching uses the company name; no extra charge.

Use it as an instant API

The Actor also runs in Standby mode - an always-ready endpoint that returns signals straight in the response, handy for enrichment workflows and AI agents. Find the URL on the Standby tab and POST the input as JSON.

Use it in Clay

Add a Run Apify Actor column (Clay's Apify integration, connected to your Apify account), pick tacps126/hiring-signals and use this input. Type / inside the quotes to insert your column (company website; a name or a jobs page link also works):

json
{"companies": ["/Website"], "includeRoles": false}

Each row gets open roles, roles posted in the last 7 days, split by function, seniority and location, a hiring signal score and the jobs page it found. A company without a supported jobs board comes back as no-job-board-found, free of charge. Keep auto-update off while you test.

To start a table from this Actor instead, use Import data from Apify actor with {"searches": ["head of security"], "searchLocation": "United States"}: every company hiring for the role, with open roles and a hiring signal score.

More Clay recipes: tacps126.github.io/clay.html.

Pricing

Pay per result: about $10 per 1,000 company signals - one cent per company with matching roles (lower on higher Apify plans), plus a tiny start fee. Companies without matching roles, and (when monitoring) unchanged companies, are free. See the Pricing tab, and set a maximum charge per run to cap spend.

On Apify's free plan each run returns up to 50 companies - enough to try it on your accounts. Any paid Apify plan removes the limit.

Questions

Questions about Hiring Signals & Buying Intent Data from Job Postings

Which companies work?

Those whose jobs live on Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Recruitee, Personio, Teamtailor, Workable, Breezy, Rippling, BambooHR or Pinpoint, which covers most tech and growth companies. Give the website and the board is found for you; if a company runs its own in-house careers site, it comes back as no-job-board-found (not charged).

How is "new" decided?

The Actor remembers which matching roles it saw for each company in the previous run with the same input (or the same state key). Roles it hasn't seen before are new.

Is it legal?

The Actor reads publicly posted job listings. Use the results within the privacy and marketing rules that apply to you.

How much does Hiring Signals & Buying Intent Data from Job Postings cost?

$0.01 each, charged only for company signals returned; a run that finds nothing costs nothing. It runs on Apify, whose free plan includes monthly credit, so you can try it without paying.

Do I need to write code?

No. Fill in the form on Apify and press Start, schedule it, or send the results to Google Sheets, Slack or a webhook. For code, the input builder on this page writes the API call in curl, Python or JavaScript.

What does Hiring Signals & Buying Intent Data from Job Postings return?

Every row has the same fields, including company / companySlug / companyLogo, input / jobsPage / jobsPageFoundBy, status, signalScore, matchingRoles / newMatchingRoles, rolesPostedLast7Days, totalOpenRoles / openRolesChange, functions / seniority / topLocations. Download as JSON, CSV, Excel or XML.

Can an AI agent use it?

Yes. The webdata-tools-mcp server exposes it to Claude, Cursor and other MCP clients as find_hiring_companies.

Can it run on a schedule and return only new results?

Yes. Schedule it on Apify (hourly, daily, weekly) and turn on the only-new option: each run then returns only what appeared since the last run with the same input.

Use cases

What people use Hiring Signals & Buying Intent Data from Job Postings for

  • Find accounts that are hiring for the team you sell to
  • Prioritize outbound by hiring momentum
  • Spot new budget lines and tool adoption from job ads
  • Catch layoffs and WARN notices at target companies
  • Feed weekly intent lists into a CRM

Also searched as

buying intent data hiring intent signals companies hiring for a role sales trigger events job change signals intent data from job postings account based marketing signals who is hiring sales leads layoff tracker WARN notice data

Categories

Jobs and hiring Lead generation Jobs