Hiring Signals & Buying Intent Data from Job Postings
Pricing
from $8.00 / 1,000 company signals
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. 1¢ per company with a signal; others free.
Pricing
from $8.00 / 1,000 company signals
Rating
0.0
(0)
Developer
Tapaswai Choudhary
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Features
Share
Hiring Signals: Companies Hiring for Your Roles
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.
| company | signalScore | matchingRoles | one of the roles |
|---|---|---|---|
| Stripe | 80 | 6 | Machine Learning Engineer, Radar |
| Spotify | 60 | 4 | Data Scientist - Business Analytics |
| Ramp | 30 | 1 | Senior 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
- Paste your target accounts' websites - for example
stripe.com(a name or a jobs page link likehttps://jobs.lever.co/spotifyworks too). Or add job searches (likedata engineerinGermany) to discover companies you don't know yet. You can combine both. - Enter the roles that signal intent for you, and anything to ignore.
- Press Start. Then schedule it weekly with Only new or changed companies and connect Slack, Google Sheets or your CRM.
Example input
{"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}
What you get
One record per company with matching roles, highest score first:
| Field | Description |
|---|---|
company / companySlug / companyLogo | Company name, its career-page handle, and logo when available |
input / jobsPage / jobsPageFoundBy | For 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) |
status | Only on free rows: no-job-board-found (no supported board) or no-matching-roles |
signalScore | 0-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 / newMatchingRoles | Roles matching your criteria, and how many are new since the last run |
rolesPostedLast7Days | Matching roles opened in the past week |
totalOpenRoles / openRolesChange | All open roles at the company, and the change since the last run |
functions / seniority / topLocations | Breakdown of the matching roles (e.g. {"data": 6, "engineering": 4}) |
matchedKeywords | Which of your keywords matched, and how often |
remoteShare | Share of matching roles that are remote (%) |
newestRolePostedAt / firstSeenAt | Newest matching role, and when the company first showed a signal |
hiringVelocity | Company job boards read on earlier days: roles opened and closed over the last 30 days (or since the board was first read, trackedSince and velocityWindowDays), the net change, and the same split by job function (byFunction). Counts all open roles, not only the matching ones |
roles | The matching roles (new ones first): title, link, location, seniority, function, work mode, posting date |
board / scrapedAt | Where the roles came from, and when |
layoffNotices / layoffEmployees / latestLayoffNotice | With 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 |
Example (shortened):
{"company": "Stripe","signalScore": 100,"matchingRoles": 11,"newMatchingRoles": 2,"rolesPostedLast7Days": 4,"totalOpenRoles": 708,"openRolesChange": 12,"functions": { "data": 6, "engineering": 4, "sales": 1 },"hiringVelocity": { "velocityWindowDays": 30, "rolesOpened": 41, "rolesClosed": 29, "netRoleChange": 12, "byFunction": { "engineering": { "opened": 18, "closed": 9 } } },"roles": [{ "title": "Data Engineer, Payments", "url": "https://stripe.com/jobs/search?gh_jid=...", "location": "Dublin", "seniority": "mid", "isNew": 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
Get the results straight in the API response with Apify's run-sync-get-dataset-items endpoint, ideal for apps, spreadsheets and AI agents:
curl -X POST "https://api.apify.com/v2/acts/tacps126~hiring-signals/run-sync-get-dataset-items" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"companies": ["stripe.com", "notion.so"]}'
The response is the list of signals. AI agents can also run it through Apify's MCP server (https://mcp.apify.com?tools=tacps126/hiring-signals).
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):
{"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.
FAQ
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.
Support
Found a problem or need a board or field that isn't there yet? Open an issue on the Issues tab - requests genuinely decide what gets built next.