Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Hiring Signals — examples

Working code for Hiring Signals, an Actor that reads a company's public job board and returns what the board reveals instead of the listings on it.

Everything here is standard library only. Nothing to install.


What the tool actually returns

Point it at a company. It reads the board and answers one question: what is this company about to do?

Reddit · 188 open roles
  ↳ Exactly one legal role on the entire board, and it is a
    Director of Ads Policy.
    You do not hire a policy director for an ads business you
    are not about to scale.

Duolingo · 64 open roles
  ↳ 5 leadership openings in marketing, plus single roles in
    Japan, the UK and China while 78% of the board sits in the US.
    Three markets opening at once.

Notion · 110 open roles
  ↳ Half the board is go-to-market.
    The product is finished. They are buying distribution now.

Those are real, from one run. The scripts in examples/ are how you get them, and FINDINGS.md has a full pass over 112 company boards and 11,969 open roles — including the loudest signal of that run, which turned out to be wrong and why.


Examples

run_and_export.py Run over a list of companies, write one CSV row per signal. The shape you want for a spreadsheet or a CRM import.
watch_target_accounts.py Run on a schedule and print only what changed. The first run stores a baseline; after that you hear about a company the week it crosses a line it had not crossed before.
export APIFY_TOKEN=your_token

printf 'stripe\nfigma\nwise\n' > companies.txt
python examples/run_and_export.py companies.txt signals.csv

Input

{
  "companies": [
    { "board": "stripe" },
    { "board": "wise", "name": "Wise" },
    { "board": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite", "name": "NVIDIA" }
  ],
  "minSeverity": 50,
  "includeJobs": false
}

board is the company's slug on its ATS — usually just the company name. The platform is detected automatically and then remembered, so a repeat run costs one request per company.

Seven platforms: Greenhouse · Lever · Ashby · Workable · SmartRecruiters · Recruitee · Workday

Workday is the exception to the slug rule: every customer gets its own host, so paste the careers page URL and it is recognised on sight.


The eight signals

GTM_PUSH Revenue hiring outweighs product hiring. The product is ready; they are buying distribution.
GEO_EXPANSION First roles in a country they have none in. The earliest visible sign of market entry.
FIRST_HIRE_IN_FUNCTION A function being created from nothing.
AI_CAPABILITY_BUILD Concentrated ML hiring. They are building AI, not buying it.
INFRA_SHIFT First platform and SRE hires. The original stack stopped working.
LEADERSHIP_BUILD Several director-and-above searches in one function. An org is being built.
HIRING_SURGE Most of the board is new. Headcount just unlocked.
NET_NEW_ROLES Diffed against the previous crawl, not against posting dates.

Every signal carries a severity, a confidence level, the reason it matters, and the exact postings that triggered it.


The hard part is shutting up

A signal that fires on every company is not a signal.

The first calibration returned at least one signal for every single company tested, and AI_CAPABILITY_BUILD fired on 77% of boards — which in 2026 is just a description of the technology industry. That was treated as a bug, not a feature.

The test suite contains a deliberately boring control company that is required to produce zero signals. If it ever produces one, the build is wrong.

The pricing follows from the same idea: $0.08 per company that produced a signal, and nothing for one that didn't. If silence earned money there would be an incentive to loosen thresholds and bury you in noise.


Why the data is trustworthy

It reads the public, documented job-board APIs those seven platforms publish so companies can embed listings on their own careers pages. Third-party use is the intended use. No browser automation, no fingerprint evasion, no proxy rotation, no anti-bot arms race to eventually lose.

Two known-hard cases are handled explicitly rather than papered over:

Workday serves newest-first. Read the first thousand roles of a two-thousand-role board and you have read the fresh half — then reported "100% of this board opened in the last month". Truncated boards now report the true total, how much was actually read, and return null for freshness rather than a confident falsehood.

SmartRecruiters returns 200 OK with zero results for a company that does not exist, where every other platform returns 404. Counting that as a hit would attach an empty board to any string at all.


Actor on Apify Store →

About

Read a company's public job board and get the conclusion, not the listings. Examples for the Hiring Signals Actor, plus a pass over 112 real boards.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors