SPB Git

spb/job-ka

Public

[ka6] fix connecteur postmediadistributionsolutions: faux positif supervision « volume QC nul » (46e cas du pattern, 1re intervention) — le connecteur est SAIN, found=0 est le comportement CORRECT. Postmedia Distribution Solutions (division logistique « source-to-shelf » de Postmedia lancée 2026-07, postmedia.com/postmedialogistics/) publie ses postes terrain ville par ville sur un board Breezy pan-canadien ; son unique offre QC (dbf5f01158a2 « Part-Time Merchandiser », Gatineau, 16,60 $/h) a été DÉPUBLIÉE par l'employeur entre 15:53 et 18:14 EDT le 2026-10-06 (found 1 → 0, miss_count=1, puis removed=1 via le garde-fou 2-miss au sync rejoué), sync_log VERT en continu (ok=1). Marqueur Breezy confirmé live (2e confirmation après telus_health 5134fa5) : détail = 200 + « Position Closed », offre absente du /json — trancher sur l'absence dans /json, pas sur le code HTTP. Board re-vérifié vivant et ACTIVEMENT utilisé : /json 200, 18 offres (publications 2026-09-29 et 2026-10-02), réparties AB/SK/BC/NB/ON/NS, multi-lieux inspectés (Fort Frances/Emo tous deux ON), AUCUN lieu QC — « Ottawa, ON » est côté ontarien, pas Gatineau. Pas de migration d'ATS : le Dayforce de postmedia.com/careers (can63/jobs.dayforcehcm.com ns postmedia, site PostmediaCareers) est le portail CORPORATE Postmedia Network, entité distincte — sondé via la mécanique DayforceConnector du repo : 25 offres en-CA, 0 QC (fr-CA aveugle maxCount=0, pattern partition-culture connu) → aucune récupération par portail frère possible (angle dentons/pwc vérifié négatif). Particularité du tenant : les Merchandiser sont republiés en CYCLE par ville avec un id Breezy neuf à chaque cycle (l'offre Gatineau avait déjà vu sa date_posted rafraîchie 2026-09-17 → 2026-10-02) — elle peut réapparaître sous un autre id ; tant que la division ne republie pas de poste au Québec, ce connecteur sera re-signalé périodiquement : structurel, pas une panne (même classe que strongtie a295929 / reworld c59448d / jove 8c2fc01 / industrialelectricmanufacturing fa64460). Artefact vague C comblé dans sources.json : url employeur vide → https://www.postmedia.com/postmedialogistics/ (vérifié 200, édition chirurgicale 1 ligne, JSON valide). Docstring postmediadistributionsolutions.py enrichie (chronologie + nature du volume). Sync isolé rejoué ×2 : found=0 stable, ok=1, 0,1 s, removed=1 au 1er replay (garde-fou 2-miss) ; non-régression plateforme breezy sur tenant vivant recruiting : found=86, ok=1, 0,4 s. Fiches docs/connecteurs/ postmediadistributionsolutions.md + ats-breezy.md + INDEX.md régénérées via scripts/gen_connector_docs.py (les 1131 autres fiches, dont seuls les instantanés horodatés changeaient, restaurées — hors périmètre). 107 tests pytest verts. pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.

Simon-Pierre Boucher committed (Oct 7, 2026) parent fa64460 Browse files

5 changed files +114 −119

modified data/sources.json +1 −1
@@ -5177,7 +5177,7 @@
5177 { 5177 {
5178 "id": "postmediadistributionsolutions", 5178 "id": "postmediadistributionsolutions",
5179 "name": "Postmedia Distribution Solutions", 5179 "name": "Postmedia Distribution Solutions",
5180− "url": "", 5180+ "url": "https://www.postmedia.com/postmedialogistics/",
5181 "careers_url": "https://postmediadistributionsolutions.breezy.hr", 5181 "careers_url": "https://postmediadistributionsolutions.breezy.hr",
5182 "sectors": [ 5182 "sectors": [
5183 "Médias", 5183 "Médias",
modified docs/connecteurs/INDEX.md +7 −7
@@ -5,16 +5,16 @@ Auteur : Simon-Pierre Boucher
5 Contact : contact@spboucher.ai 5 Contact : contact@spboucher.ai
6 Fichier : docs/connecteurs/INDEX.md 6 Fichier : docs/connecteurs/INDEX.md
7 Rôle : Index généré de la documentation des connecteurs (ATS, employeurs, portails, dépôt) 7 Rôle : Index généré de la documentation des connecteurs (ATS, employeurs, portails, dépôt)
8−Généré : 2026-10-06 20:48 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, 8+Généré : 2026-10-06 21:10 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 relancer le script pour régénérer. 9 relancer le script pour régénérer.
10 ============================================================================= 10 =============================================================================
11 --> 11 -->
12 12
13 # Job·Ka — Connecteurs (index) 13 # Job·Ka — Connecteurs (index)
14 14
15−> Index généré le 2026-10-06 20:48 EDT par `scripts/gen_connector_docs.py` (rejouable). Croise `data/sources.json`, l'introspection de `jobka/connectors/*.py` et la base live `data/jobka.db`. 15+> Index généré le 2026-10-06 21:10 EDT par `scripts/gen_connector_docs.py` (rejouable). Croise `data/sources.json`, l'introspection de `jobka/connectors/*.py` et la base live `data/jobka.db`.
16 16
17−**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25499 offres actives** (23280 directes, 2219 portails ; 111 masquées comme doublons inter-sources, soit 25388 visibles). 1134 fiches. 17+**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25496 offres actives** (23277 directes, 2219 portails ; 111 masquées comme doublons inter-sources, soit 25385 visibles). 1134 fiches.
18 18
19 Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conserve son URL originale ; la candidature se fait chez l'employeur (badge « Offre directe » sur les sources directes). 19 Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conserve son URL originale ; la candidature se fait chez l'employeur (badge « Offre directe » sur les sources directes).
20 20
@@ -32,10 +32,10 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
32 | [`greenhouse`](ats-greenhouse.md) | 132 | 850 | 19 % | 100 % | 32 | [`greenhouse`](ats-greenhouse.md) | 132 | 850 | 19 % | 100 % |
33 | [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 752 | 5 % | 100 % | 33 | [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 752 | 5 % | 100 % |
34 | [`lever`](ats-lever.md) | 59 | 624 | 20 % | 96 % | 34 | [`lever`](ats-lever.md) | 59 | 624 | 20 % | 96 % |
35−| [`breezy`](ats-breezy.md) | 71 | 416 | 39 % | 95 % | 35+| [`breezy`](ats-breezy.md) | 71 | 415 | 39 % | 95 % |
36 | [`ashby`](ats-ashby.md) | 41 | 301 | 43 % | 59 % | 36 | [`ashby`](ats-ashby.md) | 41 | 301 | 43 % | 59 % |
37 | [`bamboohr`](ats-bamboohr.md) | 37 | 283 | 8 % | 100 % | 37 | [`bamboohr`](ats-bamboohr.md) | 37 | 283 | 8 % | 100 % |
38−| [`recruitee`](ats-recruitee.md) | 30 | 278 | 19 % | 97 % | 38+| [`recruitee`](ats-recruitee.md) | 30 | 276 | 20 % | 97 % |
39 | [`taleo_tbe`](ats-taleo_tbe.md) | 7 | 201 | 25 % | 58 % | 39 | [`taleo_tbe`](ats-taleo_tbe.md) | 7 | 201 | 25 % | 58 % |
40 | [`zoho_recruit`](ats-zoho_recruit.md) | 17 | 169 | 13 % | 89 % | 40 | [`zoho_recruit`](ats-zoho_recruit.md) | 17 | 169 | 13 % | 89 % |
41 | [`jazzhr`](ats-jazzhr.md) | 28 | 151 | 15 % | 92 % | 41 | [`jazzhr`](ats-jazzhr.md) | 28 | 151 | 15 % | 92 % |
@@ -714,7 +714,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
714 | [Ajholdingsltd](ajholdingsltd.md) | [`dayforce`](ats-dayforce.md) | 3 | 100 % | 100 % | ✅ | 714 | [Ajholdingsltd](ajholdingsltd.md) | [`dayforce`](ats-dayforce.md) | 3 | 100 % | 100 % | ✅ |
715 | [Allucent](allucent.md) | [`workable`](ats-workable.md) | 3 | 0 % | 100 % | ✅ | 715 | [Allucent](allucent.md) | [`workable`](ats-workable.md) | 3 | 0 % | 100 % | ✅ |
716 | [Amgen](amgen.md) | [`workday`](ats-workday.md) | 3 | 0 % | 100 % | ✅ | 716 | [Amgen](amgen.md) | [`workday`](ats-workday.md) | 3 | 0 % | 100 % | ✅ |
717−| [Amilia](amilia.md) | [`recruitee`](ats-recruitee.md) | 3 | 0 % | 33 % | ✅ |
718 | [ARC'TERYX](arcteryx_com.md) | [`lever`](ats-lever.md) | 3 | 100 % | 100 % | ✅ | 717 | [ARC'TERYX](arcteryx_com.md) | [`lever`](ats-lever.md) | 3 | 100 % | 100 % | ✅ |
719 | [BDL Énergie](bdl_energie.md) | [`breezy`](ats-breezy.md) | 3 | 33 % | 33 % | ✅ | 718 | [BDL Énergie](bdl_energie.md) | [`breezy`](ats-breezy.md) | 3 | 33 % | 33 % | ✅ |
720 | [Berger (tourbe horticole)](berger.md) | [`dayforce`](ats-dayforce.md) | 3 | 0 % | 100 % | ✅ | 719 | [Berger (tourbe horticole)](berger.md) | [`dayforce`](ats-dayforce.md) | 3 | 0 % | 100 % | ✅ |
@@ -898,6 +897,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
898 | [Alan Canada](alan.md) | [`ashby`](ats-ashby.md) | 1 | 0 % | 100 % | ✅ | 897 | [Alan Canada](alan.md) | [`ashby`](ats-ashby.md) | 1 | 0 % | 100 % | ✅ |
899 | [Aliments Ouimet-Cordon Bleu inc.](cordonbleu.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 100 % | 100 % | ✅ | 898 | [Aliments Ouimet-Cordon Bleu inc.](cordonbleu.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 100 % | 100 % | ✅ |
900 | [Alygra Advisory](alygra.md) | [`ashby`](ats-ashby.md) | 1 | 0 % | 100 % | ✅ | 899 | [Alygra Advisory](alygra.md) | [`ashby`](ats-ashby.md) | 1 | 0 % | 100 % | ✅ |
900+| [Amilia](amilia.md) | [`recruitee`](ats-recruitee.md) | 1 | 0 % | 100 % | ✅ |
901 | [ANINE BING](aninebing.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 0 % | 100 % | ✅ | 901 | [ANINE BING](aninebing.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 0 % | 100 % | ✅ |
902 | [Ariolix](ariolix.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | 902 | [Ariolix](ariolix.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
903 | [Arterra Wines Canada](awc.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ | 903 | [Arterra Wines Canada](awc.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ |
@@ -1009,7 +1009,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
1009 | [Placements Mackenzie (Power/IGM)](mackenzie.md) | [`icims`](ats-icims.md) | 1 | 100 % | 0 % | ✅ | 1009 | [Placements Mackenzie (Power/IGM)](mackenzie.md) | [`icims`](ats-icims.md) | 1 | 100 % | 0 % | ✅ |
1010 | [Poka FR](pokafr.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 0 % | 100 % | ✅ | 1010 | [Poka FR](pokafr.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 0 % | 100 % | ✅ |
1011 | [Ponsera](ponsera.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ | 1011 | [Ponsera](ponsera.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ |
1012−| [Postmedia Distribution Solutions](postmediadistributionsolutions.md) | [`breezy`](ats-breezy.md) | 1 | 100 % | 100 % | ✅ |
1013 | [Poulet Rouge](pouletrouge.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 0 % | 100 % | ✅ | 1012 | [Poulet Rouge](pouletrouge.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 0 % | 100 % | ✅ |
1014 | [Production Operator I (Montreal)](wikoff.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ | 1013 | [Production Operator I (Montreal)](wikoff.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ |
1015 | [Production Support Roles](canadagoose.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ | 1014 | [Production Support Roles](canadagoose.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ |
@@ -1126,6 +1125,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
1126 | [Pelmorex](pelmorex.md) | [`lever`](ats-lever.md) | 0 | — | — | ✅ | 1125 | [Pelmorex](pelmorex.md) | [`lever`](ats-lever.md) | 0 | — | — | ✅ |
1127 | [PhyNet Dermatology LLC (External)](phynetdermatology.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ | 1126 | [PhyNet Dermatology LLC (External)](phynetdermatology.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
1128 | [POOLCORP](poolcorp.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ | 1127 | [POOLCORP](poolcorp.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ |
1128+| [Postmedia Distribution Solutions](postmediadistributionsolutions.md) | [`breezy`](ats-breezy.md) | 0 | — | — | ✅ |
1129 | [Produits Kruger](produits_kruger.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 0 | — | — | ✅ | 1129 | [Produits Kruger](produits_kruger.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 0 | — | — | ✅ |
1130 | [Projevia](projevia.md) | [`recruitee`](ats-recruitee.md) | 0 | — | — | n/d | 1130 | [Projevia](projevia.md) | [`recruitee`](ats-recruitee.md) | 0 | — | — | n/d |
1131 | [Qohash](qohash.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ | 1131 | [Qohash](qohash.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
modified docs/connecteurs/ats-breezy.md +73 −73
@@ -5,14 +5,14 @@ Auteur : Simon-Pierre Boucher
5 Contact : contact@spboucher.ai 5 Contact : contact@spboucher.ai
6 Fichier : docs/connecteurs/ats-breezy.md 6 Fichier : docs/connecteurs/ats-breezy.md
7 Rôle : Fiche plateforme ATS breezy — mécanique partagée + tableau des 71 tenants 7 Rôle : Fiche plateforme ATS breezy — mécanique partagée + tableau des 71 tenants
8−Généré : 2026-10-05 16:23 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, 8+Généré : 2026-10-06 21:10 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 relancer le script pour régénérer. 9 relancer le script pour régénérer.
10 ============================================================================= 10 =============================================================================
11 --> 11 -->
12 12
13 # Plateforme ATS `breezy` 13 # Plateforme ATS `breezy`
14 14
15−**71 employeurs connectés** via cette plateforme — **396 offres actives**. Module partagé : `jobka/connectors/breezy.py` ; un employeur = une sous-classe d'environ 10 lignes. 15+**71 employeurs connectés** via cette plateforme — **415 offres actives**. Module partagé : `jobka/connectors/breezy.py` ; un employeur = une sous-classe d'environ 10 lignes.
16 16
17 ## Description & mécanique 17 ## Description & mécanique
18 18
@@ -37,77 +37,77 @@ Généré : 2026-10-05 16:23 EDT par scripts/gen_connector_docs.py — NE PAS
37 37
38 | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | 38 | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK |
39 |---|---|---|---|---|---|---| 39 |---|---|---|---|---|---|---|
40−| [HIKINEX](recruiting.md) | 86 | 0 % | 100 % | 79 % | 2026-10-05 15:44 | ✅ | 40+| [HIKINEX](recruiting.md) | 86 | 0 % | 100 % | 79 % | 2026-10-06 21:09 | ✅ |
41−| [Brand Momentum](brandmomentum.md) | 41 | 71 % | 100 % | 2 % | 2026-10-05 16:19 | ✅ | 41+| [Brand Momentum](brandmomentum.md) | 45 | 73 % | 100 % | 2 % | 2026-10-06 20:55 | ✅ |
42−| [Progesys](progesys_inc.md) | 24 | 4 % | 96 % | 4 % | 2026-10-05 15:41 | ✅ | 42+| [Progesys](progesys_inc.md) | 24 | 4 % | 96 % | 4 % | 2026-10-06 18:14 | ✅ |
43−| [Réseau Mieux-Être](reseau_mieux_etre.md) | 16 | 6 % | 100 % | 6 % | 2026-10-05 15:45 | ✅ | 43+| [Merchandising Consultants Associates](merchandising_consultants_associates.md) | 23 | 100 % | 96 % | 100 % | 2026-10-06 18:10 | ✅ |
44−| [NOVIPRO](novipro.md) | 15 | 0 % | 100 % | 27 % | 2026-10-05 15:39 | ✅ | 44+| [Réseau Mieux-Être](reseau_mieux_etre.md) | 16 | 6 % | 100 % | 6 % | 2026-10-06 18:18 | ✅ |
45−| [EQ3](eq3_ltd.md) | 14 | 57 % | 93 % | 0 % | 2026-10-05 15:09 | ✅ | 45+| [NOVIPRO](novipro.md) | 15 | 0 % | 100 % | 27 % | 2026-10-06 18:12 | ✅ |
46−| [Lindt & Sprüngli Canada](lindt_sprunglicanada.md) | 14 | 0 % | 93 % | 0 % | 2026-10-05 15:35 | ✅ | 46+| [EQ3](eq3_ltd.md) | 14 | 57 % | 93 % | 0 % | 2026-10-06 19:54 | ✅ |
47−| [MicroHabitat](microhabitat.md) | 13 | 100 % | 100 % | 38 % | 2026-10-05 15:37 | ✅ | 47+| [Lindt & Sprüngli Canada](lindt_sprunglicanada.md) | 14 | 0 % | 93 % | 0 % | 2026-10-06 18:08 | ✅ |
48−| [Nora Pharma](nora_pharma.md) | 12 | 100 % | 83 % | 0 % | 2026-10-05 15:38 | ✅ | 48+| [MicroHabitat](microhabitat.md) | 13 | 100 % | 100 % | 38 % | 2026-10-06 18:10 | ✅ |
49−| [Wealthy Group of Companies LLC](wealthy_recruiting.md) | 12 | 100 % | 92 % | 0 % | 2026-10-05 15:58 | ✅ | 49+| [Wealthy Group of Companies LLC](wealthy_recruiting.md) | 12 | 100 % | 92 % | 0 % | 2026-10-06 18:31 | ✅ |
50−| [Luqia (INO)](ino_ca.md) | 11 | 0 % | 100 % | 0 % | 2026-10-05 15:26 | ✅ | 50+| [Luqia (INO)](ino_ca.md) | 11 | 0 % | 100 % | 0 % | 2026-10-06 17:59 | ✅ |
51−| [ADI - Albert Davidson Industries](adi_albert_davidson_industries.md) | 10 | 100 % | 100 % | 10 % | 2026-10-05 16:12 | ✅ | 51+| [Nora Pharma](nora_pharma.md) | 11 | 100 % | 91 % | 0 % | 2026-10-06 18:11 | ✅ |
52−| [BellatRx](bellatrx_inc.md) | 10 | 0 % | 100 % | 10 % | 2026-10-05 16:18 | ✅ | 52+| [ADI - Albert Davidson Industries](adi_albert_davidson_industries.md) | 10 | 100 % | 100 % | 10 % | 2026-10-06 20:49 | ✅ |
53−| [Technica Mining](technica_mining.md) | 10 | 0 % | 10 % | 0 % | 2026-10-05 16:23 | ✅ | 53+| [BellatRx](bellatrx_inc.md) | 10 | 0 % | 100 % | 10 % | 2026-10-06 20:54 | ✅ |
54−| [3 Brasseurs Canada](trois_brasseurs.md) | 9 | 67 % | 100 % | 100 % | 2026-10-05 15:53 | ✅ | 54+| [Technica Mining](technica_mining.md) | 10 | 0 % | 10 % | 0 % | 2026-10-06 18:25 | ✅ |
55−| [ThirdChannel](thirdchannel_inc.md) | 9 | 100 % | 100 % | 0 % | 2026-10-05 15:52 | ✅ | 55+| [3 Brasseurs Canada](trois_brasseurs.md) | 9 | 67 % | 100 % | 100 % | 2026-10-06 18:26 | ✅ |
56−| [New York Holdings](new_york_holdings.md) | 8 | 12 % | 100 % | 88 % | 2026-10-05 15:38 | ✅ | 56+| [ThirdChannel](thirdchannel_inc.md) | 9 | 100 % | 100 % | 0 % | 2026-10-06 18:26 | ✅ |
57−| [Prep Academy Tutors](prep_academy_tutors.md) | 8 | 100 % | 100 % | 25 % | 2026-10-05 15:41 | ✅ | 57+| [New York Holdings](new_york_holdings.md) | 8 | 12 % | 100 % | 88 % | 2026-10-06 18:11 | ✅ |
58−| [Merchandising Consultants Associates](merchandising_consultants_associates.md) | 7 | 100 % | 100 % | 100 % | 2026-10-05 15:37 | ✅ | 58+| [Prep Academy Tutors](prep_academy_tutors.md) | 8 | 100 % | 100 % | 25 % | 2026-10-06 18:14 | ✅ |
59−| [Alphanumeric Systems](alphanumeric_systems.md) | 5 | 100 % | 100 % | 40 % | 2026-10-05 16:14 | ✅ | 59+| [Alphanumeric Systems](alphanumeric_systems.md) | 5 | 100 % | 100 % | 40 % | 2026-10-06 20:51 | ✅ |
60−| [Spiegel Ryan S.E.N.C.R.L.](spiegel_sohmer.md) | 5 | 0 % | 100 % | 0 % | 2026-10-05 15:49 | ✅ | 60+| [VOXDATA](voxdata.md) | 5 | 100 % | 100 % | 80 % | 2026-10-06 18:29 | ✅ |
61−| [VOXDATA](voxdata.md) | 4 | 100 % | 100 % | 100 % | 2026-10-05 15:56 | ✅ | 61+| [Spiegel Ryan S.E.N.C.R.L.](spiegel_sohmer.md) | 5 | 0 % | 100 % | 0 % | 2026-10-06 18:23 | ✅ |
62−| [Jay Analytix](jay_analytix.md) | 4 | 0 % | 100 % | 50 % | 2026-10-05 15:27 | ✅ | 62+| [Jay Analytix](jay_analytix.md) | 4 | 0 % | 100 % | 50 % | 2026-10-06 18:00 | ✅ |
63−| [Norbert Health](norbert_health.md) | 4 | 0 % | 100 % | 0 % | 2026-10-05 15:38 | ✅ | 63+| [Norbert Health](norbert_health.md) | 4 | 0 % | 100 % | 0 % | 2026-10-06 18:11 | ✅ |
64−| [BDL Énergie](bdl_energie.md) | 3 | 33 % | 33 % | 0 % | 2026-10-05 16:17 | ✅ | 64+| [BDL Énergie](bdl_energie.md) | 3 | 33 % | 33 % | 0 % | 2026-10-06 20:54 | ✅ |
65−| [Black & McDonald](black_mcdonald_francais.md) | 3 | 0 % | 67 % | 0 % | 2026-10-05 16:18 | ✅ | 65+| [Black & McDonald](black_mcdonald_francais.md) | 3 | 0 % | 67 % | 0 % | 2026-10-06 20:55 | ✅ |
66−| [Turbulent](turbulent.md) | 3 | 0 % | 67 % | 0 % | 2026-10-05 15:53 | ✅ | 66+| [Turbulent](turbulent.md) | 3 | 0 % | 67 % | 0 % | 2026-10-06 18:27 | ✅ |
67−| [Adoc Talent Management](adoc_tm.md) | 3 | 0 % | 100 % | 33 % | 2026-10-05 16:12 | ✅ | 67+| [Adoc Talent Management](adoc_tm.md) | 3 | 0 % | 100 % | 33 % | 2026-10-06 20:49 | ✅ |
68−| [Groupe Unigesco](groupe_unigesco.md) | 3 | 67 % | 100 % | 33 % | 2026-10-05 15:15 | ✅ | 68+| [Groupe Unigesco](groupe_unigesco.md) | 3 | 67 % | 100 % | 33 % | 2026-10-06 17:46 | ✅ |
69−| [Vaporus](vaporus_inc.md) | 2 | 100 % | 50 % | 0 % | 2026-10-05 15:55 | ✅ | 69+| [Vaporus](vaporus_inc.md) | 2 | 100 % | 50 % | 0 % | 2026-10-06 18:28 | ✅ |
70−| [Sense Ingénierie](sense_engineering.md) | 2 | 0 % | 100 % | 100 % | 2026-10-05 15:47 | ✅ | 70+| [Sense Ingénierie](sense_engineering.md) | 2 | 0 % | 100 % | 100 % | 2026-10-06 18:20 | ✅ |
71−| [Canada Global Recruitment](canada_global.md) | 1 | 0 % | 0 % | 0 % | 2026-10-05 16:20 | ✅ | 71+| [Canada Global Recruitment](canada_global.md) | 1 | 0 % | 0 % | 0 % | 2026-10-06 20:56 | ✅ |
72−| [YouSet](youset.md) | 1 | 0 % | 100 % | 100 % | 2026-10-05 15:59 | ✅ | 72+| [YouSet](youset.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 18:32 | ✅ |
73−| [Panda7](panda7.md) | 1 | 100 % | 100 % | 100 % | 2026-10-05 15:40 | ✅ | 73+| [Panda7](panda7.md) | 1 | 100 % | 100 % | 100 % | 2026-10-06 18:13 | ✅ |
74−| [1perTInent](x1pertinent.md) | 1 | 0 % | 100 % | 100 % | 2026-10-05 15:58 | ✅ | 74+| [1perTInent](x1pertinent.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 18:32 | ✅ |
75−| [Above Flights](above_flights.md) | 1 | 0 % | 100 % | 100 % | 2026-10-05 16:12 | ✅ | 75+| [Above Flights](above_flights.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 20:49 | ✅ |
76−| [AC780](ac780.md) | 1 | 0 % | 100 % | 0 % | 2026-10-05 16:12 | ✅ | 76+| [AC780](ac780.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 20:49 | ✅ |
77−| [MOKO](africa_moko.md) | 1 | 0 % | 100 % | 0 % | 2026-10-05 16:13 | ✅ | 77+| [MOKO](africa_moko.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 20:50 | ✅ |
78−| [Agence](agence_carrieres.md) | 1 | 100 % | 100 % | 0 % | 2026-10-05 16:13 | ✅ | 78+| [Agence](agence_carrieres.md) | 1 | 100 % | 100 % | 0 % | 2026-10-06 20:50 | ✅ |
79−| [Bliinx](bliinx.md) | 1 | 0 % | 100 % | 100 % | 2026-10-05 16:18 | ✅ | 79+| [Bliinx](bliinx.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 20:55 | ✅ |
80−| [Bon Poste](bon_poste.md) | 1 | 0 % | 100 % | 0 % | 2026-10-05 16:19 | ✅ | 80+| [Bon Poste](bon_poste.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 20:55 | ✅ |
81−| [BoxKnight](boxknight.md) | 1 | 0 % | 100 % | 100 % | 2026-10-05 16:19 | ✅ | 81+| [BoxKnight](boxknight.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 20:55 | ✅ |
82−| [Canada-Explorers](canada_explorers.md) | 1 | 100 % | 100 % | 0 % | 2026-10-05 16:20 | ✅ | 82+| [Canada-Explorers](canada_explorers.md) | 1 | 100 % | 100 % | 0 % | 2026-10-06 20:56 | ✅ |
83−| [Endossed](endossed.md) | 1 | 100 % | 100 % | 100 % | 2026-10-05 15:09 | ✅ | 83+| [Endossed](endossed.md) | 1 | 100 % | 100 % | 100 % | 2026-10-06 21:10 | ✅ |
84−| [Eranum Solutions Numériques](eranum.md) | 1 | 100 % | 100 % | 0 % | 2026-10-05 15:10 | ✅ | 84+| [Eranum Solutions Numériques](eranum.md) | 1 | 100 % | 100 % | 0 % | 2026-10-06 19:54 | ✅ |
85−| [Fundica](fundica.md) | 1 | 0 % | 100 % | 0 % | 2026-10-05 15:12 | ✅ | 85+| [Fundica](fundica.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 19:56 | ✅ |
86−| [Km Impact](km_impact.md) | 1 | 100 % | 100 % | 100 % | 2026-10-05 15:33 | ✅ | 86+| [Km Impact](km_impact.md) | 1 | 100 % | 100 % | 100 % | 2026-10-06 18:06 | ✅ |
87−| [Myle Home Service](myle_service.md) | 1 | 100 % | 100 % | 0 % | 2026-10-05 15:38 | ✅ | 87+| [Myle Home Service](myle_service.md) | 1 | 100 % | 100 % | 0 % | 2026-10-06 18:11 | ✅ |
88−| [Next Generation Inc](next_generation_inc.md) | 1 | 100 % | 100 % | 0 % | 2026-10-05 15:38 | ✅ | 88+| [Next Generation Inc](next_generation_inc.md) | 1 | 100 % | 100 % | 0 % | 2026-10-06 18:11 | ✅ |
89−| [Octav](octav.md) | 1 | 100 % | 100 % | 100 % | 2026-10-05 15:39 | ✅ | 89+| [Octav](octav.md) | 1 | 100 % | 100 % | 100 % | 2026-10-06 18:13 | ✅ |
90−| [PeopleConnect Inc](peopleconnect_inc.md) | 1 | 100 % | 100 % | 0 % | 2026-10-05 15:40 | ✅ | 90+| [PeopleConnect Inc](peopleconnect_inc.md) | 1 | 100 % | 100 % | 0 % | 2026-10-06 18:13 | ✅ |
91−| [Postmedia Distribution Solutions](postmediadistributionsolutions.md) | 1 | 100 % | 100 % | 0 % | 2026-10-05 15:41 | ✅ | 91+| [Shearwater Aerospace](shearwater_aerospace.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 18:21 | ✅ |
92−| [Shearwater Aerospace](shearwater_aerospace.md) | 1 | 0 % | 100 % | 100 % | 2026-10-05 15:47 | ✅ | 92+| [SportWhere](sportwhere.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 18:23 | ✅ |
93−| [SportWhere](sportwhere.md) | 1 | 0 % | 100 % | 0 % | 2026-10-05 15:50 | ✅ | 93+| [Urbania](urbania.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 18:27 | ✅ |
94−| [Urbania](urbania.md) | 1 | 0 % | 100 % | 0 % | 2026-10-05 15:54 | ✅ | 94+| [Valital Technologies](valital_technologies.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 18:28 | ✅ |
95−| [Valital Technologies](valital_technologies.md) | 1 | 0 % | 100 % | 100 % | 2026-10-05 15:54 | ✅ | 95+| [Volume7](volume7.md) | 1 | 100 % | 100 % | 100 % | 2026-10-06 18:29 | ✅ |
96−| [Volume7](volume7.md) | 1 | 100 % | 100 % | 100 % | 2026-10-05 15:56 | ✅ | 96+| [TELUS Santé — Cliniques](telus_health_7fe6b0fe8614.md) | 0 | — | — | — | 2026-10-06 18:25 | ✅ |
97−| [TELUS Santé — Cliniques](telus_health_7fe6b0fe8614.md) | 0 | — | — | — | 2026-10-05 15:52 | ✅ | 97+| [4th Day Trucking](x4th_day_trucking.md) | 0 | — | — | — | 2026-10-06 18:32 | ✅ |
98−| [4th Day Trucking](x4th_day_trucking.md) | 0 | — | — | — | 2026-10-05 15:59 | ✅ | 98+| [DropGenie](drop_genie.md) | 0 | — | — | — | 2026-10-06 21:07 | ✅ |
99−| [DropGenie](drop_genie.md) | 0 | — | — | — | 2026-10-05 15:07 | ✅ | 99+| [Family Resource Home Care](family_resource_home_care.md) | 0 | — | — | — | 2026-10-06 19:55 | ✅ |
100−| [Family Resource Home Care](family_resource_home_care.md) | 0 | — | — | — | 2026-10-05 15:10 | ✅ | 100+| [Gastro Health](gastro_health.md) | 0 | — | — | — | 2026-10-06 19:57 | ✅ |
101−| [Gastro Health](gastro_health.md) | 0 | — | — | — | 2026-10-05 15:12 | ✅ | 101+| [H & S Loss Control Inspections](h_s_loss_control_inspections_in.md) | 0 | — | — | — | 2026-10-06 17:53 | ✅ |
102−| [H & S Loss Control Inspections](h_s_loss_control_inspections_in.md) | 0 | — | — | — | 2026-10-05 15:22 | ✅ | 102+| [Hera AI](hera.md) | 0 | — | — | — | 2026-10-06 17:54 | ✅ |
103−| [Hera AI](hera.md) | 0 | — | — | — | 2026-10-05 15:22 | ✅ | 103+| [Insite Property Solutions](insite_property_solutions.md) | 0 | — | — | — | 2026-10-06 17:59 | ✅ |
104−| [Insite Property Solutions](insite_property_solutions.md) | 0 | — | — | — | 2026-10-05 15:26 | ✅ | 104+| [Paythings](paythings_19f14e354a62.md) | 0 | — | — | — | 2026-10-06 18:13 | ✅ |
105−| [Paythings](paythings_19f14e354a62.md) | 0 | — | — | — | 2026-10-05 15:40 | ✅ | 105+| [Postmedia Distribution Solutions](postmediadistributionsolutions.md) | 0 | — | — | — | 2026-10-06 21:09 | ✅ |
106−| [Ridepanda](ridepanda.md) | 0 | — | — | — | 2026-10-05 15:45 | ✅ | 106+| [Ridepanda](ridepanda.md) | 0 | — | — | — | 2026-10-06 18:18 | ✅ |
107−| [SRS Merchandising](srs_merchandising.md) | 0 | — | — | — | 2026-10-05 15:50 | ✅ | 107+| [SRS Merchandising](srs_merchandising.md) | 0 | — | — | — | 2026-10-06 18:23 | ✅ |
108−| [Trueline](trueline.md) | 0 | — | — | — | 2026-10-05 15:53 | ✅ | 108+| [Trueline](trueline.md) | 0 | — | — | — | 2026-10-06 18:26 | ✅ |
109−| [VA Desk](vadesk.md) | 0 | — | — | — | 2026-10-05 15:54 | ✅ | 109+| [VA Desk](vadesk.md) | 0 | — | — | — | 2026-10-06 18:27 | ✅ |
110−| [Wyze Labs](wyze_labs.md) | 0 | — | — | — | 2026-10-05 15:58 | ✅ | 110+| [Wyze Labs](wyze_labs.md) | 0 | — | — | — | 2026-10-06 18:32 | ✅ |
111 111
112 ## Licence / conformité 112 ## Licence / conformité
113 113
modified docs/connecteurs/postmediadistributionsolutions.md +11 −37
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher
5 Contact : contact@spboucher.ai 5 Contact : contact@spboucher.ai
6 Fichier : docs/connecteurs/postmediadistributionsolutions.md 6 Fichier : docs/connecteurs/postmediadistributionsolutions.md
7 Rôle : Fiche connecteur — Postmedia Distribution Solutions (employeur direct, ATS breezy) 7 Rôle : Fiche connecteur — Postmedia Distribution Solutions (employeur direct, ATS breezy)
8−Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, 8+Généré : 2026-10-06 21:10 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 relancer le script pour régénérer. 9 relancer le script pour régénérer.
10 ============================================================================= 10 =============================================================================
11 --> 11 -->
@@ -16,7 +16,7 @@ Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS
16 16
17 ## Description 17 ## Description
18 18
19−- **Site** : [Postmedia Distribution Solutions]() 19+- **Site** : [Postmedia Distribution Solutions](https://www.postmedia.com/postmedialogistics/)
20 - **Page carrières** : https://postmediadistributionsolutions.breezy.hr 20 - **Page carrières** : https://postmediadistributionsolutions.breezy.hr
21 - **Secteurs** : Médias, Distribution 21 - **Secteurs** : Médias, Distribution
22 - **Région** : Gatineau 22 - **Région** : Gatineau
@@ -36,33 +36,7 @@ Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS
36 36
37 ## Champs → schéma 37 ## Champs → schéma
38 38
39−Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-09-21 18:06 EDT). 39+*Aucune offre active en base pour cette source.*
40−
41−| Champ (`jobs.*`) | Rôle | Complétude |
42−|---|---|---|
43−| `title` — Titre | titre du poste | 100 % |
44−| `employer` — Employeur | nom de l'entreprise | 100 % |
45−| `url` — URL | lien direct vers l'offre originale | 100 % |
46−| `description` — Description | texte complet (HTML nettoyé) | 100 % |
47−| `city` — Ville | municipalité normalisée | 100 % |
48−| `region` — Région | région administrative | 100 % |
49−| `address` — Adresse | adresse du lieu de travail | 0 % |
50−| `postal_code` — Code postal | code postal si publié | 0 % |
51−| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % |
52−| `employment_type` — Type | temps_plein / temps_partiel / … | 100 % |
53−| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 100 % |
54−| `salary_label` — Libellé salaire | texte salarial original | 100 % |
55−| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % |
56−| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % |
57−| `date_posted` — Date de parution | ISO 8601 | 100 % |
58−| `date_deadline` — Date limite | date limite pour postuler | 0 % |
59−| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 100 % |
60−| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % |
61−| `company_logo` — Logo employeur | URL du logo si exposé par la source | 100 % |
62−| `apply_url` — Candidature | lien de candidature directe | 0 % |
63−| `gps` — GPS | lat/lng (géocodage sans invention) | 100 % |
64−
65−Exemple réel : *Part-Time Merchandiser* — Gatineau · $16.60/hr · parue le 2026-09-17.
66 40
67 ## Fréquence & budgets 41 ## Fréquence & budgets
68 42
@@ -72,15 +46,15 @@ Exemple réel : *Part-Time Merchandiser* — Gatineau · $16.60/hr · parue le 2
72 46
73 ## Volumétrie & complétude live 47 ## Volumétrie & complétude live
74 48
75−*(mesuré le 2026-09-21 18:06 EDT dans `data/jobka.db`)* 49+*(mesuré le 2026-10-06 21:10 EDT dans `data/jobka.db`)*
76 50
77−- **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) 51+- **Offres en base** : 1 (dont **0 actives**, 0 masquées comme doublons `dup_of`)
78−- **Salaire** : 1/1 actives (100 %) 52+- **Salaire** : 0/0 actives (—)
79−- **GPS** : 1/1 actives (100 %) 53+- **GPS** : 0/0 actives (—)
80−- **Mode** : 0/1 actives (0 %) 54+- **Mode** : 0/0 actives (—)
81−- **Parution** : 1/1 actives (100 %) 55+- **Parution** : 0/0 actives (—)
82−- **Dernier sync** : 2026-09-21 17:27 — trouvées 1, +0, ~0, -0 56+- **Dernier sync** : 2026-10-06 21:09 — trouvées 0, +0, ~0, -0
83−- **Syncs enregistrés** (`sync_log`) : 236 57+- **Syncs enregistrés** (`sync_log`) : 396
84 58
85 ## Erreurs & dépannage 59 ## Erreurs & dépannage
86 60
modified jobka/connectors/postmediadistributionsolutions.py +22 −1
@@ -5,12 +5,33 @@
5 # Fichier : jobka/connectors/postmediadistributionsolutions.py 5 # Fichier : jobka/connectors/postmediadistributionsolutions.py
6 # Rôle : Connecteur Postmedia Distribution Solutions — breezy (org « postmediadistributionsolutions ») 6 # Rôle : Connecteur Postmedia Distribution Solutions — breezy (org « postmediadistributionsolutions »)
7 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23] 7 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23]
8−# Créé : 2026-08-23 Modifié : 2026-08-23 8+# Créé : 2026-08-23 Modifié : 2026-10-06
9 # ============================================================================= 9 # =============================================================================
10 from .breezy import BreezyConnector 10 from .breezy import BreezyConnector
11 11
12 12
13 class PostmediadistributionsolutionsConnector(BreezyConnector): 13 class PostmediadistributionsolutionsConnector(BreezyConnector):
14+ """Postmedia Distribution Solutions — division logistique « source-to-shelf »
15+ de Postmedia (lancée 2026-07, postmedia.com/postmedialogistics/), qui publie
16+ ses postes terrain (Merchandiser, Order Assembler…) ville par ville sur ce
17+ board Breezy pan-canadien.
18+
19+ Volume QC structurellement 0 ou 1 (médiane 1.0) : le board liste ~18 offres
20+ réparties AB/SK/BC/NB/ON/NS et porte au plus UNE offre québécoise à la fois
21+ (« Part-Time Merchandiser », Gatineau). 2026-10-06 : cette unique offre QC
22+ (dbf5f01158a2) a été dépubliée par l'employeur entre 15:53 et 18:14 EDT
23+ (found 1 → 0, sync_log vert en continu) — marqueur Breezy confirmé live :
24+ détail = 200 + « Position Closed », absente du /json (même marqueur que
25+ telus_health 5134fa5). Board re-vérifié vivant et activement utilisé
26+ (publications 2026-09-29 / 2026-10-02), 0 lieu QC (multi-lieux inspectés ;
27+ « Ottawa, ON » = côté ontarien, pas Gatineau). Pas de migration d'ATS : le
28+ Dayforce de postmedia.com/careers est le portail CORPORATE Postmedia Network
29+ (sondé : 25 offres en-CA, 0 QC ; fr-CA aveugle), entité distincte de cette
30+ division. found=0 est donc CORRECT tant que la division ne republie pas de
31+ poste au Québec ; les Merchandiser étant republiés en cycle par ville (id
32+ neuf à chaque cycle), l'offre Gatineau peut réapparaître sous un autre id.
33+ """
34+
14 source_id = 'postmediadistributionsolutions' 35 source_id = 'postmediadistributionsolutions'
15 EMPLOYER = 'Postmedia Distribution Solutions' 36 EMPLOYER = 'Postmedia Distribution Solutions'
16 ORG = 'postmediadistributionsolutions' 37 ORG = 'postmediadistributionsolutions'
17 38
Menu

Theme