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