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.
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.
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.
| Adjustment | Value | Source |
|---|---|---|
| Raw listing duplicate share | 30-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-570 | 1,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,000Raw board listings
what the headline shows
- ~550-700Unique after dedupe
minus 30-45% duplicates
- ~430-570Credible openings
minus 18-27% ghosts
- fewer stillSub-30-day, career-page
the ones worth applying to
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.
| Segment | Share of postings | Year-over-year trend |
|---|---|---|
| Entry-level | 46% | -7.5% |
| Senior-level | 14% | +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" profiles | Share of the two-country pool |
|---|---|---|
| United States | 62,172 | 80.3% |
| United Kingdom | 15,276 | 19.7% |
| US-to-UK multiple | 4.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.
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.
| Skill | US "Data Analyst" profiles | Share of US pool |
|---|---|---|
| SQL | 12,494 | 20.1% |
| Python | 1,951 | 3.1% |
| SQL-to-Python multiple | 6.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
- Define the role preciselyFix 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.
- Set the denominatorPull total employed in the occupation from OEWS national, state, or metro tables. Done is a single headcount for your geography, independent of ad counts.
- Estimate the true opening flowApply 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.
- Pull and deduplicate advertised postingsGather 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.
- Discount for ghost and stale listingsApply 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.
- Segment by seniority and geographySplit credible openings by level and metro, keeping entry and senior apart. Done is a small table showing where your band actually has demand.
- Size the competing poolEstimate how many people hold your target title and skill in that market via Refolk's index. Done is an openings-to-candidate ratio.
- Decide and record the forksCompare 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
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.
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.
01Drop your resume
A PDF or a LinkedIn URL. About a minute, once.
02I rank the openings
Every weekday morning, the live catalog scored against your history. Up to 20 worth your time, not two hundred links.
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.