Openings and Headcount Growth as a Qualifier
Outcome: two numeric columns that separate companies genuinely building out a function from those backfilling, applied as a cheap gate before anything expensive runs.
- Surface
- App and MCP server
- Level
- Intermediate
- Uses
- job_openings_growth_rate · head_count_growth_rate
- Credits
- ~2 per company
- Prerequisite
- Lesson 02's company set
The distinction that matters
A company with one open role may be replacing someone who left. A company whose openings have doubled in a quarter is building something.
Only the second is a buying signal, and telling them apart costs about two credits per company — far less than the person-level work it gates.
The two rates
Job openings growth rate
How the number of open roles has changed over a period. Fast-moving, and it responds within weeks of a decision to expand.
Reference: job_openings_growth_rate.
Headcount growth rate
How the total employee count has changed. Slower, and it confirms that past hiring actually landed.
Reference: head_count_growth_rate, Headcount growth.
They answer different questions: openings growth says what they intend, headcount growth says what they have done.
Reading them together
| Openings growth | Headcount growth | Reading |
|---|---|---|
| High | High | Scaling. Best target — intent and execution both present. |
| High | Flat | Just started. Decision made, hires not landed. Excellent timing — the tooling decision is ahead of them. |
| Flat | High | Absorbing. Hired recently, now integrating. Pain is arriving; timing is decent. |
| Flat | Flat | Steady state. No signal. |
| Negative | Negative | Contracting. Usually a poor target, occasionally a cost-saving angle. |
The second row is the most under-used cell in this table. High openings with flat headcount means the team is about to grow and the systems decisions have not been made yet — which is the cheapest possible moment to be in the conversation. Most vendors arrive after the hires land.
Thresholds
Set numeric thresholds rather than looking for “growth”.
| Metric | Sensible floor |
|---|---|
| Openings in your function, last 30 days | 2 |
| Openings growth, quarter over quarter | +25% |
| Headcount growth, 6 months | +10% |
| Department headcount | Above your minimum viable team size (lesson 04) |
Calibrate against your own customers rather than accepting these: run the metrics over 20 closed-won accounts as they were before they bought, and see where they actually fell.
Normalize by size
Raw counts mislead across company sizes. Three open roles at a 30-person company is transformative; three at a 3,000-person company is Tuesday.
Compute a ratio:
hiring_intensity = openings_in_function / current_department_headcountA ratio above roughly 0.2 — one new hire for every five existing people in that function — is a genuine build-out at any company size.
Where this sits in the pipeline
This is a cheap gate. It runs on every company from lesson 02, and its whole purpose is to shrink the set before lesson 05’s person-level work.
Expect it to remove half to two thirds. That removal is where the course’s cost control lives.
Do this now
Run both rates across the company set
All of them — this is the cheap layer.
Build the four-cell reading
As a classification column: scaling, just started, absorbing, steady.
Compute hiring intensity
Openings ÷ department headcount.
Calibrate thresholds against your own customers
20 closed-won accounts, as they were pre-purchase.
Apply the gate
Record how many survive.
Check the removed rows
Read 20. If obvious good accounts were dropped, a threshold is too high.
Check your work
- Both growth rates are populated
- The four-cell reading is a classification column, not a mental note
- Hiring intensity normalizes for company size
- Thresholds are calibrated against your own closed-won data
- You know the survival rate through the gate
Where this breaks
Growth rates over very small numbers are noise. A company going from one open role to three shows 200% growth and means almost nothing. Set an absolute floor alongside the percentage — at least two or three openings in your function — or the top of your list fills with tiny companies whose percentages are arithmetic artefacts.
Further automation
Store the rates each run and watch the change. A company crossing from flat to growing is a fresher signal than one that has been growing for a year, and the crossing is exactly the moment worth acting on. That requires a stored history, which is one extra column.
Next lesson
04 — Department-level headcount, sizing the team you are actually selling into.
Reference for this lesson: job_openings_growth_rate, head_count_growth_rate, Headcount growth, Company total employees.