RefolkCandidates
TeardownReading the market

Sizing Your Own Job Market, One Role Carried End to End

You will be able to turn a job title and a location into a defensible count of real openings and a ratio of openings to competitors.

15 min readLast reviewed August 23, 2026Read as Markdown

Most job seekers size their market by scrolling. They see a board say "5,000 jobs," feel either flooded or starved, and set their aim on a number that is mostly noise. This guide does the opposite: it takes one role - Data Analyst - and carries it end to end, from the raw board total down to a defensible count of real openings and a ratio of openings to competitors. Follow along on your own title, location, and skills, and you will finish with three decisions written down: where to aim, whether to retrain, and whether to move.

The point is not the exact number for Data Analyst. The point is the method, and the forks where the method saves you from a wrong turn.

Why the headline number is the wrong denominator

The national openings figure and your personal number often move in opposite directions. In June 2026, JOLTS reported 7,359,000 job openings at a rate of 4.4%, and in May 2026 openings hit 7.594M, a two-year high. Yet over the same period, tech, media, and professional-services postings sat well below pre-pandemic levels. A rising aggregate can mask a shrinking niche.

JOLTS - the BLS Job Openings and Labor Turnover Survey - asks thousands of employers each month how many positions were open on the last business day. It is the authoritative US count, but it is total-nonfarm. It is built to describe the whole labor market, not your occupation in your metro. Reading "7.36M openings" as evidence your niche is booming is the single most common sizing error, and it is the first failure mode I cover later.

There is a second reason the headline misleads. Demand has cooled at the level that matters to a candidate: openings per unemployed worker sit at 1.0, below the 2019 level of roughly 1.2. The Indeed Job Postings Index read 101.0 in June 2026, down 3.7% year over year. Both of those are closer to your reality than the raw JOLTS count, but neither is your reality. Your reality is your occupation, your band, and your metro.

7,359,000
US job openings, June 2026 (JOLTS, 4.4% rate)
A total-nonfarm figure that says nothing specific about your occupation or metro.

So the first move is to stop using the national count as a denominator and build one from the occupation up.

Build the denominator from employment, not ads

The denominator is total employment in your occupation for your geography, pulled from OEWS - the BLS Occupational Employment and Wage Statistics program, which estimates employment and wages for roughly 830 occupations from a survey of business establishments. This number is stable, it is not polluted by advertising, and it anchors everything that follows.

For scale, OEWS put all-occupations employment at 155,495,730 as of May 2025. You want the line for your occupation, at national, state, or metro level. Pull the headcount for the geography you are actually willing to work in.

Then convert headcount into a flow of openings two ways and reconcile them.

  • Vacancy-rate method. Apply the current JOLTS vacancy rate, 4.4% as of June 2026, to your occupation headcount. That gives a point-in-time estimate of how many roles are open right now.
  • Projected-openings method. BLS publishes projected annual openings per occupation in the Occupational Outlook Handbook. For operations research analysts, for example, about 9,600 openings are projected each year on average over the decade, many resulting from the need to replace workers who transfer or exit. That gives an annual flow, including churn, which the vacancy rate does not.

These two answers will not match, and they are not supposed to. One is a snapshot, one is a year of flow. When they diverge wildly, that itself is a signal - a low vacancy rate against a high projected flow means high turnover, which is easier to break into.

The worked example: Data Analyst, from raw count to credible openings

Here is the fork that separates sizing from scrolling. Suppose you gather advertised Data Analyst postings and land on 1,000 raw listings across boards and career pages. That number is almost entirely fiction until you run it through two haircuts.

The first haircut is duplication. Raw job-posting feeds run 30 to 45% duplicates, because a single role is syndicated across the more than 25,000 job boards that exist. Deduplicate by description, not by title and company - the same role reposted with a tweaked title survives a title-only dedupe. Removing 30 to 45% takes 1,000 listings down to roughly 550 to 700 unique roles.

The second haircut is ghost and stale listings. Ghost jobs - postings with no intention to hire - are estimated at 18 to 22% of online postings in the Greenhouse ATS study and 27.4% of US LinkedIn listings by one career site. Employer admissions run higher still: in a 2024 survey of 753 US recruiters, eight in ten admitted their company posts jobs that are filled or do not exist. Apply an 18 to 27% haircut on top of the dedupe.

Stack the two and the arithmetic is brutal.

AdjustmentValueSource
Raw listing duplicate share30-45%jobspikr
Ghost-job share (ATS-based)18-22%Greenhouse
Ghost-job share (LinkedIn)27.4%ResumeUp.AI
Credible fraction of 1,000 raw listings (derived)~430-5701,000 x (1 - dup) x (1 - ghost)

Roughly half your apparent market evaporates before you send a single application. The discount stack, not the raw count, decides your odds.

Half your apparent market evaporates before you apply, which is why the discount stack beats the raw count.

Stale listings compound the ghost problem. The SHRM benchmark for average time-to-fill was 41 days in 2024, so a role open 90-plus days is either a ghost, a pipeline posting, or a search nobody expects to close. Filter by post date and treat anything over 30 days as suspect. Prioritising employer career pages and sub-30-day listings means you are working off cleaner data than the market average, which is corrupted enough that FTC job-scam reports nearly tripled between 2020 and 2024.

From raw listings to credible openings

  1. Raw board listings
    1,000

    what the headline shows

  2. Unique after dedupe
    ~550-700

    minus 30-45% duplicates

  3. Credible openings
    ~430-570

    minus 18-27% ghosts

  4. Sub-30-day, career-page
    fewer still

    the ones worth applying to

A 1,000-listing headline collapses to a few hundred real chances once duplicates and ghosts come out.

Segment by seniority, because the same role splits two ways

One occupation can be growing and shrinking at the same time, depending on band. Nationwide, entry-level roles are 46% of postings while senior roles are only 14%. But the trend lines cross: as of May 2026, senior-level postings were up 14.7% year over year while entry-level postings declined 7.5%. If you size Data Analyst as a single blob, you average a rising band into a falling one and learn nothing.

Sector matters just as much. Healthcare is about 11% of US employment but accounted for almost three quarters of net job growth in 2025. AI-related postings reached 5.9%, past the 3.3% peak of 2022. So a Data Analyst credible-openings number splits differently by where you point it: a senior healthcare-analytics band is on a different trajectory than an entry-level tech band, even inside the same OEWS code.

SegmentShare of postingsYear-over-year trend
Entry-level46%-7.5%
Senior-level14%+14.7%
Healthcare (all levels)~11% of employment~75% of 2025 net growth

The instruction is simple: never report a single credible-openings number without splitting it by band and by sector. Your band's trajectory can be the opposite of the occupation's.

Size the competing pool, then divide

Credible openings tell you half the story. The other half is how many people are already chasing them. This is where the market-sizing job is usually abandoned - candidates count openings and stop, when the number that predicts their odds is openings divided by competitors.

In Refolk's index of professional profiles, the US Data Analyst pool holds 62,172 profiles against 15,276 in the UK. That is not opportunity; it is competition. Read as demand, 62,172 US analysts feels like a booming field. Read correctly, it is your denominator of rivals.

Country"Data Analyst" profilesShare of the two-country pool
United States62,17280.3%
United Kingdom15,27619.7%
US-to-UK multiple4.07x-

Geography is a 4x lever. The US carries 4.07x the UK's pool. That does not automatically make the UK easier - it depends on openings per candidate in each market - but it means the right comparison is a ratio, computed separately for each geography, not a contest of absolute openings.

4.07x
US Data Analyst pool relative to the UK
From Refolk's index. Competition, not demand - the correct read is openings per candidate in each market.

Skill mix cuts the pool further. Within the US Data Analyst pool, 12,494 profiles list SQL against 1,951 listing Python - a 6.4x gap.

SkillUS "Data Analyst" profilesShare of US pool
SQL12,49420.1%
Python1,9513.1%
SQL-to-Python multiple6.40x-

This overturns a common retraining instinct. If Python roles are scarcer in ads but the Python candidate pool is 6.4x smaller, the openings-per-candidate ratio can favor Python even though it looks like the thinner market. Retraining into the "hot," heavily advertised skill can mean more competition, not less. Compute the ratio in each skill market before you commit months to a course.

Sizing the competing pool by title, skill, and geography by hand is slow. This is where Refolk removes the friction: it queries an index of professional profiles directly, so you can get the denominator of rivals for a specific title, skill, and place in one search instead of reconstructing it from scattered public records.

The procedure, start to finish

Run these eight steps in order on your own role. Each one produces a concrete artifact, so you can stop and resume without losing your place.

Size your market, one role end to end

  1. Define the role precisely
    Fix one title, a location scope, and one or two must-have skills into a single line like "Data Analyst, SQL, London." Hold both threads: title drives ad count, occupation code drives the denominator.
  2. Set the denominator
    Pull total employed in the occupation from OEWS national, state, or metro tables. Done is a single headcount for your geography, independent of ad counts.
  3. Estimate the true opening flow
    Apply the JOLTS vacancy rate (4.4%, June 2026) to the denominator, or use BLS projected annual openings. Done is an annual and a point-in-time estimate not derived from ads.
  4. Pull and deduplicate advertised postings
    Gather counts from career pages, two or three boards, and one aggregator; collapse duplicates by description. Expect to remove 30-45%; done is a unique-listings number.
  5. Discount for ghost and stale listings
    Apply an 18-27% ghost haircut and flag anything over 30 days against the 41-day median time-to-fill. Done is a stated credible-openings number.
  6. Segment by seniority and geography
    Split credible openings by level and metro, keeping entry and senior apart. Done is a small table showing where your band actually has demand.
  7. Size the competing pool
    Estimate how many people hold your target title and skill in that market via Refolk's index. Done is an openings-to-candidate ratio.
  8. Decide and record the forks
    Compare ratios across geographies and skills; note the wrong turns you avoided. Done is a written aim, a retrain-or-not call, and a move-or-not call.

How this goes wrong: seven false positives to filter

Every step above has a way of lying to you. These are the failure modes, each with what the false positive looks like and how to check it.

  • Counting raw board listings as openings. A "5,000 jobs" headline that is really about 2,750 unique roles. Check: dedupe by description and expect to drop 30 to 45%.
  • Trusting a stale listing. A role open 90-plus days that reads as active. Check: filter by post date against the 41-day median time-to-fill and treat anything 30-plus days as suspect.
  • Ignoring ghost jobs entirely. A pipeline that looks healthy when one in five to one in four postings will never hire. Check: apply an 18 to 27% discount and prioritise employer career pages.
  • Using national JOLTS for a niche role. "7.36M openings" implies your niche is booming. Check: drop from total-nonfarm JOLTS to OEWS occupation and metro data.
  • Confusing seniority signals. Overall postings look flat while your band is shrinking. Check: split entry (46%, falling 7.5% year over year) from senior (14%, rising 14.7%).
  • Reading the candidate pool as demand. 62,172 US Data Analysts feels like opportunity when it is competition. Check: divide credible openings by the pool for a real ratio.
  • Skill-mix blind spot. Assuming SQL and Python are interchangeable. Check: SQL profiles outnumber Python 6.4x, so a Python gap is a smaller, differently-priced market.

Where is the evidence thin? Two places, and you should say so in your own notes. First, there is no official ghost-job statistic - the 18 to 27% range is third-party and method-dependent, so treat it as a band, not a point. Second, the duplicate rate of 30 to 45% comes from raw feeds in general, not from your specific role; if you can dedupe your own pull directly, use your observed rate instead of the range. Both are estimates you refine locally, not constants you inherit.

Where to aim, read from openings-per-candidate

Band growingBand shrinking
Avoid or up-level
Crowded and shrinking - retrain or change band before applying
Scarce and rising
Thin and growing - aim here, this is your best ratio
Grind it out
Crowded but rising - viable with strong differentiation
Quietly workable
Thin and shrinking - fewer rivals, so watch the ratio, not the trend
Crowded pool (many rivals)Thin pool (few rivals)
Plot each geography-and-skill combination by how crowded the pool is against how the band is trending.

Record the forks and keep the sizing current

Finish by writing down the decisions and the wrong turns you rejected, because a market size is only useful if you can defend it and re-run it. Your record should hold three calls: your aim (which title, band, skill, and metro), your retrain-or-not decision with the ratio that drove it, and your move-or-not decision with the geography ratios side by side.

Market-sizing decision record
Role line: __________ (title, location, must-have skills)
Denominator (OEWS headcount): __________
Opening flow: __________ point-in-time (4.4% rate) / __________ annual (projected)
Raw listings: __________  ->  after dedupe (-30 to 45%): __________
Credible openings (-18 to 27% ghost): __________  (re-check)
Split by band: entry __________ / senior __________
Competing pool (Refolk index): __________  by skill: __________
Openings-to-candidate ratio: __________  (re-check)
Aim: __________
Retrain? __________ because ratio was __________
Move? __________ because __________ beat __________ on ratio

Fill each line with your own numbers. Keep it; re-run the fields marked (re-check) monthly.

Sizing is not a one-time exercise. The inputs drift: JOLTS and the Indeed Postings Index update monthly, seniority splits and sector growth shift quarterly, and your competing pool grows as more people list your target skill. The values in this guide are anchors, not constants. Re-check the vacancy rate, the seniority trend, and your openings-to-candidate ratio on a monthly cadence, and refresh the ghost-job and duplicate haircuts if your own pulls give you cleaner local rates.

Before you call your market sized

  • I built the denominator from OEWS occupation employment, not the national JOLTS count.
  • I estimated openings from the vacancy rate and from projected annual flow, and reconciled them.
  • I deduplicated my listing count by description and removed 30 to 45%.
  • I applied an 18 to 27% ghost haircut and dropped listings over 30 days old.
  • I split credible openings into entry and senior bands separately.
  • I sized the competing pool by title, skill, and geography from Refolk's index.
  • I computed openings per candidate, not just an openings count.
  • I wrote down my aim, my retrain call, and my move call with the ratios behind each.

The difference between a job seeker who is flooded and one who is precise is not effort. It is whether the number they aim at survived a dedupe, two haircuts, a band split, and a division by the competing pool. Do that once, keep the record, and re-run the changing fields. You will always know how many real openings exist for you, and where.

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