Hiring Signal Monitor - Greenhouse & Lever Job Alerts for Sales
Pricing
from $2.00 / 1,000 board checkeds
Hiring Signal Monitor - Greenhouse & Lever Job Alerts for Sales
Find companies that are hiring right now, the day they start. Tracks job postings opening and closing on Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee via official public APIs. A clean growth signal for sales, recruiting and market research.
Pricing
from $2.00 / 1,000 board checkeds
Rating
0.0
(0)
Developer
mohamed alaya
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
Hiring Signal Monitor - Job Alerts and Growth Signals from Careers Pages
Find the companies that are hiring right now, the day they start. Give the Actor a list of companies (names, domains or careers URLs) and it watches their real job boards on Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee and Workday. Every run it tells you which roles opened and which closed, which teams are hiring, whether headcount is growing or shrinking, and it can push the news to Slack, Discord, Zapier, Make or n8n.
Open roles are the cleanest public growth signal there is: a company opening ten security roles is about to buy security tools; one closing thirty roles is cutting. Sales, recruiting, investors and analysts use it to time outreach and spot trends.
How it works
- Add companies.
Notion,ramp.comorhttps://boards.greenhouse.io/gitlab. Names and domains are resolved to the right ATS automatically (and remembered, so later runs are faster). - First run = baseline. The Actor records every open role. You still get a full row per company (open roles, departments, newest postings) so the first run is useful.
- Schedule it (daily or hourly). Each later run compares against the previous snapshot and reports exactly what opened and closed.
Input
{"companies": ["Notion", "ramp.com", "https://jobs.lever.co/spotify", "nvidia"],"keywords": ["security", "data"],"alertOn": "opened","minChange": 3,"onlyChanges": true,"webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ"}
| Input | What it does |
|---|---|
companies | Names, domains, careers URLs or ats:slug shorthand. |
keywords, excludeKeywords, departmentFilter, locationFilter, countries, seniority, remoteOnly | Track only the slice you care about, e.g. security roles in the US. Changing filters automatically starts a fresh baseline for that company. |
alertOn | Alert on opened, closed or both. |
minChange | Ignore small day-to-day noise: alert only when at least N roles opened or closed. |
onlyChanges | Push only companies with an alert (recommended for big watch lists). |
webhookUrl | Slack, Discord, Zapier, Make or n8n notification when something changes. |
keepHistory | How many past open-role counts to keep for charting (default 30). |
alertOnErrorAfter | Flags a company whose board keeps failing (renamed, moved ATS, taken down). |
resetBaseline, stateStoreName | Start over, or keep separate watch lists in separate stores. |
Output (one row per company)
| Field | Meaning |
|---|---|
company, board, provider, status | BASELINE, UNCHANGED, CHANGED, ERROR or SUSPECT_EMPTY |
signal, netChange, growthPct | HIRING_UP / HIRING_DOWN / FLAT and the size of the move |
openRoles, previousOpenRoles | Current and previous number of tracked open roles |
opened[], closed[] | The roles that appeared / disappeared, each with title, department, location, workplaceType, seniority, salary and URL |
departments[] | Open roles per department with how many opened and closed this run |
topLocations[], remoteRoles | Where the hiring is and how much is remote |
postedLast7Days, newestRoles[] | Freshness of the pipeline (useful on the baseline run) |
leadershipRolesOpened[] | New director / VP / C-level roles: a strong strategic signal |
openRolesHistory[] | Time series of open-role counts for charts |
jobs[] | Every current role (switch off with includeJobList: false) |
error, errorStreak, brokenTarget | Failure diagnostics |
Sample row (trimmed)
{"type": "board","company": "GitLab","board": "greenhouse:gitlab","status": "CHANGED","signal": "HIRING_UP","openRoles": 211,"previousOpenRoles": 208,"netChange": 3,"growthPct": 1.4,"openedCount": 4,"closedCount": 1,"opened": [{ "title": "Account Executive - France", "location": "Remote, France", "workplaceType": "remote","url": "https://job-boards.greenhouse.io/gitlab/jobs/8860302002" }],"topLocations": [ { "location": "Canada", "openRoles": 62 }, { "location": "United States", "openRoles": 45 } ],"remoteRoles": 185,"postedLast7Days": 34,"alert": true}
Reliability
- Reads the public JSON APIs the companies' own careers pages use. No browser, no anti-bot, nothing that breaks on a redesign.
- A board that suddenly returns zero roles after listing many is treated as an API hiccup (
SUSPECT_EMPTY), not as a mass layoff: state is kept and no alert fires. - One failing company never stops the run, and you are only charged for boards that were actually read and for real hiring changes.
Pricing
Pay per event: a small charge per company checked successfully and a higher-value event when a company shows a real hiring change. Failed or empty-suspect boards are free.
FAQ
Why did my first run show no changes? The first run stores the baseline. Changes appear from the second run onward.
A company is not found. It probably runs an in-house careers site or an ATS without a public API. Paste its careers URL; the error row explains what was tried.
How often should I schedule it? Daily is enough for sales signals; hourly for fast-moving recruiting alerts.
Can I track only some roles? Yes, combine keywords, departmentFilter, countries and seniority. Example: only director-and-above roles in the US.
Where is the state kept? In the named key-value store stateStoreName. Use a different name for each watch list.