{
 "name": "Ontario job posting disclosure rates, 2026",
 "publisher": "JobShifu",
 "license": "CC BY 4.0",
 "license_url": "https://creativecommons.org/licenses/by/4.0/",
 "report": "https://jobshifu.com/blog/ghost-job-laws-tracker",
 "measured_on": "2026-10-03",
 "temporal_coverage": "2026-06-26/2026-10-03",
 "source": "JobShifu's crawl of employer career boards (first-party corpus). Postings first seen 2026-06-26 to 2026-10-03, located in Canada, with more than 200 characters of description text.",
 "law": {
  "jurisdiction": "Ontario, Canada",
  "instrument": "Employment Standards Act, 2000, Part III.1, added by the Working for Workers Four Act, 2024 and Working for Workers Five Act, 2024; O. Reg. 476/24",
  "in_force": "2026-01-01",
  "applies_to": "employers with 25 or more employees, publicly advertised job postings",
  "official_guide": "https://www.ontario.ca/document/your-guide-employment-standards-act-0/requirements-related-publicly-advertised-job"
 },
 "definitions": {
  "ontario": "Posting whose resolved primary place is in Ontario, or with no resolved place and a location string naming Ontario, ', ON', Toronto, Ottawa or Mississauga.",
  "existing_vacancy_statement": "Description text matches the vacancy-status pattern below (case-insensitive POSIX regex). Counts any statement of status, including 'not an existing vacancy' and 'future vacancy'. Hand-checked on a 773-posting random Ontario sample: 40 of 40 sampled matches were genuine status statements.",
  "existing_vacancy_pattern": "(existing|current|active|anticipated|genuine|newly[- ]opened|newly[- ]created|new)\\M[^.\\n]{0,25}\\mvacancy|existing\\s+(and|or|and/or)\\s+future\\s+vacanc|future\\s+vacancy\\M|(for|fill)\\s+(existing|future|current)\\s+vacancies|talent pool for (all\\s+)?(current|future)|not\\s+(for\\s+)?an?\\s+existing\\s+(position\\s+|job\\s+)?vacanc|(posted|posting)\\s+(is\\s+)?to\\s+fill\\s+a\\s+(current\\s+|future\\s+)?vacancy|vacancy\\s+(status|disclosure)|reason\\s+for\\s+(the\\s+)?vacancy|new\\s+or\\s+repla|in response to an existing|(for|is)\\s+an?\\s+(existing|current|new|newly created)\\s+(position|role)\\M|this existing vacanc|poste\\s+(vacant|à pourvoir)\\s+(existant|actuel|réel)|un poste existant|poste existant|actively recruiting for,? unless stated otherwise|vacant\\s+(role|position)|currently vacant",
  "pay_stated": "JobShifu's pay extractor found a pay figure or range in the posting (comp_min present).",
  "ai_screening_statement": "Text mentions artificial intelligence or AI within one sentence of screen, assess or select (or the French 'intelligence artificielle')."
 },
 "limitations": [
  "Employer headcount is not observable, so postings from employers with fewer than 25 employees (exempt) are in the denominator.",
  "Postings paying more than $200,000 a year are exempt from the pay rule and are in the denominator (773 Ontario postings have a range topping $200,000).",
  "Only the posting description text is read. A statement shown elsewhere on a careers page, outside the description, is not counted.",
  "A statement's presence is measured, not its truth.",
  "Corpus history begins in late June 2026, so there is no pre-law baseline.",
  "Ten employers account for 45.3% of the Ontario postings; figures excluding them are given separately."
 ],
 "ontario_all": {
  "postings": 58194,
  "employers": 1400,
  "pct_existing_vacancy_statement": 50.1,
  "pct_pay_stated": 61.3,
  "pct_vacancy_statement_and_pay": 35.6,
  "pct_ai_screening_statement": 43.8,
  "pct_all_three": 26.8,
  "pct_statement_says_not_existing_or_future": 1.3
 },
 "ontario_open_on_measurement_day": {
  "postings": 30029,
  "employers": 1232,
  "pct_existing_vacancy_statement": 49.3,
  "pct_pay_stated": 72.7,
  "pct_vacancy_statement_and_pay": 41.4,
  "pct_ai_screening_statement": 42.7,
  "pct_all_three": 30.7,
  "pct_statement_says_not_existing_or_future": 1.5
 },
 "ontario_excluding_ten_largest_posters": {
  "postings": 31833,
  "employers": 1390,
  "pct_existing_vacancy_statement": 33.4,
  "pct_pay_stated": 56.7,
  "pct_vacancy_statement_and_pay": 21.6,
  "pct_ai_screening_statement": 20.3,
  "pct_all_three": 7.3,
  "pct_statement_says_not_existing_or_future": 1.6
 },
 "ontario_employers": {
  "employers": 1400,
  "employers_with_any_statement": 425,
  "employers_with_10plus_postings": 515,
  "of_those_statement_on_majority": 170,
  "of_those_statement_on_none": 273,
  "ten_largest_posters_share_of_postings_pct": 45.3
 },
 "ontario_pay_ranges": {
  "two_ended_annualized_ranges": 35667,
  "wider_than_50000": 1865
 },
 "rest_of_canada_placed": {
  "postings": 41317,
  "employers": 1010,
  "pct_existing_vacancy_statement": 31.3,
  "pct_pay_stated": 53.3,
  "pct_vacancy_statement_and_pay": 27.3,
  "pct_ai_screening_statement": 36.5,
  "pct_all_three": 24.9,
  "pct_statement_says_not_existing_or_future": 1.7
 },
 "by_province": {
  "Ontario": {
   "postings": 58194,
   "employers": 1400,
   "pct_existing_vacancy_statement": 50.1,
   "pct_pay_stated": 61.3,
   "pct_vacancy_statement_and_pay": 35.6,
   "pct_ai_screening_statement": 43.8,
   "pct_all_three": 26.8,
   "pct_statement_says_not_existing_or_future": 1.3
  },
  "Quebec": {
   "postings": 13677,
   "employers": 568,
   "pct_existing_vacancy_statement": 32.2,
   "pct_pay_stated": 39.1,
   "pct_vacancy_statement_and_pay": 26.8,
   "pct_ai_screening_statement": 36.7,
   "pct_all_three": 25.5,
   "pct_statement_says_not_existing_or_future": 2.4
  },
  "British Columbia": {
   "postings": 10236,
   "employers": 501,
   "pct_existing_vacancy_statement": 27.4,
   "pct_pay_stated": 77.0,
   "pct_vacancy_statement_and_pay": 24.6,
   "pct_ai_screening_statement": 30.7,
   "pct_all_three": 21.1,
   "pct_statement_says_not_existing_or_future": 0.7
  },
  "Alberta": {
   "postings": 8151,
   "employers": 404,
   "pct_existing_vacancy_statement": 26.9,
   "pct_pay_stated": 45.0,
   "pct_vacancy_statement_and_pay": 23.8,
   "pct_ai_screening_statement": 35.3,
   "pct_all_three": 20.9,
   "pct_statement_says_not_existing_or_future": 1.7
  },
  "Manitoba": {
   "postings": 2923,
   "employers": 155,
   "pct_existing_vacancy_statement": 21.7,
   "pct_pay_stated": 38.2,
   "pct_vacancy_statement_and_pay": 19.3,
   "pct_ai_screening_statement": 31.7,
   "pct_all_three": 18.1,
   "pct_statement_says_not_existing_or_future": 0.3
  },
  "Nova Scotia": {
   "postings": 2292,
   "employers": 146,
   "pct_existing_vacancy_statement": 45.2,
   "pct_pay_stated": 65.4,
   "pct_vacancy_statement_and_pay": 38.9,
   "pct_ai_screening_statement": 46.3,
   "pct_all_three": 35.9,
   "pct_statement_says_not_existing_or_future": 3.3
  },
  "Saskatchewan": {
   "postings": 1779,
   "employers": 136,
   "pct_existing_vacancy_statement": 39.8,
   "pct_pay_stated": 53.8,
   "pct_vacancy_statement_and_pay": 35.7,
   "pct_ai_screening_statement": 45.4,
   "pct_all_three": 32.9,
   "pct_statement_says_not_existing_or_future": 3.0
  },
  "New Brunswick": {
   "postings": 1152,
   "employers": 109,
   "pct_existing_vacancy_statement": 52.6,
   "pct_pay_stated": 70.3,
   "pct_vacancy_statement_and_pay": 49.0,
   "pct_ai_screening_statement": 57.4,
   "pct_all_three": 45.0,
   "pct_statement_says_not_existing_or_future": 1.9
  },
  "Newfoundland and Labrador": {
   "postings": 644,
   "employers": 73,
   "pct_existing_vacancy_statement": 50.9,
   "pct_pay_stated": 64.4,
   "pct_vacancy_statement_and_pay": 47.0,
   "pct_ai_screening_statement": 58.2,
   "pct_all_three": 43.2,
   "pct_statement_says_not_existing_or_future": 1.2
  }
 }
}