SPB Git

spb/job-ka

Public

[ka6] connecteur broccolini: broken = PANNE MONDIALE BambooHR (incident de sécurité PHP2SHELL) DÉJÀ TERMINÉE à l'arrivée de la mission, rien à réparer côté connecteur — même panne que rethinkcanada 7b553af8, robotiq 11935dc7, scalia 43e98cae, surmesur a697cc5a, toonboom e2674f6a, triotech 14ada0c8, vicpark 8bb2d6c6, ziptrekeco e6e7608c, batimoinc f3a1dbe1, bc2 676b3898 et bigbang 9d7b528c le même jour. Le tenant était vert avec found=23 (= médiane 23.0) au sync de 07:23:19 le 2026-10-21, premier échec à 10:16:50, première rotation du scheduler après la fenêtre de mise hors ligne des portails BambooHR (08:34-08:37 EDT), 11 échecs 404 consécutifs (/careers/list = 404 Route Not Found) jusqu'à 13:37:33. Pas une migration d'ATS : www.broccolini.com/en/careers pointe toujours vers broccolini.bamboohr.com/careers (vérifié live). FIN DE PANNE constatée pendant la mission : /careers/list de nouveau 200 (totalCount=47) sur broccolini ET le frère mitacs, le sync horaire de 13:54:28 avait déjà reverdit le tenant seul (ok=1 found=23 removed=0), re-prouvé par sync isolé pendant la mission (found=23 = médiane, added=0 removed=0) — les portails BambooHR sont revenus alors que status.bamboohr.com est encore MONITORING ; les autres frères bamboohr reverdiront seuls à leur prochaine rotation horaire. Aucun retrait pendant la panne (sync échouait proprement, ok=0 raise_for_status 404) : les 23 offres QC (22 Montréal + 1 Québec, immobilier/construction Broccolini) sont restées actives en base. Artefact vague C : url vide dans sources.json → https://www.broccolini.com (broccolini.com redirige vers www.broccolini.com/fr, 200 vérifié live, « Broccolini | Investir. Développer. Construire. »). Docstring chronologie 1re intervention, fiches broccolini.md/ats-bamboohr.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.

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

5 changed files +73 −40

modified data/sources.json +1 −1
@@ -464,7 +464,7 @@
464 464 {
465 465 "id": "broccolini",
466 466 "name": "Broccolini",
467 − "url": "",
467 + "url": "https://www.broccolini.com",
468 468 "careers_url": "https://broccolini.bamboohr.com/careers",
469 469 "sectors": [
470 470 "Construction",
modified docs/connecteurs/INDEX.md +18 −18
@@ -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-21 13:44 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-21 13:58 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-21 13:44 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-21 13:58 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** — **26140 offres actives** (23139 directes, 3001 portails ; 131 masquées comme doublons inter-sources, soit 26009 visibles). 1134 fiches.
17 +**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **26136 offres actives** (23135 directes, 3001 portails ; 131 masquées comme doublons inter-sources, soit 26005 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,8 +22,8 @@ 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 | 7514 | 48 % | 87 % |
26 −| [`smartrecruiters`](ats-smartrecruiters.md) | 172 | 2945 | 16 % | 99 % |
25 +| [`workday`](ats-workday.md) | 232 | 7512 | 48 % | 87 % |
26 +| [`smartrecruiters`](ats-smartrecruiters.md) | 172 | 2942 | 16 % | 99 % |
27 27 | [`workable`](ats-workable.md) | 71 | 2000 | 18 % | 100 % |
28 28 | [`dayforce`](ats-dayforce.md) | 129 | 1907 | 9 % | 100 % |
29 29 | [`successfactors`](ats-successfactors.md) | 12 | 1687 | 17 % | 99 % |
@@ -32,7 +32,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
32 32 | [`greenhouse`](ats-greenhouse.md) | 132 | 824 | 18 % | 100 % |
33 33 | [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 788 | 6 % | 100 % |
34 34 | [`lever`](ats-lever.md) | 58 | 606 | 20 % | 96 % |
35 −| [`breezy`](ats-breezy.md) | 71 | 428 | 38 % | 95 % |
35 +| [`breezy`](ats-breezy.md) | 71 | 428 | 39 % | 95 % |
36 36 | [`recruitee`](ats-recruitee.md) | 30 | 289 | 19 % | 97 % |
37 37 | [`bamboohr`](ats-bamboohr.md) | 37 | 284 | 8 % | 100 % |
38 38 | [`ashby`](ats-ashby.md) | 41 | 278 | 50 % | 56 % |
@@ -41,7 +41,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
41 41 | [`teamtailor`](ats-teamtailor.md) | 10 | 152 | 30 % | 95 % |
42 42 | [`jazzhr`](ats-jazzhr.md) | 28 | 152 | 13 % | 91 % |
43 43 | [`adp`](ats-adp.md) | 17 | 131 | 37 % | 94 % |
44 −| [`taleo`](ats-taleo.md) | 5 | 113 | 0 % | 99 % |
44 +| [`taleo`](ats-taleo.md) | 5 | 114 | 0 % | 98 % |
45 45 | [`eightfold`](ats-eightfold.md) | 1 | 59 | 90 % | 100 % |
46 46 | [`icims`](ats-icims.md) | 7 | 56 | 29 % | 91 % |
47 47 | [`ultipro`](ats-ultipro.md) | 4 | 51 | 49 % | 100 % |
@@ -77,8 +77,8 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
77 77 | [Alstom](alstom.md) | [`successfactors`](ats-successfactors.md) | 246 | 8 % | 99 % | ✅ |
78 78 | [Rechercher des](gianttiger.md) | [`workday`](ats-workday.md) | 241 | 0 % | 99 % | ✅ |
79 79 | [Globalhr](globalhr.md) | [`workday`](ats-workday.md) | 238 | 0 % | 83 % | ✅ |
80 −| [Airbus Canada](airbus.md) | [`workday`](ats-workday.md) | 211 | 4 % | 99 % | ✅ |
81 −| [American Iron and Metal](americanironandmetal.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 209 | 22 % | 100 % | ✅ |
80 +| [Airbus Canada](airbus.md) | [`workday`](ats-workday.md) | 210 | 4 % | 99 % | ✅ |
81 +| [American Iron and Metal](americanironandmetal.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 206 | 22 % | 100 % | ✅ |
82 82 | [Reitmans](reitmanscanadalteltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 204 | 19 % | 100 % | ✅ |
83 83 | [Groupe Banque TD](td.md) | [`workday`](ats-workday.md) | 186 | 94 % | 95 % | ✅ |
84 84 | [CISSS de Laval](cisss_laval.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 179 | 2 % | 100 % | ✅ |
@@ -109,8 +109,8 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
109 109 | [iA Groupe financier](ia_groupe.md) | [`workday`](ats-workday.md) | 87 | 100 % | 93 % | ✅ |
110 110 | [Linen Chest](linenchest.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 84 | 8 % | 100 % | ✅ |
111 111 | [Promutuel Assurance](promutuel.md) | [`workday`](ats-workday.md) | 81 | 0 % | 100 % | ✅ |
112 +| [Bulkbarn](bulkbarn.md) | [`dayforce`](ats-dayforce.md) | 79 | 0 % | 100 % | ✅ |
112 113 | [Gflenv](gflenv.md) | [`workday`](ats-workday.md) | 79 | 6 % | 90 % | ✅ |
113 −| [Bulkbarn](bulkbarn.md) | [`dayforce`](ats-dayforce.md) | 78 | 0 % | 100 % | ✅ |
114 114 | [CAE](cae.md) | [`workday`](ats-workday.md) | 77 | 18 % | 94 % | ✅ |
115 115 | [CISSS de l'Outaouais](cisss_outaouais.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 74 | 28 % | 99 % | ✅ |
116 116 | [Banque CIBC](cibc.md) | [`workday`](ats-workday.md) | 71 | 0 % | 100 % | ✅ |
@@ -119,10 +119,10 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
119 119 | [Manuvie](manulife.md) | [`workday`](ats-workday.md) | 64 | 92 % | 53 % | ✅ |
120 120 | [Dexterra](dexterra.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 63 | 0 % | 100 % | ✅ |
121 121 | [Automobileendirect](automobileendirect.md) | [`dayforce`](ats-dayforce.md) | 62 | 0 % | 100 % | ✅ |
122 +| [Agnico Eagle Mines](agnico_eagle.md) | [`taleo`](ats-taleo.md) | 61 | 0 % | 98 % | ✅ |
122 123 | [Laporte Experts Conseils](laportefr.md) | [`greenhouse`](ats-greenhouse.md) | 61 | 0 % | 100 % | ✅ |
123 124 | [Lifeworks](lifeworks.md) | [`workday`](ats-workday.md) | 61 | 31 % | 87 % | ✅ |
124 125 | [MaintainX](maintainx.md) | [`ashby`](ats-ashby.md) | 61 | 92 % | 72 % | ✅ |
125 −| [Agnico Eagle Mines](agnico_eagle.md) | [`taleo`](ats-taleo.md) | 60 | 0 % | 100 % | ✅ |
126 126 | [Gray Collection (Groupe Antonopoulos)](graycollection.md) | [`dayforce`](ats-dayforce.md) | 60 | 0 % | 100 % | ✅ |
127 127 | [Autodesk](autodesk.md) | [`eightfold`](ats-eightfold.md) | 59 | 90 % | 100 % | ✅ |
128 128 | [Gdv](gdv.md) | [`dayforce`](ats-dayforce.md) | 59 | 0 % | 100 % | ✅ |
@@ -161,10 +161,10 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
161 161 | [Hydro-Québec](hydroquebec.md) | [`successfactors`](ats-successfactors.md) | 42 | 17 % | 74 % | ✅ |
162 162 | [JD Sports Canada](jdsports.md) | [`dayforce`](ats-dayforce.md) | 42 | 0 % | 100 % | ✅ |
163 163 | [Laura Canada](lauracanada.md) | [`dayforce`](ats-dayforce.md) | 42 | 0 % | 100 % | ✅ |
164 −| [Brand Momentum](brandmomentum.md) | [`breezy`](ats-breezy.md) | 41 | 93 % | 100 % | ✅ |
165 −| [Advanceauto](advanceauto.md) | [`workday`](ats-workday.md) | 40 | 0 % | 48 % | ✅ |
164 +| [Brand Momentum](brandmomentum.md) | [`breezy`](ats-breezy.md) | 41 | 95 % | 100 % | ✅ |
166 165 | [Kenworthmaska](kenworthmaska.md) | [`dayforce`](ats-dayforce.md) | 40 | 2 % | 100 % | ✅ |
167 166 | [XTL Transport](xtltransportlogistics.md) | [`jazzhr`](ats-jazzhr.md) | 40 | 0 % | 98 % | ✅ |
167 +| [Advanceauto](advanceauto.md) | [`workday`](ats-workday.md) | 39 | 0 % | 46 % | ✅ |
168 168 | [Groupe CH (Canadiens de Montréal, Centre Bell)](groupech.md) | [`dayforce`](ats-dayforce.md) | 39 | 0 % | 100 % | ✅ |
169 169 | [Info-Ways](info_ways.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 39 | 0 % | 100 % | ✅ |
170 170 | [Montreal Export Package Handler (18:00-23:00)](hcmportal.md) | [`workday`](ats-workday.md) | 38 | 84 % | 100 % | ✅ |
@@ -236,7 +236,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
236 236 | [AECOM](aecom2.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 23 | 0 % | 91 % | ✅ |
237 237 | [Altasciences](altasciences.md) | [`workday`](ats-workday.md) | 23 | 0 % | 96 % | ✅ |
238 238 | [Baseten](baseten.md) | [`ashby`](ats-ashby.md) | 23 | 100 % | 0 % | ✅ |
239 −| [Broccolini](broccolini.md) | [`bamboohr`](ats-bamboohr.md) | 23 | 0 % | 100 % | ❌ |
239 +| [Broccolini](broccolini.md) | [`bamboohr`](ats-bamboohr.md) | 23 | 0 % | 100 % | ✅ |
240 240 | [JAM Industries](jam.md) | [`dayforce`](ats-dayforce.md) | 23 | 0 % | 100 % | ✅ |
241 241 | [Spectrum Health Care](spectrumhealthcare.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 23 | 87 % | 100 % | ✅ |
242 242 | [Teknion Roy & Breton](teknionroybreton.md) | [`recruitee`](ats-recruitee.md) | 23 | 52 % | 83 % | ✅ |
@@ -328,7 +328,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
328 328 | [Abbott](abbott.md) | [`workday`](ats-workday.md) | 14 | 14 % | 93 % | ✅ |
329 329 | [Aylo](aylo.md) | [`greenhouse`](ats-greenhouse.md) | 14 | 0 % | 100 % | ✅ |
330 330 | [Aylo](aylofr.md) | [`greenhouse`](ats-greenhouse.md) | 14 | 0 % | 100 % | ✅ |
331 −| [Boralex](boralex.md) | [`dayforce`](ats-dayforce.md) | 14 | 0 % | 100 % | ✅ |
332 331 | [CAA-Québec](caaquebec.md) | [`workday`](ats-workday.md) | 14 | 29 % | 100 % | ✅ |
333 332 | [Comptable de projet / Project Accountant](ellisdon.md) | [`workday`](ats-workday.md) | 14 | 14 % | 93 % | ✅ |
334 333 | [dentago](dentago.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 14 | 7 % | 64 % | ✅ |
@@ -355,6 +354,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
355 354 | [Triotech](triotech.md) | [`bamboohr`](ats-bamboohr.md) | 14 | 7 % | 100 % | ❌ |
356 355 | [Ur](ur.md) | [`workday`](ats-workday.md) | 14 | 0 % | 100 % | ✅ |
357 356 | [VIA Rail Canada](via_rail.md) | [`successfactors`](ats-successfactors.md) | 14 | 14 % | 100 % | ✅ |
357 +| [Boralex](boralex.md) | [`dayforce`](ats-dayforce.md) | 13 | 0 % | 100 % | ✅ |
358 358 | [Canadian Tire](canadiantirecorporation.md) | [`workday`](ats-workday.md) | 13 | 54 % | 100 % | ✅ |
359 359 | [Cuisinier(ère) 2, Restaurant Marcus & Lounge (Sur appel) / Cook 2 ...](fourseasons.md) | [`workday`](ats-workday.md) | 13 | 0 % | 100 % | ✅ |
360 360 | [Epic Games](epicgames.md) | [`greenhouse`](ats-greenhouse.md) | 13 | 0 % | 100 % | ✅ |
@@ -485,7 +485,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
485 485 | [Ciena](ciena.md) | [`workday`](ats-workday.md) | 8 | 75 % | 88 % | ✅ |
486 486 | [Coordinateur, Achats Numériques](dentsuaegis.md) | [`workday`](ats-workday.md) | 8 | 88 % | 88 % | ✅ |
487 487 | [Eidos-Montréal](eidosmontreal.md) | [`dayforce`](ats-dayforce.md) | 8 | 0 % | 100 % | ✅ |
488 −| [EMD-Batimo](batimoinc.md) | [`bamboohr`](ats-bamboohr.md) | 8 | 0 % | 100 % | ❌ |
488 +| [EMD-Batimo](batimoinc.md) | [`bamboohr`](ats-bamboohr.md) | 8 | 0 % | 100 % | ✅ |
489 489 | [eStruxture](estruxture.md) | [`bamboohr`](ats-bamboohr.md) | 8 | 12 % | 100 % | ❌ |
490 490 | [Expresco Foods](exprescofoods.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 8 | 12 % | 100 % | ✅ |
491 491 | [Fonds de solidarité FTQ](fondsftq.md) | [`workday`](ats-workday.md) | 8 | 0 % | 100 % | ✅ |
@@ -517,7 +517,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
517 517 | [AJ Walter Aviation](ajwalter.md) | [`recruitee`](ats-recruitee.md) | 7 | 0 % | 100 % | ✅ |
518 518 | [Aliaxis](aliaxis.md) | [`workday`](ats-workday.md) | 7 | 43 % | 86 % | ✅ |
519 519 | [Artefact North America](artefactnoram.md) | [`greenhouse`](ats-greenhouse.md) | 7 | 57 % | 100 % | ✅ |
520 −| [Big Bang](bigbang.md) | [`bamboohr`](ats-bamboohr.md) | 7 | 29 % | 100 % | ❌ |
520 +| [Big Bang](bigbang.md) | [`bamboohr`](ats-bamboohr.md) | 7 | 29 % | 100 % | ✅ |
521 521 | [Boart Longyear](bly.md) | [`dayforce`](ats-dayforce.md) | 7 | 100 % | 100 % | ✅ |
522 522 | [Cerence](cerence.md) | [`workday`](ats-workday.md) | 7 | 71 % | 29 % | ✅ |
523 523 | [Cfibfcei](cfibfcei.md) | [`dayforce`](ats-dayforce.md) | 7 | 0 % | 100 % | ✅ |
@@ -952,7 +952,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
952 952 | [Goalcast](goalcast.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 0 % | 100 % | ✅ |
953 953 | [GoLogic](gologic.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
954 954 | [Groupe Altus](altusgroup.md) | [`workday`](ats-workday.md) | 1 | 100 % | 100 % | ✅ |
955 −| [Groupe BC2](bc2.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 0 % | 100 % | ❌ |
955 +| [Groupe BC2](bc2.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 0 % | 100 % | ✅ |
956 956 | [GUS](gus.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 1 | 0 % | 100 % | ✅ |
957 957 | [Havenpoint Health](havenpoint_health.md) | [`lever`](ats-lever.md) | 1 | 0 % | 100 % | ✅ |
958 958 | [Hinge Health](hinge_health.md) | [`ashby`](ats-ashby.md) | 1 | 100 % | 100 % | ✅ |
modified docs/connecteurs/ats-bamboohr.md +5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/ats-bamboohr.md
7 7 Rôle : Fiche plateforme ATS bamboohr — mécanique partagée + tableau des 37 tenants
8 −Généré : 2026-10-21 13:44 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-21 13:58 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 9 relancer le script pour régénérer.
10 10 =============================================================================
11 11 -->
@@ -43,7 +43,7 @@ Généré : 2026-10-21 13:44 EDT par scripts/gen_connector_docs.py — NE PAS
43 43
44 44 | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK |
45 45 |---|---|---|---|---|---|---|
46 −| [Broccolini](broccolini.md) | 23 | 0 % | 100 % | 100 % | 2026-10-21 13:37 | ❌ |
46 +| [Broccolini](broccolini.md) | 23 | 0 % | 100 % | 100 % | 2026-10-21 13:58 | ✅ |
47 47 | [dcbel](dcbel.md) | 22 | 0 % | 100 % | 100 % | 2026-10-21 10:38 | ❌ |
48 48 | [Produits Labelink](labelink.md) | 19 | 0 % | 100 % | 100 % | 2026-10-21 11:14 | ❌ |
49 49 | [OPAL-RT Technologies](opalrt.md) | 18 | 0 % | 100 % | 100 % | 2026-10-21 08:28 | ✅ |
@@ -56,9 +56,9 @@ Généré : 2026-10-21 13:44 EDT par scripts/gen_connector_docs.py — NE PAS
56 56 | [Ludia / Jam City](ludia.md) | 11 | 0 % | 100 % | 100 % | 2026-10-21 11:16 | ❌ |
57 57 | [Devimco Appartements](devimco.md) | 9 | 11 % | 100 % | 100 % | 2026-10-21 10:39 | ❌ |
58 58 | [Robotiq](robotiq.md) | 8 | 0 % | 100 % | 100 % | 2026-10-21 08:38 | ❌ |
59 −| [EMD-Batimo](batimoinc.md) | 8 | 0 % | 100 % | 100 % | 2026-10-21 13:34 | ❌ |
59 +| [EMD-Batimo](batimoinc.md) | 8 | 0 % | 100 % | 100 % | 2026-10-21 13:51 | ✅ |
60 60 | [eStruxture](estruxture.md) | 8 | 12 % | 100 % | 100 % | 2026-10-21 10:45 | ❌ |
61 −| [Big Bang](bigbang.md) | 7 | 29 % | 100 % | 100 % | 2026-10-21 13:43 | ❌ |
61 +| [Big Bang](bigbang.md) | 7 | 29 % | 100 % | 100 % | 2026-10-21 13:53 | ✅ |
62 62 | [Flare (cybersécurité)](flare.md) | 7 | 14 % | 100 % | 100 % | 2026-10-21 10:46 | ❌ |
63 63 | [North West Rubber](northwestrubber.md) | 7 | 0 % | 100 % | 100 % | 2026-10-21 08:27 | ✅ |
64 64 | [Rethink](rethinkcanada.md) | 7 | 0 % | 100 % | 100 % | 2026-10-21 11:14 | ❌ |
@@ -74,7 +74,7 @@ Généré : 2026-10-21 13:44 EDT par scripts/gen_connector_docs.py — NE PAS
74 74 | [OTT Financial](ott.md) | 2 | 0 % | 100 % | 100 % | 2026-10-21 08:29 | ✅ |
75 75 | [Toon Boom Animation](toonboom.md) | 2 | 0 % | 100 % | 100 % | 2026-10-21 12:12 | ❌ |
76 76 | [Ziptrek Tremblant](ziptrekeco.md) | 2 | 100 % | 100 % | 100 % | 2026-10-21 12:57 | ❌ |
77 −| [Groupe BC2](bc2.md) | 1 | 0 % | 100 % | 100 % | 2026-10-21 13:35 | ❌ |
77 +| [Groupe BC2](bc2.md) | 1 | 0 % | 100 % | 100 % | 2026-10-21 13:52 | ✅ |
78 78 | [Aliments Ouimet-Cordon Bleu inc.](cordonbleu.md) | 1 | 100 % | 100 % | 100 % | 2026-10-21 10:36 | ❌ |
79 79 | [Poulet Rouge](pouletrouge.md) | 1 | 0 % | 100 % | 100 % | 2026-10-21 08:29 | ✅ |
80 80 | [Openmind Technologies](openmindt.md) | 1 | 0 % | 100 % | 100 % | 2026-10-21 08:28 | ✅ |
modified docs/connecteurs/broccolini.md +19 −15
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/broccolini.md
7 7 Rôle : Fiche connecteur — Broccolini (employeur direct, ATS bamboohr)
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-21 13:58 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,7 +16,7 @@ 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** : [Broccolini]()
19 +- **Site** : [Broccolini](https://www.broccolini.com)
20 20 - **Page carrières** : https://broccolini.bamboohr.com/careers
21 21 - **Secteurs** : Construction, Immobilier
22 22 - **Région** : Montréal
@@ -36,14 +36,14 @@ 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 **22 offres actives** de la source (base live, 2026-10-14 18:40 EDT).
39 +Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-10-21 13:58 EDT).
40 40
41 41 | Champ (`jobs.*`) | Rôle | Complétude |
42 42 |---|---|---|
43 43 | `title` — Titre | titre du poste | 100 % |
44 44 | `employer` — Employeur | nom de l'entreprise | 100 % |
45 45 | `url` — URL | lien direct vers l'offre originale | 100 % |
46 −| `description` — Description | texte complet (HTML nettoyé) | 95 % |
46 +| `description` — Description | texte complet (HTML nettoyé) | 96 % |
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 % |
@@ -57,12 +57,12 @@ Complétude mesurée sur les **22 offres actives** de la source (base live, 2026
57 57 | `date_posted` — Date de parution | ISO 8601 | 100 % |
58 58 | `date_deadline` — Date limite | date limite pour postuler | 0 % |
59 59 | `category` — Catégorie | taxonomie interne (TI, Santé, …) | 91 % |
60 −| `language` — Langue | fr / en / bilingue (source ou heuristique) | 95 % |
60 +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 96 % |
61 61 | `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % |
62 62 | `apply_url` — Candidature | lien de candidature directe | 0 % |
63 63 | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % |
64 64
65 −Exemple réel : *Directeur(trice), Prédéveloppement résidentiel \| Director, Residential Pre-Development* — Montréal · ∅ · parue le 2026-10-05.
65 +Exemple réel : *Planificateur(trice) de construction \| Construction Scheduler* — Montréal · ∅ · parue le 2026-10-16.
66 66
67 67 ## Fréquence & budgets
68 68
@@ -77,19 +77,23 @@ Exemple réel : *Directeur(trice), Prédéveloppement résidentiel \| Director,
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-21 13:58 EDT dans `data/jobka.db`)*
81 81
82 −- **Offres en base** : 30 (dont **22 actives**, 0 masquées comme doublons `dup_of`)
83 −- **Salaire** : 0/22 actives (0 %)
84 −- **GPS** : 22/22 actives (100 %)
85 −- **Mode** : 22/22 actives (100 %)
86 −- **Parution** : 22/22 actives (100 %)
87 −- **Dernier sync** : 2026-10-14 18:16 — trouvées 22, +0, ~0, -0
88 −- **Syncs enregistrés** (`sync_log`) : 644
82 +- **Offres en base** : 32 (dont **23 actives**, 0 masquées comme doublons `dup_of`)
83 +- **Salaire** : 0/23 actives (0 %)
84 +- **GPS** : 23/23 actives (100 %)
85 +- **Mode** : 23/23 actives (100 %)
86 +- **Parution** : 23/23 actives (100 %)
87 +- **Dernier sync** : 2026-10-21 13:58 — trouvées 23, +0, ~0, -0
88 +- **Syncs enregistrés** (`sync_log`) : 741
89 89
90 90 ## Erreurs & dépannage
91 91
92 −Aucune erreur dans `sync_log` pour cette source.
92 +Erreurs relevées dans `sync_log` :
93 +
94 +| Erreur | Occurrences | Dernière fois |
95 +|---|---|---|
96 +| 404 Client Error: Not Found for url: https://broccolini.bamboohr.com/careers/list | 11 | 2026-10-21 13:37 |
93 97
94 98 - Rejouer un sync isolé : `.venv/bin/python run.py sync broccolini` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='broccolini' ORDER BY ts DESC LIMIT 5;"`
95 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`.
modified jobka/connectors/broccolini.py +30 −1
@@ -5,12 +5,41 @@
5 5 # Fichier : jobka/connectors/broccolini.py
6 6 # Rôle : Connecteur Broccolini — bamboohr (org « broccolini »)
7 7 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-18]
8 −# Créé : 2026-08-18 Modifié : 2026-08-18
8 +# Créé : 2026-08-18 Modifié : 2026-10-21
9 9 # =============================================================================
10 10 from .bamboohr import BambooHRConnector
11 11
12 12
13 13 class BroccoliniConnector(BambooHRConnector):
14 + """Broccolini — développeur immobilier et constructeur montréalais
15 + (bureaux, industriel, résidentiel ; www.broccolini.com) qui publie ses
16 + postes sur ce board BambooHR. Volume QC stable autour de 23
17 + (médiane 23.0), surtout Montréal.
18 +
19 + 2026-10-21 : broken = PANNE MONDIALE DE LA PLATEFORME BambooHR (incident
20 + de sécurité PHP2SHELL), rien à réparer côté connecteur — même panne que
21 + les frères rethinkcanada, robotiq, scalia, surmesur, toonboom, triotech,
22 + vicpark, ziptrekeco, batimoinc, bc2 et bigbang traités le même jour.
23 + BambooHR a mis ses portails carrières hors ligne par précaution entre
24 + 08:34 et 08:37 EDT : /careers/list = 404 « Route Not Found ». Le tenant
25 + était vert avec found=23 (= médiane) au sync de 07:23:19 le matin même,
26 + premier échec à 10:16:50 (première rotation du scheduler après la
27 + fenêtre), 11 échecs 404 consécutifs jusqu'à 13:37:33. Pas une migration
28 + d'ATS : www.broccolini.com/en/carrieres pointe toujours vers
29 + broccolini.bamboohr.com/careers (vérifié live). Le sync échouait
30 + proprement (ok=0, raise_for_status 404) donc AUCUN retrait pendant la
31 + panne. FIN DE PANNE constatée pendant la mission : /careers/list de
32 + nouveau 200 (totalCount=47) sur broccolini ET le frère mitacs, et le
33 + sync horaire de 13:54:28 avait déjà reverdit le tenant tout seul
34 + (ok=1, found=23, removed=0) — re-prouvé par sync isolé pendant la
35 + mission (found=23 = médiane, removed=0). status.bamboohr.com encore en
36 + MONITORING au moment du constat : les portails carrières sont revenus
37 + avant la clôture officielle de l'incident. Artefact vague C corrigé :
38 + url vide dans sources.json → https://www.broccolini.com (broccolini.com
39 + redirige vers www.broccolini.com/fr, 200 vérifié live, « Broccolini |
40 + Investir. Développer. Construire. »).
41 + """
42 +
14 43 source_id = 'broccolini'
15 44 EMPLOYER = 'Broccolini'
16 45 ORG = 'broccolini'
17 46
Menu

Theme