B2B Hiring Signal Tracker — Who's Hiring & Why (AI)
Pricing
from $150.00 / 1,000 company trackeds
B2B Hiring Signal Tracker — Who's Hiring & Why (AI)
Track which companies are hiring, for what, and what it means. Pulls open roles from company career sites, then AI reads the signal: which teams are growing and whether it's a buying or expansion signal for your sales or recruiting.
Pricing
from $150.00 / 1,000 company trackeds
Rating
0.0
(0)
Developer
Fredrik Hansson
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Hiring is the loudest public signal a company sends. When a company opens ten sales roles, it's about to scale revenue. When it posts its first security engineer, it just crossed a compliance line. When a whole team appears, a new product is coming. This Actor reads that signal for you: give it company domains, it pulls their open roles straight from the company career site, and then AI tells you which teams are growing and whether it's a buying or expansion signal for your sales or recruiting.
You bring the companies. It hands back a hiring-intent read.
The flow
1. Give company domains 2. Pull open roles 3. AI reads the signalstripe.com → (noniner/career-site-jobs-api: → growth level · depts growing ·notion.so Greenhouse/Lever/Ashby/...) buying signal · recruiting angle│▼aggregate deterministically(roles · departments · locations · remote)
- Give company domains (or website URLs / emails). The tracker derives each company's career-board handle from the domain name.
- It pulls the open roles from each company's public applicant-tracking system via the
noniner/career-site-jobs-apiorgan — Greenhouse, Lever, Ashby, Recruitee and Workable. No login, no proxies. - It aggregates the roles deterministically (count, department mix, locations, remote), then an OpenAI layer reads the signal and returns a growth level, the departments growing, and a one-line buying and recruiting interpretation.
What you get per company
For every company, the Actor returns:
isHiring+openRolesCount— whether the company has open roles right now, and how many.roleCategories— open roles bucketed by function: Engineering, Sales, Marketing, Product, Ops, Security, Finance, HR, Other.matchedRoles— job titles matching the roles/skills you chose to watch (e.g.security,RevOps,sales).topLocations+remoteCount— where they're hiring and how many roles are remote-friendly.
Then the AI layer (OpenAI gpt-4o-mini, fast and low-cost) adds, grounded only in the roles above:
growthSignal—none·low·medium·high, from the volume and breadth of hiring.departmentsGrowing— the functions with the most openings.hiringSummary— one sentence on what they're hiring for.buyingSignalInterpretation— one sentence on what this hiring implies for a seller of what you sell (or a general read if you leaveofferingblank).recruitingAngle— one sentence for a recruiter: what talent this company is competing for.
If no open roles are found for a company, it still comes back with isHiring: false, growthSignal: "none" and an honest note — the run always succeeds.
Three ways people use it
- Sales intent / buying signals from hiring — find out which companies are hiring for X and turn it into pipeline. A company staffing up RevOps or sales ops is about to buy tooling; a company hiring its first security lead needs compliance software. Feed your target accounts and let the AI flag the growth signals that mean "reach out now".
- Recruiting market intel — see what talent your competitors are fighting for, which functions they're scaling, and where (remote vs. hubs) — a live read on the hiring market for the roles you place.
- Competitor headcount tracking — watch a list of competitors over time: rising
openRolesCountand newdepartmentsGrowingexpose expansion, new product bets and go-to-market pushes before any press release.
How it works
This Actor is an orchestrator. It calls the public noniner/career-site-jobs-api Actor once with all your companies, mapping each domain to its likely career-board handle across the supported applicant-tracking systems. Boards that don't exist for a company are skipped silently (never charged); boards that do exist return their open roles in one clean schema. The tracker then aggregates those roles per company and sends only the aggregated picture to OpenAI for the signal read — so the LLM is grounded in real postings, not guesses, and token cost stays tiny.
Input
| Field | Type | Notes |
|---|---|---|
domains | array | Required. Company domains, website URLs or emails (domain is extracted). One per line. |
keywords | array | Roles/skills to flag, e.g. ["security","RevOps","sales"]. Matching titles come back as matchedRoles. Empty = track all. |
offering | string | What you sell. If set, buyingSignalInterpretation is sharpened for you as a seller. |
postedWithinDays | integer | Only count roles posted within this many days. Default 30. 0 = no date filter. |
maxJobsPerCompany | integer | Cap on roles collected per company before aggregation. Default 50. |
maxResults | integer | Max companies to track. Default 50. One charge per company. |
maxConcurrency | integer | Companies interpreted in parallel. Default 3. |
model | string | Override the OpenAI model. Default gpt-4o-mini. |
Minimal input example
{"domains": ["stripe.com", "notion.so"],"keywords": ["security", "sales"],"offering": "We sell a SOC 2 compliance automation platform for scaling SaaS companies."}
Output example
{"domain": "stripe.com","companyName": "Stripe","isHiring": true,"openRolesCount": 47,"roleCategories": { "Engineering": 24, "Sales": 8, "Ops": 6, "Product": 5, "Security": 3, "Other": 1 },"matchedRoles": ["Security Engineer, Detection & Response", "Enterprise Account Executive"],"topLocations": ["Remote (US)", "San Francisco", "Dublin"],"remoteCount": 19,"growthSignal": "high","departmentsGrowing": ["Engineering", "Sales", "Security"],"hiringSummary": "Stripe is hiring broadly across engineering, sales and a growing security team.","buyingSignalInterpretation": "A new security team plus heavy engineering growth is a strong buying signal for a SOC 2 compliance platform — compliance scope is expanding faster than headcount can cover manually.","recruitingAngle": "They're competing hard for detection-and-response security engineers and enterprise AEs, mostly remote-US."}
A company with no discoverable open roles comes back with isHiring: false, openRolesCount: 0, growthSignal: "none" and an honest summary.
Pay-per-event pricing
This Actor uses pay-per-event billing with a single event:
| Event | Price | Charged when |
|---|---|---|
company-tracked | $0.15 | Once per company whose open roles were collected and interpreted into hiring, growth and buying signals. |
The Actor logs its OpenAI token usage and the estimated AI cost at the end of every run, so the event price stays safely above the model cost.
Setup
The AI layer calls the OpenAI API. Set the environment variable / secret OPENAI_API_KEY on the Actor. Collecting open roles runs without it; only the signal interpretation needs it.
Use it from an AI agent (Apify MCP server)
This Actor is available through the Apify MCP server, so AI agents (Claude, ChatGPT, or anything that speaks MCP) can call it as a tool — hand it a list of domains and an offering, and read back the hiring signals — with no custom integration code.
Run it locally
npm install# put your input in storage/key_value_stores/default/INPUT.jsonexport OPENAI_API_KEY=sk-... # required for the signal interpretationapify run -p
Related actors
- Career Site Jobs API — Every open job from Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Recruitee and Workable in one schema. The organ this tracker reads from.
- B2B Intent Radar — Spot buying intent across the web for your target accounts.
- B2B Talent Sourcing Brief — Turn a role into a sourcing brief with the market and talent landscape.
- AI Company Enrichment — Turn domains into structured firmographic profiles with contacts, socials and ICP fit.
Part of the No Niner toolkit — no-code web scraping, enrichment & AI data tools, all pay-per-use. Browse the full set at noniner.io.