SPB Git

spb/job-ka

Public

[ka6] connecteur mcgillstlaurent: restauration après rollback automatique (2e intervention) — le diagnostic site_source_mort du 2026-10-22 (35756e9b) reste valide, le broken actuel vient du revert cff3361f de la supervision (verdict JSON tronqué → « inconnu », même mécanique que le cas enercare f5248721), pas de la source. Re-vérifié live le 2026-10-23 : tenant JazzHR mcgillstlaurent.applytojob.com toujours 200 « Inactive Career Page » (compte résilié chez l'ATS) ; board Lever unifié du groupe jobs.lever.co/mcgillstlaurent toujours vivant (7 offres dont 3 CWP Energy : Junior Power Trader QC, Agentic Innovation Specialist QC, Power Trader US filtrée) et DÉJÀ COUVERT par le frère mcgillstlaurentb8 (sync isolé rejoué ok=1 found=6 en 1,0 s). Restauration CHIRURGICALE (pas de revert du revert, les fiches docs ayant été régénérées entre-temps par les missions sobeys/gevgroupltd) : git checkout 35756e9b -- mcgillstlaurent.py (docstring chronologie) + réédition sources.json (url https://mcgillstlaurent.com/cwp-energy/ re-vérifiée 200, sectors [Énergie, Finance]) + note 2e intervention anti-récidive dans la docstring (« ne PAS re-reverter »). Sync isolé mcgillstlaurent rejoué : échec explicite attendu « compte JazzHR désactivé » (détection adb8637, comportement conçu) — aucun code de fetch modifié, le connecteur repartira seul si le tenant revenait. Fiches mcgillstlaurent.md/ats-jazzhr.md/INDEX.md régénérées (1131 autres fiches restaurées, hors périmètre). 108 tests verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Oct 23, 2026) parent 70759dc Browse files

5 changed files +145 −88

modified data/sources.json +5 −2
@@ -13216,9 +13216,12 @@
13216 13216 {
13217 13217 "id": "mcgillstlaurent",
13218 13218 "name": "CWP Energy",
13219 − "url": "",
13219 + "url": "https://mcgillstlaurent.com/cwp-energy/",
13220 13220 "careers_url": "https://mcgillstlaurent.applytojob.com/apply/",
13221 − "sectors": [],
13221 + "sectors": [
13222 + "Énergie",
13223 + "Finance"
13224 + ],
13222 13225 "connector": "jazzhr",
13223 13226 "status": "actif",
13224 13227 "region": "Québec (province)"
modified docs/connecteurs/INDEX.md +37 −37
@@ -5,16 +5,16 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/INDEX.md
7 7 Rôle : Index généré de la documentation des connecteurs (ATS, employeurs, portails, dépôt)
8 −Généré : 2026-10-22 23:26 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-23 01:52 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 9 relancer le script pour régénérer.
10 10 =============================================================================
11 11 -->
12 12
13 13 # Job·Ka — Connecteurs (index)
14 14
15 −> Index généré le 2026-10-22 23:26 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-23 01:52 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** — **25760 offres actives** (23227 directes, 2533 portails ; 156 masquées comme doublons inter-sources, soit 25604 visibles). 1134 fiches.
17 +**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25799 offres actives** (23203 directes, 2596 portails ; 160 masquées comme doublons inter-sources, soit 25639 visibles). 1134 fiches.
18 18
19 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
@@ -22,26 +22,26 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
22 22
23 23 | Plateforme | Employeurs | Actives | Salaire | GPS |
24 24 |---|---|---|---|---|
25 −| [`workday`](ats-workday.md) | 232 | 7554 | 48 % | 88 % |
26 −| [`smartrecruiters`](ats-smartrecruiters.md) | 172 | 2920 | 16 % | 99 % |
27 −| [`workable`](ats-workable.md) | 71 | 2015 | 18 % | 100 % |
28 −| [`dayforce`](ats-dayforce.md) | 129 | 1922 | 9 % | 100 % |
25 +| [`workday`](ats-workday.md) | 232 | 7549 | 48 % | 88 % |
26 +| [`smartrecruiters`](ats-smartrecruiters.md) | 172 | 2919 | 16 % | 99 % |
27 +| [`workable`](ats-workable.md) | 71 | 1999 | 18 % | 100 % |
28 +| [`dayforce`](ats-dayforce.md) | 129 | 1925 | 9 % | 100 % |
29 29 | [`successfactors`](ats-successfactors.md) | 12 | 1692 | 17 % | 99 % |
30 −| [`njoyn`](ats-njoyn.md) | 11 | 1267 | 70 % | 87 % |
30 +| [`njoyn`](ats-njoyn.md) | 11 | 1272 | 70 % | 87 % |
31 31 | [`workland`](ats-workland.md) | 1 | 1205 | 35 % | 100 % |
32 32 | [`greenhouse`](ats-greenhouse.md) | 132 | 818 | 18 % | 100 % |
33 −| [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 806 | 6 % | 100 % |
34 −| [`lever`](ats-lever.md) | 58 | 611 | 21 % | 96 % |
33 +| [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 800 | 6 % | 100 % |
34 +| [`lever`](ats-lever.md) | 58 | 610 | 21 % | 96 % |
35 35 | [`breezy`](ats-breezy.md) | 71 | 426 | 38 % | 95 % |
36 +| [`recruitee`](ats-recruitee.md) | 30 | 286 | 20 % | 97 % |
36 37 | [`bamboohr`](ats-bamboohr.md) | 37 | 286 | 8 % | 100 % |
37 −| [`recruitee`](ats-recruitee.md) | 30 | 285 | 20 % | 97 % |
38 38 | [`ashby`](ats-ashby.md) | 41 | 283 | 53 % | 54 % |
39 39 | [`taleo_tbe`](ats-taleo_tbe.md) | 7 | 206 | 29 % | 56 % |
40 40 | [`zoho_recruit`](ats-zoho_recruit.md) | 17 | 158 | 15 % | 87 % |
41 41 | [`teamtailor`](ats-teamtailor.md) | 10 | 156 | 29 % | 96 % |
42 42 | [`jazzhr`](ats-jazzhr.md) | 28 | 137 | 15 % | 91 % |
43 43 | [`adp`](ats-adp.md) | 17 | 132 | 37 % | 95 % |
44 −| [`taleo`](ats-taleo.md) | 5 | 117 | 0 % | 100 % |
44 +| [`taleo`](ats-taleo.md) | 5 | 113 | 0 % | 100 % |
45 45 | [`eightfold`](ats-eightfold.md) | 1 | 58 | 90 % | 100 % |
46 46 | [`icims`](ats-icims.md) | 7 | 57 | 26 % | 93 % |
47 47 | [`ultipro`](ats-ultipro.md) | 4 | 50 | 54 % | 100 % |
@@ -52,9 +52,9 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
52 52
53 53 | Source | Actives | Salaire | Dernier sync |
54 54 |---|---|---|---|
55 −| [Espresso-Jobs](espresso_jobs.md) | 314 | 19 % | 2026-10-22 23:09 |
56 −| [Guichet-Emplois (Canada)](guichet_emplois.md) | 510 | 99 % | 2026-10-22 23:23 |
57 −| [Jobillico](jobillico.md) | 1709 | 38 % | 2026-10-22 21:07 |
55 +| [Espresso-Jobs](espresso_jobs.md) | 314 | 19 % | 2026-10-22 23:54 |
56 +| [Guichet-Emplois (Canada)](guichet_emplois.md) | 500 | 99 % | 2026-10-23 00:06 |
57 +| [Jobillico](jobillico.md) | 1782 | 38 % | 2026-10-23 00:19 |
58 58 | [Dépôt direct employeurs](depot-direct.md) | 0 (0 en modération) | — | au fil de l'eau |
59 59
60 60 ## Employeurs directs (par volume d'offres actives)
@@ -63,40 +63,40 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
63 63 |---|---|---|---|---|---|
64 64 | [Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…)](atlas_workland.md) | [`workland`](ats-workland.md) | 1205 | 35 % | 100 % | ✅ |
65 65 | [Couche-Tard / Circle K](circlek.md) | [`workday`](ats-workday.md) | 994 | 69 % | 69 % | ✅ |
66 −| [Solution SFT](solution_sft.md) | [`workable`](ats-workable.md) | 972 | 25 % | 100 % | ✅ |
66 +| [Solution SFT](solution_sft.md) | [`workable`](ats-workable.md) | 956 | 25 % | 100 % | ✅ |
67 67 | [Bombardier](bombardier.md) | [`successfactors`](ats-successfactors.md) | 953 | 1 % | 100 % | ✅ |
68 −| [Walmart Canada](walmart.md) | [`workday`](ats-workday.md) | 932 | 98 % | 89 % | ✅ |
69 −| [Santé Québec — Montréal](sante_montreal.md) | [`njoyn`](ats-njoyn.md) | 830 | 97 % | 98 % | ✅ |
70 −| [Université McGill](mcgill.md) | [`workday`](ats-workday.md) | 448 | 81 % | 100 % | ✅ |
68 +| [Walmart Canada](walmart.md) | [`workday`](ats-workday.md) | 927 | 98 % | 89 % | ✅ |
69 +| [Santé Québec — Montréal](sante_montreal.md) | [`njoyn`](ats-njoyn.md) | 835 | 97 % | 98 % | ✅ |
70 +| [Université McGill](mcgill.md) | [`workday`](ats-workday.md) | 449 | 81 % | 100 % | ✅ |
71 71 | [TEHORA](tehora.md) | [`workable`](ats-workable.md) | 419 | 0 % | 100 % | ✅ |
72 72 | [CGI](cgi.md) | [`njoyn`](ats-njoyn.md) | 290 | 0 % | 94 % | ✅ |
73 73 | [Mouvement Desjardins](desjardins.md) | [`workday`](ats-workday.md) | 283 | 1 % | 94 % | ✅ |
74 74 | [Slihrms](slihrms.md) | [`workday`](ats-workday.md) | 258 | 11 % | 93 % | ✅ |
75 −| [Go RH](gorh.md) | [`lever`](ats-lever.md) | 256 | 17 % | 97 % | ✅ |
76 75 | [CIMA+](cima2.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 255 | 1 % | 100 % | ✅ |
76 +| [Go RH](gorh.md) | [`lever`](ats-lever.md) | 255 | 17 % | 98 % | ✅ |
77 77 | [Alstom](alstom.md) | [`successfactors`](ats-successfactors.md) | 248 | 8 % | 100 % | ✅ |
78 78 | [Rechercher des](gianttiger.md) | [`workday`](ats-workday.md) | 238 | 0 % | 100 % | ✅ |
79 79 | [Globalhr](globalhr.md) | [`workday`](ats-workday.md) | 232 | 0 % | 84 % | ✅ |
80 −| [Airbus Canada](airbus.md) | [`workday`](ats-workday.md) | 208 | 4 % | 99 % | ✅ |
80 +| [Airbus Canada](airbus.md) | [`workday`](ats-workday.md) | 208 | 4 % | 100 % | ✅ |
81 81 | [American Iron and Metal](americanironandmetal.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 205 | 22 % | 100 % | ✅ |
82 82 | [Reitmans](reitmanscanadalteltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 204 | 18 % | 100 % | ✅ |
83 −| [Groupe Banque TD](td.md) | [`workday`](ats-workday.md) | 201 | 95 % | 96 % | ✅ |
83 +| [Groupe Banque TD](td.md) | [`workday`](ats-workday.md) | 200 | 94 % | 96 % | ✅ |
84 84 | [CISSS de Laval](cisss_laval.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 179 | 3 % | 100 % | ✅ |
85 85 | [Sodexo Canada](sodexocanadaltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 154 | 84 % | 99 % | ✅ |
86 86 | [Le Groupe Maurice](groupemaurice.md) | [`dayforce`](ats-dayforce.md) | 147 | 0 % | 100 % | ✅ |
87 −| [CISSS de l'Abitibi-Témiscamingue](cisss_abitibi.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 145 | 0 % | 100 % | ✅ |
87 +| [CISSS de l'Abitibi-Témiscamingue](cisss_abitibi.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 143 | 0 % | 100 % | ✅ |
88 88 | [Vetstrategy](vetstrategy.md) | [`dayforce`](ats-dayforce.md) | 142 | 4 % | 100 % | ✅ |
89 89 | [La Vie en Rose](lavieenrose.md) | [`dayforce`](ats-dayforce.md) | 138 | 4 % | 100 % | ✅ |
90 90 | [Consignaction (AQRCB)](consignaction.md) | [`workday`](ats-workday.md) | 137 | 87 % | 100 % | ✅ |
91 91 | [Ubisoft](ubisoft.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 135 | 0 % | 100 % | ✅ |
92 −| [CISSS des Laurentides](cisss_laurentides.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 133 | 6 % | 100 % | ✅ |
92 +| [CISSS des Laurentides](cisss_laurentides.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 131 | 6 % | 100 % | ✅ |
93 93 | [TJX Canada (Winners, HomeSense, Marshalls)](tjx.md) | [`workday`](ats-workday.md) | 130 | 98 % | 100 % | ✅ |
94 94 | [Deloitte Canada](deloitte.md) | [`successfactors`](ats-successfactors.md) | 119 | 98 % | 100 % | ✅ |
95 95 | [BMO Groupe financier](bmo.md) | [`workday`](ats-workday.md) | 114 | 88 % | 80 % | ✅ |
96 96 | [Cascades](cascades.md) | [`successfactors`](ats-successfactors.md) | 111 | 84 % | 100 % | ✅ |
97 97 | [Artelia Canada](artelia.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 108 | 0 % | 100 % | ✅ |
98 98 | [Groupe Helios](groupehelios.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 104 | 2 % | 100 % | ✅ |
99 −| [Vidéotron](videotron.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 104 | 8 % | 100 % | ✅ |
99 +| [Vidéotron](videotron.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 103 | 7 % | 100 % | ✅ |
100 100 | [Dentalcorp](dentalcorp.md) | [`workday`](ats-workday.md) | 102 | 17 % | 100 % | ✅ |
101 101 | [CISSS de Chaudière-Appalaches](cisss_chaudiere_appalaches.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 98 | 5 % | 100 % | ✅ |
102 102 | [CISSS de Lanaudière](cisss_lanaudiere.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 98 | 9 % | 100 % | ✅ |
@@ -111,20 +111,20 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
111 111 | [Linen Chest](linenchest.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 82 | 9 % | 100 % | ✅ |
112 112 | [Bulkbarn](bulkbarn.md) | [`dayforce`](ats-dayforce.md) | 80 | 0 % | 100 % | ✅ |
113 113 | [Gflenv](gflenv.md) | [`workday`](ats-workday.md) | 80 | 5 % | 85 % | ✅ |
114 −| [CISSS de l'Outaouais](cisss_outaouais.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 78 | 28 % | 100 % | ✅ |
115 114 | [CAE](cae.md) | [`workday`](ats-workday.md) | 77 | 18 % | 95 % | ✅ |
115 +| [CISSS de l'Outaouais](cisss_outaouais.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 77 | 29 % | 100 % | ✅ |
116 116 | [Gevernova](gevernova.md) | [`workday`](ats-workday.md) | 77 | 21 % | 96 % | ✅ |
117 117 | [Banque CIBC](cibc.md) | [`workday`](ats-workday.md) | 74 | 0 % | 100 % | ✅ |
118 118 | [MaintainX](maintainx.md) | [`ashby`](ats-ashby.md) | 67 | 93 % | 73 % | ✅ |
119 119 | [EMCO](emcocorporation.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 66 | 42 % | 100 % | ✅ |
120 120 | [Norda Stelo](nordastelo.md) | [`teamtailor`](ats-teamtailor.md) | 65 | 0 % | 97 % | ✅ |
121 121 | [Manuvie](manulife.md) | [`workday`](ats-workday.md) | 64 | 92 % | 52 % | ✅ |
122 −| [Agnico Eagle Mines](agnico_eagle.md) | [`taleo`](ats-taleo.md) | 63 | 0 % | 100 % | ✅ |
123 122 | [Dexterra](dexterra.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 63 | 0 % | 100 % | ✅ |
124 123 | [Automobileendirect](automobileendirect.md) | [`dayforce`](ats-dayforce.md) | 61 | 2 % | 100 % | ✅ |
125 124 | [Gray Collection (Groupe Antonopoulos)](graycollection.md) | [`dayforce`](ats-dayforce.md) | 61 | 0 % | 100 % | ✅ |
126 125 | [Laporte Experts Conseils](laportefr.md) | [`greenhouse`](ats-greenhouse.md) | 61 | 0 % | 100 % | ✅ |
127 126 | [Lifeworks](lifeworks.md) | [`workday`](ats-workday.md) | 60 | 30 % | 87 % | ✅ |
127 +| [Agnico Eagle Mines](agnico_eagle.md) | [`taleo`](ats-taleo.md) | 59 | 0 % | 100 % | ✅ |
128 128 | [Gdv](gdv.md) | [`dayforce`](ats-dayforce.md) | 59 | 0 % | 100 % | ✅ |
129 129 | [Kiewit (Ganotec)](kiewit_ganotec.md) | [`successfactors`](ats-successfactors.md) | 59 | 0 % | 100 % | ✅ |
130 130 | [ANCIA Personnel](anciapersonnelinc.md) | [`recruitee`](ats-recruitee.md) | 58 | 9 % | 100 % | ✅ |
@@ -218,12 +218,12 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
218 218 | [Transat A.T.](transatat1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 26 | 8 % | 100 % | ✅ |
219 219 | [AVP](aviva.md) | [`workday`](ats-workday.md) | 25 | 16 % | 92 % | ✅ |
220 220 | [Baseten](baseten.md) | [`ashby`](ats-ashby.md) | 25 | 100 % | 0 % | ✅ |
221 −| [CHUM](chum.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 25 | 4 % | 100 % | ✅ |
222 221 | [Clinical Research Associate](syneoshealth.md) | [`workday`](ats-workday.md) | 25 | 0 % | 96 % | ✅ |
223 222 | [Huawei Canada](huaweicanada.md) | [`recruitee`](ats-recruitee.md) | 25 | 4 % | 100 % | ✅ |
224 223 | [Playground](playground.md) | [`jazzhr`](ats-jazzhr.md) | 25 | 60 % | 64 % | ✅ |
225 224 | [Unitytech](unitytech.md) | [`workday`](ats-workday.md) | 25 | 88 % | 84 % | ✅ |
226 225 | [Canada Vie](canada_vie.md) | [`successfactors`](ats-successfactors.md) | 24 | 96 % | 92 % | ✅ |
226 +| [CHUM](chum.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 24 | 4 % | 100 % | ✅ |
227 227 | [FedEx Express Canada](fedex.md) | [`workday`](ats-workday.md) | 24 | 100 % | 88 % | ✅ |
228 228 | [JAM Industries](jam.md) | [`dayforce`](ats-dayforce.md) | 24 | 0 % | 100 % | ✅ |
229 229 | [Lyft](lyft.md) | [`greenhouse`](ats-greenhouse.md) | 24 | 100 % | 100 % | ✅ |
@@ -277,7 +277,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
277 277 | [Sika Canada](sikaag.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 19 | 5 % | 100 % | ✅ |
278 278 | [Systemex](systemex.md) | [`lever`](ats-lever.md) | 19 | 0 % | 100 % | ✅ |
279 279 | [TSMG](tsmg.md) | [`lever`](ats-lever.md) | 19 | 0 % | 100 % | ✅ |
280 −| [Uniboard](uniboard.md) | [`adp`](ats-adp.md) | 19 | 32 % | 63 % | ✅ |
280 +| [Uniboard](uniboard.md) | [`adp`](ats-adp.md) | 19 | 32 % | 63 % | ❌ |
281 281 | [VinFast Canada](vinfastcanada.md) | [`dayforce`](ats-dayforce.md) | 19 | 26 % | 100 % | ✅ |
282 282 | [Vosker](vosker.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 19 | 0 % | 100 % | ✅ |
283 283 | [Bell Textron Canada](bell_textron.md) | [`taleo`](ats-taleo.md) | 18 | 0 % | 100 % | ✅ |
@@ -301,6 +301,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
301 301 | [Réseau de transport de la Capitale](rtc_quebec.md) | [`njoyn`](ats-njoyn.md) | 17 | 0 % | 0 % | ✅ |
302 302 | [Sandvik](sandvik.md) | [`workday`](ats-workday.md) | 17 | 12 % | 24 % | ✅ |
303 303 | [Search for](bcf.md) | [`workday`](ats-workday.md) | 17 | 0 % | 100 % | ✅ |
304 +| [United Services Group](unitedservices.md) | [`dayforce`](ats-dayforce.md) | 17 | 0 % | 100 % | ✅ |
304 305 | [VO2 Group](vo2_group.md) | [`lever`](ats-lever.md) | 17 | 6 % | 100 % | ✅ |
305 306 | [AECOM](aecom2.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 16 | 0 % | 100 % | ✅ |
306 307 | [Allstate Canada](allstate.md) | [`workday`](ats-workday.md) | 16 | 25 % | 69 % | ✅ |
@@ -327,7 +328,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
327 328 | [Peoplecorporation](peoplecorporation.md) | [`workday`](ats-workday.md) | 15 | 13 % | 67 % | ✅ |
328 329 | [Santé Québec](sante_quebec.md) | [`digitalrecruiters`](ats-digitalrecruiters.md) | 15 | 80 % | 100 % | ✅ |
329 330 | [Sony Pictures Imageworks](sonypicturesimageworks.md) | [`greenhouse`](ats-greenhouse.md) | 15 | 33 % | 100 % | ✅ |
330 −| [United Services Group](unitedservices.md) | [`dayforce`](ats-dayforce.md) | 15 | 0 % | 100 % | ✅ |
331 331 | [Boralex](boralex.md) | [`dayforce`](ats-dayforce.md) | 14 | 0 % | 100 % | ✅ |
332 332 | [CAA-Québec](caaquebec.md) | [`workday`](ats-workday.md) | 14 | 29 % | 100 % | ✅ |
333 333 | [Comptable de projet / Project Accountant](ellisdon.md) | [`workday`](ats-workday.md) | 14 | 14 % | 93 % | ✅ |
@@ -381,8 +381,9 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
381 381 | [Luqia (INO)](ino_ca.md) | [`breezy`](ats-breezy.md) | 12 | 0 % | 100 % | ✅ |
382 382 | [Sid Lee](sidlee.md) | [`greenhouse`](ats-greenhouse.md) | 12 | 0 % | 100 % | ✅ |
383 383 | [Toboggan Labs](tobogganlabs.md) | [`greenhouse`](ats-greenhouse.md) | 12 | 0 % | 100 % | ✅ |
384 +| [TransPerfect](transperfect.md) | [`recruitee`](ats-recruitee.md) | 12 | 0 % | 100 % | ✅ |
384 385 | [Uman Recrutement](umanrecrutement.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 12 | 0 % | 100 % | ✅ |
385 −| [UV Assurance](uv_assurance.md) | [`adp`](ats-adp.md) | 12 | 0 % | 100 % | ✅ |
386 +| [UV Assurance](uv_assurance.md) | [`adp`](ats-adp.md) | 12 | 0 % | 100 % | ❌ |
386 387 | [Wealthy Group of Companies LLC](wealthy_recruiting.md) | [`breezy`](ats-breezy.md) | 12 | 100 % | 92 % | ✅ |
387 388 | [ZAYAT AROMA - ZAYAT AROMA](zayataroma.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 12 | 0 % | 100 % | ✅ |
388 389 | [AlayaCare](alayacare.md) | [`greenhouse`](ats-greenhouse.md) | 11 | 0 % | 100 % | ✅ |
@@ -402,15 +403,14 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
402 403 | [Nora Pharma](nora_pharma.md) | [`breezy`](ats-breezy.md) | 11 | 100 % | 91 % | ✅ |
403 404 | [Nuovo Photography](nuovophotography.md) | [`workable`](ats-workable.md) | 11 | 18 % | 100 % | ✅ |
404 405 | [Oliver & Bonacini](oliverbonacini.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 11 | 27 % | 100 % | ✅ |
405 −| [Quincaillerie Richelieu](richelieu.md) | [`adp`](ats-adp.md) | 11 | 0 % | 100 % | ✅ |
406 +| [Quincaillerie Richelieu](richelieu.md) | [`adp`](ats-adp.md) | 11 | 0 % | 100 % | ❌ |
406 407 | [Raymond Chabot Grant Thornton](rcgt.md) | [`workday`](ats-workday.md) | 11 | 0 % | 100 % | ✅ |
407 408 | [Royal Vet](royalvet.md) | [`greenhouse`](ats-greenhouse.md) | 11 | 0 % | 100 % | ✅ |
408 409 | [Ryder](ryder.md) | [`workday`](ats-workday.md) | 11 | 91 % | 27 % | ✅ |
409 410 | [SIA Innovations](siainnovationsinc.md) | [`greenhouse`](ats-greenhouse.md) | 11 | 45 % | 100 % | ✅ |
410 411 | [Starlink Aviation](starlink_aviation.md) | [`workable`](ats-workable.md) | 11 | 18 % | 100 % | ✅ |
411 −| [Strathmore](strathmore.md) | [`adp`](ats-adp.md) | 11 | 45 % | 100 % | ✅ |
412 +| [Strathmore](strathmore.md) | [`adp`](ats-adp.md) | 11 | 45 % | 100 % | ❌ |
412 413 | [Synertek](synertek.md) | [`teamtailor`](ats-teamtailor.md) | 11 | 82 % | 100 % | ✅ |
413 −| [TransPerfect](transperfect.md) | [`recruitee`](ats-recruitee.md) | 11 | 0 % | 100 % | ✅ |
414 414 | [Valnet](valnetinc.md) | [`dayforce`](ats-dayforce.md) | 11 | 0 % | 100 % | ✅ |
415 415 | [VF Corporation (The North Face, Vans)](vfc.md) | [`workday`](ats-workday.md) | 11 | 100 % | 100 % | ✅ |
416 416 | [Vice-President, Strategic Procurement](eddyfi.md) | [`dayforce`](ats-dayforce.md) | 11 | 0 % | 100 % | ✅ |
@@ -594,7 +594,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
594 594 | [Weir Group](weir.md) | [`workday`](ats-workday.md) | 6 | 17 % | 67 % | ✅ |
595 595 | [Yaksa](yaksa.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 6 | 0 % | 100 % | ✅ |
596 596 | [36Pix](pix36.md) | [`jazzhr`](ats-jazzhr.md) | 5 | 20 % | 100 % | ✅ |
597 −| [Abritek](abritek.md) | [`adp`](ats-adp.md) | 5 | 100 % | 100 % | ✅ |
597 +| [Abritek](abritek.md) | [`adp`](ats-adp.md) | 5 | 100 % | 100 % | ❌ |
598 598 | [Adèle Express](adeleexpressfr.md) | [`recruitee`](ats-recruitee.md) | 5 | 60 % | 100 % | ✅ |
599 599 | [Agile DSS](agiledss.md) | [`recruitee`](ats-recruitee.md) | 5 | 0 % | 100 % | ✅ |
600 600 | [Aleanza Recrutement Durable](aleanzarecrutementdurable.md) | [`teamtailor`](ats-teamtailor.md) | 5 | 40 % | 100 % | ✅ |
@@ -639,6 +639,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
639 639 | [TSYS](tsys.md) | [`workday`](ats-workday.md) | 5 | 20 % | 80 % | ✅ |
640 640 | [Unit8](unit8.md) | [`workable`](ats-workable.md) | 5 | 0 % | 100 % | ✅ |
641 641 | [Ville de Mirabel](ville_mirabel.md) | [`njoyn`](ats-njoyn.md) | 5 | 100 % | 0 % | ✅ |
642 +| [4Refuel](4refuel.md) | [`dayforce`](ats-dayforce.md) | 4 | 50 % | 100 % | ✅ |
642 643 | [Acumatica](acumatica.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 4 | 25 % | 100 % | ✅ |
643 644 | [Agent(e) de liaison médicale et scientifique, biologiques – Québec ...](organon.md) | [`workday`](ats-workday.md) | 4 | 25 % | 100 % | ✅ |
644 645 | [Alo Yoga](aloyoga.md) | [`greenhouse`](ats-greenhouse.md) | 4 | 25 % | 75 % | ✅ |
@@ -702,7 +703,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
702 703 | [Warehouse Team Member](tricorbraun.md) | [`workday`](ats-workday.md) | 4 | 25 % | 100 % | ✅ |
703 704 | [Warner Bros. Discovery (WB Games Montréal)](warnerbros.md) | [`workday`](ats-workday.md) | 4 | 0 % | 100 % | ✅ |
704 705 | [Welcome to the Jungle](artefactjobs.md) | [`greenhouse`](ats-greenhouse.md) | 4 | 50 % | 100 % | ✅ |
705 −| [4Refuel](4refuel.md) | [`dayforce`](ats-dayforce.md) | 3 | 67 % | 100 % | ✅ |
706 706 | [A2 Design](a2design.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 3 | 0 % | 100 % | ✅ |
707 707 | [Adoc Talent Management](adoc_tm.md) | [`breezy`](ats-breezy.md) | 3 | 0 % | 100 % | ✅ |
708 708 | [Agence Maplr Inc.](agencemaplrinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 3 | 0 % | 100 % | ✅ |
@@ -1033,7 +1033,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
1033 1033 | [Topbuild](topbuild.md) | [`workday`](ats-workday.md) | 1 | 100 % | 100 % | ✅ |
1034 1034 | [Topcon](topcon.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ |
1035 1035 | [Torc Robotics](torcrobotics.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ |
1036 −| [Triple Boris](triple_boris.md) | [`adp`](ats-adp.md) | 1 | 0 % | 100 % | ✅ |
1036 +| [Triple Boris](triple_boris.md) | [`adp`](ats-adp.md) | 1 | 0 % | 100 % | ❌ |
1037 1037 | [Tristan Fleet](tristan_fleet_1.md) | [`workable`](ats-workable.md) | 1 | 0 % | 100 % | ✅ |
1038 1038 | [Trisura](trisura.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ |
1039 1039 | [Tyco](tyco.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
modified docs/connecteurs/ats-jazzhr.md +31 −30
@@ -5,14 +5,14 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/ats-jazzhr.md
7 7 Rôle : Fiche plateforme ATS jazzhr — mécanique partagée + tableau des 28 tenants
8 −Généré : 2026-10-20 18:48 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-23 01:52 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 9 relancer le script pour régénérer.
10 10 =============================================================================
11 11 -->
12 12
13 13 # Plateforme ATS `jazzhr`
14 14
15 −**28 employeurs connectés** via cette plateforme — **143 offres actives**. Module partagé : `jobka/connectors/jazzhr.py` ; un employeur = une sous-classe d'environ 10 lignes.
15 +**28 employeurs connectés** via cette plateforme — **137 offres actives**. Module partagé : `jobka/connectors/jazzhr.py` ; un employeur = une sous-classe d'environ 10 lignes.
16 16
17 17 ## Description & mécanique
18 18
@@ -38,34 +38,34 @@ Généré : 2026-10-20 18:48 EDT par scripts/gen_connector_docs.py — NE PAS
38 38
39 39 | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK |
40 40 |---|---|---|---|---|---|---|
41 −| [XTL Transport](xtltransportlogistics.md) | 40 | 0 % | 98 % | 10 % | 2026-10-20 18:29 | ✅ |
42 −| [Playground](playground.md) | 27 | 56 % | 63 % | 0 % | 2026-10-20 18:10 | ✅ |
43 −| [Valnet](valnetconcept.md) | 18 | 0 % | 100 % | 50 % | 2026-10-20 18:25 | ✅ |
44 −| [Optel Group](optelgroup.md) | 10 | 0 % | 100 % | 0 % | 2026-10-20 18:10 | ✅ |
45 −| [WestGroupe](westgroupe.md) | 8 | 0 % | 100 % | 0 % | 2026-10-20 18:28 | ✅ |
46 −| [Altitude Aerospace](altitudeaerospace.md) | 6 | 0 % | 100 % | 0 % | 2026-10-20 17:15 | ✅ |
47 −| [36Pix](pix36.md) | 4 | 25 % | 100 % | 0 % | 2026-10-20 18:10 | ✅ |
48 −| [Digital Moment](digitalmoment.md) | 4 | 0 % | 100 % | 25 % | 2026-10-20 17:34 | ✅ |
49 −| [ePac Flexible Packaging](epacllc.md) | 4 | 25 % | 100 % | 25 % | 2026-10-20 17:37 | ✅ |
50 −| [Longbow Advantage](longbowadvantage.md) | 4 | 0 % | 100 % | 0 % | 2026-10-20 18:05 | ✅ |
51 −| [Turning Point Brands Canada](recreationmarketing.md) | 4 | 0 % | 100 % | 0 % | 2026-10-20 18:14 | ✅ |
52 −| [Fortigo Freight Services Inc.](fortigofreightservicesinc.md) | 3 | 33 % | 67 % | 0 % | 2026-10-20 17:39 | ✅ |
53 −| [Sun Gro Horticulture](sungrohorticulture.md) | 3 | 0 % | 100 % | 0 % | 2026-10-20 18:20 | ✅ |
54 −| [CWP Energy](mcgillstlaurent.md) | 2 | 0 % | 100 % | 0 % | 2026-10-20 18:06 | ✅ |
55 −| [Motos Illimitees](motosillimitees.md) | 2 | 100 % | 100 % | 0 % | 2026-10-20 18:08 | ✅ |
56 −| [Ultium Cam](ultiumcam.md) | 2 | 0 % | 100 % | 0 % | 2026-10-20 18:24 | ✅ |
57 −| [Bloom](makeitbloom.md) | 1 | 0 % | 0 % | 0 % | 2026-10-20 18:47 | ✅ |
58 −| [Targray](targray.md) | 1 | 0 % | 100 % | 0 % | 2026-10-20 18:21 | ✅ |
59 −| [11 Residential](residential11.md) | 0 | — | — | — | 2026-10-20 18:15 | ✅ |
60 −| [Bluetooth SIG, Inc.](bluetoothsiginc.md) | 0 | — | — | — | 2026-10-20 17:18 | ✅ |
61 −| [FortNine](canadasmotorcycle.md) | 0 | — | — | — | 2026-10-20 17:20 | ✅ |
62 −| [Clinique D](cliniqued.md) | 0 | — | — | — | 2026-10-20 17:31 | ✅ |
63 −| [GEOX](geox.md) | 0 | — | — | — | 2026-10-20 17:40 | ✅ |
64 −| [Nadel International](nadel.md) | 0 | — | — | — | 2026-10-20 18:08 | ✅ |
65 −| [Precision Parcel & Package Deliveries](precisionhomeandofficedeliveries.md) | 0 | — | — | — | 2026-10-20 18:11 | ✅ |
66 −| [Seymour Pacific Developments](seymourpacificdevelopmentsltd.md) | 0 | — | — | — | 2026-10-20 18:17 | ✅ |
67 −| [Synterra](synterra.md) | 0 | — | — | — | 2026-10-20 18:21 | ✅ |
68 −| [Teal Communications, Inc.](tealcommunicationsinc.md) | 0 | — | — | — | 2026-10-20 18:22 | ✅ |
41 +| [Playground](playground.md) | 25 | 60 % | 64 % | 0 % | 2026-10-23 00:29 | ✅ |
42 +| [XTL Transport](xtltransportlogistics.md) | 23 | 0 % | 96 % | 13 % | 2026-10-23 00:51 | ✅ |
43 +| [Valnet](valnetconcept.md) | 21 | 0 % | 100 % | 52 % | 2026-10-23 00:47 | ✅ |
44 +| [Optel Group](optelgroup.md) | 10 | 0 % | 100 % | 0 % | 2026-10-23 00:29 | ✅ |
45 +| [WestGroupe](westgroupe.md) | 9 | 0 % | 100 % | 0 % | 2026-10-23 00:51 | ✅ |
46 +| [Turning Point Brands Canada](recreationmarketing.md) | 7 | 14 % | 100 % | 0 % | 2026-10-23 00:34 | ✅ |
47 +| [Altitude Aerospace](altitudeaerospace.md) | 6 | 0 % | 100 % | 0 % | 2026-10-22 23:31 | ✅ |
48 +| [36Pix](pix36.md) | 5 | 20 % | 100 % | 0 % | 2026-10-23 00:29 | ✅ |
49 +| [Digital Moment](digitalmoment.md) | 5 | 0 % | 100 % | 40 % | 2026-10-22 23:50 | ✅ |
50 +| [ePac Flexible Packaging](epacllc.md) | 4 | 25 % | 100 % | 25 % | 2026-10-22 23:53 | ✅ |
51 +| [Fortigo Freight Services Inc.](fortigofreightservicesinc.md) | 4 | 25 % | 50 % | 0 % | 2026-10-22 23:55 | ✅ |
52 +| [Longbow Advantage](longbowadvantage.md) | 3 | 0 % | 100 % | 0 % | 2026-10-23 00:22 | ✅ |
53 +| [CWP Energy](mcgillstlaurent.md) | 3 | 0 % | 100 % | 0 % | 2026-10-23 01:52 | ❌ |
54 +| [Sun Gro Horticulture](sungrohorticulture.md) | 3 | 0 % | 100 % | 0 % | 2026-10-23 00:42 | ✅ |
55 +| [Ultium Cam](ultiumcam.md) | 3 | 0 % | 100 % | 0 % | 2026-10-23 00:47 | ✅ |
56 +| [Bloom](makeitbloom.md) | 2 | 0 % | 100 % | 0 % | 2026-10-23 00:23 | ✅ |
57 +| [Motos Illimitees](motosillimitees.md) | 2 | 100 % | 100 % | 0 % | 2026-10-23 00:26 | ✅ |
58 +| [Precision Parcel & Package Deliveries](precisionhomeandofficedeliveries.md) | 1 | 0 % | 100 % | 0 % | 2026-10-23 00:30 | ✅ |
59 +| [Targray](targray.md) | 1 | 0 % | 100 % | 0 % | 2026-10-23 00:43 | ✅ |
60 +| [11 Residential](residential11.md) | 0 | — | — | — | 2026-10-23 00:34 | ✅ |
61 +| [Bluetooth SIG, Inc.](bluetoothsiginc.md) | 0 | — | — | — | 2026-10-22 23:35 | ✅ |
62 +| [FortNine](canadasmotorcycle.md) | 0 | — | — | — | 2026-10-22 23:37 | ✅ |
63 +| [Clinique D](cliniqued.md) | 0 | — | — | — | 2026-10-22 23:47 | ✅ |
64 +| [GEOX](geox.md) | 0 | — | — | — | 2026-10-22 23:56 | ✅ |
65 +| [Nadel International](nadel.md) | 0 | — | — | — | 2026-10-23 00:26 | ✅ |
66 +| [Seymour Pacific Developments](seymourpacificdevelopmentsltd.md) | 0 | — | — | — | 2026-10-23 00:38 | ✅ |
67 +| [Synterra](synterra.md) | 0 | — | — | — | 2026-10-23 00:42 | ✅ |
68 +| [Teal Communications, Inc.](tealcommunicationsinc.md) | 0 | — | — | — | 2026-10-23 00:44 | ✅ |
69 69
70 70 ## Licence / conformité
71 71
@@ -83,6 +83,7 @@ Généré : 2026-10-20 18:48 EDT par scripts/gen_connector_docs.py — NE PAS
83 83
84 84 Commits touchant `jobka/connectors/jazzhr.py` :
85 85
86 +- `2d24635a` 2026-10-20 [ka6] connecteur makeitbloom: stale = angle mort JazzHR réel — page détail sans JSON-LD JobPosting, repli HTML générique dans jazzhr.py (found 0→1). Les 3 offres SEO (UhDHyS6fne/xvSwVILniQ/qdFba5tbN5, Montréal) dépubliées le jour même entre les syncs de 06:38 (found=3) et 15:37 (found=0) du 2026-10-20, détails confirmés 410 Gone (marqueur JazzHR, cf. geox). MAIS le board n'était PAS vide : l'offre neuve dVcAlVM7ko « Spécialiste des médias payants » (republication du poste de sept. sous un id neuf, pattern du tenant) était rejetée par le filtre QC car sa page détail ne porte AUCUN bloc JSON-LD JobPosting (seul un Organization) — une première sur ce tenant, alors que le frère playground est toujours balisé. Vrai angle mort corrigé dans jazzhr.py : _detail_fields_from_html, repli quand extract_jobposting échoue — titre via h2 du job-header, lieu « Ville, QC, Canada » via le bloc job-attributes title=Location, type via resumator-job-employment, description via #job-description borné par resumator-mobile-apply-wrapper ; validé sur les pages live makeitbloom (sans LD → Montreal/QC) et playground (avec LD → chemin JSON-LD inchangé). Test de régression ajouté (QC gardée, ON lâchée, LD prioritaire). Sync isolé rejoué : found=1 added=1 ok=1 en 2,3 s, offre en base Montréal active. Artefact vague C : url vide dans sources.json → https://www.makeitbloom.com (200 vérifié live). Docstring chronologie 1re intervention, fiches makeitbloom.md/ats-jazzhr.md/INDEX.md régénérées. 108 tests verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
86 87 - `adb86378` 2026-09-04 [ka6] connecteur derumarketcatering: compte JazzHR fermé — l'employeur (faux positif US, Kirkland WA, verdict site_source_mort du 2026-08-26) a désactivé son compte JazzHR, la page /apply/ renvoie 200 'Inactive Career Page' sans marqueur resumator; la garde anti-faux-zéro de la plateforme jazzhr (1c116d8) partait alors en 3 essais + 30 s de backoff par sync avec un message trompeur — détection explicite de la page 'Inactive Career Page' au niveau plateforme: échec immédiat, message 'compte JazzHR désactivé / source fermée chez l'ATS' dans sync_log; non-régression vérifiée sur tenant vivant (motosillimitees 2 offres, médiane 2.0); 0 offre active en base pour cette source
87 88 - `1c116d85` 2026-09-04 [ka6] fix connecteur motosillimitees: garde anti faux-zéro dans la plateforme jazzhr — la page liste renvoie parfois 200 sans la structure du jobboard (constaté 2026-09-04 10h09, sync à 0 en 0,2 s alors que 2 offres réelles), le marqueur 'resumator' est maintenant exigé avec retry+backoff sinon erreur explicite dans sync_log; sync rejoué: 2 offres (médiane 2.0), rotation d'offres de l'employeur absorbée
88 89 - `df3faf02` 2026-08-25 Vague E — 3 nouvelles familles ATS (JazzHR, Teamtailor, Zoho Recruit) + 60 connecteurs, ~547 offres QC
modified docs/connecteurs/mcgillstlaurent.md +20 −18
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/mcgillstlaurent.md
7 7 Rôle : Fiche connecteur — CWP Energy (employeur direct, ATS jazzhr)
8 −Généré : 2026-10-14 18:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-23 01:52 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 9 relancer le script pour régénérer.
10 10 =============================================================================
11 11 -->
@@ -16,9 +16,9 @@ Généré : 2026-10-14 18:40 EDT par scripts/gen_connector_docs.py — NE PAS
16 16
17 17 ## Description
18 18
19 −- **Site** : [CWP Energy]()
19 +- **Site** : [CWP Energy](https://mcgillstlaurent.com/cwp-energy/)
20 20 - **Page carrières** : https://mcgillstlaurent.applytojob.com/apply/
21 −- **Secteurs** : n/d
21 +- **Secteurs** : Énergie, Finance
22 22 - **Région** : Québec (province)
23 23 - Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire.
24 24
@@ -36,7 +36,7 @@ Généré : 2026-10-14 18:40 EDT par scripts/gen_connector_docs.py — NE PAS
36 36
37 37 ## Champs → schéma
38 38
39 −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-10-14 18:40 EDT).
39 +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-10-23 01:52 EDT).
40 40
41 41 | Champ (`jobs.*`) | Rôle | Complétude |
42 42 |---|---|---|
@@ -47,18 +47,18 @@ Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-
47 47 | `city` — Ville | municipalité normalisée | 100 % |
48 48 | `region` — Région | région administrative | 100 % |
49 49 | `address` — Adresse | adresse du lieu de travail | 0 % |
50 −| `postal_code` — Code postal | code postal si publié | 100 % |
50 +| `postal_code` — Code postal | code postal si publié | 67 % |
51 51 | `work_mode` — Mode | presentiel / hybride / teletravail | 0 % |
52 −| `employment_type` — Type | temps_plein / temps_partiel / … | 0 % |
52 +| `employment_type` — Type | temps_plein / temps_partiel / … | 33 % |
53 53 | `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 0 % |
54 54 | `salary_label` — Libellé salaire | texte salarial original | 0 % |
55 55 | `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % |
56 56 | `requirements` — Exigences | scolarité, expérience, langues (JSON) | 100 % |
57 −| `date_posted` — Date de parution | ISO 8601 | 100 % |
58 −| `date_deadline` — Date limite | date limite pour postuler | 100 % |
57 +| `date_posted` — Date de parution | ISO 8601 | 67 % |
58 +| `date_deadline` — Date limite | date limite pour postuler | 67 % |
59 59 | `category` — Catégorie | taxonomie interne (TI, Santé, …) | 100 % |
60 60 | `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % |
61 −| `company_logo` — Logo employeur | URL du logo si exposé par la source | 100 % |
61 +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 67 % |
62 62 | `apply_url` — Candidature | lien de candidature directe | 0 % |
63 63 | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % |
64 64
@@ -77,15 +77,15 @@ Exemple réel : *Trading Risk & Performance Analyst* — Montréal · ∅ · par
77 77
78 78 ## Volumétrie & complétude live
79 79
80 −*(mesuré le 2026-10-14 18:40 EDT dans `data/jobka.db`)*
80 +*(mesuré le 2026-10-23 01:52 EDT dans `data/jobka.db`)*
81 81
82 −- **Offres en base** : 5 (dont **2 actives**, 0 masquées comme doublons `dup_of`)
83 −- **Salaire** : 0/2 actives (0 %)
84 −- **GPS** : 2/2 actives (100 %)
85 −- **Mode** : 0/2 actives (0 %)
86 −- **Parution** : 2/2 actives (100 %)
87 −- **Dernier sync** : 2026-10-14 15:40 — trouvées 4, +0, ~0, -0
88 −- **Syncs enregistrés** (`sync_log`) : 468
82 +- **Offres en base** : 6 (dont **3 actives**, 0 masquées comme doublons `dup_of`)
83 +- **Salaire** : 0/3 actives (0 %)
84 +- **GPS** : 3/3 actives (100 %)
85 +- **Mode** : 0/3 actives (0 %)
86 +- **Parution** : 2/3 actives (67 %)
87 +- **Dernier sync** : 2026-10-23 01:52 — trouvées 0, +0, ~0, -0, **ÉCHEC : jazzhr mcgillstlaurent: compte JazzHR désactivé (« Inactive Career Page » — this account i…**
88 +- **Syncs enregistrés** (`sync_log`) : 542
89 89
90 90 ## Erreurs & dépannage
91 91
@@ -93,7 +93,7 @@ Erreurs relevées dans `sync_log` :
93 93
94 94 | Erreur | Occurrences | Dernière fois |
95 95 |---|---|---|
96 −| jazzhr mcgillstlaurent: compte JazzHR désactivé (« Inactive Career Page » — this account i… | 2 | 2026-09-20 22:51 |
96 +| jazzhr mcgillstlaurent: compte JazzHR désactivé (« Inactive Career Page » — this account i… | 9 | 2026-10-23 01:52 |
97 97
98 98 - Rejouer un sync isolé : `.venv/bin/python run.py sync mcgillstlaurent` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='mcgillstlaurent' ORDER BY ts DESC LIMIT 5;"`
99 99 - Garde-fous : une source qui retourne ≤ 25 % de sa médiane historique déclenche une alerte et les retraits sont suspendus ; une offre doit manquer 2 syncs consécutifs avant `active=0`.
@@ -114,4 +114,6 @@ Erreurs relevées dans `sync_log` :
114 114
115 115 Commits touchant `jobka/connectors/mcgillstlaurent.py` :
116 116
117 +- `cff3361f` 2026-10-22 Revert "[ka6] connecteur mcgillstlaurent: compte JazzHR désactivé chez l'ATS, recrutement ABSORBÉ par le board Lever unifié du groupe déjà couvert par le frère mcgillstlaurentb8 — verdict site_source_mort, connecteur conservé intact (1re intervention). Chronologie (sync_log) : dernier sync OK 2026-10-22 12:58 EDT found=5 (médiane 5.0), puis « Inactive Career Page » à 14:44 — TOUT le tenant mcgillstlaurent.applytojob.com (CWP Energy, division trading d'énergie du groupe McGill St Laurent) fermé : liste /apply/ ET pages détail des offres en base → 200 « Inactive Career Page », vérifié live. 2e tenant JazzHR du même groupe fermé après mcgillstlaurentb8 le 2026-09-30 (93b0c2c3) : sortie de JazzHR délibérée, migration Lever achevée. REPRENEUR identifié et DÉJÀ COUVERT : cwpenergy.com redirige désormais vers mcgillstlaurent.com/cwp-energy/, la page carrières du groupe (mcgillstlaurent.com/career/) liste le board Lever unifié jobs.lever.co/mcgillstlaurent par compagnie (All 7 · CWP Energy 3 · CWP Wood 1 · GSL Grain 2 · MSL Climate 1, compagnie = categories.department côté API) ; les 3 offres CWP Energy du board (Junior Power Trader QC, Agentic Innovation Specialist QC, Power Trader US filtrée) sont déjà ingérées par le connecteur frère mcgillstlaurentb8 (found=6, sync vert). PAS de réécriture sur Lever : un 2e connecteur sur le même org violerait l'invariant « aucun autre connecteur Lever sur cet org » (93b0c2c3) et ne produirait que des doublons ; aucun ATS propre à CWP Energy (tenants cwpenergy inexistants chez Lever/Greenhouse/JazzHR/Workable/BambooHR, balayage Serper → copies agrégateurs tierces seulement). Les 3 offres JazzHR actives (Trading Risk & Performance Analyst, Risk Analyst, Electrical Engineer - Power Flow) NON reconduites sur le board Lever (postes abandonnés ou pourvus) : archivage automatique via expire_stale (7 j sans last_seen, vers le 2026-10-29), aucune purge manuelle. Sync isolé rejoué : échec explicite attendu « compte JazzHR désactivé » (détection adb8637), comportement conçu. Artefacts vague E corrigés dans sources.json (pattern xtl c4a681e1) : url vide → https://mcgillstlaurent.com/cwp-energy/ (200 vérifié live) et sectors [] → [Énergie, Finance] (vocabulaire établi : 24 et 59 sources). Docstring mcgillstlaurent.py enrichie (chronologie + re-vérifs + décision). Non-régression jazzhr sur tenant vivant motosillimitees found=2 ok=1 ; frère mcgillstlaurentb8 found=6 ok=1. Fiches docs/connecteurs/ mcgillstlaurent.md + ats-jazzhr.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). 108 tests verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200."
118 +- `35756e9b` 2026-10-22 [ka6] connecteur mcgillstlaurent: compte JazzHR désactivé chez l'ATS, recrutement ABSORBÉ par le board Lever unifié du groupe déjà couvert par le frère mcgillstlaurentb8 — verdict site_source_mort, connecteur conservé intact (1re intervention). Chronologie (sync_log) : dernier sync OK 2026-10-22 12:58 EDT found=5 (médiane 5.0), puis « Inactive Career Page » à 14:44 — TOUT le tenant mcgillstlaurent.applytojob.com (CWP Energy, division trading d'énergie du groupe McGill St Laurent) fermé : liste /apply/ ET pages détail des offres en base → 200 « Inactive Career Page », vérifié live. 2e tenant JazzHR du même groupe fermé après mcgillstlaurentb8 le 2026-09-30 (93b0c2c3) : sortie de JazzHR délibérée, migration Lever achevée. REPRENEUR identifié et DÉJÀ COUVERT : cwpenergy.com redirige désormais vers mcgillstlaurent.com/cwp-energy/, la page carrières du groupe (mcgillstlaurent.com/career/) liste le board Lever unifié jobs.lever.co/mcgillstlaurent par compagnie (All 7 · CWP Energy 3 · CWP Wood 1 · GSL Grain 2 · MSL Climate 1, compagnie = categories.department côté API) ; les 3 offres CWP Energy du board (Junior Power Trader QC, Agentic Innovation Specialist QC, Power Trader US filtrée) sont déjà ingérées par le connecteur frère mcgillstlaurentb8 (found=6, sync vert). PAS de réécriture sur Lever : un 2e connecteur sur le même org violerait l'invariant « aucun autre connecteur Lever sur cet org » (93b0c2c3) et ne produirait que des doublons ; aucun ATS propre à CWP Energy (tenants cwpenergy inexistants chez Lever/Greenhouse/JazzHR/Workable/BambooHR, balayage Serper → copies agrégateurs tierces seulement). Les 3 offres JazzHR actives (Trading Risk & Performance Analyst, Risk Analyst, Electrical Engineer - Power Flow) NON reconduites sur le board Lever (postes abandonnés ou pourvus) : archivage automatique via expire_stale (7 j sans last_seen, vers le 2026-10-29), aucune purge manuelle. Sync isolé rejoué : échec explicite attendu « compte JazzHR désactivé » (détection adb8637), comportement conçu. Artefacts vague E corrigés dans sources.json (pattern xtl c4a681e1) : url vide → https://mcgillstlaurent.com/cwp-energy/ (200 vérifié live) et sectors [] → [Énergie, Finance] (vocabulaire établi : 24 et 59 sources). Docstring mcgillstlaurent.py enrichie (chronologie + re-vérifs + décision). Non-régression jazzhr sur tenant vivant motosillimitees found=2 ok=1 ; frère mcgillstlaurentb8 found=6 ok=1. Fiches docs/connecteurs/ mcgillstlaurent.md + ats-jazzhr.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). 108 tests verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
117 119 - `df3faf02` 2026-08-25 Vague E — 3 nouvelles familles ATS (JazzHR, Teamtailor, Zoho Recruit) + 60 connecteurs, ~547 offres QC
modified jobka/connectors/mcgillstlaurent.py +52 −1
@@ -4,12 +4,63 @@
4 4 # Contact : contact@spboucher.ai
5 5 # Fichier : jobka/connectors/jobka/connectors/mcgillstlaurent.py
6 6 # Rôle : Connecteur CWP Energy — JazzHR (mcgillstlaurent.applytojob.com)
7 −# Créé : 2026-08-25 Modifié : 2026-08-25
7 +# Créé : 2026-08-25 Modifié : 2026-10-23
8 8 # =============================================================================
9 9 from .jazzhr import JazzHRConnector
10 10
11 11
12 12 class McgillstlaurentConnector(JazzHRConnector):
13 + """CWP Energy (trading d'énergie, division du groupe McGill St Laurent,
14 + Montréal) — ~5 offres QC en régime établi (médiane 5.0).
15 +
16 + Mission ka6 du 2026-10-22 — compte JazzHR DÉSACTIVÉ chez l'ATS,
17 + recrutement ABSORBÉ par le board Lever unifié du groupe (déjà couvert
18 + par le connecteur frère mcgillstlaurentb8) :
19 + - Chronologie (sync_log) : dernier sync OK le 2026-10-22 12:58 EDT
20 + (found=5), puis « Inactive Career Page » à 14:44 → RuntimeError
21 + explicite à chaque sync (détection adb8637, cas derumarketcatering).
22 + TOUT le tenant mcgillstlaurent.applytojob.com est fermé : page liste
23 + /apply/ ET pages détail des offres en base renvoient 200 « Inactive
24 + Career Page » (vérifié live le 2026-10-22). 3e fermeture JazzHR du
25 + même groupe après mcgillstlaurentb8 (2026-09-30, 93b0c2c3) : sortie
26 + de JazzHR délibérée, migration Lever achevée côté maison mère.
27 + - REPRENEUR identifié et DÉJÀ COUVERT : cwpenergy.com redirige
28 + désormais vers mcgillstlaurent.com/cwp-energy/, dont la page
29 + carrières (mcgillstlaurent.com/career/) liste le board Lever unifié
30 + jobs.lever.co/mcgillstlaurent par compagnie du groupe (All 7 ·
31 + CWP Energy 3 · CWP Wood 1 · GSL Grain 2 · MSL Climate 1), compagnie
32 + portée par categories.department côté API Lever. Les 3 offres
33 + CWP Energy du board (Junior Power Trader QC, Agentic Innovation
34 + Specialist QC, Power Trader US filtrée) sont déjà ingérées par
35 + mcgillstlaurentb8 (Lever org mcgillstlaurent, found=6).
36 + - PAS de réécriture sur Lever : un 2e connecteur sur le même org
37 + violerait l'invariant « aucun autre connecteur Lever sur cet org »
38 + (93b0c2c3) et ne produirait que des doublons du frère. Aucun ATS
39 + propre à CWP Energy (lever/greenhouse/jazzhr/workable/bamboohr
40 + « cwpenergy » inexistants ; copies agrégateurs tierces seulement).
41 + - Les 3 offres JazzHR actives (Trading Risk & Performance Analyst,
42 + Risk Analyst, Electrical Engineer - Power Flow) NON reconduites sur
43 + le board Lever — postes abandonnés ou pourvus à la migration ; elles
44 + s'archiveront d'elles-mêmes via expire_stale (7 j sans last_seen,
45 + vers le 2026-10-29), aucune purge manuelle.
46 + - Décision : connecteur CONSERVÉ tel quel (on ne désactive jamais une
47 + source pour « réparer » sa santé) ; si le tenant revenait, le sync
48 + repartirait seul. Verdict site_source_mort, couverture totale via
49 + le frère mcgillstlaurentb8.
50 +
51 + Mission ka6 du 2026-10-23 (2e intervention) — restauration après
52 + ROLLBACK AUTOMATIQUE : le commit 35756e9b (mission ci-dessus) a été
53 + auto-reverté par la supervision (cff3361f, verdict JSON tronqué →
54 + « inconnu », même mécanique que le cas enercare f5248721). Re-vérifié
55 + live le 2026-10-23 : tenant JazzHR toujours « Inactive Career Page »
56 + (200) et board Lever du groupe toujours vivant (7 offres dont 3
57 + CWP Energy, couvertes par mcgillstlaurentb8). Docstring et artefacts
58 + sources.json (url, sectors) restaurés chirurgicalement (checkout du
59 + .py + réédition JSON, PAS de revert du revert — les fiches docs ont
60 + été régénérées entre-temps par d'autres missions). Le diagnostic
61 + site_source_mort reste inchangé : ne PAS re-reverter ce fichier.
62 + """
63 +
13 64 source_id = "mcgillstlaurent"
14 65 EMPLOYER = "CWP Energy"
15 66 ORG = "mcgillstlaurent"
16 67
Menu

Theme