SPB Git

spb/job-ka

Public

[ka6] connecteur bc2: broken = PANNE MONDIALE BambooHR (incident de sécurité PHP2SHELL), 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 et batimoinc f3a1dbe1 le même jour. Le tenant était vert avec found=1 (= médiane 1.0) au sync de 07:20:40 le 2026-10-21, premier échec à 10:14:55, première rotation du scheduler après la fenêtre de mise hors ligne des portails BambooHR (08:34-08:37 EDT) : /careers/list = 404 text/plain {"error_msg":"404 Route Not Found"} sur bc2 ET le frère mitacs (vérifiés live pendant la mission), status.bamboohr.com toujours MONITORING (PHP2SHELL, « UPDATE: We have temporarily taking BambooHR offline as a precaution »). Pas une migration d'ATS. Le sync échoue proprement (ok=0, raise_for_status 404, re-vérifié par sync isolé : removed=0) donc AUCUN retrait — l'offre QC (ARCHITECTE PAYSAGISTE, Montréal, urbanisme Groupe BC2) reste active en base ; dès le retour de BambooHR (sonder /careers/list, 200 = fenêtre finie, pattern fenêtre de maintenance Workday) le sync horaire repart seul. Artefact vague C : url vide dans sources.json → https://groupebc2.ca (200 vérifié live, « Groupe BC2 — Activer la vitalité des milieux et des communautés » ; groupebc2.com redirige vers le .ca). Docstring chronologie 1re intervention, fiches bc2.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 f3a1dbe Browse files

5 changed files +48 −20

modified data/sources.json +1 −1
@@ -303,7 +303,7 @@
303 303 {
304 304 "id": "bc2",
305 305 "name": "Groupe BC2",
306 − "url": "",
306 + "url": "https://groupebc2.ca",
307 307 "careers_url": "https://bc2.bamboohr.com/careers",
308 308 "sectors": [
309 309 "Urbanisme",
modified docs/connecteurs/INDEX.md +7 −7
@@ -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:13 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-21 13:28 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:13 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:28 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** — **26132 offres actives** (23131 directes, 3001 portails ; 131 masquées comme doublons inter-sources, soit 26001 visibles). 1134 fiches.
17 +**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **26134 offres actives** (23133 directes, 3001 portails ; 131 masquées comme doublons inter-sources, soit 26003 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,13 +22,13 @@ 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 | 7515 | 48 % | 87 % |
25 +| [`workday`](ats-workday.md) | 232 | 7514 | 48 % | 87 % |
26 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 % |
30 30 | [`njoyn`](ats-njoyn.md) | 11 | 1253 | 69 % | 87 % |
31 −| [`workland`](ats-workland.md) | 1 | 1181 | 35 % | 100 % |
31 +| [`workland`](ats-workland.md) | 1 | 1184 | 35 % | 100 % |
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 % |
@@ -61,7 +61,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
61 61
62 62 | Employeur | ATS | Actives | Salaire | GPS | Dernier sync OK |
63 63 |---|---|---|---|---|---|
64 −| [Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…)](atlas_workland.md) | [`workland`](ats-workland.md) | 1181 | 35 % | 100 % | ✅ |
64 +| [Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…)](atlas_workland.md) | [`workland`](ats-workland.md) | 1184 | 35 % | 100 % | ✅ |
65 65 | [Couche-Tard / Circle K](circlek.md) | [`workday`](ats-workday.md) | 1003 | 69 % | 68 % | ✅ |
66 66 | [Bombardier](bombardier.md) | [`successfactors`](ats-successfactors.md) | 959 | 1 % | 100 % | ✅ |
67 67 | [Walmart Canada](walmart.md) | [`workday`](ats-workday.md) | 953 | 98 % | 90 % | ✅ |
@@ -134,8 +134,8 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
134 134 | [BPA (Experts-conseils)](bpa.md) | [`dayforce`](ats-dayforce.md) | 56 | 0 % | 100 % | ✅ |
135 135 | [Kruger](kruger.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 55 | 9 % | 100 % | ✅ |
136 136 | [McKesson Canada](mckesson.md) | [`workday`](ats-workday.md) | 55 | 87 % | 89 % | ✅ |
137 −| [Agropur](agropur.md) | [`workday`](ats-workday.md) | 54 | 94 % | 96 % | ✅ |
138 137 | [Squarepoint Capital](squarepointcapital.md) | [`greenhouse`](ats-greenhouse.md) | 54 | 37 % | 100 % | ✅ |
138 +| [Agropur](agropur.md) | [`workday`](ats-workday.md) | 53 | 94 % | 96 % | ✅ |
139 139 | [PwC Canada](pwc.md) | [`workday`](ats-workday.md) | 52 | 98 % | 73 % | ✅ |
140 140 | [TELUS](telus.md) | [`successfactors`](ats-successfactors.md) | 52 | 8 % | 100 % | ✅ |
141 141 | [Beneva](beneva.md) | [`workday`](ats-workday.md) | 51 | 2 % | 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:13 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-21 13:28 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:13 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:10 | ❌ |
46 +| [Broccolini](broccolini.md) | 23 | 0 % | 100 % | 100 % | 2026-10-21 13:22 | ❌ |
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:13 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:12 | ❌ |
59 +| [EMD-Batimo](batimoinc.md) | 8 | 0 % | 100 % | 100 % | 2026-10-21 13:19 | ❌ |
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:08 | ❌ |
61 +| [Big Bang](bigbang.md) | 7 | 29 % | 100 % | 100 % | 2026-10-21 13:21 | ❌ |
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:13 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:07 | ❌ |
77 +| [Groupe BC2](bc2.md) | 1 | 0 % | 100 % | 100 % | 2026-10-21 13:27 | ❌ |
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/bc2.md +7 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/bc2.md
7 7 Rôle : Fiche connecteur — Groupe BC2 (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:28 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** : [Groupe BC2]()
19 +- **Site** : [Groupe BC2](https://groupebc2.ca)
20 20 - **Page carrières** : https://bc2.bamboohr.com/careers
21 21 - **Secteurs** : Urbanisme, Conseil
22 22 - **Région** : Montréal
@@ -36,7 +36,7 @@ Généré : 2026-10-14 18:40 EDT par scripts/gen_connector_docs.py — NE PAS
36 36
37 37 ## Champs → schéma
38 38
39 −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-10-14 18:40 EDT).
39 +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-10-21 13:28 EDT).
40 40
41 41 | Champ (`jobs.*`) | Rôle | Complétude |
42 42 |---|---|---|
@@ -77,15 +77,15 @@ Exemple réel : *ARCHITECTE PAYSAGISTE* — Montréal · ∅ · parue le 2026-10
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:28 EDT dans `data/jobka.db`)*
81 81
82 82 - **Offres en base** : 4 (dont **1 actives**, 0 masquées comme doublons `dup_of`)
83 83 - **Salaire** : 0/1 actives (0 %)
84 84 - **GPS** : 1/1 actives (100 %)
85 85 - **Mode** : 1/1 actives (100 %)
86 86 - **Parution** : 1/1 actives (100 %)
87 −- **Dernier sync** : 2026-10-14 18:13 — trouvées 1, +0, ~0, -0
88 −- **Syncs enregistrés** (`sync_log`) : 667
87 +- **Dernier sync** : 2026-10-21 13:27 — trouvées 0, +0, ~0, -0, **ÉCHEC : 404 Client Error: Not Found for url: https://bc2.bamboohr.com/careers/list**
88 +- **Syncs enregistrés** (`sync_log`) : 764
89 89
90 90 ## Erreurs & dépannage
91 91
@@ -93,6 +93,7 @@ Erreurs relevées dans `sync_log` :
93 93
94 94 | Erreur | Occurrences | Dernière fois |
95 95 |---|---|---|
96 +| 404 Client Error: Not Found for url: https://bc2.bamboohr.com/careers/list | 11 | 2026-10-21 13:27 |
96 97 | HTTPSConnectionPool(host='bc2.bamboohr.com', port=443): Max retries exceeded with url: /ca… | 1 | 2026-09-18 12:53 |
97 98
98 99 - Rejouer un sync isolé : `.venv/bin/python run.py sync bc2` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='bc2' ORDER BY ts DESC LIMIT 5;"`
modified jobka/connectors/bc2.py +28 −1
@@ -5,12 +5,39 @@
5 5 # Fichier : jobka/connectors/bc2.py
6 6 # Rôle : Connecteur Groupe BC2 — bamboohr (org « bc2 »)
7 7 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-17]
8 −# Créé : 2026-08-17 Modifié : 2026-08-17
8 +# Créé : 2026-08-17 Modifié : 2026-10-21
9 9 # =============================================================================
10 10 from .bamboohr import BambooHRConnector
11 11
12 12
13 13 class Bc2Connector(BambooHRConnector):
14 + """Groupe BC2 — firme-conseil québécoise en urbanisme, aménagement et
15 + architecture de paysage (groupebc2.ca, Montréal) qui publie ses postes
16 + sur ce board BambooHR. Volume QC faible et stable autour de 1 (médiane 1.0).
17 +
18 + 2026-10-21 : broken = PANNE MONDIALE DE LA PLATEFORME BambooHR (incident
19 + de sécurité PHP2SHELL), rien à réparer côté connecteur — même panne que
20 + les frères rethinkcanada, robotiq, scalia, surmesur, toonboom, triotech,
21 + vicpark, ziptrekeco et batimoinc traités le même jour. BambooHR a mis ses
22 + portails carrières hors ligne par précaution entre 08:34 et 08:37 EDT :
23 + /careers/list = 404 text/plain {"error_msg":"404 Route Not Found"}
24 + (Cloudflare) sur bc2 ET le frère mitacs (vérifiés live pendant la
25 + mission), status.bamboohr.com = « MONITORING — PHP2SHELL… UPDATE: We
26 + have temporarily taking BambooHR offline as a precaution ». Pas une
27 + migration d'ATS : le tenant était vert avec found=1 (= médiane) au sync
28 + de 07:20:40 le matin même, premier échec à 10:14:55 (première rotation
29 + du scheduler après la fenêtre), et le site officiel https://groupebc2.ca
30 + répond 200. Le sync échoue proprement (ok=0, raise_for_status 404,
31 + re-vérifié par sync isolé pendant la mission : removed=0) donc AUCUN
32 + retrait : l'offre QC (ARCHITECTE PAYSAGISTE, Montréal) reste active en
33 + base ; dès que BambooHR revient (sonder /careers/list, 200 = fenêtre
34 + finie, cf. pattern fenêtre de maintenance Workday), le sync horaire
35 + repart seul. Artefact vague C corrigé : url vide dans sources.json →
36 + https://groupebc2.ca (200 vérifié live, « Groupe BC2 — Activer la
37 + vitalité des milieux et des communautés » ; groupebc2.com redirige
38 + vers le .ca).
39 + """
40 +
14 41 source_id = 'bc2'
15 42 EMPLOYER = 'Groupe BC2'
16 43 ORG = 'bc2'
17 44
Menu

Theme