Refolk
PlaybookMarket and talent intelligence

The Role Market-Tightness Read: Tight, Balanced, or Loose

You can produce a documented openings-per-qualified-candidate ratio and a tight, balanced, or loose verdict for one role in one metro, and defend every number.

15 min readLast reviewed October 13, 2026Read as Markdown

A hiring manager asks the question that decides a plan: how hard will this role be to fill here? This guide is for workforce planners, talent-intelligence analysts, and strategy teams who need to answer that with a number, not an opinion. It takes you from a raw role-and-metro definition to a documented supply-to-demand ratio, a tight / balanced / loose verdict, and an error band, using only public data, so you can defend every link in the chain.

The deliverable is one sentence a manager can act on: "For this role in this metro, there are roughly X open requisitions per qualified, reachable candidate, which is tighter / looser than the national market, plus or minus Y." Everything below exists to make that sentence defensible.

What tightness means and the one number to anchor on

Labor-market tightness is the ratio of vacancies to jobseekers, written theta = v/u: the number of vacant jobs per available worker. It has a hard numeric anchor that most talent discussions lack. The efficient, balanced point is exactly one. Above one the market is inefficiently tight; below one it is inefficiently slack. As a real reference, the US had roughly twice as many vacancies as unemployed workers in March 2022, a theta near 2.0 and a documented "very tight" reading.

That anchor is why this method ends in a briefable number rather than a definition. You are not inventing a scale. You are mapping your role-metro figure onto an economic threshold that already exists.

1.0
The balanced labor market, as vacancies per jobseeker
Above 1.0 is inefficiently tight; below is loose; about 2.0 was the very-tight US reading in March 2022.

There is a refinement worth knowing. The raw denominator, unemployment, undercounts who is actually available for a role, because most qualified people for a given job already have one. A worker-availability measure replaces raw unemployment with effective searchers, a weighted sum: ES = Us + 0.48·Ul + 0.4·Z_want + 0.09·Z_do-not-want + 0.07·N, where Us is short-term unemployed and Ul is long-term. Generalized tightness goes further, weighting the unemployed, the out-of-labor-force, and the already-employed by their relative search intensities. You will apply the same logic at the role level in the supply discount below, so hold that thought: supply is never just the unemployed.

Why the demand side is the weak half

The structural fact to internalize before you pull a single number: metro demand data is weaker than metro supply data, so your error band will almost always be wider on demand. Plan accordingly.

The federal benchmark for openings is BLS JOLTS. It measures job openings as a stock on the last business day of the month, counting a position as open if the job exists, work is available, it can start within 30 days, and it is being actively recruited. That is a clean definition. The problem is granularity. The JOLTS sample of about 16,000 establishments does not directly support state or sub-state estimates. Experimental metro estimates exist only for the 18 largest metros with 1.5 million-plus employees, built by combining sample with model-based estimates and smoothed by a three-month moving average. And JOLTS has no occupation detail at all.

So for a role in a metro, JOLTS cannot help you. You fall back to job-posting aggregators that scrape large numbers of sites, and those carry duplication and scraping error you have to remove by hand. Supply, by contrast, is directly countable from public profiles. That asymmetry is the first thing to tell a reviewer.

The discount chain: raw counts are not supply or demand

Both sides of the ratio start as inflated raw counts, and both need a documented discount before they can be divided. Demand inflates because one job appears on many boards and gets reposted. Supply inflates because most profiles are not qualified, reachable, or comp-fit. The table below is the toolkit; apply each lever as a sequential multiplier.

LeverValueSource
Posting dedup removedup to 80%Lightcast posting analytics
Qualified-applicant rate, all industries11.5%Employ 2025 benchmark
Qualified-applicant rate, software/tech~5%Employ 2025 benchmark
Active share of talent pool~30%LinkedIn Talent Trends
Applicants per hire, tech vs healthcare191 vs 47industry benchmark

Each lever proves something, and each can lie. Read them that way.

Posting intensity. This is the ratio of total postings to unique postings. It proves how aggressively a market reposts. It lies when you skip it: a single ad reposted daily can count about six times a year under a 60-day window, so a market that looks tight may be one employer with a loud posting habit. Up to 80% of collected postings deduplicate away. The 60-day rule treats the first appearance as the original, removes duplicates for 60 days, then counts a still-live ad as new, starting a fresh window.

Qualified-applicant rate. This is the share of applicants who advance from application to screening. It proves that raw supply overstates hireable supply, and it does so unevenly. It was 11.5% overall but only about 5% in software and tech. The same raw pool size converts very differently by field, so you cannot carry one rate across roles.

Active share. About 30% of a talent pool is actively searching; roughly 70% is passive. This proves that accessibility, not headcount, caps near-term supply. It lies if you count every profile as reachable. But it also lies the other way if you count only the unemployed, because passive people can be moved. The honest move is to count active plus a reachable slice of passive, and state the slice.

Credential gating. Healthcare needs about 47 applicants per hire versus 191 in tech, because licenses pre-filter the pool. This proves that the funnel shape, and therefore the ratio, is role-specific before you touch any location data.

Counting supply: what the index actually shows

Supply is the countable half. The point of the method is to start from a real, directly counted number and discount it on the record, rather than guessing a pool size. The table below is drawn from Refolk's index of professional profiles and shows why raw counts need both a geography and a seniority read before they mean anything.

SegmentProfilesNote
React software engineer, US5,449Refolk's index
React software engineer, Germany418Refolk's index
US : Germany supply ratio13.0xderived
Senior React software engineer, US3,737Refolk's index
Senior share of US React pool68.6%derived

Two readings fall straight out of this. First, geography multiplies scarcity more than seniority does. The US React pool is 13.0x Germany's, a gap no amount of relaxing the seniority bar inside one country will close. Second, raising the bar costs less than it feels like: senior engineers still hold 68.6% of the US React pool. If the manager's instinct is "we will just hire junior and train," the data says the junior pool is the smaller one here.

13.0x
US React engineer supply relative to Germany, in Refolk's index
Moving the role between metros or countries changes tightness far more than adjusting the seniority band.

Now discount it. Take the 5,449 US React engineers. Apply the active share (about 30%) to get the reachable-plus-active slice, then the software/tech qualified rate (about 5%) for the share who would clear screening. The number collapses fast, which is the point: the tech funnel is punishingly narrow, so a raw pool of 5,449 behaves nothing like a generalist pool of the same size. This is where a countable starting point earns its keep. If you had guessed the pool, you could not defend the discount.

Refolk is where I count the supply side in plain English: you ask for the role and place you are sizing and get the matching profiles back, which is the raw number you then discount. For the demand side you still go to postings, because that is where openings live.

Run the procedure

This is the full method, start to finish. Budget about a day of analyst time. Each step ends with a concrete "done" so you know when to move on.

From role definition to a defended ratio

  1. Define the role and geography precisely
    Fix one job title with synonyms, one metro with a radius, and the seniority band. Prefer a standardized occupation over raw title to cut false distinct-role splits. Done: a written search spec with title variants and radius.
  2. Pull raw demand postings
    Collect postings for the role-metro from an aggregator over a fixed date window. Done: a raw total count tied to that window.
  3. De-duplicate and discount demand
    Apply the unique-versus-total split and posting intensity, collapsing reposts with a 60-day window. Done: one open-requisitions number plus the intensity multiple you divided by.
  4. Pull raw supply profiles
    Count public profiles matching title and metro using Refolk's index. Done: a raw supply count broken out by segment.
  5. Discount supply to qualified-accessible-comp-fit
    Multiply raw supply by a qualification rate, an accessibility rate for active plus reachable passive, and a comp-fit rate. Done: an adjusted supply number with every rate sourced.
  6. Compute the ratio and pick a verdict
    Divide discounted demand by discounted supply for openings per qualified candidate. Map to tight, balanced, or loose against theta = 1. Done: one ratio plus a band.
  7. Attach an error band
    Carry the uncertainty of each discount rate through to a low-high range, not a point. Done: a ratio with a stated plus or minus.
  8. Benchmark against national tightness
    Compare your role-metro ratio to national vacancies-per-jobseeker. Done: one comparison sentence with both numbers in the same units.

The tightness pipeline

  1. Define
    One role, one metro, one seniority band
  2. Raw demand
    Postings count over a fixed window
  3. Discount demand
    Divide by posting intensity, apply 60-day rule
  4. Raw supply
    Public profile count from the index
  5. Discount supply
    Qualified x accessible x comp-fit
  6. Divide and band
    Openings per qualified candidate, low to high
Demand and supply each start as inflated raw counts and must be discounted before they can be divided.

On step one, a note that saves rework: anchor on a standardized occupation where you can, not raw title. A title-only match will treat near-identical roles as distinct, or collapse distinct ones. On step six, keep units straight: both your role-metro figure and the national benchmark must read as openings per available candidate, or the comparison is meaningless.

How this goes wrong

Most bad tightness reads fail in one of seven predictable ways. This is the section to keep open while you work, because a number that survives these checks is briefable.

Failure modeThe false positiveThe check
JOLTS for a metro roleA clean openings number for your cityConfirm demand came from postings, not JOLTS
Reposts as separate openingsOne job on five boards reads as five reqsDivide by posting intensity, apply the 60-day rule
Over-collapsing distinct rolesDifferent-city roles merged into oneEnsure the match key includes location
Raw profiles as supply5,449 profiles read as 5,449 hireableShow qualification and accessibility multipliers
Ignoring passive supplyTightness overstated from unemployed onlyState which pools you counted
Point estimate, no bandA single number hiding order-of-magnitude disagreementCarry low-high rates to a range
Benchmark mismatchRole-metro ratio compared to national theta blindlyState both as openings per qualified candidate

Three of these deserve more than a row.

Over-collapsing distinct roles. A match on title and company alone will collapse genuinely distinct roles in different cities. Your de-duplication must key on location as well, or you will quietly delete real demand and call the market looser than it is. This is the mirror image of counting reposts, and both corrupt the demand number in opposite directions.

Ignoring passive supply. Supply built only on the unemployed overstates tightness, because the people qualified for a professional role mostly already have one. Generalized tightness exists precisely because the employed and the out-of-labor-force belong in the count, weighted by how hard they search. Whatever slice of passive candidates you decide is reachable, write it down. The verdict can hinge on it.

Point estimate with no band. Published funnel rates disagree by an order of magnitude depending on how the numerator and denominator are defined. A single number pretends that disagreement away. The fix is mechanical: carry the low and high of each discount rate through the chain and report the range. A reviewer who distrusts your 5% qualified rate can see what happens at 8% without redoing your work.

A tightness number without an error band is a guess wearing the costume of a measurement. </pull>

Reading the ratio and benchmarking it

Once you have discounted demand over discounted supply, you have openings per qualified candidate. Map it to the same scale tightness has always used. Below one is loose. Around one is balanced. Around two is very tight. The band labels come from the theta = 1 efficiency criterion, and the 2.0 reference is the documented March 2022 datapoint.

Bandtheta = v/uReference point
Loose< 1Efficiency criterion, below balance
Balanced~1Efficient tightness equals 1
Very tight~2US, March 2022

The matrix below is the judgement call to make before you deliver, because a headline number means different things depending on how much you trust each side.

Which number to trust, and what to do

Strong supply dataWeak supply data
Thin on both
Report a wide range and name both gaps; do not give a single verdict
Supply solid, demand thin
Lead with the supply count; widen the demand band and flag the postings caveat
Demand solid, supply thin
Rare; re-count supply from the index before trusting the ratio
Strong on both
Ship the point ratio with a tight band and a benchmark sentence
Weak demand dataStrong demand data
Confidence in demand and supply inputs determines whether you ship a verdict or caveat it.

Finish with the benchmark. State your role-metro ratio next to national vacancies-per-jobseeker, in the same units, and say which is tighter. "This role in this metro runs about 1.7 openings per qualified candidate, against a national market near balance, so it is meaningfully tighter than the economy as a whole." That single comparison is what turns a local number into a decision input: it tells the manager whether the difficulty is this role, this place, or just the market everyone faces.

Keep the read current

A tightness read has a shelf life. Postings are a flow that moves with hiring cycles, and the discount rates themselves get re-benchmarked. Rather than memorizing a value, re-run the mechanism. Re-pull demand on the same date-window logic, re-count supply from the index, and re-check whether the qualified-applicant and active-share rates you borrowed have moved before you reuse them. The verdict can flip without any change in the underlying pool simply because reposting intensity spiked.

Before you send the number, run the checklist.

Before you brief the number

  • Demand came from de-duplicated postings, not JOLTS, over a stated date window
  • Total postings were divided by posting intensity and reposts collapsed on the 60-day rule
  • The posting match key includes location, not just title and company
  • Supply started from a directly counted profile total, by segment
  • Raw supply was discounted by qualification, accessibility, and comp-fit, each rate sourced inline
  • Which supply pools you counted (active plus reachable passive) is stated explicitly
  • The result is a low-high range, not a point, with a stated plus or minus
  • The role-metro ratio and the national benchmark are both expressed as openings per qualified candidate

The habit that makes this durable is refusing to hand over a number you cannot walk backward. If someone questions the verdict, you should be able to name the raw supply count, the three discounts, the raw demand count, the posting intensity, and the national benchmark, in order, and show where the range comes from. That is the difference between a tightness read a planner bookmarks and a figure that evaporates under the first hard question.

Questions practitioners ask

Can I use JOLTS to find openings for a specific job in a specific city?

No. JOLTS has no occupation breakdown and only produces experimental, model-based estimates for the 18 largest metros with 1.5 million-plus employees, smoothed by a three-month moving average. It measures openings as a national stock on the last business day of the month. For a role in a metro you must use job-posting data instead, then de-duplicate it, and note that the demand side of your ratio is the weaker half.

What ratio counts as a tight labor market for a role?

Anchor on theta, vacancies per jobseeker. Efficient balance is exactly 1. Above 1 is inefficiently tight, below 1 is inefficiently loose, and about 2.0 was the documented very-tight datapoint for the US in March 2022. Express your role-metro figure as openings per qualified candidate so the comparison to that threshold holds in the same units.

Why can't I treat the raw profile count as the available talent pool?

Because most of it is not reachable or qualified. Roughly 70% of the workforce is passive and only about 30% is actively searching, and the qualified-applicant rate runs about 11.5% overall but only around 5% in software and tech. A raw count of 5,449 React engineers discounts to a far smaller accessible, qualified, comp-fit pool once you apply those rates in sequence.

How do I avoid counting the same job five times across boards?

Divide total postings by unique postings to get posting intensity, and collapse reposts with a 60-day rule where the first appearance is the original and later duplicates are removed for 60 days. Up to 80% of collected postings deduplicate away. Make sure your match key includes location, or you will collapse genuinely distinct roles in different cities.

Should I count employed people as supply, not just the unemployed?

Yes. Generalized tightness weights the unemployed, those out of the labor force, and those already working by their relative search intensities. Supply built only on the unemployed overstates tightness because most professionals are passive. State explicitly which pools you counted so a reviewer can see the accessibility assumption behind your number.

Why present a range instead of a single tightness number?

Because the discount rates themselves disagree, sometimes by an order of magnitude depending on how the numerator and denominator are defined. A point estimate hides that. Carry the low and high of each rate through the chain and report a low-high ratio with a stated plus or minus, so the verdict survives a challenge to any single input.

Try it on the search you came here for

Stop building boolean strings. Just describe the person.

Type one sentence. I plan the search, read GitHub, public LinkedIn and Crunchbase records, and the open web as it is right now, and hand back a ranked list with the reason next to every name.

  1. 01Describe them

    One plain sentence. Role, city, stack, stage, whatever matters to you.

  2. 02I read the web live

    GitHub, public LinkedIn and Crunchbase records, the open web. Not a database that went stale last quarter.

  3. 03You read the shortlist

    Ranked, with the reasoning under every name. Open a profile, ask a follow-up, narrow it down.

  • No boolean, no filters, no seat to buy. One box.
  • Read at search time, so a profile updated yesterday counts today.
  • Every step visible as it runs, every name with its reason.

500 free credits on sign-up. No card, no demo call. See real searches.

Read next