[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>
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 | |