Who should be called first, and why?
Ranked by signal strength, strongest first. Click a row to lens the whole dashboard onto that employer; click it again to release it. "See the roles" opens the postings the line was counted from.
The names, and the postings that put each one on the list.
Ranked by signal strength, strongest first. Click a row to lens the whole dashboard onto that employer; click it again to release it. "See the roles" opens the postings the line was counted from.
Several roles in one discipline inside one window is an expansion, and the opening for a retained brief rather than a single contingent placement.
A stop is not always a freeze. It is as often a brief that went to somebody else, or an internal hire, and either is a reason to ring.
Volume, mix and direction across the roles the filters leave in view.
Almost everything below is clickable: a month, a discipline, a seniority, a region or a slice lenses every other page onto it. Click the same mark again to release it.
| Group | Roles | Share | Employers | Remote | Median days to close |
|---|
Bars are the roles in view. The movement table below them compares each group's share of the current window with its share of the one before it, in percentage points, so a group can grow in count and still lose ground.
Seniority is inferred from the posting title and body, so a title that carries no level signal falls into the unclassified group rather than being guessed at.
The place written on the posting, cleaned but not re-geocoded. A national or multi-site advert names no place and is counted in the missing share above.
Read from the posting's own wording.
Contract type as advertised. Where a posting states nothing it is counted as unstated rather than assumed permanent.
Same clock as the chart on the left, cut by level instead. A senior band with a long tail is a search problem; a junior band with a long tail is usually a pay or location problem.
A wide band is the useful part. Where p25 and p75 sit far apart the median is a weak summary and the long tail is where an introduction is worth most.
The counterweight. A title that closes in days is one the employer can serve itself, and quoting it alongside the slow list is what makes the slow list credible rather than a sales line.
Counts of roles in view, not pay. This chart does follow the filter bar. A level with a high count and no band above it has the rows but not the agreement between them; a level with neither is a level nobody is publishing on.
Movement, uncontested lanes, and the names we have only just started collecting.
Newly-collected employers are marked, because a coverage event and a hiring surge look identical in the counts and mean opposite things on a call.
Each card carries the trajectory behind the number. A card marked New coverage means we only began collecting that employer inside the comparison window: there is no prior window to compare against, so the change is withheld rather than guessed at.
A discipline-and-seniority pairing with open roles at exactly one employer. Read it as category leadership or as an uncontested lane, and read a lane holding a single posting as the thin claim it is. The count is printed so you can tell them apart.
Named skills, and the ones named more than a window ago.
Counts, not directions. A skill listed here with only a handful of mentions is a count you can quote and a trend you cannot. Click one to trend it.
Every posting the current filters leave standing, with the account list above it.
Search and sort on this page narrow this table only. The filter bar above still governs every other page. Click an employer to lens everything on them.
One row per employer in the current view, ranked by what they still have open. "Why call" is assembled from the counts to its left and states nothing the rows do not already say. The export writes every employer in the view, not only the ones drawn here, and carries the filters that produced it in the file header.
What this build reached, what it could not, and how every derived field was derived. Read this before you read a month-on-month move anywhere else.
Every classified field carries the method that produced it. A language model reading the posting is the primary path; the ML tier and the rule tier are fallbacks used when it is unavailable or unsure, and "not derived" means the field was left empty rather than guessed. A build leaning on the fallbacks is still usable, it is simply less confident, and you can see how much.
Measured over the roles still live in this build. The bar is the share of rows carrying a value; the count beside each label is the number of rows without one. A missing field is left blank everywhere on this dashboard. It is never filled with an average, a guess or a zero.
"Reached" means the employer's careers feed answered on the last run and returned rows. An employer marked failed is not an employer that stopped hiring: their roles are simply absent from every figure on this dashboard until the feed answers again. Paused employers were switched off in the pack and are excluded from the reached count.
The caveats this build generated about itself. They are worth repeating in a client meeting: stating them is what makes the rest of the numbers credible.