RefolkCandidates
TeardownReading the market

The Push-Window Read, One Role's Posting Counts Across a Full Cycle

You can turn two years of raw posting counts for your own role and metro into two or three defensible weeks to front-load applications.

15 min readLast reviewed September 24, 2026Read as Markdown

Generic advice tells you January is best, then the next page says May, then a third says the September surge is a myth. This guide is for a job seeker deciding which weeks to concentrate applications for one specific role in one specific metro, and it carries a single worked example all the way through so you can follow along on your own case. By the end you will have a defensible push window built from your own posting counts, not a horoscope.

The example role here is Data Analyst, because I can anchor it to real supply figures. Swap in your own title and city and the procedure is identical.

Why the national calendars all disagree

The peak-month advice you find online conflicts because each page reports a national average from a different data camp, and none of it is specific to your role. Worse, one organization reports two different peaks depending on which analysis you read.

Here are the named claims side by side.

SourceClaimed peakBasis
BLS via SUCCESSJan-Feb2024 openings
LinkedIn Economic Graph (2025)~May (spring/early summer)postings analysis
LinkedIn (Kantenga)Septemberpostings, year after year
Indeed (Stahle)September but a small bumpJob Postings Index

Read that table slowly. LinkedIn's Kory Kantenga says you see more postings in September than any other time, year after year, while a 2025 LinkedIn Economic Graph analysis found postings generally peak in spring and early summer, often around May. Same organization, opposite months. That is not a data error. It is the signature of a question that has no national answer, only role-and-metro answers.

The contradiction resolves the moment you stop averaging across every occupation in the country. Education postings stay below their annual average until May and only pick up in August. Healthcare surges in January, February, and September with a June-July trough. Retail counter-cycles, peaking after the holidays. A national average smears all of those into mush, and then a writer picks whichever month the smear happened to favor that year.

A national hiring calendar is the average of a hundred contradictory calendars, which is to say it belongs to no one.

The unit problem: ads are not openings

Before you count anything, decide what you are counting, because the two available series measure different things and mixing them produces phantom surges. An aggregator posting count is a flow of ads; a JOLTS opening is a month-end stock of real vacancies.

The definitions are load-bearing. A JOLTS job opening is a specific position that exists with work available, could start within 30 days, and where the employer is actively recruiting from outside the establishment, counted on the last business day of the reference month. That is a stock. An aggregator ad, by contrast, can be reposted weekly, can advertise a role that is never filled, and can linger after the seat is taken. That is a flow, and a noisy one.

Both have a use. For week-level timing you want the flow, because that is when employers actually go to market. As a sanity check against a surge that is really reposting, pull the JOLTS not-seasonally-adjusted series from FRED (series JTSJOL publishes both the adjusted and unadjusted total-nonfarm openings). If your aggregator shows a spike that JOLTS does not, you are probably looking at reposts.

One more thing the raw-versus-adjusted gap teaches you: BLS seasonally adjusts JOLTS with the X-13ARIMA-SEATS program, and the prior five years of both series are subject to revision at each annual update. You are doing your own version of that adjustment by hand in the steps below, which is why you should never trust a single unadjusted month.

The example: Data Analyst supply as the competition baseline

Before timing, understand your denominator, because how many people already hold your title in your metro drives competition more than any month does. This is a supply stock, the pool you compete against, and it is where the [OURS] figures anchor the example.

In Refolk's index of professional profiles, the Data Analyst supply looks like this.

MetricUS Data AnalystUK Data AnalystUS:UK ratio (derived)
Current profiles with title63,09115,7874.0x
Top region concentrationdispersed (Seattle, Boston, Portland)London-dominated-
4.0x
US-to-UK Data Analyst supply ratio in Refolk's index
63,091 US profiles against 15,787 UK profiles, derived from Refolk's index of professional profiles.

The number that matters for a job seeker is not the raw 63,091. It is that US supply is dispersed across Seattle, Greater Boston, Portland, Pittsburgh, and Greater St. Louis, while UK supply is London-dominated. A London analyst competes inside a denser local pool than a Portland analyst does, so the metro choice changes the competition math before you even open a calendar. If you can move or apply remotely into a dispersed market, that decision outweighs shaving a week off your timing.

This is a stock of people holding the title, not a posting time series, so it is a denominator, not a schedule. A seniority split of Senior versus Entry Level was not reliably available in the index and is not reported here. Treat the supply figure as your baseline competition and the posting index below as the timing layer on top of it.

The seven-step procedure

The method is: pull two full cycles of counts, clean them, smooth them, turn them into a seasonal index, overlay the applicant side, and only then name a window. The one wrong turn to avoid is naming the window on posting volume alone, which is how January gets mis-called.

From raw counts to a dated push window

  1. Define the unit
    Fix one role title plus close synonyms and one metro. Decide you are counting new postings per week or month (a flow), not JOLTS openings (a month-end stock). Write down the exact query string and geography.
  2. Pull 24 to 36 months of raw counts
    Run the same saved search on a fixed cadence, or pull JOLTS not-seasonally-adjusted context from FRED series JTSJOL. Build a tidy month-by-count table spanning at least two full cycles so one year cannot dominate.
  3. De-duplicate and strip ghosts
    Collapse reposts of the same requisition and flag stale or never-filled ads. This removes the same-posting double-count that inflates a month. Keep a cleaned column beside the raw column.
  4. Smooth with a 12-month moving average
    Apply a centered 2x12 moving average to isolate the trend-cycle. The 2x12 order is the one that does not leave the trend contaminated by seasonality. You now have a trend line with no seasonal wiggle.
  5. Compute the seasonal index
    Divide each month by its moving average, then average each calendar month across years, and rebase to a mean of 100. You now have 12 index numbers that sum to roughly 1200.
  6. Overlay the applicant side
    Set the posting index against an applicants-per-ad proxy so a posting peak is judged net of competition. Plot postings versus applicants-per-ad as two lines.
  7. Name the window
    Pick the two or three weeks where the posting index is high and applicants-per-ad is low. Write down the dated front-load window with a one-line rationale.

The order matters. Some practitioner pages tell you to front-load in January purely on posting volume. The applicant-adjusted sources argue that step six must come before step seven, or you will name a window that is high on postings but even higher on competition.

The push-window pipeline

  1. Raw counts
    24 to 36 months of postings for one role and metro
  2. Clean
    collapse reposts, flag never-filled ads
  3. Smooth
    2x12 moving average removes month-to-month noise
  4. Index
    each month as a percentage of its trend, averaged across years
  5. Overlay
    postings judged against applicants-per-ad
  6. Window
    two or three weeks, high postings and low competition
Raw counts become a defensible window only after de-duplication, smoothing, indexing, and an applicant overlay.

Why the 2x12 moving average, specifically

Averaging each calendar month across multiple years is what prevents one bad summer from being read as a pattern, and the 12-month centered moving average is the smoother that isolates the trend-cycle for monthly data. The ratio-to-moving-average method gives you an index on a base of 100, where the degree of seasonality is measured by how far each month departs from 100. Express each raw value as a percentage of its centered moving average, group those percentages by calendar month, and average within each month. If your July looks weak in one year but the multi-year July average sits near 100, there was no summer trough - just a single noisy year.

The applicant overlay: why January lies

The best net window is not where postings are highest but where postings lead applicants, because a peak in openings does you no good if the applicant peak is bigger. This is the single correction that separates a real read from a calendar myth.

The mechanism behind "January is best" is that seekers act on New-Year resolve while employer headcount is approved but not yet released. Per an Indeed analysis, postings never rose above their early-December level at any point the following January, even as applications poured in. The ratio of jobs to applicants therefore gets worse in January, not better. January is the most competitive month to apply, not the most opportunity-rich one.

-5%
applications per ad in August and September vs the annual average
SEEK data show fewer applicants per ad in late summer, exactly when fall postings begin to rise.

Now look at what that does to the fall. LinkedIn data show US postings dipping 3% below March in August, then climbing to 14% above March in September and 11% above in October.

MonthPostings vs MarchApplicants per ad
August-3%~5% below average
September+14%~5% below average
October+11%rising toward average

Put those two columns together and the September opening becomes visible in a way a postings-only analysis misses: rising postings meeting below-average competition. A pure volume reader would front-load in January into a crowded pool. An applicant-adjusted reader front-loads into the fall gap.

When to front-load

Postings highPostings low
Crowded and quiet
Skip; worst ratio of the year
The push window
Front-load here; postings lead applicants
Dead zone
Skip; low volume, still crowded
Quiet opening
Apply on freshness even if volume is modest
Applicants per ad highApplicants per ad low
A push window lives in the top-right; the top-left is the January trap.

For the Data Analyst example, the fall pattern is a strong candidate window because it pairs rising postings with the late-summer applicant dip. But that is the national posting shape. You confirm it, or overturn it, only against your own metro's index from step five.

How this goes wrong

Most bad push windows come from one of seven identifiable errors, and each has a false positive you can check for. Give this section more weight than the rest: a window built on a myth is worse than applying at random, because it concentrates your effort at the wrong time.

Counting ads as openings. Conflating aggregator ad counts (flow) with JOLTS openings (a month-end stock that must start within 30 days) produces a surge that is really reposting. Check it against the JOLTS not-seasonally-adjusted series on FRED.

The same-posting double-count. One requisition reposted weekly inflates its month, so a spike can be a single job seen four times. De-duplicate by requisition ID, or by title plus company, before you count. This is the cleaning step, and skipping it is the most common way a month gets falsely crowned.

One bad summer read as a pattern. A single weak July drags the mean and invents a trough that is not there. Require the dip to appear in the multi-year monthly average, not one year.

No smoothing at all. Raw month-over-month noise reads as seasonality to the naked eye. Apply the 2x12 moving average; if the peak vanishes after smoothing, it was never seasonal.

Ignoring applicants. Front-loading into the applicant peak because the postings looked good. Overlay applicants-per-ad, because January is the most competitive month, not the most opportunity-rich.

Calendar myth transfer. Applying national Jan/Feb or September advice to a role that actually peaks in May (LinkedIn) or August (education). Verify against your own role and metro index every time.

Computing a window where none exists. Senior, executive, and healthcare roles run near year-round. Because executive recruiting targets mostly-passive VP-and-above candidates through retained search, the seasonal index flattens. If your index range is narrow, say within roughly 5 points of 100, skip timing entirely and apply on freshness instead.

Finding the employers behind the spike

A posting spike is only actionable if you know which employers are driving it, because that is where you concentrate outreach during your window. Counts tell you when; the hiring employers tell you where to aim.

Once your index names a fall window for Data Analysts, the next question is who is actually adding analysts in your metro. Refolk turns that into a plain-language search over public profile history, so you can name the repeat-posters instead of guessing from ad volume. Where a job board shows you an ad, Refolk shows you the companies that recently added people with your title, which is the churn behind the spike.

This matters because Refolk's index shows US Data Analyst talent surfacing at named employers including Atlassian, Qualtrics, and Dartmouth Health, across metros including Seattle, Greater Boston, Portland, Pittsburgh, and Greater St. Louis. When your seasonal index and your applicant overlay agree on a window, you can pre-build a shortlist of the employers who move analysts in that window and be first in the queue.

A window worksheet you can copy

Here is the artifact to fill in as you work through the steps, so your window is written down with its rationale rather than remembered as a hunch.

Push-window worksheet
Role title + synonyms: ____________________
Metro: ____________________
Unit counted: new postings per (week / month)  [circle one]
Months of data pulled: ______ (need 24+)
Cleaning done: reposts collapsed? Y/N   ghosts flagged? Y/N
Smoother applied: 2x12 centered moving average  Y/N
Seasonal index (12 numbers, base 100):
  Jan__ Feb__ Mar__ Apr__ May__ Jun__
  Jul__ Aug__ Sep__ Oct__ Nov__ Dec__
Index range (max minus min): ______  (if within ~5, skip timing)
Applicants-per-ad proxy source: ____________________
Months where postings high AND applicants low: ____________________
NAMED WINDOW (2-3 weeks): ____________________
One-line rationale: ____________________

Fill one per role-and-metro pair. Keep the raw and cleaned columns so you can audit any month later.

Applicant-adjusted read, one line
In [metro], [role] postings run [index] vs 100 in [month], while applicants-per-ad run [proxy] vs average - so I front-load [window] because postings lead competition there.

Paste your two numbers in and the sentence writes itself. This is what you defend the window with.

Before you commit the window

Run this check before you concentrate a single application, because a window that fails any line here is a myth you are about to act on.

Push-window sign-off

  • The counts span at least two full cycles, so no single year dominates.
  • Reposts of the same requisition are collapsed before counting.
  • A 2x12 moving average was applied, and the peak survived it.
  • Each calendar month is averaged across years, not read from one year.
  • The window is judged against applicants-per-ad, not postings alone.
  • The pattern was verified against this role and metro, not a national average.
  • If the index range is within ~5 points of 100, the plan is to apply on freshness, not on timing.

Keeping the read current

A seasonal index is not a one-time calculation; it drifts as the labor market shifts, so re-pull and re-smooth once a year. The mechanism to re-check is the same one BLS uses: at each annual update, the prior five years of both the adjusted and unadjusted series are subject to revision, which means last year's index is an estimate that new data can move.

Concretely: add the newest 12 months to your table, re-run the 2x12 moving average, and recompute the index. Watch two things. First, whether your window month held its position relative to 100, or whether the peak is migrating earlier or later. Second, whether the applicant-per-ad gap that made the window worthwhile is still there, since a role that gets discovered by more seekers loses its quiet season. If your metro's supply is climbing toward the dispersed-US pattern or tightening toward the London-concentrated one, revisit the denominator too, because competition density moves the window's value more than the month does. The calendar is not the deliverable. The re-checkable procedure is.

Questions job seekers ask

Is the September surge real?

It depends on your role and metro, and the sources disagree even at the national level. LinkedIn's Kory Kantenga says postings peak in September year after year, and LinkedIn data show US postings climbing to 14% above their March level that month. Indeed's read is deflationary, calling it a small bump in some years, not much of a surge. Verify it against your own role's multi-year seasonal index before you plan around it.

When do companies hire most for my role?

There is no single national answer, which is why generic calendars contradict each other. BLS shows the most openings in January and February for one year, LinkedIn reports a spring peak around May, and education postings stay below average until August. The only reliable answer comes from pulling 24 to 36 months of postings for your specific role and metro, smoothing them with a 12-month moving average, and reading the seasonal index that survives.

Why is January called the best month if postings do not actually rise?

Because January is an applicant statement dressed as a jobs statement. Seekers act on New-Year resolve while headcount is approved but not yet released, so the pool gets crowded faster than the openings grow. Indeed found postings never rose above their early-December level at any point the following January, which means the ratio of jobs to applicants actually worsens.

How do I tell a real seasonal peak from one bad summer?

Average each calendar month across multiple years before you trust it. A single weak July drags the mean, but if you require the dip to appear in the multi-year monthly average rather than one year, the noise cancels out. The 2x12 moving average is the smoother that does this; if a peak vanishes after smoothing, it was never seasonal.

Does timing matter for senior or executive roles?

Much less. Executive recruiting targets mostly-passive VP-and-above candidates filled through retained search, so the seasonal index flattens and a two-week window adds little. Monster notes January through mid-June is the biggest window for senior searches, but the calendar matters less than availability. The push-window exercise pays off most for high-volume entry and mid-level roles.

Should I use JOLTS or aggregator posting counts?

Use both, for different jobs. Aggregator counts are a flow of ads that can double-count reposts and include roles never filled, which is what you want for week-level timing after de-duplication. JOLTS on FRED (series JTSJOL) is a month-end stock of real vacancies that must be able to start within 30 days, which is your sanity check against a surge that is really reposting.

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