RefolkCandidates
FrameworkReading the market

The Hiring Momentum Score, to Prioritize, Watch, or Skip One Company

You can score one target company as expanding, holding, or contracting hiring in your function from public data, then decide to prioritize, watch, or skip it.

15 min readLast reviewed September 29, 2026Read as Markdown

Key takeaways

  • Between 18% and 22% of online job postings are ghost jobs, so the live-req count you verify against the careers page, not the advertised count, is the only defensible input to a momentum score.
  • Hires per posting halved from 8 in 10 to 4 in 10 since 2019, which is why a rising 30-day posting trend beats a static high count as a signal that is hard to fake.
  • The headcount gap between top-quartile fundraisers (about 6%) and everyone else (about 12%) is not statistically significant, so a funding round moves a company from skip to watch, never straight to prioritize.
  • Median tenure of 4.1 years reads as churn only after you net out age, because workers aged 25 to 34 sit at 2.7 years against 9.6 years for those aged 55 to 64.
  • A clean layoff-tracker record plus a declining req count is a truer contraction signal than either alone, because quiet non-backfilling produces zero tracker entries.
  • In Refolk's index, US Rust talent (3,200) is 172x thinner than US Python (549,942), so a visible cluster of scarce-skill reqs is stronger evidence of committed intent than a common-skill cluster.

Deciding where to spend limited application effort is a judgement call you make one company at a time. This guide gives you a repeatable way to score whether a single company on your target list is expanding, holding, or contracting hiring in your specific function, using only public data, and to end on a clean verdict: prioritize, watch, or skip. It is for job seekers who have a shortlist and want to rank it by real momentum rather than employer brand.

Generic advice tells you to research a company and stops at Glassdoor reviews and the mission statement. That tells you nothing about whether the team you would join is growing right now. This is the upside read. It sits alongside the library's downside references - layoff risk and return-to-office reversal - but answers a different question: is this company adding headcount in my function, and does that make it worth my time?

Why raw posting counts lie, and what to score instead

Score the live-req count and its 30-day trend, not the advertised count. Two independent facts make a raw posting number nearly useless on its own. First, the ghost-job floor: a 2025 Greenhouse study found between 18% and 22% of all online job postings are ghost jobs, positions that do not exist or that employers are not planning to fill immediately. Second, the hires-per-posting ratio has halved since 2019, from 8 per 10 to 4 per 10, so a company can carry a high static count while almost no one is actually being hired.

18-22%
Share of online job postings that are ghost jobs
Greenhouse 2025 study; senior roles run higher, near 21% in a separate 175,000-listing sample.

Both facts point the same way. The advertised count is inflated by ghosts and decoupled from real hiring. What survives both problems is velocity: the change in verified, live reqs in your function over a fixed window. A rising trend is harder to fake than a snapshot, because it requires the company to keep opening and refreshing reqs on its own applicant tracking system (ATS) - the software like Greenhouse, Lever, or Workday that runs its careers page.

A static high posting count can hide a hiring freeze; a rising 30-day trend cannot.

So the momentum score has five inputs, in order of weight: 30-day velocity in your function, the share of open roles that are expansion rather than backfill, the live-req count after discounting ghosts, a stability flag from tenure, and context events like funding or layoffs held as notes rather than multipliers. The rest of this guide builds each input and then combines them.

The four signals that separate expansion from backfill

Read four signals to tell net-new growth from replacement. Practitioners distinguish net-new headcount from a replacement, leadership hires from bulk hiring, whether one function grows while others freeze, and whether roles cluster or stand alone.

  • Net-new vs. replacement. A backfill replaces someone who left and inherits existing relationships; an expansion hire is net-new headcount and carries a stronger signal.
  • Leadership vs. bulk. A single VP or director hire in your relevant function is a strong signal that a team is being built out rather than topped up.
  • Function vs. company. A company can hire in one function while freezing or cutting others. Verify your specific team is growing before you assume company-wide budget expansion.
  • Clustering and first-time titles. Multiple related reqs opening together, and titles the company has never posted before, read as expansion. A lone recurring title reads as backfill or evergreen.

The word "evergreen" matters here. An evergreen listing is a role kept perpetually open to build a pipeline, not to fill an immediate seat. Analyst roles are disproportionately used this way because backfills for them are predictable. When you see one analyst or support req that reappears every few months, do not count it as demand.

Each signal tells you something and each can lie. A cluster proves coordinated intent, but a cluster of the same evergreen title proves nothing. A first-time title proves a new capability is being built, unless it is a rebrand of a role that was closed last month. A leadership hire proves a team is being resourced, unless that leader is a like-for-like replacement for someone who just left, which turns it back into a backfill.

How funding and context events should move the score

Weight funding cautiously: a round is permission to hire, not proof of hiring. The evidence is blunt. Top-quartile fundraisers grew headcount about 6% over twelve months versus about 12% for all other companies, and the difference is not statistically significant. The mechanism is that money now buys fewer people: Series A startups raised about $160k per employee in 2020 and more than $320k in 2025, and the median Series A headcount fell from 57 employees in 2020 to 44 in 2024.

6% vs. 12%
Twelve-month headcount growth, top-quartile fundraisers vs. everyone else
The gap is not statistically significant, so a raised round is a weak predictor of hiring on its own.

That does not mean funding is noise. It means a round moves a company from skip to watch, and only confirmed reqs move it to prioritize. The counter-case shows what conversion looks like: one company raised $400 million and announced plans to grow headcount 50% to 450. That is a round paired with a posted, quantified plan - watch it become reqs, and if they appear in your function, prioritize.

The macro backdrop sets your "normal." On a three-month moving average basis, hiring held flat at 3.3% for six straight months, and JOLTS showed 6.5 million openings with an openings rate of 3.9%, the lowest in more than eight years outside March and April 2020. Against a soft market, a company sustaining velocity near the practitioner ceiling of 30% quarterly headcount growth is genuinely surging; flat postings are merely steady, not weak.

How much weight each layer earns in the score

  1. 30-day velocity in your function
    The heaviest input, hard to fake
  2. Expansion share of open roles
    Distinguishes growth from replacement
  3. Live-req count after ghost discount
    The only defensible volume figure
  4. Tenure stability flag
    Age-adjusted, sector-adjusted
  5. Context events (funding, layoffs)
    Notes that nudge, never multiply
Verified reqs and their trend carry the score; context events only nudge it.

Reading tenure as a stability signal without the age trap

Tenure reads as churn only after you net out age and sector. Median tenure with a current employer was 4.1 years in January 2026, up from a low of 3.9 years in January 2024. But the headline hides the trap: workers aged 55 to 64 had 9.6 years of tenure, more than three times the 2.7 years for workers aged 25 to 34. A young, high-growth team therefore looks unstable on raw tenure without anyone actually leaving.

Sector matters just as much. Use this baseline before you flag anything.

SectorMedian tenure (yrs)
Mining/oil & gas5.7
Manufacturing4.9
Financial activities4.7
Private sector (all)3.5
Leisure & hospitality2.1

The read: a fintech team at 2.5 years against a financial-activities baseline of 4.7 is worth a churn flag; a startup engineering team at 2.5 years staffed largely by people in their late twenties is not, because it matches the age-adjusted expectation. What tenure proves is retention over time. What it lies about is a young team, which looks like churn and is not, and a team that just doubled, which mathematically drops median tenure toward zero regardless of anyone quitting.

To settle the question, look at who left rather than at the median alone. A short search of departures from your target function over the past year, paired against the tenure figure, separates a young team from a leaking one.

Discounting false positives to a live-req count

Cut ghosts before you count. The documented discount takes two minutes: open the company's own careers page and search for the role title. If a job appears on LinkedIn or Indeed but is absent from the company's Greenhouse, Lever, or Workday portal, it may be stale, already filled, or cached by an aggregator. That single check removes most of the ghost floor.

Prevalence varies by study, which is why you verify rather than trust any single number.

SourceGhost-job shareBasis
Greenhouse 202518-22%platform postings
Clarify Capital~1 in 7 (~14%)175,000 US listings
Clarify Capital (senior)~21%senior roles
ResumeUp.AI27.4%US LinkedIn, >30 days

After the careers-page cross-check, apply two secondary flags. A posting more than 30 days old with no visible activity is suspect, given the average US posting fills in about 41 days, and 25% of postings sit up more than 90 days. And the same role reappearing every few months usually points to an evergreen pipeline listing. Neither flag is a verdict on its own. There is no universal number of days; an older posting can still be active, while a recent repost can still be uncertain. Use age to lower confidence, not to auto-reject.

Public tools help you see trend without doing all the counting by hand. TrueUp aggregates hundreds of thousands of tech job postings and visualises company hiring trends, team sizes, and role types by headcount, funding stage, and growth rate. LinkedIn employee count is the most direct headcount-direction proxy. For the downside cross-check, layoff trackers cover confirmed cuts, though they miss companies below the WARN Act's 100-employee threshold and quiet attrition where roles simply are not backfilled. Whatever the aggregator says, the company careers page is the ground truth, because aggregators cache stale roles.

The scoring procedure, start to verdict

Run these eight steps in order on one company. Budget about 90 minutes the first time and 20 minutes for each weekly re-check once your search string and snapshot exist.

Score one company for hiring momentum

  1. Define the function and scope
    Pin the exact title family and location you would apply to, and write it as a repeatable search string you can run identically every week.
  2. Pull current open reqs from the source of truth
    Go to the careers page on Greenhouse, Lever, or Workday, not an aggregator, and count roles in your function. Save a dated count.
  3. Establish velocity over a 30-day window
    Compare this week's count against a prior snapshot using a trend view, LinkedIn employee count, or your saved counts. Record a percent change and a headcount-direction read.
  4. Classify each role as expansion, backfill, or evergreen
    Tag clusters and first-time titles as expansion, and lone recurring titles as backfill or evergreen. Every open role gets one tag.
  5. Discount false positives to a live-req count
    Apply the careers-page cross-check, posting age against the 41-day fill average, and repost cadence. Keep only live reqs.
  6. Read tenure and stability
    Check median tenure against the sector baseline and whether the team skews young rather than churny. Set one flag: stable, young, or churning.
  7. Weight context events without a multiplier
    Layer funding, earnings, and layoff-tracker entries as notes, downweighting funding alone. Write an adjustment note.
  8. Score and decide prioritize, watch, or skip
    Combine velocity, expansion share, live-req count, stability, and context into one written verdict with the numbers behind it.

Turning the inputs into a verdict is a two-variable call: how fast the function is hiring, and how much of that hiring is real expansion. The matrix below is the decision.

The prioritize / watch / skip decision

Rising velocityFalling velocity
Rising velocity, low expansion
Watch: real activity, but mostly backfill; recheck for clusters
Rising velocity, high expansion
Prioritize: net-new clustered hiring in your function
Falling velocity, low expansion
Skip: no momentum and no growth signal
Falling velocity, high expansion
Watch: growth-shaped roles but slowing; verify reqs are live
Low expansion shareHigh expansion share
Velocity on one axis, expansion share on the other, read after the ghost discount.

Record the verdict in a fixed format so re-checks are comparable week to week. Copy this and fill one per company.

Company momentum score card
Company:
Function / title family:
Snapshot date:
Live reqs in function (careers page): ___  (prior snapshot: ___)
30-day velocity: ___%   Direction: rising / flat / falling
Expansion share: ___ of ___ live reqs tagged expansion
Leadership hire in function? yes / no
Tenure read: ___ yrs vs. sector baseline ___ yrs  Flag: stable / young / churning
Context notes (funding, earnings, layoffs):
Ghosts removed: ___ postings dropped after ATS cross-check
VERDICT: prioritize / watch / skip
Reason (one line, with the two numbers that drove it):

Fill one per target company; re-run the numbers weekly and keep the dated snapshots.

How this score goes wrong

The score fails in predictable ways, and every failure has a check. This section is the one to keep open while you work, because a false positive here costs you weeks of misdirected applications.

Failure modeHow it fools youThe check
Aggregator inflationHigh count, dead reqsCross-reference the ATS portal
Evergreen as surgeA perennial analyst req reads as demandRepost cadence and description staleness
Posting-age overreachSkipping real leads over two weeksClosing date and whether the description changed
Funding haloA big round read as hiring proofDid reqs open in your function after the round?
Function vs. companyCompany grows while your team is frozenScope velocity to your function only
Tenure age artifactYoung team flagged as churnCheck age mix before scoring instability
Tracker blind spotClean layoff record read as safetyWatch req counts trend down, not just tracker events

Two of these deserve extra weight. The funding halo is the most common misread on a startup shortlist, because a raised round is loud and public while the conversion into reqs is quiet. Anchor on the insignificant 6%-versus-12% headcount gap: a round without posted reqs in your function is a watch, full stop.

The tracker blind spot is the most dangerous, because it fails silent. Hiring freezes and quiet non-backfilling produce zero tracker entries, so a clean layoffs record can sit over a contracting team. The truer contraction signal is a clean tracker paired with a declining live-req count over successive snapshots. This is exactly why your own dated counts matter more than any single lookup: only a trend you recorded yourself catches the quiet freeze.

One more read to get right: recruiter silence. A recruiter not replying is not evidence a role is inactive; it simply adds no new information. Treat non-reply as neutral and let the req counts decide.

That leverage point is worth pricing into your own aim, too. Where the pool is thin, your application competes against fewer people, and a company's visible commitment there is more credible.

SegmentPool sizeRelative depth
Python, United States549,9421.0x (base)
Python, United Kingdom69,6610.13x (US 7.9x larger)
Rust, United States3,2000.006x (Python 172x larger)

When you have narrowed to a live, clustered target, tailoring your application to each posting and scoring your own fit is where Refolk removes the manual work the score just justified, turning a prioritized company into submitted, tailored applications rather than a spreadsheet row.

Keeping the score current

A momentum score is a snapshot, so schedule the re-check. Velocity is only meaningful across dated counts, which means the first run creates the baseline and every weekly run creates the signal. Set a recurring 20-minute slot per prioritized company: re-pull the careers-page count, note the new 30-day velocity, and update the verdict if the direction flipped.

Before you trust the verdict

  • The live-req count came from the company's own ATS, not an aggregator
  • You have at least two dated snapshots so velocity is real, not a guess
  • Every open role is tagged expansion, backfill, or evergreen
  • Ghosts were removed with the careers-page cross-check
  • The tenure flag is age-adjusted and compared to the sector baseline
  • Funding is a note that nudged the score, not a multiplier that set it
  • A declining req count was checked against the layoff tracker, not instead of it
  • The verdict is written with the two numbers that drove it

Re-run the whole eight-step procedure only when something structural changes: a funding announcement, an earnings call, a layoff-tracker entry, or a leadership hire in your function. Between those events, the weekly count update is enough. A prioritize can decay to watch in a month if velocity stalls, and a watch can graduate to prioritize the week a funded plan turns into clustered reqs. The point of the score is not a one-time ranking; it is a live read you keep accurate so your limited application effort always lands on the company that is actually building the team you want to join.

Questions job seekers ask

How can I tell if a company is actually hiring before I apply?

Verify the live-req count, not the advertised count. Open the company's own careers page on Greenhouse, Lever, or Workday and confirm the role exists there, because between 18% and 22% of online postings are ghost jobs. Then compare this week's count in your function against a prior snapshot to read the 30-day trend. A role live on the ATS with a rising count around it is a real signal; a role visible only on an aggregator is not.

What is the difference between a backfill and a new role posting?

A backfill replaces someone who left and usually inherits an existing team and relationships, so it carries a weaker growth signal. An expansion hire is net-new headcount. You read expansion from role clusters (multiple related reqs opening together) and first-time titles the company has never posted, and you read backfill or evergreen from a lone recurring title that reappears every few months. A single VP hire in your function is a strong expansion signal on its own.

Should I skip any job posting older than two weeks?

No, posting age alone is not conclusive. Coaches disagree here: some skip anything over two weeks, but an older posting can still be active while a recent repost can still be uncertain. Use age as a secondary flag, not a verdict. The stronger test is whether the role appears on the company's own ATS portal and whether the description or closing date has changed, against a US average fill time of about 41 days.

Does a big funding round mean a company is about to hire a lot?

Treat funding as permission to hire, not proof of it. Top-quartile fundraisers grew headcount about 6% versus about 12% for everyone else, and the difference is not statistically significant, partly because per-employee raises doubled from about $160k to more than $320k for Series A. A round should move a company from skip to watch. Confirm it converts into posted reqs in your function before you prioritize.

How do I use a company's median tenure without misreading it?

Net out age before you call anything churn. Median tenure is 4.1 years overall, but workers aged 25 to 34 sit at 2.7 years against 9.6 years for those aged 55 to 64, so a young high-growth team looks unstable on raw tenure. Also compare against the sector: financial activities runs 4.7 years while leisure and hospitality runs 2.1 years. Only after adjusting for age mix and sector does a low figure point to real instability.

Put this to work

Paste your career in once. Every application after that is written for you.

Drop a resume or a LinkedIn URL. I rank the live openings against it, rewrite the resume and write a cover letter for the best of them, and fill in the employer's form when you press the button. You read, you decide what goes out.

  1. 01Drop your resume

    A PDF or a LinkedIn URL. About a minute, once.

  2. 02I rank the openings

    Every weekday morning, the live catalog scored against your history. Up to 20 worth your time, not two hundred links.

  3. 03Each one is written up

    Resume rewritten for the posting, a cover letter, a fit score. Press send, or let me fill in the form.

  • New matches ranked and written before you are up.
  • Every bullet stays inside what your history supports. Nothing invented.
  • Queued, submitted, interviewing, offer: one screen, not a spreadsheet.

500 free credits on sign-up. No card. Nothing is sent until you say so.

Read next