Job postings let you detect an industry-wide hiring slowdown early: a role is published before anyone is hired into it, and a weekly series is written days after its week closes, while a month's official rates follow weeks after the month ends. This guide gives three indicators, each read across the companies of one industry: the flow of new postings, the breadth of any fall and the age of the roles that stay open. It sets out the queries on the weekly market series and daily hiring counts, the official job openings, hires and quits rates, and a worked example that tells one employer's freeze from an industry-wide slowdown.
Which indicators detect an industry-wide hiring slowdown early?
Three indicators, read across the companies of one industry, detect a hiring slowdown early: the flow of new postings against the window before, the breadth of the fall, meaning the share of companies posting less than four weeks earlier, and the age of the open stock. Read a slowdown as industry-wide only when all three move together.
| Reading | Measure | The question it answers |
|---|---|---|
| Flow | New postings in the latest 28 days against the 28 days before | Are fewer roles being opened? |
| Breadth | The share of companies whose new postings fell, and a diffusion index | Is the fall shared by most employers? |
| Age | Open postings divided by new postings per day, in days | Are open roles standing longer against the inflow? |
Flow alone can be one employer: in a pooled count, one large company that stops opening roles can outweigh many small ones, so breadth gives every company one vote. Breadth borrows its construction from the Bureau of Labor Statistics, whose diffusion index of employment change gives each industry a value of 0, 50 or 100 for a decrease, no change or an increase over the span, and takes the mean. Applied to companies, 50 means as many posted more as posted less, and a reading below 50 means more of them posted less.
For age, open postings summed over a window's days, divided by the new postings in it, is the average stock over the average daily inflow, and in a steady state it approximates how many days a role stays open. It rises when the inflow falls while the stock holds, which is the slowdown pattern, and also when roles take longer to fill while the inflow holds, which is not. Read it with flow.
Leading indicators of a labour market slowdown in job postings data
Job postings lead because a role is advertised before anyone fills it, and the official hires count records a worker only once added to the payroll. In postings data the leading indicators of a labour market slowdown are fewer new roles, a fall shared by most employers, and open roles standing longer against the inflow.
A posting and an official job opening are related measures, not one measure. The Bureau's job openings survey is an establishment survey that collects its data directly from the sampled establishments, and that article, from the Bureau's Monthly Labor Review of August 2026, notes that a vacancy posting can stay online after the position has been filled. The author of a Federal Reserve Board staff note of 30 September 2026 reads online job postings as a timely indicator of hiring demand rather than a direct measure of job openings.
The order of events gives postings their lead. An employer decides to hire, publishes the role, interviews, and then adds a worker to the payroll, which is when the Bureau counts a hire. A decision to hire less therefore shows first as roles that are never published, and we found no official estimate of how long that lead lasts. Postings record what employers advertise, and reading postings at the source explains why the company's own board is the record to read.
Reading the flow in the weekly market series
The market series dataset holds weekly series, hiring among them, for industries, countries, size bands and markets, as of each Sunday, over 7, 30 and 180 days. Each rate is taken over a same-store cohort, the companies covered since before the window began and still covered at its end, and the previous window is counted over the same companies, so a fall in a series is a fall in what those companies did.
For flow, read the family of new postings for one industry beside the same family over all companies. The query reads Market Series (market_series) for the twelve Sundays up to :as_of, for the industry you pass as :industry, and sets each row's growth beside the growth over all companies on the same Sunday and window. Like the other query here, it is written for PostgreSQL.
select
s.as_of,
s.window_days,
s.cohort,
s.count,
s.previous,
s.growth,
a.growth as growth_all,
s.growth - a.growth as growth_gap
from market_series s
join market_series a
on a.metric = s.metric
and a.as_of = s.as_of
and a.window_days = s.window_days
and a.dimension_kind = 'all'
where s.metric = 'hiring_new'
and s.dimension_kind = 'industry'
and s.dimension = :industry
and s.window_days in (30, 180)
and s.as_of > cast(:as_of as date) - 84
and s.as_of <= cast(:as_of as date)
order by s.window_days, s.as_of;In each row growth is count minus previous, divided by previous, both counted on the same cohort. A negative growth_gap that persists says the industry's flow is weaker than that of companies as a whole, which separates an industry move from a calendar effect that touches everyone. The industry dimension is the industry label of the company website; set dimension_kind to sector to cut by the company's sector instead, and keep one of the two for a whole study.
Two 30-day windows that end a week apart share 23 days, so the 30-day growth changes slowly from one Sunday to the next. Compare Sundays five weeks apart for windows that do not overlap, and read the 180-day row for direction. The guide to sector hiring trends explains the main columns of a row, including the index.
Breadth and age across the companies you follow
Breadth and age need company rows. Hiring Activity (company_hiring_daily) holds one row per company and closed UTC day: open_postings at the end of the day, new_postings seen opening that day and closed_postings closed that day. A posting already on a board when it is first observed is a baseline, never counted as new, so a company added to the data brings no false burst of new roles.
Pass the companies you follow in the industry, by your own classification, as the array :company_ids. Mapping alternative data to a security master shows how to reach them from ISINs. The query computes all three readings for each of twelve Sundays back from :as_of, each over the latest 28 days and the 28 days before.
with dates as (
select cast(:as_of as date) - 7 * k as as_of
from generate_series(0, 11) as k
),
per_company as (
select
d.as_of,
h.company_id,
count(*) as days,
sum(case when h.day > d.as_of - 28 then h.new_postings else 0 end) as new_latest,
sum(case when h.day <= d.as_of - 28 then h.new_postings else 0 end) as new_before,
sum(case when h.day > d.as_of - 28 then h.open_postings else 0 end) as open_days_latest,
sum(case when h.day <= d.as_of - 28 then h.open_postings else 0 end) as open_days_before
from dates d
join company_hiring_daily h
on h.day > d.as_of - 56
and h.day <= d.as_of
where h.company_id = any(:company_ids)
group by d.as_of, h.company_id
)
select
as_of,
count(*) as companies,
sum(new_latest) as new_latest,
sum(new_before) as new_before,
1.0 * sum(new_latest) / nullif(sum(new_before), 0) - 1 as flow_growth,
avg(case when new_latest < new_before then 1.0 else 0.0 end)
filter (where new_latest + new_before >= 3) as share_falling,
avg(case when new_latest > new_before then 100.0
when new_latest = new_before then 50.0
else 0.0 end)
filter (where new_latest + new_before >= 3) as diffusion_index,
1.0 * sum(open_days_latest) / nullif(sum(new_latest), 0) as stock_to_flow_days,
1.0 * sum(open_days_before) / nullif(sum(new_before), 0) as stock_to_flow_days_before
from per_company
where days = 56
group by as_of
order by as_of;The filter days = 56 keeps the companies with a row for every day of both windows, the same-store rule of the weekly series applied to your list. Breadth counts a company only when it opened at least three postings across the two windows, because a move from one posting to none says little; three is a starting point to tune. Set :as_of to a Sunday already written in Market Series, so that the two queries describe the same weeks.
To test whether one employer carries the flow, run the query again with the largest company by new_before left out of :company_ids. A slowdown that belongs to the industry survives the removal; a freeze at one company does not.
Are the BLS JOLTS hires rate, job openings rate and quits rate leading indicators of a hiring slowdown?
They are the official record of a slowdown rather than its first sign, because each month's rates are published weeks after the month ends. The Bureau of Labor Statistics divides job openings by employment plus openings, and hires or quits by employment, times 100. Weekly postings readings come first, and the rates confirm or contradict them.
The Job Openings and Labor Turnover Survey defines each count and computes each rate as follows.
| Rate | What it counts | How the Bureau computes it | A fall says |
|---|---|---|---|
| Job openings rate | Positions not yet filled on the month's last business day | Openings divided by employment plus openings, times 100 | Fewer unfilled positions against all jobs, filled and unfilled |
| Hires rate | Workers added to the payroll at any time in the month | Hires divided by employment, times 100 | Fewer workers added |
| Quits rate | Voluntary departures, leaving out retirements and transfers to other locations | Quits divided by employment, times 100 | Fewer workers leaving by their own choice |
The survey is a stratified random sample of about 21,000 establishments, as the technical note to the August 2026 release describes it, and covers private nonfarm establishments and civilian federal, state and local government in the 50 states and the District of Columbia. National estimates are published for NAICS sectors and subsectors and by region, and by establishment size at the total private level; state estimates cover total nonfarm. A month's estimates are preliminary and revised the following month, and at the end of each year the estimates of the five previous years are revised.
The estimates for August 2026 were published on 29 September 2026, and those for September are scheduled for 3 November 2026, while each weekly series is written as of its Sunday. The readings above follow the companies you chose, while the rates follow NAICS industries, so compare the direction of the two, not their levels. To test a postings reading against the rates, use each month's first published estimate, which is what was known on the day.
Job openings and the hiring rate in 2026, and early indicators of a labour market slowdown
In August 2026, the latest month published, the Bureau of Labor Statistics put the US job openings rate at 4.3 percent, the hires rate at 3.3 percent and the quits rate at 1.9 percent, for total nonfarm, seasonally adjusted and preliminary. Its release of 29 September described openings and hires as little changed.
These are national figures, from the August 2026 release, its table of openings and hires by industry and its table of quits, which carry the same measures for each published industry. Those tables are where a postings reading for an industry finds its official counterpart, for the month the reading covered, once the month is published.
What each reading shows and what else could cause it
The last column is the test that separates each reading from its ordinary explanation.
| Reading | What it shows | What else could cause it | How to tell them apart |
|---|---|---|---|
| New postings fall against the window before | Fewer roles opened across the companies you follow | A freeze at one large employer | Run again without the largest employer, and read breadth |
| Most companies post less, with a diffusion index below 50 | The fall is shared by most employers | A holiday or a season common to every industry | The industry's growth against all companies in Market Series |
| Stock to flow rises | Open roles are large against the inflow | Roles harder to fill while the inflow holds, or postings left online after the role is filled | Read with flow: age rising and flow steady is slow filling |
| Industry growth below all companies for several Sundays | The move belongs to the industry | A calendar of the industry's own, such as an annual intake | The 180-day window, which spans more than one season |
| The job openings rate falls | Fewer unfilled positions against all jobs | Positions filled faster | The hires rate for the same month |
| The hires and quits rates fall together | Fewer workers added and fewer leaving by choice | A preliminary estimate that the next release revises | The revised estimate a month later |
A worked example: one employer or the whole industry?
The figures are illustrative, and Acme Robotics is an invented company. The example shows how the three readings separate one employer's freeze from a slowdown across its industry.
Assumptions:
- You follow 40 companies in the industry, and Acme Robotics opens the most postings among them.
- All 40 have a Hiring Activity row on every day of three consecutive 28-day windows, W1, W2 and W3, and each opened at least three postings across each pair of windows.
- You run the second query as of the last day of W2 (date A) and as of the last day of W3 (date B).
- As of date A, 15 companies posted less than in the window before, 4 the same and 21 more. As of date B, 27 posted less, 3 the same and 10 more. Acme Robotics posted less on both dates.
- The open postings of the 40 companies together, averaged over the days of each window, are 1,000 in W1, 1,050 in W2 and 1,080 in W3.
| Window | Acme Robotics, new | Other 39, new | All 40, new | Average open |
|---|---|---|---|---|
| W1 | 120 | 280 | 400 | 1,000 |
| W2 | 40 | 266 | 306 | 1,050 |
| W3 | 38 | 210 | 248 | 1,080 |
The working, as of date A:
- Flow. 306 new postings against 400 is a fall of 94, or 23.5%. Without Acme Robotics, 266 against 280 is a fall of 14, or 5.0%.
- Breadth. 15 of 40 companies posted less, a share of 37.5%. The diffusion index is 4 times 50 plus 21 times 100, or 2,300, divided by 40: 57.5.
- Age. Stock to flow is 1,050 times 28, or 29,400, divided by 306: 96.1 days, against 1,000 times 28 divided by 400, or 70.0 days, in W1.
The pooled flow fell by almost a quarter, yet more companies posted more than posted less, and the other 39 fell by 5%. The rise in age follows the fall in pooled inflow, and Acme Robotics accounts for 80 of the 94 postings lost. As of date A this is one employer's story, a question for a screen of that company.
The working, as of date B:
- Flow. 248 against 306 is a fall of 58, or 19.0%. Without Acme Robotics, 210 against 266 is a fall of 56, or 21.1%.
- Breadth. 27 of 40 posted less, a share of 67.5%. The diffusion index is 3 times 50 plus 10 times 100, or 1,150, divided by 40: 28.75.
- Age. Stock to flow is 1,080 times 28, or 30,240, divided by 248: 121.9 days.
As of date B the readings agree. The flow fell further without the largest employer than with it, two companies in three posted less, and the open stock grew against a shrinking inflow. The next checks are the industry's growth_gap in Market Series on the same Sundays, then the official rates for the matching NAICS industry once the month is published.
How Fokals delivers it
Hiring Activity belongs to the hiring product, refreshed daily: open, new and closed postings for each company and closed day. Market Series is written weekly, as of each Sunday, on same-store cohorts. Both are delivered by REST API or as bulk files. Each daily and weekly row is written once after its period closes and never revised, so the readings for a past Sunday come out the same whenever you run the queries: point-in-time data, which a test against first published official estimates needs. The data dictionary defines every column used here, and section 9 of the methodology sets out the cohorts and windows of the weekly series.
Frequently asked questions
What is the earliest sign of an industry-wide hiring slowdown in job postings?
A fall in new postings that most companies in the industry share. A pooled count can fall because one large employer stops opening roles, so read it beside the share of companies whose new postings fell against the four weeks before, and a diffusion index that gives each company one vote. When both point down and the open roles age against a shrinking inflow, the slowdown is spread across the industry.
How is an industry-wide hiring slowdown different from a hiring freeze at one company?
A freeze is one employer's decision: its new postings stop while its open roles stay up. An industry-wide slowdown is many employers opening fewer roles at once. In postings data the difference shows in breadth. Remove the largest employer and recompute: a freeze disappears from the industry reading, while a slowdown survives because most companies posted less than in the weeks before.
What is a diffusion index of job postings?
It counts each company as 0 when its new postings fell against the window before, 50 when they were unchanged and 100 when they rose, then takes the mean. A reading of 50 means as many companies posted more as posted less, and a reading below 50 means more posted less. The construction follows the diffusion index of employment change that the Bureau of Labor Statistics computes across industries.
How do job postings relate to the JOLTS job openings rate?
They measure related things in different ways. The job openings survey asks a sample of establishments for the positions open on the last business day of each month and divides them by employment plus openings. Postings record the roles employers advertise, counted day by day. Postings come first in time, and the official rate reports on the same month weeks later, so compare the direction of the two.
When are the official job openings, hires and quits rates published?
Monthly. The estimates for August 2026 were published on 29 September 2026, and those for September 2026 are scheduled for 3 November 2026. National estimates appear in the first week of a month or the last week of the month before, and each month's figures are preliminary until the following release revises them, with a revision of the previous five years at the end of each year.
The queries and code on this page are examples to adapt. Test them in your own environment before you rely on them.
What this page says about the products it names was checked against their public documentation on 7 October 2026. Product and company names are trademarks of their owners. Fokals is not affiliated with them or endorsed by them.