Week 43

Demand Window

Hiring acceleration, measured weekly

Method

How the score works

Demand Window measures acceleration in job postings: not how many jobs exist, but which roles just broke out of their own pace.

Data

Every weekday we take all new postings of the past day from EURES public job search for Denmark, Sweden, Norway and Germany. EURES is the European Commission's job mobility portal.

  • We fetch all new postings per country and classify job titles locally into ten fixed role clusters (English and local-language titles). We do not rely on the portal's own keyword search, which is fuzzy.
  • Duplicates are removed by posting id across days. The first day a posting appears wins.
  • A data day is the day a run covers. A morning run covers the previous day. Weekend days do not count, so Monday-morning runs (covering Sunday) are left out.
  • A day the portal is down cannot be fetched later; it becomes a gap, not an estimate.

Formula

Interim score (used now, from 7 weekday data days per country):

score_norm = (new postings per day, latest 3 data days) ÷ (new postings per day, earlier data days)

Full score (once we hold 16 weeks of our own data):

score = new postings, last 4 weeks ÷ average weekly new postings, 12 weeks before
score_norm = score ÷ 4

score_norm 1.00 = same pace as the role's own earlier window. 1.30 = 30% above its own pace; 0.80 = 20% below. The interim score is also reported ×4 so both versions sit on the same scale.

Scores are computed per role and country, and per role and region (NUTS region from the posting's location).

Thresholds

  • At least 8 unique employers (normalised employer name) in the whole window. Fewer = too thin: listed, never ranked, no score shown.
  • A country is scored only once it has at least 7 weekday data days.
  • Regional tables show at most 15 regional pairs, all with at least 8 unique employers.

Limits

  • Denmark is thin. EURES carries about 55 new Danish postings a day across all roles. Danish rows are indicative; many are too thin.
  • Germany is sample-based. On 14 Oct 2026 the German total on EURES jumped from 11,979 to 240,069 (a source break). We fetch a fixed sample of the 10,000 most recent postings per run. German scores use only days from 14 Oct, and German numbers are shares of that sample, not full counts. First German score: Tue 27 Oct.
  • Interim vs full formula. Until we hold 16 weeks of data the score compares a few recent data days with a few earlier ones. It reacts fast and is noisier than the full 4-week vs 12-week formula. Interim pages carry an Interim badge.
  • Multi-cluster titles. One posting can match two clusters (for example a German geriatric nurse counts as nurse and home health). This is deliberate.
  • Staffing agencies. Agencies can post many ads for one role, especially in Germany. The 8-employer threshold limits their weight; it does not remove them.
  • Cluster edges. Software engineers count only with AI/ML or security in the title. German Elektroniker is broader than electrician. Danish chauffør includes bus and taxi drivers.
  • Norwegian regions. Some 2024 Norwegian region codes have no name in the NUTS 2021 list and are shown as codes.

Sector context

For the US, the UK and Germany we show sector indices from Indeed Hiring Lab as context. The index is seasonally adjusted Indeed postings, 7-day average, 1 Feb 2020 = 100. We use new postings and divide the average of the last 28 days by the average of the 84 days before – the same logic as our score, at sector level. YoY compares the latest index with one year earlier. Sectors are broader than our roles. This is not Demand Window's role score.

The "why" line

Where a role is moving, we may add one sentence of context from public posts on X (at least two independent posts). It is never counted and never changes a score.

Schedule

One chart page per ISO week. Interim role scores from EURES data, refreshed on weekdays as new data days arrive. Hiring Lab sector context refreshed weekly. First interim chart: Thu 22 Oct (Denmark, Sweden and Norway). Germany: Tue 27 Oct.

Sources and licence

  • EURES – the European Commission's job mobility portal, public job search (eures.europa.eu). New postings per day, classified locally by job title into the 10 clusters; duplicates removed by posting id.
  • Indeed Hiring Lab – job postings tracker, sector indices. Source: Indeed Hiring Lab, job_postings_tracker, CC BY 4.0 – github.com/hiring-lab/job_postings_tracker.
  • Public posts on X – context only, never counts.

Hiring Lab data is used under CC BY 4.0 and credited wherever it appears. When citing a Demand Window score, credit "Demand Window" and link the week's page. We use only the sources named here.

Newsletter

Free weekly email

One email a week with the chart. Free. No spam.

First chart Thu 22 Oct, for Denmark, Sweden and Norway.

Subscribe on beehiiv

The form is from beehiiv, our newsletter provider, and sets beehiiv's cookies. Nothing from beehiiv loads until you click.

By subscribing you ask for the free weekly Demand Window chart by email. Your email address and sign-up time are stored by beehiiv, our newsletter provider, to send it. Unsubscribe any time.

Privacy