Health Workforce Postings Index
Every number on this site comes from a job posting that a Canadian public health employer published on its own careers board, recorded on a dated pass. This page says exactly how, and — more usefully — what we decline to claim.
Last updated 5 September 2026 · dataset began 23 August 2026
A crawler visits eight public careers boards once a day and records what is listed. It reads the same pages a job seeker sees. It does not log in, does not submit applications, does not access any private or internal system, and does not touch applicant data of any kind.
For each posting it records the job title, employer, location, classification and union where published, full-time equivalence, salary range, shift pattern, the dates the posting appeared and closed, and whether the employer labelled it a re-advertisement.
No artificial intelligence is involved anywhere in the pipeline. Extraction is ordinary pattern-matching against the page's own structure. Every published figure traces back to a specific string on a specific page on a specific date. This is deliberate: a number you can audit is worth more than a number a model inferred.
Before a board is added, its robots.txt and terms of use are read in full. A board
that disallows crawling its listings is not crawled — British Columbia's Provincial Health Services
Authority is excluded on exactly that basis. Where a board declares a crawl delay, it is honoured;
Fraser Health asks for five seconds between requests and receives it. Requests are sequential and
throttled, one pass per board per day.
| Employer | Province | Postings |
|---|---|---|
| Fraser Health | BC | 2,226 |
| Alberta Health Services | AB | 1,124 |
| Manitoba multi-employer board | MB | 894 |
| Nova Scotia Health | NS | 170 |
| Recovery Alberta | AB | 148 |
| Alberta Precision Laboratories | AB | 99 |
| Primary Care Alberta | AB | 35 |
| Acute Care Alberta | AB | 2 |
This is a sample of employers, not a census of Canada. Four provinces are represented. Ontario, Quebec, Saskatchewan and Atlantic Canada beyond Nova Scotia are absent entirely.
Manitoba is partial. The board we crawl covers Winnipeg RHA, Shared Health, CancerCare Manitoba and Southern Health-Santé Sud. Three further health regions — Interlake Eastern, Prairie Mountain and Northern Health — post on separate boards we do not yet crawl. Any Manitoba total here understates the province.
Dividing postings we happen to observe by a province's census population produces something that looks like a vacancy rate and is not one — the numerator is a sample of employers, the denominator is everybody. We do not publish such rates and would ask that our figures not be used to construct them.
Where an employer does not publish a field, it is recorded as unknown and excluded from that figure's denominator. It is never counted as a "no". Nova Scotia Health publishes no structured shift pattern, so it contributes nothing to weekend or night-shift figures rather than contributing zeros that would drag every share downward.
Boards divide into two kinds and mixing them produces a meaningless average. Most close postings on a fixed administrative window set by a collective agreement. Fraser Health leaves postings up until filled, and its oldest open posting dates from 2022. A single median across both would be a finding about recruitment software, not about hiring. Duration figures are therefore always reported within a class and labelled as such.
How long a posting has been up requires knowing when it went up. Where a board publishes a posted date, that is a measurement. Where it does not, all this project can honestly say is "it was already live when we first looked" — a lower bound, not a duration, and one that would understate every such posting permanently.
So postings without a published start date are excluded from every duration figure rather than counted from the day the crawl first saw them. The share that qualifies is stated alongside the figures on the data page, because a median computed over part of a class is a fact about that part.
It was briefly the other way round. On 24 August 2026 the published fixed-window median read 5 days, because 28% of that class publishes no posted date and those postings had their clocks started on the day the crawl first saw them — the day before. Each read as roughly one day live when the truth was unknown and longer. Measured properly the figure was 6 days, and rising as the record lengthens.
The error was the same one this project guards against everywhere else: unknown counted as zero. It is recorded here rather than quietly corrected, because a methodology page that only describes the version that worked is not a methodology page.
Some boards label a repost in the job title. Where that convention exists it is counted; where it does not, those postings leave the denominator entirely rather than being recorded as "not a repost". We do not infer reposting from similarity between postings.
No board in this dataset publishes how many people a posting seeks to hire. One posting is one posting. Fields with names like "Position Number" are identifiers, not quantities, and are not treated as counts.
If you are an employer named here and believe a figure is wrong, we want to know and we will fix it. Every posting is stored with the date it was observed and the values read from it, so a specific disputed figure can be traced to the specific postings behind it.
Write to info@someplumconsulting.com with the figure and the date. We will check it against the stored record and, where we are wrong, correct it and note the correction here.