SPB Git

spb/job-ka

Public

[ka6] fix connecteur osgoode_properties: angle mort de culture ADP WFN comblé — le tenant ne publie qu'en en_CA, l'offre QC vivante était invisible en fr_CA. Stale « volume QC nul » (58e cas du pattern, 2e intervention) à double cause : (1) l'unique offre vue via fr_CA (9201778625489_1 « Site Administrator », Gatineau) a été DÉPUBLIÉE par l'employeur entre 08:31 et 10:45 le 2026-09-21 (missed=1 ×2 puis removed via garde-fou 2-miss), sync_log VERT en continu depuis (313 ok / 314, found=0 = correct) — le seul échec récent est un 404 transitoire isolé de la liste à 02:02 le 2026-10-10, revenue 200 <30 min après ; (2) MAIS le centre de carrières est PARTITIONNÉ par culture et ne publie plus qu'en en_CA : liste 200+[] en fr_CA ET en_US (le fallback générique de adp.py s'arrête à en_US → aveugle), alors que en_CA expose 2 offres vivantes dont 1 QC jamais vue par job-ka : 9201780233629_1 « Concierge - Gatineau » (Gatineau QC J8Y 4B1, 36-42 k$/an, parue 2026-08-07). Marqueur détail ADP documenté : offre vivante interrogée dans la MAUVAISE culture = 200 + squelette JSON sans requisitionTitle, IDENTIQUE à une offre dépubliée (vérifié sur Site Administrator) — seul le 404 est un retrait certain. Correctif : OsgoodePropertiesConnector itère CULTURES=(fr_CA, en_CA), fusion par itemID priorité fr_CA — variante ADP WFN du pattern bi-culture Dayforce (peaktech/challenger) et EXTRA_SITES Workday (pwc/enercare) ; le repli de revalidation essaie lui aussi chaque culture avant de conclure (squelette sans titre partout = indéterminé, pas un retrait) ; RuntimeError (non-JSON après 3 essais de _get_json) ajouté aux déclencheurs du repli. Sync isolé rejoué ×2 : found=1 stable, added=1 (offre 9201780233629_1 en base, active=1, salaire 36000-42000/an, URL lang=en_CA), ~3-4 s ; non-régression plateforme adp sur tenant vivant bento_sushi : found=10, ok. 107 tests pytest verts. Fiches docs/connecteurs/ osgoode_properties.md + ats-adp.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). 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 10, 2026) parent f524872 Browse files

4 changed files +170 −100

modified docs/connecteurs/INDEX.md +40 −40
@@ -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-10 00:41 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-10 02:34 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-10 00:41 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-10 02:34 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** — **25965 offres actives** (23383 directes, 2582 portails ; 114 masquées comme doublons inter-sources, soit 25851 visibles). 1134 fiches.
17 +**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **26173 offres actives** (23352 directes, 2821 portails ; 113 masquées comme doublons inter-sources, soit 26060 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
@@ -27,7 +27,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
27 27 | [`workable`](ats-workable.md) | 71 | 1883 | 18 % | 100 % |
28 28 | [`dayforce`](ats-dayforce.md) | 129 | 1867 | 9 % | 100 % |
29 29 | [`successfactors`](ats-successfactors.md) | 12 | 1821 | 19 % | 99 % |
30 −| [`njoyn`](ats-njoyn.md) | 11 | 1251 | 68 % | 85 % |
30 +| [`njoyn`](ats-njoyn.md) | 11 | 1219 | 67 % | 85 % |
31 31 | [`workland`](ats-workland.md) | 1 | 1146 | 37 % | 100 % |
32 32 | [`greenhouse`](ats-greenhouse.md) | 132 | 817 | 19 % | 100 % |
33 33 | [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 750 | 5 % | 100 % |
@@ -40,7 +40,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
40 40 | [`zoho_recruit`](ats-zoho_recruit.md) | 17 | 163 | 13 % | 88 % |
41 41 | [`teamtailor`](ats-teamtailor.md) | 9 | 156 | 33 % | 95 % |
42 42 | [`jazzhr`](ats-jazzhr.md) | 28 | 149 | 15 % | 92 % |
43 −| [`adp`](ats-adp.md) | 17 | 140 | 39 % | 95 % |
43 +| [`adp`](ats-adp.md) | 17 | 141 | 40 % | 94 % |
44 44 | [`taleo`](ats-taleo.md) | 5 | 113 | 0 % | 100 % |
45 45 | [`eightfold`](ats-eightfold.md) | 1 | 62 | 84 % | 100 % |
46 46 | [`ultipro`](ats-ultipro.md) | 4 | 62 | 48 % | 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) | 305 | 18 % | 2026-10-09 23:26 |
56 −| [Guichet-Emplois (Canada)](guichet_emplois.md) | 503 | 100 % | 2026-10-09 23:39 |
57 −| [Jobillico](jobillico.md) | 1774 | 27 % | 2026-10-09 23:50 |
55 +| [Espresso-Jobs](espresso_jobs.md) | 305 | 18 % | 2026-10-10 01:05 |
56 +| [Guichet-Emplois (Canada)](guichet_emplois.md) | 499 | 100 % | 2026-10-10 01:44 |
57 +| [Jobillico](jobillico.md) | 2017 | 29 % | 2026-10-10 01:55 |
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)
@@ -66,14 +66,14 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
66 66 | [Walmart Canada](walmart.md) | [`workday`](ats-workday.md) | 1006 | 98 % | 90 % | ✅ |
67 67 | [Bombardier](bombardier.md) | [`successfactors`](ats-successfactors.md) | 973 | 0 % | 100 % | ✅ |
68 68 | [Solution SFT](solution_sft.md) | [`workable`](ats-workable.md) | 858 | 26 % | 100 % | ✅ |
69 −| [Santé Québec — Montréal](sante_montreal.md) | [`njoyn`](ats-njoyn.md) | 781 | 97 % | 98 % | ✅ |
69 +| [Santé Québec — Montréal](sante_montreal.md) | [`njoyn`](ats-njoyn.md) | 749 | 97 % | 98 % | ✅ |
70 70 | [Université McGill](mcgill.md) | [`workday`](ats-workday.md) | 598 | 34 % | 100 % | ✅ |
71 71 | [TEHORA](tehora.md) | [`workable`](ats-workable.md) | 409 | 0 % | 100 % | ✅ |
72 72 | [CGI](cgi.md) | [`njoyn`](ats-njoyn.md) | 302 | 0 % | 95 % | ✅ |
73 73 | [Mouvement Desjardins](desjardins.md) | [`workday`](ats-workday.md) | 296 | 1 % | 93 % | ✅ |
74 74 | [Globalhr](globalhr.md) | [`workday`](ats-workday.md) | 289 | 0 % | 84 % | ✅ |
75 75 | [Go RH](gorh.md) | [`lever`](ats-lever.md) | 257 | 17 % | 98 % | ✅ |
76 −| [Slihrms](slihrms.md) | [`workday`](ats-workday.md) | 256 | 11 % | 93 % | ✅ |
76 +| [Slihrms](slihrms.md) | [`workday`](ats-workday.md) | 256 | 11 % | 93 % | ❌ |
77 77 | [CIMA+](cima2.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 251 | 1 % | 100 % | ✅ |
78 78 | [Alstom](alstom.md) | [`successfactors`](ats-successfactors.md) | 250 | 9 % | 100 % | ✅ |
79 79 | [Rechercher des](gianttiger.md) | [`workday`](ats-workday.md) | 240 | 0 % | 100 % | ✅ |
@@ -134,7 +134,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
134 134 | [Laporte Experts Conseils](laportefr.md) | [`greenhouse`](ats-greenhouse.md) | 54 | 0 % | 100 % | ✅ |
135 135 | [Banque CIBC](cibc.md) | [`workday`](ats-workday.md) | 52 | 0 % | 100 % | ✅ |
136 136 | [Gray Collection (Groupe Antonopoulos)](graycollection.md) | [`dayforce`](ats-dayforce.md) | 52 | 0 % | 100 % | ✅ |
137 −| [PwC Canada](pwc.md) | [`workday`](ats-workday.md) | 52 | 98 % | 75 % | ✅ |
137 +| [PwC Canada](pwc.md) | [`workday`](ats-workday.md) | 52 | 98 % | 75 % | ❌ |
138 138 | [Agropur](agropur.md) | [`workday`](ats-workday.md) | 50 | 96 % | 96 % | ✅ |
139 139 | [Intelcom (Dragonfly)](intelcomgroup.md) | [`workday`](ats-workday.md) | 50 | 0 % | 100 % | ✅ |
140 140 | [Laura Canada](lauracanada.md) | [`dayforce`](ats-dayforce.md) | 49 | 0 % | 100 % | ✅ |
@@ -156,7 +156,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
156 156 | [SOGECLAIR](sogeclair.md) | [`workable`](ats-workable.md) | 44 | 2 % | 100 % | ✅ |
157 157 | [Techo-Bloc](techo_bloc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 44 | 50 % | 100 % | ✅ |
158 158 | [Valsoft](valsoft_corp.md) | [`workable`](ats-workable.md) | 44 | 5 % | 100 % | ✅ |
159 −| [Saputo](saputo.md) | [`workday`](ats-workday.md) | 43 | 81 % | 100 % | ✅ |
159 +| [Saputo](saputo.md) | [`workday`](ats-workday.md) | 43 | 81 % | 100 % | ❌ |
160 160 | [Advanceauto](advanceauto.md) | [`workday`](ats-workday.md) | 42 | 0 % | 45 % | ✅ |
161 161 | [JD Sports Canada](jdsports.md) | [`dayforce`](ats-dayforce.md) | 42 | 0 % | 100 % | ✅ |
162 162 | [Alterra](alterra.md) | [`workday`](ats-workday.md) | 41 | 68 % | 100 % | ✅ |
@@ -190,7 +190,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
190 190 | [Kenworthmaska](kenworthmaska.md) | [`dayforce`](ats-dayforce.md) | 33 | 3 % | 100 % | ✅ |
191 191 | [Tecsys](tecsys.md) | [`workable`](ats-workable.md) | 33 | 0 % | 100 % | ✅ |
192 192 | [Montreal Export Package Handler (18:00-23:00)](hcmportal.md) | [`workday`](ats-workday.md) | 32 | 81 % | 97 % | ✅ |
193 −| [Rio Tinto](riotinto.md) | [`workday`](ats-workday.md) | 32 | 3 % | 97 % | ✅ |
193 +| [Rio Tinto](riotinto.md) | [`workday`](ats-workday.md) | 32 | 3 % | 97 % | ❌ |
194 194 | [Sany](imperialdade.md) | [`dayforce`](ats-dayforce.md) | 32 | 0 % | 100 % | ✅ |
195 195 | [Énergir](energir.md) | [`successfactors`](ats-successfactors.md) | 32 | 6 % | 100 % | ✅ |
196 196 | [AccorHotel](accorhotel.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 31 | 52 % | 100 % | ✅ |
@@ -198,8 +198,8 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
198 198 | [Groupe Bellemare](groupe_bellemare.md) | [`njoyn`](ats-njoyn.md) | 31 | 0 % | 0 % | ✅ |
199 199 | [Le Massif de Charlevoix](lemassif.md) | [`dayforce`](ats-dayforce.md) | 31 | 0 % | 100 % | ✅ |
200 200 | [Nortera](nortera.md) | [`ultipro`](ats-ultipro.md) | 31 | 52 % | 100 % | ✅ |
201 −| [Rollsroyce](rollsroyce.md) | [`workday`](ats-workday.md) | 31 | 0 % | 100 % | ✅ |
202 −| [Scotts Canada (Fafard)](scottsmiraclegro.md) | [`workday`](ats-workday.md) | 31 | 3 % | 100 % | ✅ |
201 +| [Rollsroyce](rollsroyce.md) | [`workday`](ats-workday.md) | 31 | 0 % | 100 % | ❌ |
202 +| [Scotts Canada (Fafard)](scottsmiraclegro.md) | [`workday`](ats-workday.md) | 31 | 3 % | 100 % | ❌ |
203 203 | [Best Buy Canada](bestbuycanada.md) | [`workday`](ats-workday.md) | 30 | 0 % | 40 % | ✅ |
204 204 | [Lgs](lgs.md) | [`dayforce`](ats-dayforce.md) | 30 | 0 % | 100 % | ✅ |
205 205 | [OPENLANE Canada](openlane.md) | [`workday`](ats-workday.md) | 30 | 20 % | 87 % | ✅ |
@@ -229,14 +229,14 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
229 229 | [Estimator](tranetechnologies.md) | [`workday`](ats-workday.md) | 25 | 100 % | 96 % | ✅ |
230 230 | [LG2](lg2.md) | [`recruitee`](ats-recruitee.md) | 25 | 4 % | 100 % | ✅ |
231 231 | [Monteur CVC 1 /HVAC Assembler 1](sunbeltrentals.md) | [`workday`](ats-workday.md) | 25 | 0 % | 72 % | ✅ |
232 −| [Stellajones](stellajones.md) | [`dayforce`](ats-dayforce.md) | 25 | 24 % | 100 % | ✅ |
233 232 | [Altasciences](altasciences.md) | [`workday`](ats-workday.md) | 24 | 0 % | 96 % | ✅ |
234 233 | [FedEx Express Canada](fedex.md) | [`workday`](ats-workday.md) | 24 | 100 % | 88 % | ✅ |
235 234 | [Huawei Canada](huaweicanada.md) | [`recruitee`](ats-recruitee.md) | 24 | 0 % | 100 % | ✅ |
235 +| [Logm](logm.md) | [`dayforce`](ats-dayforce.md) | 24 | 83 % | 100 % | ✅ |
236 236 | [Progesys](progesys_inc.md) | [`breezy`](ats-breezy.md) | 24 | 4 % | 96 % | ✅ |
237 +| [Stellajones](stellajones.md) | [`dayforce`](ats-dayforce.md) | 24 | 25 % | 100 % | ✅ |
237 238 | [ATIA Ltd](atialtd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 23 | 43 % | 100 % | ✅ |
238 239 | [Broccolini](broccolini.md) | [`bamboohr`](ats-bamboohr.md) | 23 | 0 % | 100 % | ✅ |
239 −| [Logm](logm.md) | [`dayforce`](ats-dayforce.md) | 23 | 83 % | 100 % | ✅ |
240 240 | [Tmx](tmx.md) | [`workday`](ats-workday.md) | 23 | 0 % | 78 % | ✅ |
241 241 | [Vooban](vooban.md) | [`greenhouse`](ats-greenhouse.md) | 23 | 0 % | 100 % | ✅ |
242 242 | [Baro RH](barorh.md) | [`workable`](ats-workable.md) | 22 | 0 % | 100 % | ✅ |
@@ -261,7 +261,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
261 261 | [Galderma](galderma.md) | [`workday`](ats-workday.md) | 20 | 20 % | 100 % | ✅ |
262 262 | [Groupe Mach](groupemach.md) | [`dayforce`](ats-dayforce.md) | 20 | 10 % | 100 % | ✅ |
263 263 | [Groupeguilbault](groupeguilbault.md) | [`workday`](ats-workday.md) | 20 | 0 % | 100 % | ✅ |
264 −| [Sandvik](sandvik.md) | [`workday`](ats-workday.md) | 20 | 5 % | 20 % | ✅ |
264 +| [Sandvik](sandvik.md) | [`workday`](ats-workday.md) | 20 | 5 % | 20 % | ❌ |
265 265 | [Sia](sia.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 20 | 0 % | 100 % | ✅ |
266 266 | [Xsolla](xsolla.md) | [`lever`](ats-lever.md) | 20 | 100 % | 95 % | ✅ |
267 267 | [Airliquidehr](airliquidehr.md) | [`workday`](ats-workday.md) | 19 | 26 % | 100 % | ✅ |
@@ -298,9 +298,9 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
298 298 | [Journalier(ère) de production](vestis.md) | [`dayforce`](ats-dayforce.md) | 17 | 0 % | 100 % | ✅ |
299 299 | [Messer Canada](messer_canada.md) | [`ultipro`](ats-ultipro.md) | 17 | 82 % | 100 % | ✅ |
300 300 | [Onelineage](onelineage.md) | [`workday`](ats-workday.md) | 17 | 6 % | 100 % | ✅ |
301 −| [Sanimax](sanimax.md) | [`workday`](ats-workday.md) | 17 | 24 % | 100 % | ✅ |
301 +| [Sanimax](sanimax.md) | [`workday`](ats-workday.md) | 17 | 24 % | 100 % | ❌ |
302 302 | [Scalian](scalian.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 17 | 18 % | 100 % | ✅ |
303 −| [Sci](sci.md) | [`workday`](ats-workday.md) | 17 | 29 % | 88 % | ✅ |
303 +| [Sci](sci.md) | [`workday`](ats-workday.md) | 17 | 29 % | 88 % | ❌ |
304 304 | [Sika Canada](sikaag.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 17 | 6 % | 100 % | ✅ |
305 305 | [VO2 Group](vo2_group.md) | [`lever`](ats-lever.md) | 17 | 6 % | 100 % | ✅ |
306 306 | [CAA-Québec](caaquebec.md) | [`workday`](ats-workday.md) | 16 | 44 % | 100 % | ✅ |
@@ -383,7 +383,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
383 383 | [FLO (AddÉnergie)](flo_addenergie.md) | [`workable`](ats-workable.md) | 12 | 0 % | 100 % | ✅ |
384 384 | [Frigoriste](vantagedc.md) | [`workday`](ats-workday.md) | 12 | 0 % | 100 % | ✅ |
385 385 | [Gea](gea.md) | [`workday`](ats-workday.md) | 12 | 25 % | 100 % | ✅ |
386 −| [H2O Innovation](h2o_innovation.md) | [`adp`](ats-adp.md) | 12 | 8 % | 100 % | ✅ |
386 +| [H2O Innovation](h2o_innovation.md) | [`adp`](ats-adp.md) | 12 | 8 % | 100 % | ❌ |
387 387 | [Hygiéniste Industrielle](kdcone.md) | [`dayforce`](ats-dayforce.md) | 12 | 0 % | 100 % | ✅ |
388 388 | [JYSK Canada](jyskcanada.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 12 | 0 % | 100 % | ✅ |
389 389 | [KPI Digital](kpidigital.md) | [`bamboohr`](ats-bamboohr.md) | 12 | 0 % | 100 % | ✅ |
@@ -419,7 +419,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
419 419 | [Plusgrade](plusgrade.md) | [`workday`](ats-workday.md) | 11 | 0 % | 100 % | ✅ |
420 420 | [Quincaillerie Richelieu](richelieu.md) | [`adp`](ats-adp.md) | 11 | 0 % | 100 % | ✅ |
421 421 | [Royal Vet](royalvet.md) | [`greenhouse`](ats-greenhouse.md) | 11 | 0 % | 100 % | ✅ |
422 −| [Ryder](ryder.md) | [`workday`](ats-workday.md) | 11 | 100 % | 27 % | ✅ |
422 +| [Ryder](ryder.md) | [`workday`](ats-workday.md) | 11 | 100 % | 27 % | ❌ |
423 423 | [SIA Innovations](siainnovationsinc.md) | [`greenhouse`](ats-greenhouse.md) | 11 | 45 % | 100 % | ✅ |
424 424 | [Strathmore](strathmore.md) | [`adp`](ats-adp.md) | 11 | 45 % | 100 % | ✅ |
425 425 | [ADI - Albert Davidson Industries](adi_albert_davidson_industries.md) | [`breezy`](ats-breezy.md) | 10 | 100 % | 100 % | ✅ |
@@ -461,7 +461,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
461 461 | [Portage CyberTech](portagecybertech.md) | [`bamboohr`](ats-bamboohr.md) | 9 | 11 % | 100 % | ✅ |
462 462 | [Puma](puma.md) | [`workday`](ats-workday.md) | 9 | 100 % | 100 % | ✅ |
463 463 | [Quadbridge](quadbridge.md) | [`greenhouse`](ats-greenhouse.md) | 9 | 44 % | 100 % | ✅ |
464 −| [Raymond Chabot Grant Thornton](rcgt.md) | [`workday`](ats-workday.md) | 9 | 0 % | 100 % | ✅ |
464 +| [Raymond Chabot Grant Thornton](rcgt.md) | [`workday`](ats-workday.md) | 9 | 0 % | 100 % | ❌ |
465 465 | [Starlink Aviation](starlink_aviation.md) | [`workable`](ats-workable.md) | 9 | 0 % | 100 % | ✅ |
466 466 | [Technica Mining](technica_mining.md) | [`breezy`](ats-breezy.md) | 9 | 0 % | 11 % | ✅ |
467 467 | [Utask](utask.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 9 | 0 % | 100 % | ✅ |
@@ -472,7 +472,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
472 472 | [Associé (e) d'entrepôt](cardinalhealth.md) | [`workday`](ats-workday.md) | 8 | 75 % | 88 % | ✅ |
473 473 | [Bain Magique](bainmagique.md) | [`greenhouse`](ats-greenhouse.md) | 8 | 50 % | 100 % | ✅ |
474 474 | [Botpress](botpress.md) | [`workable`](ats-workable.md) | 8 | 0 % | 100 % | ✅ |
475 −| [Brasseries Sleeman (Unibroue)](sleeman.md) | [`workday`](ats-workday.md) | 8 | 12 % | 88 % | ✅ |
475 +| [Brasseries Sleeman (Unibroue)](sleeman.md) | [`workday`](ats-workday.md) | 8 | 12 % | 88 % | ❌ |
476 476 | [Chef d'équipe Agile](aspentech.md) | [`workday`](ats-workday.md) | 8 | 0 % | 100 % | ✅ |
477 477 | [Chef de secteur](gsknch.md) | [`workday`](ats-workday.md) | 8 | 0 % | 100 % | ✅ |
478 478 | [Ciena](ciena.md) | [`workday`](ats-workday.md) | 8 | 50 % | 75 % | ✅ |
@@ -572,7 +572,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
572 572 | [Ivalua](ivalua.md) | [`greenhouse`](ats-greenhouse.md) | 6 | 0 % | 100 % | ✅ |
573 573 | [Mistral AI](mistral_ai.md) | [`ashby`](ats-ashby.md) | 6 | 0 % | 67 % | ✅ |
574 574 | [Moneris](moneris.md) | [`workday`](ats-workday.md) | 6 | 100 % | 100 % | ✅ |
575 −| [MSI Gestion immobilière](msi_gestion.md) | [`adp`](ats-adp.md) | 6 | 100 % | 100 % | ✅ |
575 +| [MSI Gestion immobilière](msi_gestion.md) | [`adp`](ats-adp.md) | 6 | 100 % | 100 % | ❌ |
576 576 | [PEAK Groupe financier](peakgroup.md) | [`bamboohr`](ats-bamboohr.md) | 6 | 0 % | 100 % | ✅ |
577 577 | [Place et Forme inc](placeetforme.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 6 | 50 % | 50 % | ✅ |
578 578 | [Power Factors](power_factors.md) | [`workable`](ats-workable.md) | 6 | 0 % | 100 % | ✅ |
@@ -587,7 +587,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
587 587 | [Adèle Express](adeleexpressfr.md) | [`recruitee`](ats-recruitee.md) | 5 | 60 % | 100 % | ✅ |
588 588 | [Aleanza Recrutement Durable](aleanzarecrutementdurable.md) | [`teamtailor`](ats-teamtailor.md) | 5 | 40 % | 100 % | ✅ |
589 589 | [Alphanumeric Systems](alphanumeric_systems.md) | [`breezy`](ats-breezy.md) | 5 | 100 % | 100 % | ✅ |
590 −| [Associé principal (Ressources de gestion)](roberthalf.md) | [`workday`](ats-workday.md) | 5 | 0 % | 60 % | ✅ |
590 +| [Associé principal (Ressources de gestion)](roberthalf.md) | [`workday`](ats-workday.md) | 5 | 0 % | 60 % | ❌ |
591 591 | [Astucemedia](astucemedia.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 5 | 0 % | 100 % | ✅ |
592 592 | [Bdx](bdx.md) | [`workday`](ats-workday.md) | 5 | 20 % | 80 % | ✅ |
593 593 | [BETA Technologies](betatechnologiesinc.md) | [`greenhouse`](ats-greenhouse.md) | 5 | 80 % | 100 % | ✅ |
@@ -678,7 +678,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
678 678 | [Lighting](lighting.md) | [`workday`](ats-workday.md) | 4 | 100 % | 100 % | ✅ |
679 679 | [Longbow Advantage](longbowadvantage.md) | [`jazzhr`](ats-jazzhr.md) | 4 | 0 % | 100 % | ✅ |
680 680 | [Luckyhammers](luckyhammers.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 4 | 0 % | 100 % | ✅ |
681 −| [Malvern Panalytical (Spectris)](spectris.md) | [`workday`](ats-workday.md) | 4 | 0 % | 100 % | ✅ |
681 +| [Malvern Panalytical (Spectris)](spectris.md) | [`workday`](ats-workday.md) | 4 | 0 % | 100 % | ❌ |
682 682 | [Marcus evans](marcusevanscareers.md) | [`recruitee`](ats-recruitee.md) | 4 | 75 % | 100 % | ✅ |
683 683 | [META4](meta4.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 4 | 0 % | 100 % | ✅ |
684 684 | [Michelin](michelinhr.md) | [`workday`](ats-workday.md) | 4 | 0 % | 100 % | ✅ |
@@ -700,7 +700,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
700 700 | [RTINGS.com (FR)](laboratoirertingscom.md) | [`greenhouse`](ats-greenhouse.md) | 4 | 50 % | 100 % | ✅ |
701 701 | [Sel Windsor (Mines Seleine)](selwindsor.md) | [`ultipro`](ats-ultipro.md) | 4 | 0 % | 100 % | ✅ |
702 702 | [Squeeze Studio Animation](squeezestudio.md) | [`recruitee`](ats-recruitee.md) | 4 | 0 % | 50 % | ✅ |
703 −| [Testing, Automation and Cloud Validation](sglottery.md) | [`workday`](ats-workday.md) | 4 | 25 % | 100 % | ✅ |
703 +| [Testing, Automation and Cloud Validation](sglottery.md) | [`workday`](ats-workday.md) | 4 | 25 % | 100 % | ❌ |
704 704 | [Toon Boom Animation](toonboom.md) | [`bamboohr`](ats-bamboohr.md) | 4 | 0 % | 100 % | ✅ |
705 705 | [Trigone](trigone.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 4 | 0 % | 100 % | ✅ |
706 706 | [Unit8](unit8.md) | [`workable`](ats-workable.md) | 4 | 0 % | 100 % | ✅ |
@@ -763,7 +763,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
763 763 | [Mannarino Systems & Software Inc.](mannarinosystemssoftwareinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 3 | 0 % | 100 % | ✅ |
764 764 | [Mecar Métal](mecarmtal.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 3 | 0 % | 100 % | ✅ |
765 765 | [Medline](medline.md) | [`workday`](ats-workday.md) | 3 | 100 % | 100 % | ✅ |
766 −| [Mitsubishi HC Capital Canada](mitsubishi_hc_capital.md) | [`adp`](ats-adp.md) | 3 | 33 % | 100 % | ✅ |
766 +| [Mitsubishi HC Capital Canada](mitsubishi_hc_capital.md) | [`adp`](ats-adp.md) | 3 | 33 % | 100 % | ❌ |
767 767 | [Modern Menopause](modernmenopause.md) | [`greenhouse`](ats-greenhouse.md) | 3 | 0 % | 100 % | ✅ |
768 768 | [Naisense Solutions Inc](naisensesolutionsinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 3 | 0 % | 100 % | ✅ |
769 769 | [Nssl](nssl.md) | [`dayforce`](ats-dayforce.md) | 3 | 0 % | 100 % | ✅ |
@@ -776,7 +776,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
776 776 | [Remco](remco.md) | [`dayforce`](ats-dayforce.md) | 3 | 0 % | 100 % | ✅ |
777 777 | [Robover (ODL Canada)](odl.md) | [`workday`](ats-workday.md) | 3 | 0 % | 100 % | ✅ |
778 778 | [Sales Consultant Montreal](miele.md) | [`workday`](ats-workday.md) | 3 | 100 % | 100 % | ✅ |
779 −| [Sbdinc](sbdinc.md) | [`workday`](ats-workday.md) | 3 | 67 % | 100 % | ✅ |
779 +| [Sbdinc](sbdinc.md) | [`workday`](ats-workday.md) | 3 | 67 % | 100 % | ❌ |
780 780 | [Serve Robotics](serverobotics.md) | [`ashby`](ats-ashby.md) | 3 | 100 % | 0 % | ✅ |
781 781 | [Shearwater](shearwater.md) | [`greenhouse`](ats-greenhouse.md) | 3 | 0 % | 100 % | ✅ |
782 782 | [Sobeys](sobeys.md) | [`dayforce`](ats-dayforce.md) | 3 | 0 % | 100 % | ✅ |
@@ -985,10 +985,10 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
985 985 | [MOKO](africa_moko.md) | [`breezy`](ats-breezy.md) | 1 | 0 % | 100 % | ✅ |
986 986 | [Myle Home Service](myle_service.md) | [`breezy`](ats-breezy.md) | 1 | 100 % | 100 % | ✅ |
987 987 | [Myperch](myperch.md) | [`ashby`](ats-ashby.md) | 1 | 100 % | 100 % | ✅ |
988 −| [Nemaska Lithium](nemaska_lithium.md) | [`adp`](ats-adp.md) | 1 | 0 % | 100 % | ✅ |
988 +| [Nemaska Lithium](nemaska_lithium.md) | [`adp`](ats-adp.md) | 1 | 0 % | 100 % | ❌ |
989 989 | [Next Generation Inc](next_generation_inc.md) | [`breezy`](ats-breezy.md) | 1 | 100 % | 100 % | ✅ |
990 990 | [Nexxus Foods](nexxusfoods.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
991 −| [Niobec (Magris Performance Materials)](niobec.md) | [`adp`](ats-adp.md) | 1 | 100 % | 100 % | ✅ |
991 +| [Niobec (Magris Performance Materials)](niobec.md) | [`adp`](ats-adp.md) | 1 | 100 % | 100 % | ❌ |
992 992 | [No Saint](no_saint.md) | [`ashby`](ats-ashby.md) | 1 | 0 % | 100 % | ✅ |
993 993 | [Novartis](novartis.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ |
994 994 | [Novaspace](novaspace.md) | [`lever`](ats-lever.md) | 1 | 0 % | 100 % | ✅ |
@@ -999,6 +999,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
999 999 | [ON Animation Studio](onanimationstudio.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
1000 1000 | [Onomatic](onomatic.md) | [`workable`](ats-workable.md) | 1 | 0 % | 100 % | ✅ |
1001 1001 | [Openmind Technologies](openmindt.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 0 % | 100 % | ✅ |
1002 +| [Osgoode Properties](osgoode_properties.md) | [`adp`](ats-adp.md) | 1 | 100 % | 0 % | ✅ |
1002 1003 | [Panda7](panda7.md) | [`breezy`](ats-breezy.md) | 1 | 100 % | 100 % | ✅ |
1003 1004 | [Passport Brand Design](passportbranddesign.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 0 % | 100 % | ✅ |
1004 1005 | [Patterson Companies](pattersoncompanies.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ |
@@ -1013,14 +1014,14 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
1013 1014 | [Prysmiangroup](prysmiangroup.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ |
1014 1015 | [Realterm](realterm.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ |
1015 1016 | [Recruitment Solutions Integrators](recruitmentsolutionsintegrators.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
1016 −| [Republic](republic.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ✅ |
1017 +| [Republic](republic.md) | [`workday`](ats-workday.md) | 1 | 0 % | 100 % | ❌ |
1017 1018 | [Rmldb](rmldb.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ |
1018 1019 | [Samsara](samsara.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ |
1019 1020 | [Segic](segic.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
1020 1021 | [SharkNinja](sharkninjaoperatingllc.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ |
1021 1022 | [Shearwater Aerospace](shearwater_aerospace.md) | [`breezy`](ats-breezy.md) | 1 | 0 % | 100 % | ✅ |
1022 1023 | [Simpson Strong-Tie](strongtie.md) | [`workday`](ats-workday.md) | 1 | 100 % | 100 % | ✅ |
1023 −| [Smucker](smucker.md) | [`workday`](ats-workday.md) | 1 | 100 % | 100 % | ✅ |
1024 +| [Smucker](smucker.md) | [`workday`](ats-workday.md) | 1 | 100 % | 100 % | ❌ |
1024 1025 | [Snowed In Studios](snowed_in_studios_3.md) | [`workable`](ats-workable.md) | 1 | 100 % | 100 % | ✅ |
1025 1026 | [Sparkgrid](sparkgrid.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
1026 1027 | [SportWhere](sportwhere.md) | [`breezy`](ats-breezy.md) | 1 | 0 % | 100 % | ✅ |
@@ -1116,7 +1117,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
1116 1117 | [Ogilvy Canada](ogilvycanada.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
1117 1118 | [On Running](onrunning.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
1118 1119 | [One Medical](onemedical.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
1119 −| [Osgoode Properties](osgoode_properties.md) | [`adp`](ats-adp.md) | 0 | — | — | ✅ |
1120 1120 | [OXIO Corporation](oxio.md) | [`ashby`](ats-ashby.md) | 0 | — | — | ✅ |
1121 1121 | [Parallelz](parallelz.md) | [`workable`](ats-workable.md) | 0 | — | — | ✅ |
1122 1122 | [Paythings](paythings_19f14e354a62.md) | [`breezy`](ats-breezy.md) | 0 | — | — | ✅ |
@@ -1131,16 +1131,16 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
1131 1131 | [Qohash](qohash.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
1132 1132 | [QuadReal (QuadReal Property Group)](quadreal.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ |
1133 1133 | [Quandela](quandela.md) | [`workable`](ats-workable.md) | 0 | — | — | ✅ |
1134 −| [RBC](rbc.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ |
1134 +| [RBC](rbc.md) | [`workday`](ats-workday.md) | 0 | — | — | ❌ |
1135 1135 | [Really Great Reading](reallygreatreading.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
1136 −| [Reddy Ice](reddyice.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ |
1137 −| [Reworld](reworld.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ |
1136 +| [Reddy Ice](reddyice.md) | [`workday`](ats-workday.md) | 0 | — | — | ❌ |
1137 +| [Reworld](reworld.md) | [`workday`](ats-workday.md) | 0 | — | — | ❌ |
1138 1138 | [Ridepanda](ridepanda.md) | [`breezy`](ats-breezy.md) | 0 | — | — | ✅ |
1139 1139 | [Rollstack](rollstack.md) | [`ashby`](ats-ashby.md) | 0 | — | — | ✅ |
1140 1140 | [Sangoma](sangoma_3.md) | [`workable`](ats-workable.md) | 0 | — | — | ✅ |
1141 1141 | [Seymour Pacific Developments](seymourpacificdevelopmentsltd.md) | [`jazzhr`](ats-jazzhr.md) | 0 | — | — | ✅ |
1142 −| [Shell Canada](shell.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ |
1143 −| [Silicon Labs](silabs.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ |
1142 +| [Shell Canada](shell.md) | [`workday`](ats-workday.md) | 0 | — | — | ❌ |
1143 +| [Silicon Labs](silabs.md) | [`workday`](ats-workday.md) | 0 | — | — | ❌ |
1144 1144 | [Sofinafoods](sofinafoods.md) | [`dayforce`](ats-dayforce.md) | 0 | — | — | ✅ |
1145 1145 | [Software Mind](softwaremind.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 0 | — | — | ✅ |
1146 1146 | [SOL Mental Health](solmentalhealth.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
modified docs/connecteurs/ats-adp.md +22 −22
@@ -5,14 +5,14 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/ats-adp.md
7 7 Rôle : Fiche plateforme ATS adp — mécanique partagée + tableau des 17 tenants
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-10 02:34 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 `adp`
14 14
15 −**17 employeurs connectés** via cette plateforme — **139 offres actives**. Module partagé : `jobka/connectors/adp.py` ; un employeur = une sous-classe d'environ 10 lignes.
15 +**17 employeurs connectés** via cette plateforme — **141 offres actives**. Module partagé : `jobka/connectors/adp.py` ; un employeur = une sous-classe d'environ 10 lignes.
16 16
17 17 ## Description & mécanique
18 18
@@ -40,23 +40,23 @@ Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS
40 40
41 41 | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK |
42 42 |---|---|---|---|---|---|---|
43 −| [Uniboard](uniboard.md) | 19 | 37 % | 63 % | 0 % | 2026-09-21 17:39 | ✅ |
44 −| [Strathmore](strathmore.md) | 17 | 47 % | 100 % | 6 % | 2026-09-21 17:35 | ✅ |
45 −| [Canadian Royalties](canadian_royalties.md) | 15 | 47 % | 100 % | 0 % | 2026-09-21 16:41 | ✅ |
46 −| [UV Assurance](uv_assurance.md) | 14 | 0 % | 100 % | 14 % | 2026-09-21 17:39 | ✅ |
47 −| [H2O Innovation](h2o_innovation.md) | 13 | 8 % | 100 % | 0 % | 2026-09-21 17:08 | ✅ |
48 −| [Groupe Nordik (Nordik Spa-Nature)](groupe_nordik.md) | 12 | 33 % | 100 % | 0 % | 2026-09-21 17:01 | ✅ |
49 −| [Bento Sushi](bento_sushi.md) | 11 | 91 % | 100 % | 0 % | 2026-09-21 16:39 | ✅ |
50 −| [Quincaillerie Richelieu](richelieu.md) | 11 | 0 % | 100 % | 0 % | 2026-09-21 17:30 | ✅ |
51 −| [Cook It](cookit.md) | 7 | 100 % | 100 % | 0 % | 2026-09-21 16:51 | ✅ |
52 −| [Cultures Gen V](cultures_genv.md) | 5 | 20 % | 100 % | 0 % | 2026-09-21 16:51 | ✅ |
53 −| [MSI Gestion immobilière](msi_gestion.md) | 5 | 100 % | 100 % | 0 % | 2026-09-21 17:24 | ✅ |
54 −| [Mitsubishi HC Capital Canada](mitsubishi_hc_capital.md) | 4 | 50 % | 100 % | 0 % | 2026-09-21 17:24 | ✅ |
55 −| [Abritek](abritek.md) | 3 | 100 % | 100 % | 0 % | 2026-09-21 16:34 | ✅ |
56 −| [Niobec (Magris Performance Materials)](niobec.md) | 1 | 100 % | 100 % | 0 % | 2026-09-21 17:24 | ✅ |
57 −| [Nemaska Lithium](nemaska_lithium.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 17:24 | ✅ |
58 −| [Triple Boris](triple_boris.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 17:38 | ✅ |
59 −| [Osgoode Properties](osgoode_properties.md) | 0 | — | — | — | 2026-09-21 17:26 | ✅ |
43 +| [Groupe Nordik (Nordik Spa-Nature)](groupe_nordik.md) | 19 | 26 % | 100 % | 0 % | 2026-10-10 01:09 | ✅ |
44 +| [Uniboard](uniboard.md) | 19 | 32 % | 63 % | 0 % | 2026-10-10 00:10 | ✅ |
45 +| [Canadian Royalties](canadian_royalties.md) | 17 | 53 % | 100 % | 0 % | 2026-10-10 00:49 | ✅ |
46 +| [UV Assurance](uv_assurance.md) | 14 | 0 % | 100 % | 0 % | 2026-10-10 00:10 | ✅ |
47 +| [H2O Innovation](h2o_innovation.md) | 12 | 8 % | 100 % | 0 % | 2026-10-10 01:44 | ❌ |
48 +| [Strathmore](strathmore.md) | 11 | 45 % | 100 % | 0 % | 2026-10-10 02:34 | ✅ |
49 +| [Quincaillerie Richelieu](richelieu.md) | 11 | 0 % | 100 % | 0 % | 2026-10-10 02:14 | ✅ |
50 +| [Bento Sushi](bento_sushi.md) | 10 | 90 % | 100 % | 0 % | 2026-10-10 02:34 | ✅ |
51 +| [Cook It](cookit.md) | 7 | 100 % | 100 % | 0 % | 2026-10-10 00:59 | ✅ |
52 +| [MSI Gestion immobilière](msi_gestion.md) | 6 | 100 % | 100 % | 50 % | 2026-10-10 01:59 | ❌ |
53 +| [Cultures Gen V](cultures_genv.md) | 4 | 25 % | 100 % | 0 % | 2026-10-10 00:59 | ✅ |
54 +| [Abritek](abritek.md) | 4 | 100 % | 100 % | 0 % | 2026-10-10 00:42 | ✅ |
55 +| [Mitsubishi HC Capital Canada](mitsubishi_hc_capital.md) | 3 | 33 % | 100 % | 0 % | 2026-10-10 01:59 | ❌ |
56 +| [Osgoode Properties](osgoode_properties.md) | 1 | 100 % | 0 % | 0 % | 2026-10-10 02:34 | ✅ |
57 +| [Niobec (Magris Performance Materials)](niobec.md) | 1 | 100 % | 100 % | 0 % | 2026-10-10 02:00 | ❌ |
58 +| [Nemaska Lithium](nemaska_lithium.md) | 1 | 0 % | 100 % | 0 % | 2026-10-10 02:00 | ❌ |
59 +| [Triple Boris](triple_boris.md) | 1 | 0 % | 100 % | 0 % | 2026-10-10 00:09 | ✅ |
60 60
61 61 ## Licence / conformité
62 62
@@ -74,6 +74,6 @@ Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS
74 74
75 75 Commits touchant `jobka/connectors/adp.py` :
76 76
77 −- `c7d9ece` 2026-08-30 [ka6] fix connecteur bento_sushi: reprise sur réponses ADP 200 non-JSON (retry+backoff, erreur diagnosticable)
78 −- `856863d` 2026-08-25 Vague D implémentée — 75 nouveaux connecteurs (968 -> 1044 employeurs), ~768 offres QC
79 −- `4917d57` 2026-08-18 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics et grands employeurs QC
77 +- `c7d9ecef` 2026-08-30 [ka6] fix connecteur bento_sushi: reprise sur réponses ADP 200 non-JSON (retry+backoff, erreur diagnosticable)
78 +- `856863d2` 2026-08-25 Vague D implémentée — 75 nouveaux connecteurs (968 -> 1044 employeurs), ~768 offres QC
79 +- `4917d575` 2026-08-18 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics et grands employeurs QC
modified docs/connecteurs/osgoode_properties.md +41 −14
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/osgoode_properties.md
7 7 Rôle : Fiche connecteur — Osgoode Properties (employeur direct, ATS adp)
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-10 02:34 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 9 relancer le script pour régénérer.
10 10 =============================================================================
11 11 -->
@@ -38,7 +38,33 @@ Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS
38 38
39 39 ## Champs → schéma
40 40
41 −*Aucune offre active en base pour cette source.*
41 +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-10-10 02:34 EDT).
42 +
43 +| Champ (`jobs.*`) | Rôle | Complétude |
44 +|---|---|---|
45 +| `title` — Titre | titre du poste | 100 % |
46 +| `employer` — Employeur | nom de l'entreprise | 100 % |
47 +| `url` — URL | lien direct vers l'offre originale | 100 % |
48 +| `description` — Description | texte complet (HTML nettoyé) | 100 % |
49 +| `city` — Ville | municipalité normalisée | 100 % |
50 +| `region` — Région | région administrative | 100 % |
51 +| `address` — Adresse | adresse du lieu de travail | 0 % |
52 +| `postal_code` — Code postal | code postal si publié | 100 % |
53 +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % |
54 +| `employment_type` — Type | temps_plein / temps_partiel / … | 100 % |
55 +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 100 % |
56 +| `salary_label` — Libellé salaire | texte salarial original | 0 % |
57 +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % |
58 +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 100 % |
59 +| `date_posted` — Date de parution | ISO 8601 | 100 % |
60 +| `date_deadline` — Date limite | date limite pour postuler | 0 % |
61 +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 100 % |
62 +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % |
63 +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % |
64 +| `apply_url` — Candidature | lien de candidature directe | 0 % |
65 +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % |
66 +
67 +Exemple réel : *Concierge - Gatineau* — Gatineau · ∅ · parue le 2026-08-07.
42 68
43 69 ## Fréquence & budgets
44 70
@@ -53,15 +79,15 @@ Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS
53 79
54 80 ## Volumétrie & complétude live
55 81
56 −*(mesuré le 2026-09-21 18:06 EDT dans `data/jobka.db`)*
82 +*(mesuré le 2026-10-10 02:34 EDT dans `data/jobka.db`)*
57 83
58 −- **Offres en base** : 1 (dont **0 actives**, 0 masquées comme doublons `dup_of`)
59 −- **Salaire** : 0/0 actives (—)
60 −- **GPS** : 0/0 actives (—)
61 −- **Mode** : 0/0 actives (—)
62 −- **Parution** : 0/0 actives (—)
63 −- **Dernier sync** : 2026-09-21 17:26 — trouvées 0, +0, ~0, -0
64 −- **Syncs enregistrés** (`sync_log`) : 311
84 +- **Offres en base** : 2 (dont **1 actives**, 0 masquées comme doublons `dup_of`)
85 +- **Salaire** : 1/1 actives (100 %)
86 +- **GPS** : 0/1 actives (0 %)
87 +- **Mode** : 0/1 actives (0 %)
88 +- **Parution** : 1/1 actives (100 %)
89 +- **Dernier sync** : 2026-10-10 02:34 — trouvées 1, +0, ~0, -0
90 +- **Syncs enregistrés** (`sync_log`) : 503
65 91
66 92 ## Erreurs & dépannage
67 93
@@ -69,6 +95,7 @@ Erreurs relevées dans `sync_log` :
69 95
70 96 | Erreur | Occurrences | Dernière fois |
71 97 |---|---|---|
98 +| 404 Client Error: Not Found for url: https://workforcenow.adp.com/mascsr/default/careercen… | 1 | 2026-10-10 02:02 |
72 99 | Expecting value: line 1 column 1 (char 0) | 2 | 2026-08-29 22:54 |
73 100 | ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer')) | 1 | 2026-08-29 02:25 |
74 101
@@ -91,7 +118,7 @@ Erreurs relevées dans `sync_log` :
91 118
92 119 Commits touchant `jobka/connectors/osgoode_properties.py` :
93 120
94 −- `8f3441c` 2026-08-30 [ka6] snapshot pré-mission richelieu
95 −- `4419347` 2026-08-29 Revert "[ka6] fix connecteur osgoode_properties: aucun bug — séquelle de la maintenance planifiée ADP WFN du 2026-08-28 soir (302 vers sorry.adp.com, même cause que cultures_genv/groupe_nordik/h2o_innovation/mitsubishi_hc_capital/msi_gestion/nemaska_lithium/niobec, doc mission richelieu e152035) ; maintenance terminée, sync rejoué = 1 offre (médiane 1.0) ; note de contexte ajoutée au connecteur"
96 −- `e813992` 2026-08-29 [ka6] fix connecteur osgoode_properties: aucun bug — séquelle de la maintenance planifiée ADP WFN du 2026-08-28 soir (302 vers sorry.adp.com, même cause que cultures_genv/groupe_nordik/h2o_innovation/mitsubishi_hc_capital/msi_gestion/nemaska_lithium/niobec, doc mission richelieu e152035) ; maintenance terminée, sync rejoué = 1 offre (médiane 1.0) ; note de contexte ajoutée au connecteur
97 −- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe.
121 +- `8f3441ce` 2026-08-30 [ka6] snapshot pré-mission richelieu
122 +- `44193479` 2026-08-29 Revert "[ka6] fix connecteur osgoode_properties: aucun bug — séquelle de la maintenance planifiée ADP WFN du 2026-08-28 soir (302 vers sorry.adp.com, même cause que cultures_genv/groupe_nordik/h2o_innovation/mitsubishi_hc_capital/msi_gestion/nemaska_lithium/niobec, doc mission richelieu e152035) ; maintenance terminée, sync rejoué = 1 offre (médiane 1.0) ; note de contexte ajoutée au connecteur"
123 +- `e813992f` 2026-08-29 [ka6] fix connecteur osgoode_properties: aucun bug — séquelle de la maintenance planifiée ADP WFN du 2026-08-28 soir (302 vers sorry.adp.com, même cause que cultures_genv/groupe_nordik/h2o_innovation/mitsubishi_hc_capital/msi_gestion/nemaska_lithium/niobec, doc mission richelieu e152035) ; maintenance terminée, sync rejoué = 1 offre (médiane 1.0) ; note de contexte ajoutée au connecteur
124 +- `0298197c` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe.
modified jobka/connectors/osgoode_properties.py +67 −24
@@ -4,11 +4,28 @@
4 4 # Contact : contact@spboucher.ai
5 5 # Fichier : jobka/connectors/osgoode_properties.py
6 6 # Rôle : Connecteur Osgoode Properties (immobilier locatif — immeubles à
7 −# Gatineau) — ADP WFN + repli « détail seulement » quand l'API liste
8 −# échoue (maintenances nocturnes ADP)
9 −# Créé : 2026-08-19 Modifié : 2026-08-30
7 +# Gatineau) — ADP WFN bi-culture (fr_CA + en_CA) + repli « détail
8 +# seulement » quand l'API liste échoue (maintenances nocturnes ADP)
9 +# Créé : 2026-08-19 Modifié : 2026-10-10
10 10 # =============================================================================
11 −"""Osgoode Properties — ADP Workforce Now, avec repli de revalidation.
11 +"""Osgoode Properties — ADP Workforce Now bi-culture, avec repli de
12 +revalidation.
13 +
14 +Partition par culture (2026-10-10) : le centre de carrières de ce tenant est
15 +PARTITIONNÉ par langue et ne publie qu'en **en_CA** — la liste
16 +job-requisitions répond 200 avec jobRequisitions:[] en fr_CA ET en en_US
17 +(le fallback générique de la base s'arrête à en_US et restait donc aveugle),
18 +alors que en_CA expose les offres vivantes, dont « Concierge - Gatineau »
19 +(9201780233629_1, Gatineau QC, parue 2026-08-07) jamais vue par job-ka.
20 +L'API détail est partitionnée pareil : une offre vivante interrogée dans la
21 +MAUVAISE culture répond 200 avec un squelette JSON sans requisitionTitle —
22 +exactement comme une offre DÉPUBLIÉE dans toutes les cultures (marqueur
23 +vérifié sur 9201778625489_1 « Site Administrator », dépubliée le
24 +2026-09-21) ; seul le 404 est un retrait certain. D'où l'itération CULTURES
25 +ci-dessous avec fusion par itemID et priorité fr_CA — variante ADP WFN du
26 +pattern bi-culture Dayforce (peaktech/challenger) et EXTRA_SITES Workday
27 +(pwc) ; le repli de revalidation essaie lui aussi chaque culture avant de
28 +conclure.
12 29
13 30 Contexte (2026-08-28/29) : ADP Workforce Now a des fenêtres de maintenance
14 31 nocturnes récurrentes (vendredi ET samedi soir ~22:00 → 02:00 ET) pendant
@@ -16,7 +33,8 @@ lesquelles TOUT workforcenow.adp.com redirige vers sorry.adp.com — la liste
16 33 job-requisitions renvoie alors du HTML, d'où le « Expecting value: line 1
17 34 column 1 » du sync de 22:54 (29/08). Comme le cycle complet met ~3 h entre
18 35 deux passages de la source, un seul passage raté pendant la fenêtre suffit à
19 −dépasser le seuil stale de 4 h.
36 +dépasser le seuil stale de 4 h. (La liste a aussi répondu un 404 transitoire
37 +isolé le 2026-10-10 à 02:02, revenue 200 moins de 30 min après.)
20 38
21 39 D'où le repli ci-dessous (même pattern que cultures_genv.py /
22 40 groupe_nordik.py / h2o_innovation.py / mitsubishi_hc_capital.py /
@@ -44,11 +62,19 @@ class OsgoodePropertiesConnector(ADPWorkforceNowConnector):
44 62 EMPLOYER = "Osgoode Properties"
45 63 CID = "c6a2e782-c971-4a6d-9a63-1365f5ce7d21"
46 64 CCID = "19000101_000001"
65 + # fr_CA d'abord : si l'employeur publie un jour en français, le titre FR
66 + # gagne la fusion ; en_CA est la seule culture servie en 2026-10.
67 + CULTURES = ("fr_CA", "en_CA")
47 68
48 69 def fetch(self) -> list[JobPosting]:
49 70 try:
50 − return super().fetch()
51 − except (requests.RequestException, ValueError) as exc:
71 + merged: dict[str, JobPosting] = {}
72 + for lang in self.CULTURES:
73 + self.LANG = lang
74 + for job in super().fetch():
75 + merged.setdefault(job.external_id, job)
76 + return list(merged.values())
77 + except (requests.RequestException, ValueError, RuntimeError) as exc:
52 78 resp = getattr(exc, "response", None)
53 79 if resp is not None and resp.status_code < 500:
54 80 raise # 4xx franc : pas une panne liste, ne pas masquer
@@ -56,6 +82,8 @@ class OsgoodePropertiesConnector(ADPWorkforceNowConnector):
56 82 if jobs is None:
57 83 raise # API détail cassée aussi : vraie panne totale
58 84 return jobs
85 + finally:
86 + self.LANG = self.CULTURES[0]
59 87
60 88 def _known_ids(self) -> list[str]:
61 89 """itemID (external_id) des offres actives de la source en base."""
@@ -71,26 +99,41 @@ class OsgoodePropertiesConnector(ADPWorkforceNowConnector):
71 99
72 100 def _fetch_known_jobs(self) -> list[JobPosting] | None:
73 101 """Repli sans liste : chaque offre connue est revalidée via l'API
74 − détail (la réquisition complète, source de vérité de son existence).
75 − Aucune donnée inventée — tout vient de la réponse du moment."""
102 + détail (la réquisition complète, source de vérité de son existence),
103 + en essayant CHAQUE culture — le détail interrogé dans la mauvaise
104 + culture répond 200 avec un squelette sans requisitionTitle, comme
105 + une offre dépubliée. Aucune donnée inventée — tout vient de la
106 + réponse live."""
76 107 out: list[JobPosting] = []
77 108 errors = 0
78 109 for iid in self._known_ids():
79 − try:
80 − r = self.get(f"{_API}/{iid}", params=self._params(),
81 − headers={"Accept": "application/json"}).json()
82 − except requests.HTTPError as exc:
83 − h = getattr(exc, "response", None)
84 − if h is not None and h.status_code == 404:
85 − continue # offre retirée chez l'employeur
86 − errors += 1
87 − continue
88 − except (requests.RequestException, ValueError):
89 − errors += 1 # non-JSON (maintenance) ou réseau
90 − continue
91 − if not (r or {}).get("requisitionTitle"):
92 − errors += 1 # réponse inattendue : ne pas conclure au retrait
93 − continue
110 + r = None
111 + gone = False
112 + for lang in self.CULTURES:
113 + self.LANG = lang
114 + try:
115 + cand = self.get(f"{_API}/{iid}", params=self._params(),
116 + headers={"Accept": "application/json"}
117 + ).json()
118 + except requests.HTTPError as exc:
119 + h = getattr(exc, "response", None)
120 + if h is not None and h.status_code == 404:
121 + gone = True # retrait certain dans cette culture
122 + continue
123 + errors += 1
124 + continue
125 + except (requests.RequestException, ValueError):
126 + errors += 1 # non-JSON (maintenance) ou réseau
127 + continue
128 + if (cand or {}).get("requisitionTitle"):
129 + r = cand # vivante dans cette culture (self.LANG)
130 + break
131 + if r is None:
132 + if gone:
133 + continue # offre retirée chez l'employeur (404)
134 + errors += 1 # squelette sans titre partout : dépubliée
135 + continue # probable mais indiscernable d'une
136 + # maintenance — ne pas conclure au retrait
94 137 locations = self._locations(r)
95 138 if not self._keep(locations):
96 139 continue
97 140
Menu

Theme