[ka6] fix connecteur dentons: stale causé par un ROLLBACK AUTOMATIQUE COLLATÉRAL — réapplication du commit 89aedd9 (revert du revert c52c1eb). Le connecteur dentons (SuccessFactors careers.dentons.com, créé le 2026-10-06 matin par la mission dentons_europe) était SAIN et VERT (syncs found=2 à 10:10 et 10:14), mais le commit entier 89aedd9 a été reverté à 10:20 par le rollback automatique de la supervision (vraisemblablement déclenché par le volet dentons_europe found=0 du même commit — un found=0 pourtant structurel et documenté). Le revert a supprimé jobka/connectors/dentons.py et son entrée sources.json → plus aucun sync depuis 10:14 → stale 7.7 h. La source est re-vérifiée VIVANTE : sitemap 200, ~140 offres, les 2 offres QC toujours présentes (1362877757 « Accounts Payable Lead » + 1362980357 « Responsable, Comptes fournisseurs », paire FR/EN, Montréal). Réparation minimale : git revert --no-commit c52c1eb — restaure le connecteur dentons, l'entrée registre, les 3 fixes génériques successfactors.py (_balanced_itemprop, titre via itemprop=title, garde QC sur addressLocality multi-villes), parse_date java.util.Date dans normalize.py + son test, et les fiches docs/connecteurs/. Tests réels : sync dentons ×2 → found=2 (= médiane 2.0), ok=1, 0,4 s, les 2 offres réactivées ; non-régression plateforme SF sur alstom → found=247 (médiane ~224), ok=1, 8,6 s ; 107 tests pytest verts. Leçon pour la supervision : un rollback de commit multi-volets peut tuer un connecteur frère sain — si dentons_europe est re-signalé avec found=0, c'est STRUCTUREL (board Europe sans offre QC), ne pas re-reverter ce commit.
11 changed files +421 −212
modified
data/sources.json
+14 −1
@@ -9920,10 +9920,23 @@ | ||
| 9920 | 9920 | "status": "actif", |
| 9921 | 9921 | "region": "Québec City, Laval, Lévis" |
| 9922 | 9922 | }, |
| 9923 | + { | |
| 9924 | + "id": "dentons", | |
| 9925 | + "name": "Dentons", | |
| 9926 | + "url": "https://www.dentons.com", | |
| 9927 | + "careers_url": "https://careers.dentons.com", | |
| 9928 | + "sectors": [ | |
| 9929 | + "Juridique", | |
| 9930 | + "Conseil" | |
| 9931 | + ], | |
| 9932 | + "connector": "successfactors", | |
| 9933 | + "status": "actif", | |
| 9934 | + "region": "Montréal" | |
| 9935 | + }, | |
| 9923 | 9936 | { |
| 9924 | 9937 | "id": "dentons_europe", |
| 9925 | 9938 | "name": "Dentons", |
| 9926 | − "url": "", | |
| 9939 | + "url": "https://www.dentons.com", | |
| 9927 | 9940 | "careers_url": "https://apply.workable.com/dentons-europe", |
| 9928 | 9941 | "sectors": [ |
| 9929 | 9942 | "Juridique", |
modified
docs/connecteurs/INDEX.md
+80 −79
@@ -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-06 02:02 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-10-06 10:15 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-06 02:02 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-06 10:15 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 | −**1103 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25944 offres actives** (23177 directes, 2767 portails ; 121 masquées comme doublons inter-sources, soit 25823 visibles). 1133 fiches. | |
| 17 | +**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25827 offres actives** (23058 directes, 2769 portails ; 122 masquées comme doublons inter-sources, soit 25705 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,29 +22,29 @@ 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 | 7648 | 45 % | 87 % | | |
| 26 | −| [`smartrecruiters`](ats-smartrecruiters.md) | 172 | 2978 | 17 % | 99 % | | |
| 27 | −| [`dayforce`](ats-dayforce.md) | 129 | 1892 | 9 % | 100 % | | |
| 28 | −| [`workable`](ats-workable.md) | 71 | 1852 | 18 % | 100 % | | |
| 29 | −| [`successfactors`](ats-successfactors.md) | 11 | 1745 | 18 % | 94 % | | |
| 30 | −| [`workland`](ats-workland.md) | 1 | 1190 | 34 % | 100 % | | |
| 31 | −| [`njoyn`](ats-njoyn.md) | 11 | 1187 | 68 % | 85 % | | |
| 32 | −| [`greenhouse`](ats-greenhouse.md) | 132 | 846 | 19 % | 100 % | | |
| 25 | +| [`workday`](ats-workday.md) | 232 | 7626 | 45 % | 87 % | | |
| 26 | +| [`smartrecruiters`](ats-smartrecruiters.md) | 172 | 2977 | 17 % | 99 % | | |
| 27 | +| [`dayforce`](ats-dayforce.md) | 129 | 1887 | 9 % | 100 % | | |
| 28 | +| [`workable`](ats-workable.md) | 71 | 1850 | 18 % | 100 % | | |
| 29 | +| [`successfactors`](ats-successfactors.md) | 12 | 1663 | 19 % | 98 % | | |
| 30 | +| [`workland`](ats-workland.md) | 1 | 1198 | 34 % | 100 % | | |
| 31 | +| [`njoyn`](ats-njoyn.md) | 11 | 1175 | 67 % | 85 % | | |
| 32 | +| [`greenhouse`](ats-greenhouse.md) | 132 | 847 | 19 % | 100 % | | |
| 33 | 33 | | [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 740 | 5 % | 100 % | |
| 34 | −| [`lever`](ats-lever.md) | 59 | 622 | 20 % | 96 % | | |
| 35 | −| [`breezy`](ats-breezy.md) | 71 | 396 | 36 % | 95 % | | |
| 34 | +| [`lever`](ats-lever.md) | 59 | 620 | 20 % | 96 % | | |
| 35 | +| [`breezy`](ats-breezy.md) | 71 | 400 | 37 % | 94 % | | |
| 36 | 36 | | [`ashby`](ats-ashby.md) | 41 | 297 | 44 % | 60 % | |
| 37 | 37 | | [`bamboohr`](ats-bamboohr.md) | 37 | 290 | 8 % | 100 % | |
| 38 | −| [`recruitee`](ats-recruitee.md) | 30 | 279 | 19 % | 96 % | | |
| 39 | −| [`taleo_tbe`](ats-taleo_tbe.md) | 7 | 207 | 29 % | 56 % | | |
| 38 | +| [`recruitee`](ats-recruitee.md) | 30 | 277 | 19 % | 97 % | | |
| 39 | +| [`taleo_tbe`](ats-taleo_tbe.md) | 7 | 206 | 28 % | 56 % | | |
| 40 | 40 | | [`zoho_recruit`](ats-zoho_recruit.md) | 17 | 167 | 13 % | 89 % | |
| 41 | −| [`jazzhr`](ats-jazzhr.md) | 28 | 150 | 15 % | 93 % | | |
| 42 | −| [`teamtailor`](ats-teamtailor.md) | 9 | 146 | 32 % | 95 % | | |
| 41 | +| [`jazzhr`](ats-jazzhr.md) | 28 | 151 | 15 % | 92 % | | |
| 42 | +| [`teamtailor`](ats-teamtailor.md) | 9 | 147 | 31 % | 95 % | | |
| 43 | 43 | | [`adp`](ats-adp.md) | 17 | 140 | 40 % | 95 % | |
| 44 | −| [`taleo`](ats-taleo.md) | 5 | 123 | 0 % | 100 % | | |
| 45 | −| [`digitalrecruiters`](ats-digitalrecruiters.md) | 2 | 73 | 95 % | 59 % | | |
| 46 | −| [`eightfold`](ats-eightfold.md) | 1 | 61 | 82 % | 100 % | | |
| 47 | −| [`ultipro`](ats-ultipro.md) | 4 | 61 | 51 % | 100 % | | |
| 44 | +| [`taleo`](ats-taleo.md) | 5 | 121 | 0 % | 100 % | | |
| 45 | +| [`digitalrecruiters`](ats-digitalrecruiters.md) | 2 | 70 | 94 % | 59 % | | |
| 46 | +| [`ultipro`](ats-ultipro.md) | 4 | 62 | 50 % | 100 % | | |
| 47 | +| [`eightfold`](ats-eightfold.md) | 1 | 60 | 82 % | 100 % | | |
| 48 | 48 | | [`icims`](ats-icims.md) | 7 | 52 | 42 % | 81 % | |
| 49 | 49 | | [`custom`](ats-custom.md) | 1 | 35 | 34 % | 89 % | |
| 50 | 50 | |
@@ -52,116 +52,115 @@ 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) | 308 | 17 % | 2026-10-06 01:27 | | |
| 56 | −| [Guichet-Emplois (Canada)](guichet_emplois.md) | 563 | 100 % | 2026-10-06 01:38 | | |
| 57 | −| [Jobillico](jobillico.md) | 1896 | 35 % | 2026-10-06 01:49 | | |
| 55 | +| [Espresso-Jobs](espresso_jobs.md) | 318 | 18 % | 2026-10-06 08:13 | | |
| 56 | +| [Guichet-Emplois (Canada)](guichet_emplois.md) | 526 | 100 % | 2026-10-06 08:22 | | |
| 57 | +| [Jobillico](jobillico.md) | 1925 | 35 % | 2026-10-06 08:28 | | |
| 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) |
| 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) | 1190 | 34 % | 100 % | ✅ | | |
| 64 | +| [Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…)](atlas_workland.md) | [`workland`](ats-workland.md) | 1198 | 34 % | 100 % | ✅ | | |
| 65 | 65 | | [Couche-Tard / Circle K](circlek.md) | [`workday`](ats-workday.md) | 1029 | 68 % | 66 % | ✅ | |
| 66 | −| [Walmart Canada](walmart.md) | [`workday`](ats-workday.md) | 1004 | 98 % | 91 % | ✅ | | |
| 67 | −| [Bombardier](bombardier.md) | [`successfactors`](ats-successfactors.md) | 844 | 0 % | 100 % | ✅ | | |
| 66 | +| [Walmart Canada](walmart.md) | [`workday`](ats-workday.md) | 1015 | 98 % | 91 % | ✅ | | |
| 67 | +| [Bombardier](bombardier.md) | [`successfactors`](ats-successfactors.md) | 846 | 0 % | 100 % | ✅ | | |
| 68 | 68 | | [Solution SFT](solution_sft.md) | [`workable`](ats-workable.md) | 843 | 26 % | 100 % | ✅ | |
| 69 | −| [Santé Québec — Montréal](sante_montreal.md) | [`njoyn`](ats-njoyn.md) | 730 | 98 % | 98 % | ✅ | | |
| 70 | −| [Université McGill](mcgill.md) | [`workday`](ats-workday.md) | 573 | 33 % | 99 % | ✅ | | |
| 71 | −| [TEHORA](tehora.md) | [`workable`](ats-workable.md) | 410 | 0 % | 100 % | ✅ | | |
| 72 | −| [Globalhr](globalhr.md) | [`workday`](ats-workday.md) | 301 | 0 % | 83 % | ✅ | | |
| 69 | +| [Santé Québec — Montréal](sante_montreal.md) | [`njoyn`](ats-njoyn.md) | 721 | 98 % | 98 % | ✅ | | |
| 70 | +| [Université McGill](mcgill.md) | [`workday`](ats-workday.md) | 560 | 31 % | 100 % | ✅ | | |
| 71 | +| [TEHORA](tehora.md) | [`workable`](ats-workable.md) | 409 | 0 % | 100 % | ✅ | | |
| 72 | +| [Globalhr](globalhr.md) | [`workday`](ats-workday.md) | 299 | 0 % | 83 % | ✅ | | |
| 73 | 73 | | [CGI](cgi.md) | [`njoyn`](ats-njoyn.md) | 294 | 0 % | 95 % | ✅ | |
| 74 | −| [Mouvement Desjardins](desjardins.md) | [`workday`](ats-workday.md) | 282 | 1 % | 92 % | ✅ | | |
| 75 | −| [Go RH](gorh.md) | [`lever`](ats-lever.md) | 265 | 18 % | 98 % | ✅ | | |
| 74 | +| [Mouvement Desjardins](desjardins.md) | [`workday`](ats-workday.md) | 278 | 1 % | 92 % | ✅ | | |
| 75 | +| [Go RH](gorh.md) | [`lever`](ats-lever.md) | 263 | 18 % | 98 % | ✅ | | |
| 76 | 76 | | [Slihrms](slihrms.md) | [`workday`](ats-workday.md) | 257 | 11 % | 94 % | ✅ | |
| 77 | −| [Alstom](alstom.md) | [`successfactors`](ats-successfactors.md) | 247 | 8 % | 100 % | ✅ | | |
| 78 | 77 | | [Rechercher des](gianttiger.md) | [`workday`](ats-workday.md) | 246 | 1 % | 100 % | ✅ | |
| 78 | +| [Alstom](alstom.md) | [`successfactors`](ats-successfactors.md) | 245 | 8 % | 99 % | ✅ | | |
| 79 | 79 | | [American Iron and Metal](americanironandmetal.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 226 | 24 % | 100 % | ✅ | |
| 80 | −| [Hydro-Québec](hydroquebec.md) | [`successfactors`](ats-successfactors.md) | 224 | 47 % | 53 % | ✅ | | |
| 81 | 80 | | [CIMA+](cima2.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 218 | 1 % | 100 % | ✅ | |
| 82 | −| [Airbus Canada](airbus.md) | [`workday`](ats-workday.md) | 198 | 4 % | 99 % | ✅ | | |
| 83 | −| [Groupe Banque TD](td.md) | [`workday`](ats-workday.md) | 171 | 96 % | 94 % | ✅ | | |
| 84 | −| [Reitmans](reitmanscanadalteltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 169 | 20 % | 100 % | ✅ | | |
| 81 | +| [Airbus Canada](airbus.md) | [`workday`](ats-workday.md) | 199 | 4 % | 99 % | ✅ | | |
| 82 | +| [Groupe Banque TD](td.md) | [`workday`](ats-workday.md) | 168 | 96 % | 95 % | ✅ | | |
| 85 | 83 | | [Consignaction (AQRCB)](consignaction.md) | [`workday`](ats-workday.md) | 167 | 84 % | 100 % | ✅ | |
| 86 | 84 | | [Sodexo Canada](sodexocanadaltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 166 | 84 % | 99 % | ✅ | |
| 85 | +| [Reitmans](reitmanscanadalteltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 165 | 20 % | 100 % | ✅ | | |
| 87 | 86 | | [CISSS de Laval](cisss_laval.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 164 | 1 % | 100 % | ✅ | |
| 88 | 87 | | [La Vie en Rose](lavieenrose.md) | [`dayforce`](ats-dayforce.md) | 158 | 3 % | 100 % | ✅ | |
| 89 | 88 | | [Ubisoft](ubisoft.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 152 | 0 % | 100 % | ✅ | |
| 90 | 89 | | [Le Groupe Maurice](groupemaurice.md) | [`dayforce`](ats-dayforce.md) | 150 | 0 % | 100 % | ✅ | |
| 91 | 90 | | [Vetstrategy](vetstrategy.md) | [`dayforce`](ats-dayforce.md) | 148 | 4 % | 100 % | ✅ | |
| 92 | −| [TJX Canada (Winners, HomeSense, Marshalls)](tjx.md) | [`workday`](ats-workday.md) | 140 | 99 % | 100 % | ✅ | | |
| 91 | +| [Hydro-Québec](hydroquebec.md) | [`successfactors`](ats-successfactors.md) | 142 | 75 % | 85 % | ✅ | | |
| 93 | 92 | | [CISSS de l'Abitibi-Témiscamingue](cisss_abitibi.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 139 | 0 % | 100 % | ✅ | |
| 93 | +| [TJX Canada (Winners, HomeSense, Marshalls)](tjx.md) | [`workday`](ats-workday.md) | 138 | 99 % | 100 % | ✅ | | |
| 94 | 94 | | [Groupe Helios](groupehelios.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 123 | 1 % | 100 % | ✅ | |
| 95 | −| [Intact Corporation financière](intactfc.md) | [`workday`](ats-workday.md) | 119 | 0 % | 78 % | ✅ | | |
| 95 | +| [Intact Corporation financière](intactfc.md) | [`workday`](ats-workday.md) | 118 | 0 % | 78 % | ✅ | | |
| 96 | 96 | | [Artelia Canada](artelia.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 116 | 0 % | 100 % | ✅ | |
| 97 | 97 | | [Deloitte Canada](deloitte.md) | [`successfactors`](ats-successfactors.md) | 115 | 98 % | 100 % | ✅ | |
| 98 | 98 | | [Vidéotron](videotron.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 108 | 6 % | 100 % | ✅ | |
| 99 | 99 | | [CISSS des Laurentides](cisss_laurentides.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 105 | 2 % | 100 % | ✅ | |
| 100 | 100 | | [CISSS de Chaudière-Appalaches](cisss_chaudiere_appalaches.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 100 | 5 % | 100 % | ✅ | |
| 101 | −| [Sépaq](sepaq.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 99 | 55 % | 9 % | ✅ | | |
| 101 | +| [Sépaq](sepaq.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 98 | 54 % | 9 % | ✅ | | |
| 102 | 102 | | [Dentalcorp](dentalcorp.md) | [`workday`](ats-workday.md) | 96 | 17 % | 100 % | ✅ | |
| 103 | 103 | | [Genetec](genetec_inc.md) | [`workable`](ats-workable.md) | 96 | 0 % | 100 % | ✅ | |
| 104 | 104 | | [Cascades](cascades.md) | [`successfactors`](ats-successfactors.md) | 93 | 75 % | 100 % | ✅ | |
| 105 | −| [BMO Groupe financier](bmo.md) | [`workday`](ats-workday.md) | 90 | 90 % | 83 % | ✅ | | |
| 105 | +| [BMO Groupe financier](bmo.md) | [`workday`](ats-workday.md) | 90 | 90 % | 82 % | ✅ | | |
| 106 | 106 | | [CISSS de l'Outaouais](cisss_outaouais.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 87 | 26 % | 100 % | ✅ | |
| 107 | 107 | | [Linen Chest](linenchest.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 87 | 8 % | 100 % | ✅ | |
| 108 | 108 | | [HIKINEX](recruiting.md) | [`breezy`](ats-breezy.md) | 86 | 0 % | 100 % | ✅ | |
| 109 | 109 | | [UAP Inc.](uapinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 86 | 45 % | 98 % | ✅ | |
| 110 | +| [Bulkbarn](bulkbarn.md) | [`dayforce`](ats-dayforce.md) | 83 | 0 % | 100 % | ✅ | | |
| 110 | 111 | | [CISSS de Lanaudière](cisss_lanaudiere.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 82 | 6 % | 100 % | ✅ | |
| 111 | 112 | | [Renaud-Bray](renaud_bray.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 82 | 0 % | 100 % | ✅ | |
| 112 | −| [Bulkbarn](bulkbarn.md) | [`dayforce`](ats-dayforce.md) | 81 | 0 % | 100 % | ✅ | | |
| 113 | +| [CAE](cae.md) | [`workday`](ats-workday.md) | 78 | 26 % | 90 % | ✅ | | |
| 113 | 114 | | [Promutuel Assurance](promutuel.md) | [`workday`](ats-workday.md) | 76 | 1 % | 100 % | ✅ | |
| 114 | −| [CAE](cae.md) | [`workday`](ats-workday.md) | 75 | 27 % | 93 % | ✅ | | |
| 115 | −| [iA Groupe financier](ia_groupe.md) | [`workday`](ats-workday.md) | 74 | 100 % | 99 % | ✅ | | |
| 116 | −| [Agnico Eagle Mines](agnico_eagle.md) | [`taleo`](ats-taleo.md) | 71 | 0 % | 100 % | ✅ | | |
| 115 | +| [iA Groupe financier](ia_groupe.md) | [`workday`](ats-workday.md) | 73 | 100 % | 99 % | ✅ | | |
| 116 | +| [Agnico Eagle Mines](agnico_eagle.md) | [`taleo`](ats-taleo.md) | 70 | 0 % | 100 % | ✅ | | |
| 117 | 117 | | [EMCO](emcocorporation.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 66 | 44 % | 100 % | ✅ | |
| 118 | −| [Gevernova](gevernova.md) | [`workday`](ats-workday.md) | 66 | 32 % | 91 % | ✅ | | |
| 119 | 118 | | [Gflenv](gflenv.md) | [`workday`](ats-workday.md) | 66 | 6 % | 92 % | ✅ | |
| 120 | −| [Banque CIBC](cibc.md) | [`workday`](ats-workday.md) | 63 | 0 % | 98 % | ✅ | | |
| 119 | +| [Gevernova](gevernova.md) | [`workday`](ats-workday.md) | 65 | 32 % | 91 % | ✅ | | |
| 121 | 120 | | [Laporte Experts Conseils](laportefr.md) | [`greenhouse`](ats-greenhouse.md) | 63 | 0 % | 100 % | ✅ | |
| 122 | 121 | | [Lifeworks](lifeworks.md) | [`workday`](ats-workday.md) | 62 | 29 % | 84 % | ✅ | |
| 123 | −| [Autodesk](autodesk.md) | [`eightfold`](ats-eightfold.md) | 61 | 82 % | 100 % | ✅ | | |
| 122 | +| [Agropur](agropur.md) | [`workday`](ats-workday.md) | 60 | 97 % | 93 % | ✅ | | |
| 123 | +| [Autodesk](autodesk.md) | [`eightfold`](ats-eightfold.md) | 60 | 82 % | 100 % | ✅ | | |
| 124 | 124 | | [Dexterra](dexterra.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 60 | 0 % | 100 % | ✅ | |
| 125 | 125 | | [Lightspeed Commerce](lightspeedhq.md) | [`ashby`](ats-ashby.md) | 60 | 7 % | 100 % | ✅ | |
| 126 | 126 | | [TELUS](telus.md) | [`successfactors`](ats-successfactors.md) | 60 | 0 % | 100 % | ✅ | |
| 127 | −| [Agropur](agropur.md) | [`workday`](ats-workday.md) | 57 | 96 % | 96 % | ✅ | | |
| 127 | +| [Banque CIBC](cibc.md) | [`workday`](ats-workday.md) | 58 | 0 % | 100 % | ✅ | | |
| 128 | +| [Beneva](beneva.md) | [`workday`](ats-workday.md) | 57 | 0 % | 100 % | ✅ | | |
| 128 | 129 | | [Kiewit (Ganotec)](kiewit_ganotec.md) | [`successfactors`](ats-successfactors.md) | 57 | 0 % | 100 % | ✅ | |
| 129 | −| [Beneva](beneva.md) | [`workday`](ats-workday.md) | 56 | 0 % | 100 % | ✅ | | |
| 130 | +| [Norda Stelo](nordastelo.md) | [`teamtailor`](ats-teamtailor.md) | 57 | 0 % | 95 % | ✅ | | |
| 130 | 131 | | [Gdv](gdv.md) | [`dayforce`](ats-dayforce.md) | 56 | 0 % | 100 % | ✅ | |
| 131 | −| [Norda Stelo](nordastelo.md) | [`teamtailor`](ats-teamtailor.md) | 56 | 0 % | 95 % | ✅ | | |
| 132 | 132 | | [Automobileendirect](automobileendirect.md) | [`dayforce`](ats-dayforce.md) | 55 | 0 % | 100 % | ✅ | |
| 133 | 133 | | [MaintainX](maintainx.md) | [`ashby`](ats-ashby.md) | 55 | 73 % | 78 % | ✅ | |
| 134 | 134 | | [Squarepoint Capital](squarepointcapital.md) | [`greenhouse`](ats-greenhouse.md) | 55 | 38 % | 100 % | ✅ | |
| 135 | 135 | | [ANCIA Personnel](anciapersonnelinc.md) | [`recruitee`](ats-recruitee.md) | 54 | 9 % | 100 % | ✅ | |
| 136 | 136 | | [Gray Collection (Groupe Antonopoulos)](graycollection.md) | [`dayforce`](ats-dayforce.md) | 54 | 0 % | 100 % | ✅ | |
| 137 | −| [Santé Québec](sante_quebec.md) | [`digitalrecruiters`](ats-digitalrecruiters.md) | 54 | 96 % | 44 % | ✅ | | |
| 138 | 137 | | [Groupe Canam](groupecanam.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 53 | 75 % | 98 % | ✅ | |
| 139 | 138 | | [Kruger](kruger.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 53 | 9 % | 100 % | ✅ | |
| 140 | 139 | | [PwC Canada](pwc.md) | [`workday`](ats-workday.md) | 53 | 98 % | 72 % | ✅ | |
| 141 | 140 | | [McKesson Canada](mckesson.md) | [`workday`](ats-workday.md) | 51 | 82 % | 82 % | ✅ | |
| 141 | +| [Santé Québec](sante_quebec.md) | [`digitalrecruiters`](ats-digitalrecruiters.md) | 51 | 96 % | 43 % | ✅ | | |
| 142 | 142 | | [Fairstone](fairstone.md) | [`workday`](ats-workday.md) | 48 | 48 % | 92 % | ✅ | |
| 143 | 143 | | [ApexFocusGroup](afg.md) | [`workable`](ats-workable.md) | 46 | 0 % | 100 % | ✅ | |
| 144 | 144 | | [Myhrabc](myhrabc.md) | [`workday`](ats-workday.md) | 46 | 48 % | 54 % | ✅ | |
| 145 | 145 | | [Unoria](unoria.md) | [`dayforce`](ats-dayforce.md) | 46 | 0 % | 100 % | ✅ | |
| 146 | 146 | | [BPA (Experts-conseils)](bpa.md) | [`dayforce`](ats-dayforce.md) | 45 | 0 % | 100 % | ✅ | |
| 147 | +| [Brand Momentum](brandmomentum.md) | [`breezy`](ats-breezy.md) | 45 | 73 % | 91 % | ✅ | | |
| 147 | 148 | | [Camions Excellence Peterbilt](excellencepeterbilt.md) | [`dayforce`](ats-dayforce.md) | 45 | 24 % | 100 % | ✅ | |
| 148 | 149 | | [Saputo](saputo.md) | [`workday`](ats-workday.md) | 45 | 84 % | 100 % | ✅ | |
| 149 | 150 | | [CHU de Québec — Université Laval](chu_quebec.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 44 | 2 % | 100 % | ✅ | |
| 150 | 151 | | [Laura Canada](lauracanada.md) | [`dayforce`](ats-dayforce.md) | 44 | 0 % | 100 % | ✅ | |
| 151 | 152 | | [Levio](levio.md) | [`greenhouse`](ats-greenhouse.md) | 44 | 0 % | 100 % | ✅ | |
| 153 | +| [Techo-Bloc](techo_bloc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 44 | 59 % | 100 % | ✅ | | |
| 152 | 154 | | [La Maison Simons](simons.md) | [`workday`](ats-workday.md) | 43 | 0 % | 88 % | ✅ | |
| 153 | 155 | | [Valsoft](valsoft_corp.md) | [`workable`](ats-workable.md) | 43 | 5 % | 100 % | ✅ | |
| 154 | −| [Alterra](alterra.md) | [`workday`](ats-workday.md) | 42 | 71 % | 98 % | ✅ | | |
| 156 | +| [Alterra](alterra.md) | [`workday`](ats-workday.md) | 42 | 71 % | 100 % | ✅ | | |
| 155 | 157 | | [Bdo](bdo.md) | [`workday`](ats-workday.md) | 42 | 10 % | 71 % | ✅ | |
| 156 | 158 | | [Cogeco](cogeco.md) | [`workday`](ats-workday.md) | 42 | 19 % | 48 % | ✅ | |
| 157 | 159 | | [Intelcom (Dragonfly)](intelcomgroup.md) | [`workday`](ats-workday.md) | 42 | 0 % | 98 % | ✅ | |
| 158 | 160 | | [JD Sports Canada](jdsports.md) | [`dayforce`](ats-dayforce.md) | 42 | 0 % | 100 % | ✅ | |
| 159 | 161 | | [SOGECLAIR](sogeclair.md) | [`workable`](ats-workable.md) | 42 | 2 % | 100 % | ✅ | |
| 160 | −| [Brand Momentum](brandmomentum.md) | [`breezy`](ats-breezy.md) | 41 | 71 % | 100 % | ✅ | | |
| 161 | −| [Manuvie](manulife.md) | [`workday`](ats-workday.md) | 41 | 95 % | 54 % | ✅ | | |
| 162 | 162 | | [Eurofins EnvironeX](eurofinsenvironex.md) | [`recruitee`](ats-recruitee.md) | 40 | 0 % | 100 % | ✅ | |
| 163 | 163 | | [Sopra Steria](soprasteria1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 40 | 0 % | 100 % | ✅ | |
| 164 | −| [Techo-Bloc](techo_bloc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 40 | 55 % | 100 % | ✅ | | |
| 165 | 164 | | [Coveo](coveofr.md) | [`greenhouse`](ats-greenhouse.md) | 39 | 0 % | 100 % | ✅ | |
| 166 | 165 | | [Groupe CH (Canadiens de Montréal, Centre Bell)](groupech.md) | [`dayforce`](ats-dayforce.md) | 39 | 0 % | 100 % | ✅ | |
| 167 | 166 | | [Info-Ways](info_ways.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 39 | 0 % | 100 % | ✅ | |
@@ -173,9 +172,9 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 173 | 172 | | [Workin Group](workinquebec.md) | [`teamtailor`](ats-teamtailor.md) | 38 | 58 % | 100 % | ✅ | |
| 174 | 173 | | [Cohere](cohere.md) | [`ashby`](ats-ashby.md) | 37 | 92 % | 30 % | ✅ | |
| 175 | 174 | | [KABS](kabs.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 37 | 0 % | 100 % | ✅ | |
| 175 | +| [Manuvie](manulife.md) | [`workday`](ats-workday.md) | 37 | 95 % | 59 % | ✅ | | |
| 176 | 176 | | [EXFO](exfo.md) | [`workday`](ats-workday.md) | 36 | 0 % | 100 % | ✅ | |
| 177 | 177 | | [Investissements PSP](investpsp.md) | [`workday`](ats-workday.md) | 36 | 3 % | 100 % | ✅ | |
| 178 | −| [VIA Rail Canada](via_rail.md) | [`successfactors`](ats-successfactors.md) | 36 | 0 % | 100 % | ✅ | | |
| 179 | 178 | | [Industries Lassonde](lassonde.md) | [`custom`](ats-custom.md) | 35 | 34 % | 89 % | ✅ | |
| 180 | 179 | | [Transat A.T.](transatat1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 35 | 6 % | 100 % | ✅ | |
| 181 | 180 | | [Coveo](coveoen.md) | [`greenhouse`](ats-greenhouse.md) | 34 | 0 % | 100 % | ✅ | |
@@ -183,14 +182,14 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 183 | 182 | | [Ms](ms.md) | [`workday`](ats-workday.md) | 34 | 0 % | 100 % | ✅ | |
| 184 | 183 | | [Sany](imperialdade.md) | [`dayforce`](ats-dayforce.md) | 34 | 0 % | 100 % | ✅ | |
| 185 | 184 | | [Sapsol Technologies Inc](sapsol_technologies_inc_7.md) | [`workable`](ats-workable.md) | 34 | 0 % | 100 % | ✅ | |
| 186 | −| [AccorHotel](accorhotel.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 33 | 52 % | 100 % | ✅ | | |
| 185 | +| [VIA Rail Canada](via_rail.md) | [`successfactors`](ats-successfactors.md) | 34 | 0 % | 100 % | ✅ | | |
| 187 | 186 | | [exo (transport métropolitain)](exo.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 33 | 0 % | 94 % | ✅ | |
| 188 | 187 | | [Kenworthmaska](kenworthmaska.md) | [`dayforce`](ats-dayforce.md) | 33 | 3 % | 100 % | ✅ | |
| 189 | 188 | | [Tecsys](tecsys.md) | [`workable`](ats-workable.md) | 33 | 0 % | 100 % | ✅ | |
| 190 | 189 | | [Uhaul](uhaul.md) | [`workday`](ats-workday.md) | 33 | 0 % | 100 % | ✅ | |
| 191 | 190 | | [Wabtec](wabtec.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 33 | 18 % | 100 % | ✅ | |
| 192 | −| [Lgs](lgs.md) | [`dayforce`](ats-dayforce.md) | 32 | 0 % | 100 % | ✅ | | |
| 193 | −| [AppDirect](appdirect.md) | [`greenhouse`](ats-greenhouse.md) | 31 | 35 % | 100 % | ✅ | | |
| 191 | +| [AccorHotel](accorhotel.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 32 | 53 % | 100 % | ✅ | | |
| 192 | +| [AppDirect](appdirect.md) | [`greenhouse`](ats-greenhouse.md) | 32 | 34 % | 100 % | ✅ | | |
| 194 | 193 | | [Comptable prix de revient](exceldorfoods478.md) | [`dayforce`](ats-dayforce.md) | 31 | 19 % | 100 % | ✅ | |
| 195 | 194 | | [Domtar](domtar.md) | [`successfactors`](ats-successfactors.md) | 31 | 0 % | 100 % | ✅ | |
| 196 | 195 | | [Groupe Bellemare](groupe_bellemare.md) | [`njoyn`](ats-njoyn.md) | 31 | 0 % | 0 % | ✅ | |
@@ -201,43 +200,44 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 201 | 200 | | [Institut de recherche du CUSM](cusm_ir.md) | [`njoyn`](ats-njoyn.md) | 30 | 93 % | 0 % | ✅ | |
| 202 | 201 | | [NBCUniversal](nbcuniversal3.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 30 | 0 % | 100 % | ✅ | |
| 203 | 202 | | [Nortera](nortera.md) | [`ultipro`](ats-ultipro.md) | 30 | 53 % | 100 % | ✅ | |
| 204 | −| [Rio Tinto](riotinto.md) | [`workday`](ats-workday.md) | 30 | 7 % | 97 % | ✅ | | |
| 205 | 203 | | [Rodeo FX](rodeofx.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 30 | 0 % | 93 % | ✅ | |
| 206 | 204 | | [Service alimentaire Gordon](gfs.md) | [`workday`](ats-workday.md) | 30 | 60 % | 100 % | ✅ | |
| 207 | 205 | | [H&M](hmgroup.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 29 | 7 % | 100 % | ✅ | |
| 208 | 206 | | [LGI Healthcare Solutions Santé Inc.](lgihealthcaresolutionssanteinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 29 | 0 % | 100 % | ✅ | |
| 209 | 207 | | [OPENLANE Canada](openlane.md) | [`workday`](ats-workday.md) | 29 | 14 % | 90 % | ✅ | |
| 208 | +| [Rio Tinto](riotinto.md) | [`workday`](ats-workday.md) | 29 | 7 % | 97 % | ✅ | | |
| 210 | 209 | | [Structube](structube1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 29 | 0 % | 100 % | ✅ | |
| 211 | −| [Sun Life](sunlife.md) | [`workday`](ats-workday.md) | 29 | 7 % | 66 % | ✅ | | |
| 212 | 210 | | [Abinbev](abinbev.md) | [`workday`](ats-workday.md) | 28 | 96 % | 100 % | ✅ | |
| 213 | 211 | | [Clinical Research Associate](syneoshealth.md) | [`workday`](ats-workday.md) | 28 | 0 % | 96 % | ✅ | |
| 212 | +| [Playground](playground.md) | [`jazzhr`](ats-jazzhr.md) | 28 | 57 % | 68 % | ✅ | | |
| 214 | 213 | | [Scotts Canada (Fafard)](scottsmiraclegro.md) | [`workday`](ats-workday.md) | 28 | 4 % | 100 % | ✅ | |
| 215 | 214 | | [Spectrum Health Care](spectrumhealthcare.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 28 | 89 % | 100 % | ✅ | |
| 215 | +| [Sun Life](sunlife.md) | [`workday`](ats-workday.md) | 28 | 7 % | 64 % | ✅ | | |
| 216 | 216 | | [Énergir](energir.md) | [`successfactors`](ats-successfactors.md) | 28 | 0 % | 100 % | ✅ | |
| 217 | 217 | | [Altasciences](altasciences.md) | [`workday`](ats-workday.md) | 27 | 4 % | 96 % | ✅ | |
| 218 | 218 | | [Best Buy Canada](bestbuycanada.md) | [`workday`](ats-workday.md) | 27 | 0 % | 44 % | ✅ | |
| 219 | −| [Playground](playground.md) | [`jazzhr`](ats-jazzhr.md) | 27 | 59 % | 70 % | ✅ | | |
| 220 | 219 | | [The Children's Place](childrensplace.md) | [`workday`](ats-workday.md) | 27 | 0 % | 22 % | ✅ | |
| 221 | 220 | | [Behaviour Interactif](bhvr.md) | [`lever`](ats-lever.md) | 26 | 0 % | 100 % | ✅ | |
| 221 | +| [Lgs](lgs.md) | [`dayforce`](ats-dayforce.md) | 26 | 0 % | 100 % | ✅ | | |
| 222 | 222 | | [Mallette - Saguenay](mallette_sag.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 26 | 4 % | 85 % | ✅ | |
| 223 | 223 | | [RM Staffing B.V.](rebootmonkey.md) | [`recruitee`](ats-recruitee.md) | 26 | 85 % | 100 % | ✅ | |
| 224 | 224 | | [Tmx](tmx.md) | [`workday`](ats-workday.md) | 26 | 0 % | 69 % | ✅ | |
| 225 | 225 | | [AbbVie](abbvie.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 25 | 0 % | 100 % | ✅ | |
| 226 | 226 | | [CDPQ — Caisse de dépôt et placement du Québec](cdpq.md) | [`workday`](ats-workday.md) | 25 | 0 % | 100 % | ✅ | |
| 227 | −| [Galderma](galderma.md) | [`workday`](ats-workday.md) | 25 | 16 % | 100 % | ✅ | | |
| 228 | 227 | | [Logm](logm.md) | [`dayforce`](ats-dayforce.md) | 25 | 80 % | 100 % | ✅ | |
| 229 | 228 | | [MEDFAR Solutions Cliniques](medfar.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 25 | 0 % | 100 % | ✅ | |
| 229 | +| [Monteur CVC 1 /HVAC Assembler 1](sunbeltrentals.md) | [`workday`](ats-workday.md) | 25 | 0 % | 68 % | ✅ | | |
| 230 | 230 | | [Montreal Export Package Handler (18:00-23:00)](hcmportal.md) | [`workday`](ats-workday.md) | 25 | 88 % | 96 % | ✅ | |
| 231 | +| [Unitytech](unitytech.md) | [`workday`](ats-workday.md) | 25 | 92 % | 80 % | ✅ | | |
| 231 | 232 | | [Ville de Gatineau](ville_gatineau.md) | [`njoyn`](ats-njoyn.md) | 25 | 100 % | 0 % | ✅ | |
| 232 | 233 | | [Distribution stox](distributionstox2.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 24 | 46 % | 100 % | ✅ | |
| 233 | 234 | | [DRB Distribution](drbdistribution.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 24 | 0 % | 96 % | ✅ | |
| 234 | 235 | | [FedEx Express Canada](fedex.md) | [`workday`](ats-workday.md) | 24 | 100 % | 88 % | ✅ | |
| 235 | 236 | | [Huawei Canada](huaweicanada.md) | [`recruitee`](ats-recruitee.md) | 24 | 0 % | 100 % | ✅ | |
| 236 | 237 | | [Lyft](lyft.md) | [`greenhouse`](ats-greenhouse.md) | 24 | 100 % | 100 % | ✅ | |
| 237 | −| [Monteur CVC 1 /HVAC Assembler 1](sunbeltrentals.md) | [`workday`](ats-workday.md) | 24 | 0 % | 67 % | ✅ | | |
| 238 | 238 | | [Progesys](progesys_inc.md) | [`breezy`](ats-breezy.md) | 24 | 4 % | 96 % | ✅ | |
| 239 | 239 | | [Stellajones](stellajones.md) | [`dayforce`](ats-dayforce.md) | 24 | 21 % | 100 % | ✅ | |
| 240 | −| [Unitytech](unitytech.md) | [`workday`](ats-workday.md) | 24 | 96 % | 83 % | ✅ | | |
| 240 | +| [Alcoa Canada](alcoa.md) | [`workday`](ats-workday.md) | 23 | 13 % | 48 % | ✅ | | |
| 241 | 241 | | [ATIA Ltd](atialtd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 23 | 43 % | 100 % | ✅ | |
| 242 | 242 | | [Baseten](baseten.md) | [`ashby`](ats-ashby.md) | 23 | 100 % | 0 % | ✅ | |
| 243 | 243 | | [Broccolini](broccolini.md) | [`bamboohr`](ats-bamboohr.md) | 23 | 0 % | 100 % | ✅ | |
@@ -246,11 +246,11 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 246 | 246 | | [Directive](directive.md) | [`ashby`](ats-ashby.md) | 22 | 5 % | 0 % | ✅ | |
| 247 | 247 | | [Keywords Studios](keywords_intl1.md) | [`workable`](ats-workable.md) | 22 | 95 % | 100 % | ✅ | |
| 248 | 248 | | [LG2](lg2.md) | [`recruitee`](ats-recruitee.md) | 22 | 5 % | 100 % | ✅ | |
| 249 | −| [Onepoint (nventive / Logient)](onepoint.md) | [`workday`](ats-workday.md) | 22 | 0 % | 100 % | ✅ | | |
| 250 | 249 | | [OPAL-RT Technologies](opalrt.md) | [`bamboohr`](ats-bamboohr.md) | 22 | 0 % | 100 % | ✅ | |
| 251 | 250 | | [AVP](aviva.md) | [`workday`](ats-workday.md) | 21 | 19 % | 90 % | ✅ | |
| 252 | 251 | | [Groupe Mach](groupemach.md) | [`dayforce`](ats-dayforce.md) | 21 | 10 % | 100 % | ✅ | |
| 253 | 252 | | [mthree](mthreerecruitingportal.md) | [`greenhouse`](ats-greenhouse.md) | 21 | 0 % | 100 % | ✅ | |
| 253 | +| [Onepoint (nventive / Logient)](onepoint.md) | [`workday`](ats-workday.md) | 21 | 0 % | 100 % | ✅ | | |
| 254 | 254 | | [Responsable Stratégie des Affaires](uniselect.md) | [`workday`](ats-workday.md) | 21 | 14 % | 100 % | ✅ | |
| 255 | 255 | | [Sales Associate III](tapestry.md) | [`workday`](ats-workday.md) | 21 | 100 % | 100 % | ✅ | |
| 256 | 256 | | [Talan](talan.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 21 | 0 % | 100 % | ✅ | |
@@ -262,16 +262,15 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 262 | 262 | | [Comptable en immobilier](belron.md) | [`workday`](ats-workday.md) | 20 | 5 % | 100 % | ✅ | |
| 263 | 263 | | [dcbel](dcbel.md) | [`bamboohr`](ats-bamboohr.md) | 20 | 0 % | 100 % | ✅ | |
| 264 | 264 | | [Fund Accountant / Comptable de Fonds](sagardholdings.md) | [`workday`](ats-workday.md) | 20 | 15 % | 100 % | ✅ | |
| 265 | +| [Galderma](galderma.md) | [`workday`](ats-workday.md) | 20 | 20 % | 100 % | ✅ | | |
| 265 | 266 | | [Préparateur de commandes](sysco.md) | [`workday`](ats-workday.md) | 20 | 10 % | 90 % | ✅ | |
| 266 | 267 | | [Search for](bcf.md) | [`workday`](ats-workday.md) | 20 | 0 % | 100 % | ✅ | |
| 267 | 268 | | [Sia](sia.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 20 | 0 % | 100 % | ✅ | |
| 268 | 269 | | [Systemex](systemex.md) | [`lever`](ats-lever.md) | 20 | 0 % | 100 % | ✅ | |
| 269 | 270 | | [Xsolla](xsolla.md) | [`lever`](ats-lever.md) | 20 | 100 % | 95 % | ✅ | |
| 270 | −| [Alcoa Canada](alcoa.md) | [`workday`](ats-workday.md) | 19 | 16 % | 47 % | ✅ | | |
| 271 | 271 | | [CHUM](chum.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 19 | 5 % | 100 % | ✅ | |
| 272 | 272 | | [CSS des Découvreurs](cssdd.md) | [`digitalrecruiters`](ats-digitalrecruiters.md) | 19 | 89 % | 100 % | ✅ | |
| 273 | 273 | | [Groupeguilbault](groupeguilbault.md) | [`workday`](ats-workday.md) | 19 | 0 % | 100 % | ✅ | |
| 274 | −| [Hitachi](hitachi.md) | [`workday`](ats-workday.md) | 19 | 0 % | 100 % | ✅ | | |
| 275 | 274 | | [Immiland Canada Inc.](immiland_canada_inc.md) | [`lever`](ats-lever.md) | 19 | 16 % | 100 % | ✅ | |
| 276 | 275 | | [Premierparks](premierparks.md) | [`dayforce`](ats-dayforce.md) | 19 | 5 % | 100 % | ✅ | |
| 277 | 276 | | [Pré-assemblage](motionc.md) | [`dayforce`](ats-dayforce.md) | 19 | 0 % | 100 % | ✅ | |
@@ -285,7 +284,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 285 | 284 | | [Uniboard](uniboard.md) | [`adp`](ats-adp.md) | 19 | 32 % | 63 % | ✅ | |
| 286 | 285 | | [Valnet](valnetconcept.md) | [`jazzhr`](ats-jazzhr.md) | 19 | 0 % | 100 % | ✅ | |
| 287 | 286 | | [Airliquidehr](airliquidehr.md) | [`workday`](ats-workday.md) | 18 | 28 % | 100 % | ✅ | |
| 288 | −| [Bell Textron Canada](bell_textron.md) | [`taleo`](ats-taleo.md) | 18 | 0 % | 100 % | ✅ | | |
| 289 | 287 | | [Egis Group](egisgroup.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 18 | 0 % | 100 % | ✅ | |
| 290 | 288 | | [Groupe Nordik (Nordik Spa-Nature)](groupe_nordik.md) | [`adp`](ats-adp.md) | 18 | 28 % | 100 % | ✅ | |
| 291 | 289 | | [Lamour](lamour.md) | [`workable`](ats-workable.md) | 18 | 0 % | 100 % | ✅ | |
@@ -293,6 +291,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 293 | 291 | | [ORA Partenaires](orapartenaires.md) | [`teamtailor`](ats-teamtailor.md) | 18 | 78 % | 94 % | ✅ | |
| 294 | 292 | | [Produits Labelink](labelink.md) | [`bamboohr`](ats-bamboohr.md) | 18 | 0 % | 100 % | ✅ | |
| 295 | 293 | | [Soprema](soprema.md) | [`dayforce`](ats-dayforce.md) | 18 | 28 % | 100 % | ✅ | |
| 294 | +| [Bell Textron Canada](bell_textron.md) | [`taleo`](ats-taleo.md) | 17 | 0 % | 100 % | ✅ | | |
| 296 | 295 | | [GSK](gsk.md) | [`workday`](ats-workday.md) | 17 | 0 % | 88 % | ✅ | |
| 297 | 296 | | [McCarthy Tétrault](mccarthy_tetrault.md) | [`icims`](ats-icims.md) | 17 | 0 % | 100 % | ✅ | |
| 298 | 297 | | [Scalian](scalian.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 17 | 18 % | 100 % | ✅ | |
@@ -303,6 +302,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 303 | 302 | | [CAA-Québec](caaquebec.md) | [`workday`](ats-workday.md) | 16 | 38 % | 100 % | ✅ | |
| 304 | 303 | | [dentago](dentago.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 16 | 6 % | 75 % | ✅ | |
| 305 | 304 | | [Fieracapital](fieracapital.md) | [`workday`](ats-workday.md) | 16 | 25 % | 81 % | ✅ | |
| 305 | +| [Hitachi](hitachi.md) | [`workday`](ats-workday.md) | 16 | 0 % | 100 % | ✅ | | |
| 306 | 306 | | [Hubinternational](hubinternational.md) | [`workday`](ats-workday.md) | 16 | 19 % | 88 % | ✅ | |
| 307 | 307 | | [Intervenant·e au suivi psychosocial](obm.md) | [`dayforce`](ats-dayforce.md) | 16 | 12 % | 100 % | ✅ | |
| 308 | 308 | | [Journalier(ère) de production](vestis.md) | [`dayforce`](ats-dayforce.md) | 16 | 0 % | 100 % | ✅ | |
@@ -345,6 +345,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 345 | 345 | | [Relais & Châteaux](relaischateaux.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 14 | 0 % | 100 % | ✅ | |
| 346 | 346 | | [Renovco](renovco.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 14 | 0 % | 100 % | ✅ | |
| 347 | 347 | | [Responsable bilingue du marketing événementiel / Event ...](fil.md) | [`workday`](ats-workday.md) | 14 | 100 % | 43 % | ✅ | |
| 348 | +| [Bridgestone](bridgestone.md) | [`workday`](ats-workday.md) | 13 | 38 % | 92 % | ✅ | | |
| 348 | 349 | | [Comptable de projet / Project Accountant](ellisdon.md) | [`workday`](ats-workday.md) | 13 | 15 % | 92 % | ✅ | |
| 349 | 350 | | [Cuisinier(ère) 2, Restaurant Marcus & Lounge (Sur appel) / Cook 2 ...](fourseasons.md) | [`workday`](ats-workday.md) | 13 | 0 % | 100 % | ✅ | |
| 350 | 351 | | [Fempro (First Quality)](firstquality.md) | [`workday`](ats-workday.md) | 13 | 46 % | 100 % | ✅ | |
@@ -365,7 +366,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 365 | 366 | | [Victoria Park Medispa](vicpark.md) | [`bamboohr`](ats-bamboohr.md) | 13 | 0 % | 100 % | ✅ | |
| 366 | 367 | | [AlayaCare](alayacare.md) | [`greenhouse`](ats-greenhouse.md) | 12 | 0 % | 100 % | ✅ | |
| 367 | 368 | | [Aritzia](aritzia.md) | [`workday`](ats-workday.md) | 12 | 58 % | 100 % | ✅ | |
| 368 | −| [Bridgestone](bridgestone.md) | [`workday`](ats-workday.md) | 12 | 42 % | 100 % | ✅ | | |
| 369 | 369 | | [Canadian Tire](canadiantirecorporation.md) | [`workday`](ats-workday.md) | 12 | 75 % | 92 % | ✅ | |
| 370 | 370 | | [Ccmhockey](ccmhockey.md) | [`dayforce`](ats-dayforce.md) | 12 | 0 % | 100 % | ✅ | |
| 371 | 371 | | [CEP Forensique](cep.md) | [`dayforce`](ats-dayforce.md) | 12 | 0 % | 100 % | ✅ | |
@@ -412,7 +412,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 412 | 412 | | [Stay22](stay22.md) | [`greenhouse`](ats-greenhouse.md) | 11 | 9 % | 100 % | ✅ | |
| 413 | 413 | | [Toboggan Labs](tobogganlabs.md) | [`greenhouse`](ats-greenhouse.md) | 11 | 0 % | 100 % | ✅ | |
| 414 | 414 | | [VF Corporation (The North Face, Vans)](vfc.md) | [`workday`](ats-workday.md) | 11 | 100 % | 100 % | ✅ | |
| 415 | −| [Ville de Terrebonne](ville_terrebonne.md) | [`njoyn`](ats-njoyn.md) | 11 | 91 % | 0 % | ✅ | | |
| 416 | 415 | | [1perTInent inc](x1pertinentinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 10 | 0 % | 80 % | ✅ | |
| 417 | 416 | | [ADI - Albert Davidson Industries](adi_albert_davidson_industries.md) | [`breezy`](ats-breezy.md) | 10 | 100 % | 100 % | ✅ | |
| 418 | 417 | | [Airlab Inc.](airlabinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 10 | 0 % | 100 % | ✅ | |
@@ -430,7 +429,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 430 | 429 | | [Groupe PMI](groupepmi.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 10 | 50 % | 100 % | ✅ | |
| 431 | 430 | | [Groupe Scandinave (Scandinave Spa)](gscandinave.md) | [`dayforce`](ats-dayforce.md) | 10 | 0 % | 100 % | ✅ | |
| 432 | 431 | | [Indigo Books & Music](indigobooksmusic.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 10 | 0 % | 100 % | ✅ | |
| 433 | −| [Investissement Québec](investquebec.md) | [`workday`](ats-workday.md) | 10 | 0 % | 100 % | ✅ | | |
| 434 | 432 | | [Les Excavations Lafontaine Inc.](lafontaineinc.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 10 | 0 % | 90 % | ✅ | |
| 435 | 433 | | [Lush Cosmétiques](lush.md) | [`greenhouse`](ats-greenhouse.md) | 10 | 100 % | 100 % | ✅ | |
| 436 | 434 | | [Mattel (Mega Bloks)](mattelinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 10 | 0 % | 100 % | ✅ | |
@@ -442,6 +440,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 442 | 440 | | [Synertek](synertek.md) | [`teamtailor`](ats-teamtailor.md) | 10 | 80 % | 100 % | ✅ | |
| 443 | 441 | | [Technica Mining](technica_mining.md) | [`breezy`](ats-breezy.md) | 10 | 0 % | 10 % | ✅ | |
| 444 | 442 | | [Tetrix](tetrix.md) | [`ashby`](ats-ashby.md) | 10 | 100 % | 10 % | ✅ | |
| 443 | +| [Ville de Terrebonne](ville_terrebonne.md) | [`njoyn`](ats-njoyn.md) | 10 | 90 % | 0 % | ✅ | | |
| 445 | 444 | | [WPP Media](wppmedia.md) | [`greenhouse`](ats-greenhouse.md) | 10 | 0 % | 100 % | ✅ | |
| 446 | 445 | | [3 Brasseurs Canada](trois_brasseurs.md) | [`breezy`](ats-breezy.md) | 9 | 67 % | 100 % | ✅ | |
| 447 | 446 | | [act digital](altersolutions.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 9 | 0 % | 100 % | ✅ | |
@@ -459,6 +458,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 459 | 458 | | [Framestore](framestore.md) | [`recruitee`](ats-recruitee.md) | 9 | 0 % | 100 % | ✅ | |
| 460 | 459 | | [HEC Montréal — corps professoral](hec_montreal_profs.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 9 | 0 % | 100 % | ✅ | |
| 461 | 460 | | [Huron](huron.md) | [`workday`](ats-workday.md) | 9 | 100 % | 33 % | ✅ | |
| 461 | +| [Investissement Québec](investquebec.md) | [`workday`](ats-workday.md) | 9 | 0 % | 100 % | ✅ | | |
| 462 | 462 | | [J'Excelle](jexcelleinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 9 | 0 % | 100 % | ✅ | |
| 463 | 463 | | [JG Rive-Sud (GFS)](jgrivesud.md) | [`workday`](ats-workday.md) | 9 | 67 % | 100 % | ✅ | |
| 464 | 464 | | [LGT](lgt1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 9 | 0 % | 100 % | ✅ | |
@@ -538,7 +538,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 538 | 538 | | [Trackforce](tracktik.md) | [`lever`](ats-lever.md) | 7 | 29 % | 71 % | ✅ | |
| 539 | 539 | | [Trigyn Technologies](trigyntechnologies1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 7 | 0 % | 100 % | ✅ | |
| 540 | 540 | | [Turner & Townsend](turnertownsend.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 7 | 29 % | 100 % | ✅ | |
| 541 | −| [Ville de Mirabel](ville_mirabel.md) | [`njoyn`](ats-njoyn.md) | 7 | 86 % | 0 % | ✅ | | |
| 542 | 541 | | [Weir Group](weir.md) | [`workday`](ats-workday.md) | 7 | 29 % | 57 % | ✅ | |
| 543 | 542 | | [Accedian Networks](accediannetworks.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 6 | 0 % | 100 % | ✅ | |
| 544 | 543 | | [Also Recrutement - Carrière](alsorecrutement.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 6 | 17 % | 50 % | ✅ | |
@@ -629,6 +628,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 629 | 628 | | [Toon Boom Animation](toonboom.md) | [`bamboohr`](ats-bamboohr.md) | 5 | 0 % | 100 % | ✅ | |
| 630 | 629 | | [Vaco](vaco.md) | [`greenhouse`](ats-greenhouse.md) | 5 | 80 % | 100 % | ✅ | |
| 631 | 630 | | [Valmet](valmet.md) | [`workday`](ats-workday.md) | 5 | 0 % | 80 % | ✅ | |
| 631 | +| [Ville de Mirabel](ville_mirabel.md) | [`njoyn`](ats-njoyn.md) | 5 | 80 % | 0 % | ✅ | | |
| 632 | 632 | | [VOXDATA](voxdata.md) | [`breezy`](ats-breezy.md) | 5 | 100 % | 100 % | ✅ | |
| 633 | 633 | | [Warner Bros. Discovery (WB Games Montréal)](warnerbros.md) | [`workday`](ats-workday.md) | 5 | 0 % | 100 % | ✅ | |
| 634 | 634 | | [4Refuel](4refuel.md) | [`dayforce`](ats-dayforce.md) | 4 | 25 % | 100 % | ✅ | |
@@ -696,6 +696,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 696 | 696 | | [Outpost VFX](outpostvfx.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 4 | 0 % | 100 % | ✅ | |
| 697 | 697 | | [Pivot + Edge](pivotandedge.md) | [`recruitee`](ats-recruitee.md) | 4 | 0 % | 100 % | ✅ | |
| 698 | 698 | | [PlayStation Global](sonyinteractiveentertainmentglobal.md) | [`greenhouse`](ats-greenhouse.md) | 4 | 0 % | 100 % | ✅ | |
| 699 | +| [Sel Windsor (Mines Seleine)](selwindsor.md) | [`ultipro`](ats-ultipro.md) | 4 | 0 % | 100 % | ✅ | | |
| 699 | 700 | | [Sobeys](sobeys.md) | [`dayforce`](ats-dayforce.md) | 4 | 0 % | 100 % | ✅ | |
| 700 | 701 | | [Trigone](trigone.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 4 | 0 % | 100 % | ✅ | |
| 701 | 702 | | [Turning Point Brands Canada](recreationmarketing.md) | [`jazzhr`](ats-jazzhr.md) | 4 | 0 % | 100 % | ✅ | |
@@ -775,10 +776,8 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 775 | 776 | | [Remco](remco.md) | [`dayforce`](ats-dayforce.md) | 3 | 0 % | 100 % | ✅ | |
| 776 | 777 | | [Sales Consultant Montreal](miele.md) | [`workday`](ats-workday.md) | 3 | 100 % | 100 % | ✅ | |
| 777 | 778 | | [Sbdinc](sbdinc.md) | [`workday`](ats-workday.md) | 3 | 67 % | 100 % | ✅ | |
| 778 | −| [Sel Windsor (Mines Seleine)](selwindsor.md) | [`ultipro`](ats-ultipro.md) | 3 | 0 % | 100 % | ✅ | | |
| 779 | 779 | | [Serve Robotics](serverobotics.md) | [`ashby`](ats-ashby.md) | 3 | 100 % | 0 % | ✅ | |
| 780 | 780 | | [Shearwater](shearwater.md) | [`greenhouse`](ats-greenhouse.md) | 3 | 0 % | 100 % | ✅ | |
| 781 | −| [Signifly](signifly.md) | [`recruitee`](ats-recruitee.md) | 3 | 0 % | 0 % | ✅ | | |
| 782 | 781 | | [Souffletmalt](souffletmalt.md) | [`dayforce`](ats-dayforce.md) | 3 | 67 % | 100 % | ✅ | |
| 783 | 782 | | [Squeeze Studio Animation](squeezestudio.md) | [`recruitee`](ats-recruitee.md) | 3 | 0 % | 67 % | ✅ | |
| 784 | 783 | | [Sun Gro Horticulture](sungrohorticulture.md) | [`jazzhr`](ats-jazzhr.md) | 3 | 0 % | 100 % | ✅ | |
@@ -821,6 +820,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 821 | 820 | | [CWP Energy](mcgillstlaurent.md) | [`jazzhr`](ats-jazzhr.md) | 2 | 0 % | 100 % | ✅ | |
| 822 | 821 | | [Databricks](databricks.md) | [`greenhouse`](ats-greenhouse.md) | 2 | 0 % | 100 % | ✅ | |
| 823 | 822 | | [Deep Sky](deepsky.md) | [`lever`](ats-lever.md) | 2 | 0 % | 100 % | ✅ | |
| 823 | +| [Dentons](dentons.md) | [`successfactors`](ats-successfactors.md) | 2 | 100 % | 0 % | ✅ | | |
| 824 | 824 | | [DONTNOD](dontnod.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 2 | 0 % | 100 % | ✅ | |
| 825 | 825 | | [Dxctechnology](dxctechnology.md) | [`workday`](ats-workday.md) | 2 | 0 % | 100 % | ✅ | |
| 826 | 826 | | [East Penn Canada](eastpenn.md) | [`dayforce`](ats-dayforce.md) | 2 | 0 % | 100 % | ✅ | |
@@ -835,7 +835,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 835 | 835 | | [FZ Engineering](fzengineering.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 2 | 0 % | 100 % | ✅ | |
| 836 | 836 | | [Gategroup](gategroup.md) | [`workday`](ats-workday.md) | 2 | 50 % | 100 % | ✅ | |
| 837 | 837 | | [General Dynamics Missions System International](gdmsi.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 2 | 50 % | 100 % | ✅ | |
| 838 | −| [Granit Design](granit_design.md) | [`dayforce`](ats-dayforce.md) | 2 | 0 % | 100 % | ✅ | | |
| 839 | 838 | | [Hinge Health](hinge_health.md) | [`ashby`](ats-ashby.md) | 2 | 100 % | 100 % | ✅ | |
| 840 | 839 | | [HireHawk](hirehawk.md) | [`workable`](ats-workable.md) | 2 | 50 % | 100 % | ✅ | |
| 841 | 840 | | [HP](hp.md) | [`workday`](ats-workday.md) | 2 | 100 % | 100 % | ✅ | |
@@ -937,7 +936,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 937 | 936 | | [Connor, Clark & Lunn Private Capital Ltd.](pcm.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ | |
| 938 | 937 | | [Consultdss](consultdss.md) | [`recruitee`](ats-recruitee.md) | 1 | 0 % | 100 % | ✅ | |
| 939 | 938 | | [Cooperrentsequip](cooperrentsequip.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ | |
| 940 | −| [Dentons](dentons_europe.md) | [`workable`](ats-workable.md) | 1 | 100 % | 100 % | ✅ | | |
| 941 | 939 | | [DEPT®](dept.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ | |
| 942 | 940 | | [DiliTrust](dilitrust.md) | [`lever`](ats-lever.md) | 1 | 0 % | 100 % | ✅ | |
| 943 | 941 | | [DIMENSION COMPOSITE INC](dimensioncompositeinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | |
@@ -962,6 +960,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 962 | 960 | | [Gng](gng.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ | |
| 963 | 961 | | [Goalcast](goalcast.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 0 % | 100 % | ✅ | |
| 964 | 962 | | [GoLogic](gologic.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | |
| 963 | +| [Granit Design](granit_design.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ | | |
| 965 | 964 | | [Groupe BC2](bc2.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 0 % | 100 % | ✅ | |
| 966 | 965 | | [GUS](gus.md) | [`zoho_recruit`](ats-zoho_recruit.md) | 1 | 0 % | 100 % | ✅ | |
| 967 | 966 | | [Havenpoint Health](havenpoint_health.md) | [`lever`](ats-lever.md) | 1 | 0 % | 100 % | ✅ | |
@@ -1026,6 +1025,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 1026 | 1025 | | [SharkNinja](sharkninjaoperatingllc.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ | |
| 1027 | 1026 | | [Shearwater Aerospace](shearwater_aerospace.md) | [`breezy`](ats-breezy.md) | 1 | 0 % | 100 % | ✅ | |
| 1028 | 1027 | | [Siemens Gamesa Certified Wind Turbine Troubleshooters](gevgroupltd.md) | [`recruitee`](ats-recruitee.md) | 1 | 0 % | 100 % | ✅ | |
| 1028 | +| [Signifly](signifly.md) | [`recruitee`](ats-recruitee.md) | 1 | 0 % | 0 % | ✅ | | |
| 1029 | 1029 | | [Smucker](smucker.md) | [`workday`](ats-workday.md) | 1 | 100 % | 100 % | ✅ | |
| 1030 | 1030 | | [Snowed In Studios](snowed_in_studios_3.md) | [`workable`](ats-workable.md) | 1 | 100 % | 100 % | ✅ | |
| 1031 | 1031 | | [Sparkgrid](sparkgrid.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | |
@@ -1080,6 +1080,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 1080 | 1080 | | [CSN Collision](csncollision.md) | [`workable`](ats-workable.md) | 0 | — | — | ✅ | |
| 1081 | 1081 | | [Culligan Quench](quenchwater.md) | [`lever`](ats-lever.md) | 0 | — | — | ✅ | |
| 1082 | 1082 | | [Delos Data](delos_data.md) | [`ashby`](ats-ashby.md) | 0 | — | — | ✅ | |
| 1083 | +| [Dentons](dentons_europe.md) | [`workable`](ats-workable.md) | 0 | — | — | ✅ | | |
| 1083 | 1084 | | [DropGenie](drop_genie.md) | [`breezy`](ats-breezy.md) | 0 | — | — | ✅ | |
| 1084 | 1085 | | [Echodyne Corp](echodynecorp.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ | |
| 1085 | 1086 | | [Edelman Financial Engines, LLC](edelmanfinancialenginesllc.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ | |
modified
docs/connecteurs/ats-successfactors.md
+15 −14
@@ -4,15 +4,15 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-successfactors.md |
| 7 | −Rôle : Fiche plateforme ATS successfactors — mécanique partagée + tableau des 11 tenants | |
| 8 | −Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche plateforme ATS successfactors — mécanique partagée + tableau des 12 tenants | |
| 8 | +Généré : 2026-10-06 10:15 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 `successfactors` |
| 14 | 14 | |
| 15 | −**11 employeurs connectés** via cette plateforme — **1451 offres actives**. Module partagé : `jobka/connectors/successfactors.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**12 employeurs connectés** via cette plateforme — **1663 offres actives**. Module partagé : `jobka/connectors/successfactors.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -38,17 +38,18 @@ Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 38 | 38 | |
| 39 | 39 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 40 | 40 | |---|---|---|---|---|---|---| |
| 41 | −| [Bombardier](bombardier.md) | 741 | 0 % | 100 % | 86 % | 2026-09-21 16:40 | ✅ | | |
| 42 | −| [Alstom](alstom.md) | 237 | 7 % | 100 % | 3 % | 2026-09-21 16:36 | ✅ | | |
| 43 | −| [Cascades](cascades.md) | 108 | 74 % | 100 % | 19 % | 2026-09-21 16:45 | ✅ | | |
| 44 | −| [Deloitte Canada](deloitte.md) | 108 | 98 % | 100 % | 100 % | 2026-09-21 16:52 | ✅ | | |
| 45 | −| [TELUS](telus.md) | 66 | 0 % | 100 % | 3 % | 2026-09-21 17:37 | ✅ | | |
| 46 | −| [Hydro-Québec](hydroquebec.md) | 53 | 34 % | 77 % | 0 % | 2026-09-21 17:12 | ✅ | | |
| 47 | −| [Kiewit (Ganotec)](kiewit_ganotec.md) | 52 | 0 % | 100 % | 0 % | 2026-09-21 17:19 | ✅ | | |
| 48 | −| [Domtar](domtar.md) | 29 | 0 % | 100 % | 0 % | 2026-09-21 16:53 | ✅ | | |
| 49 | −| [VIA Rail Canada](via_rail.md) | 24 | 0 % | 100 % | 0 % | 2026-09-21 17:40 | ✅ | | |
| 50 | −| [Énergir](energir.md) | 18 | 0 % | 100 % | 6 % | 2026-09-21 16:56 | ✅ | | |
| 51 | −| [Canada Vie](canada_vie.md) | 15 | 0 % | 100 % | 0 % | 2026-09-21 16:41 | ✅ | | |
| 41 | +| [Bombardier](bombardier.md) | 846 | 0 % | 100 % | 74 % | 2026-10-06 10:10 | ✅ | | |
| 42 | +| [Alstom](alstom.md) | 245 | 8 % | 99 % | 3 % | 2026-10-06 10:14 | ✅ | | |
| 43 | +| [Hydro-Québec](hydroquebec.md) | 142 | 75 % | 85 % | 0 % | 2026-10-06 08:25 | ✅ | | |
| 44 | +| [Deloitte Canada](deloitte.md) | 115 | 98 % | 100 % | 100 % | 2026-10-06 08:08 | ✅ | | |
| 45 | +| [Cascades](cascades.md) | 93 | 75 % | 100 % | 16 % | 2026-10-06 07:55 | ✅ | | |
| 46 | +| [TELUS](telus.md) | 60 | 0 % | 100 % | 3 % | 2026-10-06 08:50 | ✅ | | |
| 47 | +| [Kiewit (Ganotec)](kiewit_ganotec.md) | 57 | 0 % | 100 % | 0 % | 2026-10-06 08:28 | ✅ | | |
| 48 | +| [VIA Rail Canada](via_rail.md) | 34 | 0 % | 100 % | 0 % | 2026-10-06 08:53 | ✅ | | |
| 49 | +| [Domtar](domtar.md) | 31 | 0 % | 100 % | 0 % | 2026-10-06 08:10 | ✅ | | |
| 50 | +| [Énergir](energir.md) | 28 | 0 % | 100 % | 4 % | 2026-10-06 08:12 | ✅ | | |
| 51 | +| [Canada Vie](canada_vie.md) | 10 | 0 % | 90 % | 0 % | 2026-10-06 10:11 | ✅ | | |
| 52 | +| [Dentons](dentons.md) | 2 | 100 % | 0 % | 0 % | 2026-10-06 10:14 | ✅ | | |
| 52 | 53 | |
| 53 | 54 | ## Licence / conformité |
| 54 | 55 | |
modified
docs/connecteurs/ats-workable.md
+73 −73
@@ -5,14 +5,14 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-workable.md |
| 7 | 7 | Rôle : Fiche plateforme ATS workable — mécanique partagée + tableau des 71 tenants |
| 8 | −Généré : 2026-10-02 14:03 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-10-06 10:15 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 `workable` |
| 14 | 14 | |
| 15 | −**71 employeurs connectés** via cette plateforme — **1820 offres actives**. Module partagé : `jobka/connectors/workable.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**71 employeurs connectés** via cette plateforme — **1850 offres actives**. Module partagé : `jobka/connectors/workable.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -39,77 +39,77 @@ Généré : 2026-10-02 14:03 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 39 | 39 | |
| 40 | 40 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 41 | 41 | |---|---|---|---|---|---|---| |
| 42 | −| [Solution SFT](solution_sft.md) | 835 | 26 % | 100 % | 7 % | 2026-10-02 13:31 | ✅ | | |
| 43 | −| [TEHORA](tehora.md) | 395 | 0 % | 100 % | 30 % | 2026-10-02 13:34 | ✅ | | |
| 44 | −| [Genetec](genetec_inc.md) | 93 | 0 % | 100 % | 15 % | 2026-10-02 14:03 | ✅ | | |
| 45 | −| [ApexFocusGroup](afg.md) | 46 | 0 % | 100 % | 100 % | 2026-10-02 12:26 | ✅ | | |
| 46 | −| [Valsoft](valsoft_corp.md) | 44 | 5 % | 100 % | 16 % | 2026-10-02 13:38 | ✅ | | |
| 47 | −| [SOGECLAIR](sogeclair.md) | 41 | 2 % | 100 % | 2 % | 2026-10-02 13:31 | ✅ | | |
| 48 | −| [Exportation et développement Canada (EDC)](export_development_canada.md) | 37 | 97 % | 100 % | 0 % | 2026-10-02 12:49 | ✅ | | |
| 49 | −| [Sapsol Technologies Inc](sapsol_technologies_inc_7.md) | 33 | 0 % | 100 % | 42 % | 2026-10-02 13:29 | ✅ | | |
| 50 | −| [Tecsys](tecsys.md) | 29 | 0 % | 100 % | 93 % | 2026-10-02 13:34 | ✅ | | |
| 51 | −| [Side (PTW)](sideinc.md) | 24 | 0 % | 100 % | 58 % | 2026-10-02 13:30 | ✅ | | |
| 52 | −| [Baro RH](barorh.md) | 22 | 0 % | 100 % | 5 % | 2026-10-02 12:30 | ✅ | | |
| 53 | −| [Keywords Studios](keywords_intl1.md) | 20 | 95 % | 100 % | 35 % | 2026-10-02 13:17 | ✅ | | |
| 54 | −| [Lamour](lamour.md) | 18 | 0 % | 100 % | 6 % | 2026-10-02 13:17 | ✅ | | |
| 55 | −| [Starlink Aviation](starlink_aviation.md) | 13 | 0 % | 100 % | 15 % | 2026-10-02 13:32 | ✅ | | |
| 56 | −| [Rentokil Initial](rentokil_initial.md) | 12 | 75 % | 100 % | 8 % | 2026-10-02 13:27 | ✅ | | |
| 57 | −| [Aviso Wealth](aviso.md) | 12 | 100 % | 100 % | 0 % | 2026-10-02 12:30 | ✅ | | |
| 58 | −| [Egon Zehnder](ezrecruiting.md) | 12 | 0 % | 100 % | 0 % | 2026-10-02 12:49 | ✅ | | |
| 59 | −| [Evolving Web](evolving_web.md) | 10 | 0 % | 100 % | 10 % | 2026-10-02 12:49 | ✅ | | |
| 60 | −| [FLO (AddÉnergie)](flo_addenergie.md) | 10 | 0 % | 100 % | 20 % | 2026-10-02 12:49 | ✅ | | |
| 61 | −| [LIDD Consultants](lidd.md) | 8 | 0 % | 100 % | 0 % | 2026-10-02 13:18 | ✅ | | |
| 62 | −| [Sweat Pants Agency](sweat_pants_agency.md) | 8 | 25 % | 100 % | 100 % | 2026-10-02 13:33 | ✅ | | |
| 63 | −| [Nuovo Photography](nuovophotography.md) | 7 | 29 % | 100 % | 0 % | 2026-10-02 13:23 | ✅ | | |
| 64 | −| [Botpress](botpress.md) | 6 | 0 % | 100 % | 0 % | 2026-10-02 12:32 | ✅ | | |
| 65 | −| [Doman Building Materials Group Ltd](doman_building_materials.md) | 6 | 0 % | 100 % | 50 % | 2026-10-02 12:45 | ✅ | | |
| 66 | −| [Delmar International](delmar_international_inc.md) | 5 | 0 % | 100 % | 0 % | 2026-10-02 12:44 | ✅ | | |
| 67 | −| [John Brooks Company](john_brooks_company.md) | 5 | 20 % | 100 % | 40 % | 2026-10-02 13:17 | ✅ | | |
| 68 | −| [Unit8](unit8.md) | 4 | 0 % | 100 % | 50 % | 2026-10-02 13:37 | ✅ | | |
| 69 | −| [Flatgigs](flatgigs.md) | 4 | 0 % | 100 % | 0 % | 2026-10-02 12:49 | ✅ | | |
| 70 | −| [Eminent Valet](eminent_valet.md) | 3 | 100 % | 100 % | 0 % | 2026-10-02 12:48 | ✅ | | |
| 71 | −| [Flinks](flinks.md) | 3 | 0 % | 100 % | 100 % | 2026-10-02 12:49 | ✅ | | |
| 72 | −| [Mila — Institut québécois d'IA](mila_2.md) | 3 | 0 % | 100 % | 0 % | 2026-10-02 13:21 | ✅ | | |
| 73 | −| [Damotech](damotech.md) | 3 | 0 % | 100 % | 0 % | 2026-10-02 12:44 | ✅ | | |
| 74 | −| [Allucent](allucent.md) | 3 | 0 % | 100 % | 100 % | 2026-10-02 12:27 | ✅ | | |
| 75 | −| [Devoted Studios](devoted_studios_1.md) | 3 | 0 % | 100 % | 100 % | 2026-10-02 12:45 | ✅ | | |
| 76 | −| [Power Factors](power_factors.md) | 3 | 0 % | 100 % | 0 % | 2026-10-02 13:24 | ✅ | | |
| 77 | −| [Bardel Entertainment](bardel_entertainment.md) | 2 | 100 % | 100 % | 0 % | 2026-10-02 12:30 | ✅ | | |
| 78 | −| [Charlotte Tilbury](charlotte_tilbury.md) | 2 | 0 % | 100 % | 0 % | 2026-10-02 12:40 | ✅ | | |
| 79 | −| [CTS Foods Brokers](cts_foods_brokers_inc.md) | 2 | 50 % | 100 % | 0 % | 2026-10-02 12:44 | ✅ | | |
| 80 | −| [Financeit](financeit.md) | 2 | 100 % | 100 % | 0 % | 2026-10-02 12:49 | ✅ | | |
| 81 | −| [Acuity Insights](acuity_insights.md) | 2 | 100 % | 100 % | 100 % | 2026-10-02 12:26 | ✅ | | |
| 82 | −| [Dentons](dentons_europe.md) | 2 | 50 % | 100 % | 100 % | 2026-10-02 12:44 | ✅ | | |
| 83 | −| [HireHawk](hirehawk.md) | 2 | 50 % | 100 % | 100 % | 2026-10-02 13:06 | ✅ | | |
| 84 | −| [Irth Solutions](irth_solutions.md) | 2 | 100 % | 100 % | 100 % | 2026-10-02 13:10 | ✅ | | |
| 85 | −| [Kognitive Sales Solutions](kognitive_sales_solutions.md) | 2 | 50 % | 100 % | 50 % | 2026-10-02 13:17 | ✅ | | |
| 86 | −| [Liberty Mutual Canada](liberty_mutual_canada.md) | 2 | 0 % | 100 % | 0 % | 2026-10-02 13:18 | ✅ | | |
| 87 | −| [Nuvei](nuvei.md) | 2 | 0 % | 100 % | 50 % | 2026-10-02 13:23 | ✅ | | |
| 88 | −| [Stranger Soccer](stranger_soccer_1.md) | 2 | 0 % | 100 % | 0 % | 2026-10-02 13:32 | ✅ | | |
| 89 | −| [Mindrift](toloka_ai.md) | 2 | 100 % | 100 % | 100 % | 2026-10-02 13:35 | ✅ | | |
| 90 | −| [Valard Construction](valard_construction_lp.md) | 2 | 0 % | 100 % | 0 % | 2026-10-02 13:37 | ✅ | | |
| 91 | −| [Atecna](atecna_montreal.md) | 1 | 0 % | 100 % | 0 % | 2026-10-02 12:28 | ✅ | | |
| 92 | −| [Charger Logistics](charger_logistics_inc.md) | 1 | 0 % | 100 % | 0 % | 2026-10-02 12:40 | ✅ | | |
| 93 | −| [Andy Transport](andy_transport.md) | 1 | 0 % | 100 % | 0 % | 2026-10-02 12:28 | ✅ | | |
| 94 | −| [Hire Ground Talent](hiregroundtalent.md) | 1 | 0 % | 100 % | 0 % | 2026-10-02 13:06 | ✅ | | |
| 95 | −| [Intuition Machines, Inc.](imachines.md) | 1 | 0 % | 100 % | 100 % | 2026-10-02 13:09 | ✅ | | |
| 96 | −| [JoVE](jove.md) | 1 | 0 % | 100 % | 100 % | 2026-10-02 13:17 | ✅ | | |
| 97 | −| [Omilia](omilia_natural_language_solutions_ua_ltd.md) | 1 | 0 % | 100 % | 100 % | 2026-10-02 13:23 | ✅ | | |
| 98 | −| [Onomatic](onomatic.md) | 1 | 0 % | 100 % | 0 % | 2026-10-02 13:23 | ✅ | | |
| 99 | −| [SuperMedic.ca](supermedic.md) | 1 | 100 % | 100 % | 100 % | 2026-10-02 13:33 | ✅ | | |
| 100 | −| [Tristan Fleet](tristan_fleet_1.md) | 1 | 0 % | 100 % | 0 % | 2026-10-02 13:36 | ✅ | | |
| 101 | −| [WebProps.org](webprops.md) | 1 | 0 % | 100 % | 0 % | 2026-10-02 13:41 | ✅ | | |
| 102 | −| [Snowed In Studios](snowed_in_studios_3.md) | 1 | 100 % | 100 % | 100 % | 2026-10-02 13:31 | ✅ | | |
| 103 | −| [CSN Collision](csncollision.md) | 0 | — | — | — | 2026-10-02 12:44 | ✅ | | |
| 104 | −| [49 Solutions](x49_solutions_1.md) | 0 | — | — | — | 2026-10-02 13:42 | ✅ | | |
| 105 | −| [Altom Transport](altom_transport.md) | 0 | — | — | — | 2026-10-02 12:28 | ✅ | | |
| 106 | −| [FinDev Canada](findevcanada.md) | 0 | — | — | — | 2026-10-02 12:49 | ✅ | | |
| 107 | −| [GHGSat](ghgsat.md) | 0 | — | — | — | 2026-10-02 14:03 | ✅ | | |
| 108 | −| [Gunnebo Canada](gunnebo_safe_storage_canada.md) | 0 | — | — | — | 2026-10-02 13:06 | ✅ | | |
| 109 | −| [Liferaft](liferaft.md) | 0 | — | — | — | 2026-10-02 13:18 | ✅ | | |
| 110 | −| [Parallelz](parallelz.md) | 0 | — | — | — | 2026-10-02 13:24 | ✅ | | |
| 111 | −| [Quandela](quandela.md) | 0 | — | — | — | 2026-10-02 13:26 | ✅ | | |
| 112 | −| [Sangoma](sangoma_3.md) | 0 | — | — | — | 2026-10-02 13:28 | ✅ | | |
| 42 | +| [Solution SFT](solution_sft.md) | 843 | 26 % | 100 % | 7 % | 2026-10-06 08:48 | ✅ | | |
| 43 | +| [TEHORA](tehora.md) | 409 | 0 % | 100 % | 29 % | 2026-10-06 08:50 | ✅ | | |
| 44 | +| [Genetec](genetec_inc.md) | 96 | 0 % | 100 % | 15 % | 2026-10-06 08:15 | ✅ | | |
| 45 | +| [ApexFocusGroup](afg.md) | 46 | 0 % | 100 % | 100 % | 2026-10-06 10:04 | ✅ | | |
| 46 | +| [Valsoft](valsoft_corp.md) | 43 | 5 % | 100 % | 19 % | 2026-10-06 08:53 | ✅ | | |
| 47 | +| [SOGECLAIR](sogeclair.md) | 42 | 2 % | 100 % | 2 % | 2026-10-06 08:48 | ✅ | | |
| 48 | +| [Exportation et développement Canada (EDC)](export_development_canada.md) | 34 | 97 % | 100 % | 0 % | 2026-10-06 08:13 | ✅ | | |
| 49 | +| [Sapsol Technologies Inc](sapsol_technologies_inc_7.md) | 34 | 0 % | 100 % | 41 % | 2026-10-06 08:45 | ✅ | | |
| 50 | +| [Tecsys](tecsys.md) | 33 | 0 % | 100 % | 88 % | 2026-10-06 08:50 | ✅ | | |
| 51 | +| [Keywords Studios](keywords_intl1.md) | 22 | 95 % | 100 % | 41 % | 2026-10-06 08:28 | ✅ | | |
| 52 | +| [Baro RH](barorh.md) | 22 | 0 % | 100 % | 5 % | 2026-10-06 10:08 | ✅ | | |
| 53 | +| [Side (PTW)](sideinc.md) | 19 | 0 % | 100 % | 68 % | 2026-10-06 08:47 | ✅ | | |
| 54 | +| [Lamour](lamour.md) | 18 | 0 % | 100 % | 6 % | 2026-10-06 08:28 | ✅ | | |
| 55 | +| [Starlink Aviation](starlink_aviation.md) | 13 | 0 % | 100 % | 15 % | 2026-10-06 08:48 | ✅ | | |
| 56 | +| [Evolving Web](evolving_web.md) | 12 | 0 % | 100 % | 25 % | 2026-10-06 08:13 | ✅ | | |
| 57 | +| [Rentokil Initial](rentokil_initial.md) | 12 | 75 % | 100 % | 8 % | 2026-10-06 08:43 | ✅ | | |
| 58 | +| [Egon Zehnder](ezrecruiting.md) | 12 | 0 % | 100 % | 0 % | 2026-10-06 08:13 | ✅ | | |
| 59 | +| [Aviso Wealth](aviso.md) | 11 | 100 % | 100 % | 0 % | 2026-10-06 10:08 | ✅ | | |
| 60 | +| [FLO (AddÉnergie)](flo_addenergie.md) | 10 | 0 % | 100 % | 20 % | 2026-10-06 08:14 | ✅ | | |
| 61 | +| [LIDD Consultants](lidd.md) | 8 | 0 % | 100 % | 0 % | 2026-10-06 08:29 | ✅ | | |
| 62 | +| [Mila — Institut québécois d'IA](mila_2.md) | 8 | 0 % | 100 % | 0 % | 2026-10-06 08:36 | ✅ | | |
| 63 | +| [Sweat Pants Agency](sweat_pants_agency.md) | 8 | 25 % | 100 % | 100 % | 2026-10-06 08:49 | ✅ | | |
| 64 | +| [Nuovo Photography](nuovophotography.md) | 7 | 29 % | 100 % | 0 % | 2026-10-06 08:38 | ✅ | | |
| 65 | +| [Botpress](botpress.md) | 6 | 0 % | 100 % | 0 % | 2026-10-06 10:10 | ✅ | | |
| 66 | +| [Delmar International](delmar_international_inc.md) | 6 | 0 % | 100 % | 0 % | 2026-10-06 08:08 | ✅ | | |
| 67 | +| [Doman Building Materials Group Ltd](doman_building_materials.md) | 6 | 0 % | 100 % | 50 % | 2026-10-06 08:10 | ✅ | | |
| 68 | +| [John Brooks Company](john_brooks_company.md) | 5 | 20 % | 100 % | 40 % | 2026-10-06 08:28 | ✅ | | |
| 69 | +| [Unit8](unit8.md) | 4 | 0 % | 100 % | 50 % | 2026-10-06 08:52 | ✅ | | |
| 70 | +| [Flatgigs](flatgigs.md) | 4 | 0 % | 100 % | 0 % | 2026-10-06 08:14 | ✅ | | |
| 71 | +| [Mindrift](toloka_ai.md) | 4 | 100 % | 100 % | 100 % | 2026-10-06 08:51 | ✅ | | |
| 72 | +| [Eminent Valet](eminent_valet.md) | 3 | 100 % | 100 % | 0 % | 2026-10-06 08:12 | ✅ | | |
| 73 | +| [Flinks](flinks.md) | 3 | 0 % | 100 % | 100 % | 2026-10-06 08:14 | ✅ | | |
| 74 | +| [Damotech](damotech.md) | 3 | 0 % | 100 % | 0 % | 2026-10-06 08:08 | ✅ | | |
| 75 | +| [Allucent](allucent.md) | 3 | 0 % | 100 % | 100 % | 2026-10-06 10:05 | ✅ | | |
| 76 | +| [Devoted Studios](devoted_studios_1.md) | 3 | 0 % | 100 % | 100 % | 2026-10-06 08:09 | ✅ | | |
| 77 | +| [Power Factors](power_factors.md) | 3 | 0 % | 100 % | 0 % | 2026-10-06 08:39 | ✅ | | |
| 78 | +| [Bardel Entertainment](bardel_entertainment.md) | 2 | 100 % | 100 % | 0 % | 2026-10-06 10:08 | ✅ | | |
| 79 | +| [Charlotte Tilbury](charlotte_tilbury.md) | 2 | 0 % | 100 % | 0 % | 2026-10-06 07:57 | ✅ | | |
| 80 | +| [CTS Foods Brokers](cts_foods_brokers_inc.md) | 2 | 50 % | 100 % | 0 % | 2026-10-06 08:08 | ✅ | | |
| 81 | +| [Financeit](financeit.md) | 2 | 100 % | 100 % | 0 % | 2026-10-06 08:14 | ✅ | | |
| 82 | +| [Andy Transport](andy_transport.md) | 2 | 0 % | 100 % | 0 % | 2026-10-06 10:06 | ✅ | | |
| 83 | +| [HireHawk](hirehawk.md) | 2 | 50 % | 100 % | 100 % | 2026-10-06 08:23 | ✅ | | |
| 84 | +| [Irth Solutions](irth_solutions.md) | 2 | 100 % | 100 % | 100 % | 2026-10-06 08:26 | ✅ | | |
| 85 | +| [Kognitive Sales Solutions](kognitive_sales_solutions.md) | 2 | 50 % | 100 % | 50 % | 2026-10-06 08:28 | ✅ | | |
| 86 | +| [Nuvei](nuvei.md) | 2 | 0 % | 100 % | 50 % | 2026-10-06 08:38 | ✅ | | |
| 87 | +| [Stranger Soccer](stranger_soccer_1.md) | 2 | 0 % | 100 % | 0 % | 2026-10-06 08:48 | ✅ | | |
| 88 | +| [Valard Construction](valard_construction_lp.md) | 2 | 0 % | 100 % | 0 % | 2026-10-06 08:53 | ✅ | | |
| 89 | +| [Atecna](atecna_montreal.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 10:06 | ✅ | | |
| 90 | +| [Charger Logistics](charger_logistics_inc.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 07:57 | ✅ | | |
| 91 | +| [Acuity Insights](acuity_insights.md) | 1 | 100 % | 100 % | 100 % | 2026-10-06 10:03 | ✅ | | |
| 92 | +| [Hire Ground Talent](hiregroundtalent.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 08:23 | ✅ | | |
| 93 | +| [Intuition Machines, Inc.](imachines.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 08:25 | ✅ | | |
| 94 | +| [JoVE](jove.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 08:28 | ✅ | | |
| 95 | +| [Liberty Mutual Canada](liberty_mutual_canada.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 08:29 | ✅ | | |
| 96 | +| [Omilia](omilia_natural_language_solutions_ua_ltd.md) | 1 | 0 % | 100 % | 100 % | 2026-10-06 08:38 | ✅ | | |
| 97 | +| [Onomatic](onomatic.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 08:38 | ✅ | | |
| 98 | +| [SuperMedic.ca](supermedic.md) | 1 | 100 % | 100 % | 100 % | 2026-10-06 08:49 | ✅ | | |
| 99 | +| [Tristan Fleet](tristan_fleet_1.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 08:52 | ✅ | | |
| 100 | +| [WebProps.org](webprops.md) | 1 | 0 % | 100 % | 0 % | 2026-10-06 09:01 | ✅ | | |
| 101 | +| [Snowed In Studios](snowed_in_studios_3.md) | 1 | 100 % | 100 % | 100 % | 2026-10-06 08:47 | ✅ | | |
| 102 | +| [CSN Collision](csncollision.md) | 0 | — | — | — | 2026-10-06 08:08 | ✅ | | |
| 103 | +| [49 Solutions](x49_solutions_1.md) | 0 | — | — | — | 2026-10-06 09:02 | ✅ | | |
| 104 | +| [Altom Transport](altom_transport.md) | 0 | — | — | — | 2026-10-06 10:06 | ✅ | | |
| 105 | +| [Dentons](dentons_europe.md) | 0 | — | — | — | 2026-10-06 10:14 | ✅ | | |
| 106 | +| [FinDev Canada](findevcanada.md) | 0 | — | — | — | 2026-10-06 08:14 | ✅ | | |
| 107 | +| [GHGSat](ghgsat.md) | 0 | — | — | — | 2026-10-06 08:15 | ✅ | | |
| 108 | +| [Gunnebo Canada](gunnebo_safe_storage_canada.md) | 0 | — | — | — | 2026-10-06 08:22 | ✅ | | |
| 109 | +| [Liferaft](liferaft.md) | 0 | — | — | — | 2026-10-06 08:29 | ✅ | | |
| 110 | +| [Parallelz](parallelz.md) | 0 | — | — | — | 2026-10-06 08:39 | ✅ | | |
| 111 | +| [Quandela](quandela.md) | 0 | — | — | — | 2026-10-06 08:43 | ✅ | | |
| 112 | +| [Sangoma](sangoma_3.md) | 0 | — | — | — | 2026-10-06 08:45 | ✅ | | |
| 113 | 113 | |
| 114 | 114 | ## Licence / conformité |
| 115 | 115 | |
added
docs/connecteurs/dentons.md
+109 −0
@@ -0,0 +1,109 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/dentons.md | |
| 7 | +Rôle : Fiche connecteur — Dentons (employeur direct, ATS successfactors) | |
| 8 | +Généré : 2026-10-06 10:15 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Dentons (`dentons`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`successfactors`](ats-successfactors.md) · Statut registre : actif · Connecteur : `jobka/connectors/dentons.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Dentons](https://www.dentons.com) | |
| 20 | +- **Page carrières** : https://careers.dentons.com | |
| 21 | +- **Secteurs** : Juridique, Conseil | |
| 22 | +- **Région** : Montréal | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-successfactors.md`](ats-successfactors.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://careers.dentons.com` | | |
| 33 | +| `EMPLOYER` | `Dentons` | | |
| 34 | +- **Throttle** : 1.0 s entre requêtes. | |
| 35 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 36 | + | |
| 37 | +## Champs → schéma | |
| 38 | + | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-10-06 10:15 EDT). | |
| 40 | + | |
| 41 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 42 | +|---|---|---| | |
| 43 | +| `title` — Titre | titre du poste | 100 % | | |
| 44 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 45 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 46 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 47 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 48 | +| `region` — Région | région administrative | 100 % | | |
| 49 | +| `address` — Adresse | adresse du lieu de travail | 0 % | | |
| 50 | +| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 51 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 52 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 0 % | | |
| 53 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 100 % | | |
| 54 | +| `salary_label` — Libellé salaire | texte salarial original | 100 % | | |
| 55 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 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 | 0 % | | |
| 59 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 50 % | | |
| 60 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 61 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 62 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 63 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 64 | + | |
| 65 | +Exemple réel : *Responsable, Comptes fournisseurs* — Montréal · La fourchette salariale pour ce poste est de 75,000 $ à 85,000 $, selon les compétences, l… · parue le 2026-10-04. | |
| 66 | + | |
| 67 | +## Fréquence & budgets | |
| 68 | + | |
| 69 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 70 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 71 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 72 | + | |
| 73 | +| Variable | Défaut | | |
| 74 | +|---|---| | |
| 75 | +| `JOBKA_SF_DETAIL_LIMIT` | `150` | | |
| 76 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 77 | + | |
| 78 | +## Volumétrie & complétude live | |
| 79 | + | |
| 80 | +*(mesuré le 2026-10-06 10:15 EDT dans `data/jobka.db`)* | |
| 81 | + | |
| 82 | +- **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) | |
| 83 | +- **Salaire** : 2/2 actives (100 %) | |
| 84 | +- **GPS** : 0/2 actives (0 %) | |
| 85 | +- **Mode** : 0/2 actives (0 %) | |
| 86 | +- **Parution** : 2/2 actives (100 %) | |
| 87 | +- **Dernier sync** : 2026-10-06 10:14 — trouvées 2, +0, ~2, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 2 | |
| 89 | + | |
| 90 | +## Erreurs & dépannage | |
| 91 | + | |
| 92 | +Aucune erreur dans `sync_log` pour cette source. | |
| 93 | + | |
| 94 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync dentons` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='dentons' ORDER BY ts DESC LIMIT 5;"` | |
| 95 | +- 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`. | |
| 96 | + | |
| 97 | +## Licence / conformité | |
| 98 | + | |
| 99 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Dentons » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 100 | + | |
| 101 | +## Historique | |
| 102 | + | |
| 103 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 104 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 105 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 106 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 107 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 108 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 109 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
modified
docs/connecteurs/dentons_europe.md
+11 −37
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/dentons_europe.md |
| 7 | 7 | Rôle : Fiche connecteur — Dentons (employeur direct, ATS workable) |
| 8 | −Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-10-06 10:15 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-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 16 | 16 | |
| 17 | 17 | ## Description |
| 18 | 18 | |
| 19 | −- **Site** : [Dentons]() | |
| 19 | +- **Site** : [Dentons](https://www.dentons.com) | |
| 20 | 20 | - **Page carrières** : https://apply.workable.com/dentons-europe |
| 21 | 21 | - **Secteurs** : Juridique, Conseil |
| 22 | 22 | - **Région** : Montréal |
@@ -36,33 +36,7 @@ Généré : 2026-09-21 18:06 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-09-21 18:06 EDT). | |
| 40 | − | |
| 41 | −| Champ (`jobs.*`) | Rôle | Complétude | | |
| 42 | −|---|---|---| | |
| 43 | −| `title` — Titre | titre du poste | 100 % | | |
| 44 | −| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 45 | −| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 46 | −| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 47 | −| `city` — Ville | municipalité normalisée | 100 % | | |
| 48 | −| `region` — Région | région administrative | 100 % | | |
| 49 | −| `address` — Adresse | adresse du lieu de travail | 0 % | | |
| 50 | −| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 51 | −| `work_mode` — Mode | presentiel / hybride / teletravail | 100 % | | |
| 52 | −| `employment_type` — Type | temps_plein / temps_partiel / … | 50 % | | |
| 53 | −| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 50 % | | |
| 54 | −| `salary_label` — Libellé salaire | texte salarial original | 50 % | | |
| 55 | −| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 56 | −| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 50 % | | |
| 57 | −| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 58 | −| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 59 | −| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 100 % | | |
| 60 | −| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 61 | −| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 62 | −| `apply_url` — Candidature | lien de candidature directe | 100 % | | |
| 63 | −| `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | | |
| 64 | − | |
| 65 | −Exemple réel : *Global Value Pricing and Project Manager* — Montréal · Salary range: US$80,000–US$160,000 gross annually, depending on experience and qualificati… · parue le 2026-05-06. | |
| 39 | +*Aucune offre active en base pour cette source.* | |
| 66 | 40 | |
| 67 | 41 | ## Fréquence & budgets |
| 68 | 42 | |
@@ -72,15 +46,15 @@ Exemple réel : *Global Value Pricing and Project Manager* — Montréal · Sala | ||
| 72 | 46 | |
| 73 | 47 | ## Volumétrie & complétude live |
| 74 | 48 | |
| 75 | −*(mesuré le 2026-09-21 18:06 EDT dans `data/jobka.db`)* | |
| 49 | +*(mesuré le 2026-10-06 10:15 EDT dans `data/jobka.db`)* | |
| 76 | 50 | |
| 77 | −- **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) | |
| 78 | −- **Salaire** : 1/2 actives (50 %) | |
| 79 | −- **GPS** : 2/2 actives (100 %) | |
| 80 | −- **Mode** : 2/2 actives (100 %) | |
| 81 | −- **Parution** : 2/2 actives (100 %) | |
| 82 | −- **Dernier sync** : 2026-09-21 16:52 — trouvées 2, +0, ~0, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 261 | |
| 51 | +- **Offres en base** : 2 (dont **0 actives**, 0 masquées comme doublons `dup_of`) | |
| 52 | +- **Salaire** : 0/0 actives (—) | |
| 53 | +- **GPS** : 0/0 actives (—) | |
| 54 | +- **Mode** : 0/0 actives (—) | |
| 55 | +- **Parution** : 0/0 actives (—) | |
| 56 | +- **Dernier sync** : 2026-10-06 10:14 — trouvées 0, +0, ~0, -1 | |
| 57 | +- **Syncs enregistrés** (`sync_log`) : 428 | |
| 84 | 58 | |
| 85 | 59 | ## Erreurs & dépannage |
| 86 | 60 | |
added
jobka/connectors/dentons.py
+29 −0
@@ -0,0 +1,29 @@ | ||
| 1 | +# ============================================================================= | |
| 2 | +# Job·Ka — Groupe KA | |
| 3 | +# Auteur : Simon-Pierre Boucher | |
| 4 | +# Contact : contact@spboucher.ai | |
| 5 | +# Fichier : jobka/connectors/dentons.py | |
| 6 | +# Rôle : Connecteur Dentons (portail carrières mondial/Canada) — | |
| 7 | +# SuccessFactors CSB careers.dentons.com, filtre QC | |
| 8 | +# Créé : 2026-10-06 Modifié : 2026-10-06 | |
| 9 | +# ============================================================================= | |
| 10 | +"""Dentons — portail carrières mondial (SuccessFactors Career Site Builder). | |
| 11 | + | |
| 12 | +Ajouté le 2026-10-06 (mission ka6 dentons_europe) : le board Workable | |
| 13 | +« dentons-europe » (connecteur frère ``dentons_europe``) ne couvre que les | |
| 14 | +publications de Dentons Europe — son unique offre QC historique (un rôle | |
| 15 | +« Global » basé à Montréal) a été dépubliée le 2026-10-06. Les postes | |
| 16 | +réguliers du bureau de Montréal sont publiés ICI, sur careers.dentons.com | |
| 17 | +(SuccessFactors, sitemap urlset ~141 offres mondiales, slugs « -Queb/ » / | |
| 18 | +« -Québ/ ») — 2 offres QC vivantes à l'ajout (paire FR/EN « Responsable, | |
| 19 | +Comptes fournisseurs / Accounts Payable Lead », Montréal). Même variante que | |
| 20 | +pwc 8d150eb : le volume QC de l'employeur vit sur un portail frère — ici un | |
| 21 | +autre ATS, d'où un connecteur distinct plutôt qu'un EXTRA_SITES. | |
| 22 | +""" | |
| 23 | +from .successfactors import SuccessFactorsConnector | |
| 24 | + | |
| 25 | + | |
| 26 | +class DentonsConnector(SuccessFactorsConnector): | |
| 27 | + source_id = "dentons" | |
| 28 | + EMPLOYER = "Dentons" | |
| 29 | + BASE = "https://careers.dentons.com" | |
modified
jobka/connectors/dentons_europe.py
+18 −1
@@ -5,8 +5,25 @@ | ||
| 5 | 5 | # Fichier : jobka/connectors/dentons_europe.py |
| 6 | 6 | # Rôle : Connecteur Dentons — workable (org « dentons-europe ») |
| 7 | 7 | # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23] |
| 8 | −# Créé : 2026-08-23 Modifié : 2026-08-23 | |
| 8 | +# Créé : 2026-08-23 Modifié : 2026-10-06 | |
| 9 | 9 | # ============================================================================= |
| 10 | +"""Dentons Europe — board Workable « dentons-europe ». | |
| 11 | + | |
| 12 | +Volume QC structurellement 0-2 (médiane historique 1.0) : ce board est celui | |
| 13 | +de Dentons EUROPE (Pologne, Italie, Tchéquie, Afrique…) — il n'a porté du QC | |
| 14 | +que via des rôles « Global » basés à Montréal. Chronologie 2026-10-06 | |
| 15 | +(mission ka6, 43e cas du pattern « volume QC nul ») : la dernière offre QC | |
| 16 | +(1454A1A702 « Global Value Pricing and Project Manager », Montréal, parue | |
| 17 | +2026-05-06) a été DÉPUBLIÉE entre 05:09 et 08:08 EDT (found 1 → 0, missed=1) ; | |
| 18 | +marqueur Workable confirmé live : détail 302 → /oops. Board re-vérifié : 200, | |
| 19 | +64 offres mondiales, 0 lieu CA/QC (multi-lieux et 23 remote inclus), | |
| 20 | +recherche v3 Montreal/Quebec/Canada = 0 ; orgs frères « dentons » et | |
| 21 | +« dentons-global » = 200 mais 0 offre ; pas de migration (le board est | |
| 22 | +vivant). Les postes réguliers du bureau de Montréal sont sur | |
| 23 | +careers.dentons.com (SuccessFactors) → couverts depuis 2026-10-06 par le | |
| 24 | +connecteur frère ``dentons``. Tant que ce board Europe ne republie pas de | |
| 25 | +rôle Global à Montréal, found=0 ici est CORRECT. | |
| 26 | +""" | |
| 10 | 27 | from .workable import WorkableConnector |
| 11 | 28 | |
| 12 | 29 | |
modified
jobka/connectors/successfactors.py
+50 −5
@@ -5,7 +5,7 @@ | ||
| 5 | 5 | # Fichier : jobka/connectors/successfactors.py |
| 6 | 6 | # Rôle : Classe de plateforme SAP SuccessFactors (sites carrières « Career |
| 7 | 7 | # Site Builder » / jobs2web) — sitemap RSS ou XML + microdonnées |
| 8 | −# Créé : 2026-08-18 Modifié : 2026-09-13 | |
| 8 | +# Créé : 2026-08-18 Modifié : 2026-10-06 | |
| 9 | 9 | # ============================================================================= |
| 10 | 10 | """Plateforme SAP SuccessFactors (Career Site Builder, ex-jobs2web). |
| 11 | 11 | |
@@ -47,11 +47,42 @@ _QC_SLUG_RE = re.compile(r"-(qu[ée]b|qc)[-/]|-[ghj]\d[a-z][- ]?\d[a-z]\d/", | ||
| 47 | 47 | _ITEMPROP_RE = re.compile( |
| 48 | 48 | r'<(?:span|div|p)[^>]*itemprop="description"[^>]*>(.*?)' |
| 49 | 49 | r"</(?:span|div|p)>", re.S | re.I) |
| 50 | +# Ouverture de l'élément description — l'extraction ÉQUILIBRÉE (voir | |
| 51 | +# _balanced_itemprop) remplace _ITEMPROP_RE quand le contenu contient des | |
| 52 | +# balises imbriquées du même type : sur careers.dentons.com le span | |
| 53 | +# itemprop="description" enveloppe <span class="jobdescription"><p>…, et la | |
| 54 | +# capture non gourmande s'arrêtait au premier </p> → description vide | |
| 55 | +# (constaté 2026-10-06). _ITEMPROP_RE reste le repli. | |
| 56 | +_DESC_OPEN_RE = re.compile( | |
| 57 | + r'<(span|div|p)\b[^>]*itemprop="description"[^>]*>', re.I) | |
| 58 | +# Titre complet de la page détail — le titre dérivé du slug est tronqué sur | |
| 59 | +# les tenants dont le slug se termine par la province abrégée seule | |
| 60 | +# (« …-Accounts-Payable-Lead-Queb/ » → « Accounts », Dentons 2026-10-06) : | |
| 61 | +# l'heuristique [:-3] suppose une queue « -Prov-CP1-CP2 ». | |
| 62 | +_TITLE_RE = re.compile( | |
| 63 | + r'<(?:span|h\d)[^>]*itemprop="title"[^>]*>(.*?)</', re.S | re.I) | |
| 50 | 64 | _META_RE = re.compile( |
| 51 | 65 | r'itemprop="(datePosted|addressLocality|postalCode|employmentType)"' |
| 52 | 66 | r'[^>]*content="([^"]*)"', re.I) |
| 53 | 67 | |
| 54 | 68 | |
| 69 | +def _balanced_itemprop(html: str, open_re: re.Pattern) -> str: | |
| 70 | + """Contenu des éléments matchés par ``open_re``, en équilibrant les | |
| 71 | + balises du MÊME type que l'élément porteur (span/div/p imbriqués).""" | |
| 72 | + parts = [] | |
| 73 | + for m in open_re.finditer(html): | |
| 74 | + tag, start, depth = m.group(1).lower(), m.end(), 1 | |
| 75 | + tok = re.compile(rf"<(/?){tag}\b[^>]*>", re.I) | |
| 76 | + end = len(html) | |
| 77 | + for t in tok.finditer(html, start): | |
| 78 | + depth += -1 if t.group(1) else 1 | |
| 79 | + if depth == 0: | |
| 80 | + end = t.start() | |
| 81 | + break | |
| 82 | + parts.append(html[start:end]) | |
| 83 | + return "\n".join(parts) | |
| 84 | + | |
| 85 | + | |
| 55 | 86 | class SuccessFactorsConnector(BaseConnector): |
| 56 | 87 | """Base SuccessFactors CSB — sous-classes : définir source_id, EMPLOYER, |
| 57 | 88 | BASE (URL du site carrières, ex. https://jobs.bombardier.com).""" |
@@ -107,9 +138,16 @@ class SuccessFactorsConnector(BaseConnector): | ||
| 107 | 138 | def _fetch_detail(self, url: str) -> dict: |
| 108 | 139 | html = self.get(url).text |
| 109 | 140 | d: dict = {} |
| 110 | − chunks = _ITEMPROP_RE.findall(html) | |
| 111 | − if chunks: | |
| 112 | − d["description"] = clean_html("\n".join(chunks))[:20000] | |
| 141 | + desc = clean_html(_balanced_itemprop(html, _DESC_OPEN_RE)) | |
| 142 | + if not desc.strip(): # repli : ancienne capture non gourmande | |
| 143 | + desc = clean_html("\n".join(_ITEMPROP_RE.findall(html))) | |
| 144 | + if desc.strip(): | |
| 145 | + d["description"] = desc[:20000] | |
| 146 | + m = _TITLE_RE.search(html) | |
| 147 | + if m: | |
| 148 | + title = clean_html(m.group(1)).strip() | |
| 149 | + if title: | |
| 150 | + d["title"] = title | |
| 113 | 151 | for prop, content in _META_RE.findall(html): |
| 114 | 152 | d[prop] = content |
| 115 | 153 | return d |
@@ -168,9 +206,16 @@ class SuccessFactorsConnector(BaseConnector): | ||
| 168 | 206 | if d: |
| 169 | 207 | if d.get("description"): |
| 170 | 208 | job.description = d["description"] |
| 209 | + if d.get("title"): | |
| 210 | + job.title = d["title"] | |
| 171 | 211 | if d.get("datePosted"): |
| 172 | 212 | job.date_posted = d["datePosted"] |
| 173 | − if d.get("addressLocality"): | |
| 213 | + # offre multi-villes (meta address répétée, dernière gagnante, | |
| 214 | + # ex. Dentons Ottawa/Toronto/Montréal) : ne jamais remplacer | |
| 215 | + # la ville QC du slug par une ville hors Québec | |
| 216 | + if d.get("addressLocality") and ( | |
| 217 | + not self.quebec_only | |
| 218 | + or is_quebec_location(d["addressLocality"])): | |
| 174 | 219 | job.city = d["addressLocality"] |
| 175 | 220 | if d.get("employmentType"): |
| 176 | 221 | job.details["employment_label"] = d["employmentType"] |
modified
jobka/normalize.py
+14 −1
@@ -6,7 +6,7 @@ | ||
| 6 | 6 | # Rôle : Normalisation commune des offres (salaires, dates, mode/type |
| 7 | 7 | # d'emploi, lieu, catégorie, exigences, séniorité) — jamais de |
| 8 | 8 | # valeur inventée |
| 9 | −# Créé : 2026-08-17 Modifié : 2026-10-05 | |
| 9 | +# Créé : 2026-08-17 Modifié : 2026-10-06 | |
| 10 | 10 | # ============================================================================= |
| 11 | 11 | """Couche de normalisation commune appelée par JobPosting.finalize(). |
| 12 | 12 | |
@@ -323,6 +323,19 @@ def parse_date(raw, today: _dt.date | None = None) -> str | None: | ||
| 323 | 323 | else 30 if unit.startswith(("moi", "month")) else 1) |
| 324 | 324 | return (today - _dt.timedelta(days=days)).isoformat() |
| 325 | 325 | |
| 326 | + # « Sun Oct 04 02:00:00 UTC 2026 » — java.util.Date.toString(), émis par | |
| 327 | + # les meta itemprop="datePosted" des sites SuccessFactors CSB | |
| 328 | + m = re.search(r"\b([a-z]{3,9})\s+(\d{1,2})\s+\d{1,2}:\d{2}:\d{2}\s+" | |
| 329 | + r"[a-z]{1,5}\s+(\d{4})", key) | |
| 330 | + if m: | |
| 331 | + mois = _MONTHS.get(m.group(1)) | |
| 332 | + if mois: | |
| 333 | + try: | |
| 334 | + return _dt.date(int(m.group(3)), mois, | |
| 335 | + int(m.group(2))).isoformat() | |
| 336 | + except ValueError: | |
| 337 | + return None | |
| 338 | + | |
| 326 | 339 | # « 1er juillet 2026 » / « July 1st, 2026 » / « déc. 2026 » |
| 327 | 340 | m = re.search(r"(?:(\d{1,2})(?:er|e|st|nd|rd|th)?\s+)?([a-z]{3,9})\.?,?\s+(?:(\d{1,2})(?:er|st|nd|rd|th)?,?\s+)?(\d{4})", key) |
| 328 | 341 | if m: |
modified
tests/test_normalize.py
+8 −1
@@ -5,7 +5,7 @@ | ||
| 5 | 5 | # Fichier : tests/test_normalize.py |
| 6 | 6 | # Rôle : Tests unitaires de la couche de normalisation (salaires, dates, |
| 7 | 7 | # mode/type d'emploi, lieux, catégories) |
| 8 | −# Créé : 2026-08-17 Modifié : 2026-09-14 | |
| 8 | +# Créé : 2026-08-17 Modifié : 2026-10-06 | |
| 9 | 9 | # ============================================================================= |
| 10 | 10 | import datetime as dt |
| 11 | 11 | |
@@ -95,6 +95,13 @@ def test_date_english(): | ||
| 95 | 95 | assert parse_date("July 1st, 2026", TODAY) == "2026-07-01" |
| 96 | 96 | |
| 97 | 97 | |
| 98 | +def test_date_java_tostring(): | |
| 99 | + # SuccessFactors CSB : meta itemprop="datePosted" au format | |
| 100 | + # java.util.Date.toString() (cas Dentons careers.dentons.com, 2026-10-06) | |
| 101 | + assert parse_date("Sun Oct 04 02:00:00 UTC 2026") == "2026-10-04" | |
| 102 | + assert parse_date("Mon Dec 01 23:00:00 EST 2026") == "2026-12-01" | |
| 103 | + | |
| 104 | + | |
| 98 | 105 | def test_date_relative(): |
| 99 | 106 | assert parse_date("Posted 3 Days Ago", TODAY) == "2026-08-14" |
| 100 | 107 | assert parse_date("il y a 2 semaines", TODAY) == "2026-08-03" |
| 101 | 108 | |