A listed company tells you how it is doing four times a year. It tells you what it intends to do every day, in the jobs it advertises. A posting is a public commitment to spend: a salary, a location, a function, sometimes a quota. Read across a whole company and over time, postings show which teams are growing, which markets are being opened and where spending has stopped, weeks or months before the effect reaches a reported number.
This guide shows how to build that reading into a research process: which datasets to load (Job Postings, Hiring Activity, Sales Team Metrics and Employee Headcount), which measures carry information, how to query them, and how to keep the signal from misleading you.
What a job posting tells you that a filing does not
A filing is audited, standardised and late. A posting is unaudited, unstandardised and current. The two answer different questions, and the value of hiring data lies in the gap between them.
- Direction of investment. A company that opens forty engineering roles and closes its field sales roles is changing what it is. Segment disclosure will show it a year later, if at all.
- Geography. New postings in a country where the company had none are an early sign of market entry.
- Seniority. A wave of senior hires in one function points to a new initiative. A wave of junior hires points to scaling something that already works.
- Cost. Advertised pay, where it is published, gives a view of the wage pressure a company faces in each role.
- Stopping. A sharp fall in new postings, with existing ones closing unfilled, is often the first public trace of a hiring freeze.
Each is a dated observation that you can test against what the company later reports.
The measures worth tracking
Raw posting counts are noisy. The measures below are the ones that tend to carry information, with the dataset and columns each comes from. Every dataset is described in full in the data dictionary.
| Measure | Dataset and columns | What it indicates |
|---|---|---|
| Open postings | Hiring Activity: open_postings | The size of current hiring demand |
| Net new postings | new_postings minus closed_postings | Whether demand is growing or shrinking |
| Mix by function | by_function | Where investment is moving inside the company |
| Mix by seniority | by_seniority | Building something new, or scaling something proven |
| Country footprint | by_country | Market entry and withdrawal |
| AI-related roles | ai_postings | Commitment to AI beyond what is announced |
| Advertised pay | median_salary_usd | Wage pressure, on one annual US-dollar scale |
| Sales capacity | Sales Team Metrics: open_sales, by_segment | Go-to-market investment, and a move up or down market |
Open postings divided by headcount is more comparable across companies than a raw count. Stated headcount over time is Employee Headcount, part of the announcements and scale dataset.
Building the series step by step
The steps below assume you have loaded the hiring dataset into your research database, from bulk files or through the API.
1. Join to your list. Every row carries company_id and, for a listed company, its ticker, mic, isin, lei and figi. Join on isin or figi to your security master. Postings published by a brand or subsidiary carry the identifiers of the listed parent, so the hiring of a group is not lost under its trading names.
2. Aggregate to the frequency you trade or report at. Hiring Activity has one row per company and closed UTC day. A trailing four-week sum of new postings is a reasonable default: long enough to smooth weekly publishing habits, short enough to move.
select
isin,
day,
open_postings,
sum(new_postings) over w as new_28d,
sum(closed_postings) over w as closed_28d
from company_hiring_daily
where isin is not null
window w as (
partition by company_id
order by day
rows between 27 preceding and current row
);3. Normalise. Divide by the trailing average of the same company rather than comparing raw levels across companies. A company with 4,000 open roles and a company with 40 can both be doubling.
4. Compare with peers. A company accelerating while its industry slows is a different observation from one rising with the tide. The market series give the same hiring measures by industry, country and size band on same-store cohorts, so you can subtract the sector from the company.
5. Test before you trust. Line the series up against the reported figures you care about, such as revenue growth or operating expenses, using only data that existed on each date. The next section explains why that last condition matters.
Reading the signal without fooling yourself
Most of the errors in hiring research come from the data, not the model.
Look-ahead bias. If a dataset is corrected after the fact, a back-test will use information nobody had on the day. Fokals daily and weekly datasets are written once, after the period closes, and are not revised, and every posting carries the time it was first observed. That is what makes a series point-in-time. The guide to building a point-in-time dataset for back-tests covers this in depth.
Baselines. The first observation of a company's job board sets a baseline: every posting on it is new to the dataset and none of them is new to the world. Hiring Activity leaves those postings out of new_postings, and Job Postings flags them. If you build your own series from raw postings, exclude the baseline of each board in the same way.
Evergreen and reposted roles. Some companies keep a posting open permanently as a pipeline, and some close and reopen the same role. Open-posting counts absorb the first; net new postings can be inflated by the second. Track both, and treat a jump in new postings with no change in open postings with suspicion.
Seasonality. Graduate intakes, fiscal-year budgets and holiday periods all move postings. Compare a week with the same week of the prior period where you can, and with the sector where you cannot.
Coverage changes. A company that moves to a new applicant tracking system can look as if it stopped hiring for a few days. A fall to zero followed by a return to the earlier level is a change of board, not a freeze.
How to read a posting
A posting records an intention to hire, not a hire. A role can stay open for months or be withdrawn, so read the trend in postings across a company and over time, and read the mix by function, seniority and country, before any single role. Advertised pay appears on the posting where the employer states it, and it is held on one annual US-dollar scale so that roles compare across countries. Every observation is dated, which makes the series suited to monitoring the companies you cover and to tests that use only what was known on each day.
How Fokals delivers it
The hiring dataset holds every role a company publishes, labelled by job function, seniority and ten role flags, with the daily and weekly tables above built from them. It is refreshed daily and reaches you through a REST API or as bulk files in CSV or JSON Lines. The page for investors describes identifier mapping and point-in-time design in more detail, and the methodology sets out how postings are labelled.
Frequently asked questions
Is hiring data a leading indicator of revenue?
It can be, for some companies and some roles. Sales and customer-facing hiring tends to precede revenue, because capacity is hired before it is productive. Engineering hiring tends to precede cost before revenue. The relationship differs by business model, so test it company by company or sector by sector on dated data before relying on it.
How is job postings data different from employee headcount data?
Postings are roles a company is trying to fill, published by the employer. Headcount is the number of people a company employs, stated over time in Employee Headcount. Postings move daily and lead; headcount moves slowly and confirms. Dividing open postings by headcount gives a hiring intensity that compares companies of different sizes.
Can job postings data be used in a back-test?
Only if every observation carries the date it was first seen and the dataset is left unchanged afterwards. Otherwise a back-test uses postings that were added or corrected later and overstates the signal. Check that a vendor writes each period once and records observation times before testing on its data.
Does hiring data count as material non-public information?
Job postings that a company publishes on its own public job board are public when they are read. The Fokals sourcing statement sets out what is collected and how, and is the document to give a compliance team that asks.
The queries and code on this page are examples to adapt. Test them in your own environment before you rely on them.