SPB Git forge

spb/job-ka

Public
229commits 1branches 0releases
38.1 MBsize
maindefault branch
2 h agolast push
HTML 82.1% Python 14.6% TypeScript 1.9% CSS 1% JavaScript 0.5%
15.6 KB · 201 lines markdown
Rendered Raw Blame History
1<!--2=============================================================================3Job·Ka — Groupe KA4Auteur  : Simon-Pierre Boucher5Contact : contact@spboucher.ai6Fichier : docs/connecteurs/ats-dayforce.md7Rôle    : Fiche plateforme ATS dayforce — mécanique partagée + tableau des 128 tenants8Généré  : 2026-09-21 20:03 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,9          relancer le script pour régénérer.10=============================================================================11-->1213# Plateforme ATS `dayforce`1415**128 employeurs connectés** via cette plateforme — **1807 offres actives**. Module partagé : `jobka/connectors/dayforce.py` ; un employeur = une sous-classe d'environ 10 lignes.1617## Description & mécanique1819> Plateforme Dayforce HCM (ex-Ceridian) — jobs.dayforcehcm.com.20>21> API JSON publique du frontal (celle que le navigateur appelle) :22> - jeton  : GET  /api/auth/csrf -> {csrfToken} (+ cookie de session next-auth) ;23>            toute requête POST doit porter l'en-tête X-CSRF-TOKEN, sinon 403.24> - liste  : POST /api/geo/<NS>/jobposting/search25>            body {clientNamespace, jobBoardCode, cultureCode,26>                  paginationStart} (pages FIXES de 25, champ découvert dans le27>            chunk Next.js : paginationStart=(page-1)*25)28>            -> {jobPostings:[{jobPostingId, jobTitle, jobDescription (HTML29>               COMPLET dès la liste), jobBoardId, postingStartTimestampUTC,30>               postingExpiryTimestampUTC, isEvergreen,31>               postingLocations:[{formattedAddress, isoCountryCode, stateCode,32>               cityName, coordinates "lat:…;lng:…"}]}], maxCount}33> - détail : GET /api/geo/<NS>/jobposting/<NS>/<culture>/<jobBoardId>/<id>34>            -> jobPostingAttributes [{name: "PayType"/"PayClass", value}] +35>            jobPostingContent (header/description/footer). Visité avec cache BD36>            + budget par cycle (n'apporte que les attributs type/paie).37>38> cultureCode « fr-CA » : Dayforce sert la traduction française quand elle39> existe (public québécois), sinon le texte original.4041## Accès4243- **Endpoint** (`BASE`) : `https://jobs.dayforcehcm.com`44- **Pagination** : flux unique (une requête liste)45- **Backend** : GET/POST direct `requests` (throttlé, User-Agent `JobKaBot/1.0` identifié)46- **Auth** : aucune — API/pages publiques du site carrières.47- **Throttle** : 0.8 s entre requêtes.48- **Budgets (env)** : `JOBKA_DAYFORCE_DETAIL_LIMIT` (défaut `80`)4950## Tenants connectés5152| Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK |53|---|---|---|---|---|---|---|54| [La Vie en Rose](lavieenrose.md) | 151 | 3 % | 100 % | 0 % | 2026-09-21 18:52 | ✅ |55| [Le Groupe Maurice](groupemaurice.md) | 135 | 0 % | 100 % | 0 % | 2026-09-21 18:34 | ✅ |56| [Vetstrategy](vetstrategy.md) | 130 | 2 % | 100 % | 1 % | 2026-09-21 19:10 | ✅ |57| [Bulkbarn](bulkbarn.md) | 79 | 0 % | 100 % | 0 % | 2026-09-21 18:13 | ✅ |58| [Gray Collection (Groupe Antonopoulos)](graycollection.md) | 61 | 0 % | 100 % | 0 % | 2026-09-21 18:33 | ✅ |59| [Gdv](gdv.md) | 54 | 0 % | 100 % | 0 % | 2026-09-21 18:30 | ✅ |60| [Automobileendirect](automobileendirect.md) | 52 | 0 % | 100 % | 0 % | 2026-09-21 18:11 | ✅ |61| [Unoria](unoria.md) | 45 | 0 % | 100 % | 0 % | 2026-09-21 19:10 | ✅ |62| [BPA (Experts-conseils)](bpa.md) | 42 | 0 % | 100 % | 2 % | 2026-09-21 18:13 | ✅ |63| [JD Sports Canada](jdsports.md) | 42 | 0 % | 100 % | 2 % | 2026-09-21 18:45 | ✅ |64| [Laura Canada](lauracanada.md) | 42 | 0 % | 100 % | 0 % | 2026-09-21 18:51 | ✅ |65| [Camions Excellence Peterbilt](excellencepeterbilt.md) | 41 | 15 % | 100 % | 0 % | 2026-09-21 18:29 | ✅ |66| [Groupe CH (Canadiens de Montréal, Centre Bell)](groupech.md) | 41 | 2 % | 100 % | 0 % | 2026-09-21 18:33 | ✅ |67| [Lgs](lgs.md) | 40 | 0 % | 100 % | 22 % | 2026-09-21 18:52 | ✅ |68| [Lesymcaquebec](lesymcaquebec.md) | 39 | 26 % | 100 % | 0 % | 2026-09-21 18:52 | ✅ |69| [Kenworthmaska](kenworthmaska.md) | 36 | 3 % | 100 % | 0 % | 2026-09-21 18:51 | ✅ |70| [Sany](imperialdade.md) | 30 | 0 % | 100 % | 0 % | 2026-09-21 18:44 | ✅ |71| [Logm](logm.md) | 26 | 85 % | 100 % | 27 % | 2026-09-21 18:53 | ✅ |72| [Stellajones](stellajones.md) | 24 | 17 % | 100 % | 0 % | 2026-09-21 19:05 | ✅ |73| [Comptable prix de revient](exceldorfoods478.md) | 23 | 26 % | 100 % | 9 % | 2026-09-21 18:29 | ✅ |74| [Soprema](soprema.md) | 21 | 24 % | 100 % | 0 % | 2026-09-21 19:05 | ✅ |75| [Cmpams](cmpams.md) | 19 | 0 % | 100 % | 0 % | 2026-09-21 18:23 | ✅ |76| [Pré-assemblage](motionc.md) | 19 | 0 % | 100 % | 5 % | 2026-09-21 18:55 | ✅ |77| [CONTRÔLEUR](novatech.md) | 18 | 33 % | 100 % | 0 % | 2026-09-21 18:56 | ✅ |78| [Groupe Mach](groupemach.md) | 17 | 12 % | 100 % | 0 % | 2026-09-21 18:33 | ✅ |79| [Le Massif de Charlevoix](lemassif.md) | 17 | 0 % | 100 % | 0 % | 2026-09-21 18:52 | ✅ |80| [Avocat·e, Bureau de l'avocate générale](mthris.md) | 16 | 38 % | 100 % | 0 % | 2026-09-21 18:55 | ✅ |81| [Journalier(ère) de production](vestis.md) | 16 | 0 % | 100 % | 0 % | 2026-09-21 19:10 | ✅ |82| [VinFast Canada](vinfastcanada.md) | 15 | 33 % | 100 % | 0 % | 2026-09-21 19:11 | ✅ |83| [Groupe AGF](groupeagf.md) | 14 | 29 % | 100 % | 29 % | 2026-09-21 18:33 | ✅ |84| [United Services Group](unitedservices.md) | 14 | 0 % | 100 % | 0 % | 2026-09-21 19:10 | ✅ |85| [Spisante](spisante.md) | 14 | 0 % | 100 % | 29 % | 2026-09-21 19:05 | ✅ |86| [Ccmhockey](ccmhockey.md) | 13 | 0 % | 100 % | 0 % | 2026-09-21 18:18 | ✅ |87| [Colabor](colabor.md) | 13 | 0 % | 100 % | 0 % | 2026-09-21 18:23 | ✅ |88| [Hygiéniste Industrielle](kdcone.md) | 13 | 0 % | 100 % | 0 % | 2026-09-21 18:51 | ✅ |89| [Premierparks](premierparks.md) | 13 | 8 % | 100 % | 0 % | 2026-09-21 18:58 | ✅ |90| [Valnetinc](valnetinc.md) | 13 | 0 % | 100 % | 77 % | 2026-09-21 19:10 | ✅ |91| [Boralex](boralex.md) | 12 | 0 % | 100 % | 0 % | 2026-09-21 18:13 | ✅ |92| [Erb](erb.md) | 12 | 33 % | 100 % | 0 % | 2026-09-21 18:28 | ✅ |93| [Chef.fe de service de quart, soir](lantic.md) | 12 | 50 % | 100 % | 0 % | 2026-09-21 18:51 | ✅ |94| [Intervenant·e au suivi psychosocial](obm.md) | 12 | 0 % | 100 % | 0 % | 2026-09-21 18:57 | ✅ |95| [Bilingual Customer Experience Representative (English ...](superiorplus.md) | 12 | 75 % | 100 % | 0 % | 2026-09-21 19:06 | ✅ |96| [Running Room Canada](runningroom.md) | 11 | 0 % | 100 % | 0 % | 2026-09-21 19:01 | ✅ |97| [Associé(e), entretien préventif](boardwalkreit.md) | 11 | 0 % | 100 % | 0 % | 2026-09-21 18:13 | ✅ |98| [Cfibfcei](cfibfcei.md) | 11 | 18 % | 100 % | 0 % | 2026-09-21 18:19 | ✅ |99| [Heavy Machinery Operator](dhilmarele.md) | 11 | 0 % | 100 % | 0 % | 2026-09-21 18:25 | ✅ |100| [Lapresse2018Inc](lapresse2018inc.md) | 10 | 0 % | 100 % | 0 % | 2026-09-21 18:51 | ✅ |101| [Groupe Scandinave (Scandinave Spa)](gscandinave.md) | 10 | 0 % | 100 % | 0 % | 2026-09-21 18:34 | ✅ |102| [Nationex](nationex.md) | 9 | 0 % | 100 % | 0 % | 2026-09-21 18:55 | ✅ |103| [Vice-President, Strategic Procurement](eddyfi.md) | 9 | 0 % | 100 % | 0 % | 2026-09-21 18:27 | ✅ |104| [Josephribkoff](josephribkoff.md) | 9 | 0 % | 100 % | 0 % | 2026-09-21 18:50 | ✅ |105| [4Refuel](4refuel.md) | 8 | 25 % | 100 % | 0 % | 2026-09-21 19:14 | ✅ |106| [Groupemarcelle](groupemarcelle.md) | 8 | 12 % | 100 % | 0 % | 2026-09-21 18:33 | ✅ |107| [Sales Associate-Retail](roots.md) | 8 | 0 % | 100 % | 0 % | 2026-09-21 19:01 | ✅ |108| [Administration portuaire de Québec](portquebec.md) | 7 | 0 % | 100 % | 0 % | 2026-09-21 18:58 | ✅ |109| [Eidos-Montréal](eidosmontreal.md) | 7 | 0 % | 100 % | 0 % | 2026-09-21 18:28 | ✅ |110| [Altg](altg.md) | 7 | 14 % | 100 % | 0 % | 2026-09-21 18:10 | ✅ |111| [Manœuvre générale](athos.md) | 7 | 57 % | 100 % | 0 % | 2026-09-21 18:10 | ✅ |112| [Eldoradogold](eldoradogold.md) | 7 | 0 % | 100 % | 0 % | 2026-09-21 18:28 | ✅ |113| [Liftow](liftow.md) | 7 | 0 % | 100 % | 0 % | 2026-09-21 18:53 | ✅ |114| [CEP Forensique](cep.md) | 7 | 0 % | 100 % | 0 % | 2026-09-21 18:19 | ✅ |115| [Fastco Canada](fastcocanada.md) | 6 | 0 % | 100 % | 0 % | 2026-09-21 18:29 | ✅ |116| [Nssl](nssl.md) | 6 | 0 % | 100 % | 0 % | 2026-09-21 18:56 | ✅ |117| [Terrapure](terrapure.md) | 6 | 17 % | 100 % | 0 % | 2026-09-21 19:07 | ✅ |118| [Field Mechanic](bly.md) | 6 | 100 % | 100 % | 0 % | 2026-09-21 18:13 | ✅ |119| [Vendeur 3ème Clé (Thirdy Key)](fossil.md) | 6 | 0 % | 100 % | 0 % | 2026-09-21 18:30 | ✅ |120| [Air Canada Rouge](acadierouge.md) | 5 | 20 % | 100 % | 0 % | 2026-09-21 18:07 | ✅ |121| [Realstar](realstar.md) | 5 | 0 % | 100 % | 0 % | 2026-09-21 19:00 | ✅ |122| [Citronhygiene](citronhygiene.md) | 5 | 100 % | 100 % | 0 % | 2026-09-21 18:23 | ✅ |123| [Cominar](cominar.md) | 5 | 0 % | 100 % | 0 % | 2026-09-21 18:23 | ✅ |124| [Ggi](ggi.md) | 5 | 0 % | 100 % | 0 % | 2026-09-21 18:31 | ✅ |125| [Architecte Salesforce Sommaire](jam.md) | 5 | 0 % | 100 % | 0 % | 2026-09-21 18:45 | ✅ |126| [Mlp](mlp.md) | 5 | 0 % | 100 % | 0 % | 2026-09-21 18:55 | ✅ |127| [Sobeys](sobeys.md) | 5 | 0 % | 100 % | 0 % | 2026-09-21 19:04 | ✅ |128| [Vortex](vortex.md) | 5 | 0 % | 100 % | 0 % | 2026-09-21 19:11 | ✅ |129| [Reflector Entertainment](reflector.md) | 4 | 0 % | 100 % | 0 % | 2026-09-21 19:00 | ✅ |130| [Linehaul Nuit, Conducteur, classe 1](cardinalcouriers.md) | 4 | 50 % | 100 % | 50 % | 2026-09-21 18:14 | ✅ |131| [Board](deltastar.md) | 4 | 0 % | 100 % | 0 % | 2026-09-21 18:24 | ✅ |132| [Groupenorbec](groupenorbec.md) | 4 | 0 % | 100 % | 0 % | 2026-09-21 18:34 | ✅ |133| [Administrateur Immobilier](gwlra.md) | 4 | 0 % | 100 % | 0 % | 2026-09-21 18:40 | ✅ |134| [GAME DESIGN AND VIDEO GAME LEVEL](lci.md) | 4 | 0 % | 100 % | 0 % | 2026-09-21 18:52 | ✅ |135| [Porta](porta.md) | 4 | 0 % | 100 % | 0 % | 2026-09-21 18:58 | ✅ |136| [Flowcontrol](flowcontrol.md) | 4 | 0 % | 100 % | 0 % | 2026-09-21 18:30 | ✅ |137| [Dare Foods](darefoods.md) | 3 | 100 % | 100 % | 0 % | 2026-09-21 18:24 | ✅ |138| [East Penn Canada](eastpenn.md) | 3 | 33 % | 100 % | 0 % | 2026-09-21 18:27 | ✅ |139| [Agent(e) de location de communauté](iip.md) | 3 | 0 % | 100 % | 0 % | 2026-09-21 18:43 | ✅ |140| [Maxicanada](maxicanada.md) | 3 | 100 % | 100 % | 0 % | 2026-09-21 18:53 | ✅ |141| [Bilingual (French/English) Sales Broker (RIBO Licensed)](ogc.md) | 3 | 100 % | 100 % | 0 % | 2026-09-21 18:57 | ✅ |142| [Consultant(e) en développement des affaires](omnitrans.md) | 3 | 67 % | 100 % | 0 % | 2026-09-21 18:57 | ✅ |143| [Enseignant suppléant](oneschoolglobal.md) | 3 | 0 % | 100 % | 0 % | 2026-09-21 18:57 | ✅ |144| [Quadra](quadra.md) | 3 | 100 % | 100 % | 33 % | 2026-09-21 18:59 | ✅ |145| [Remco](remco.md) | 3 | 0 % | 100 % | 0 % | 2026-09-21 19:00 | ✅ |146| [Rmldb](rmldb.md) | 3 | 0 % | 100 % | 0 % | 2026-09-21 19:01 | ✅ |147| [Souffletmalt](souffletmalt.md) | 3 | 67 % | 100 % | 0 % | 2026-09-21 19:05 | ✅ |148| [Ajholdingsltd](ajholdingsltd.md) | 3 | 100 % | 100 % | 0 % | 2026-09-21 18:09 | ✅ |149| [FOREMAN ASSISTANT SHIPPING RECEIVING](benmor.md) | 3 | 33 % | 100 % | 67 % | 2026-09-21 18:12 | ✅ |150| [Bronswerk](bronswerk.md) | 3 | 0 % | 100 % | 0 % | 2026-09-21 18:13 | ✅ |151| [Berger (tourbe horticole)](berger.md) | 3 | 0 % | 100 % | 0 % | 2026-09-21 18:12 | ✅ |152| [Peaktech](peaktech.md) | 3 | 0 % | 100 % | 0 % | 2026-09-21 18:57 | ✅ |153| [StorageMart](storagemart.md) | 2 | 100 % | 100 % | 0 % | 2026-09-21 19:05 | ✅ |154| [Granit Design](granit_design.md) | 2 | 0 % | 100 % | 50 % | 2026-09-21 18:32 | ✅ |155| [Designer graphique](mhca.md) | 2 | 0 % | 100 % | 0 % | 2026-09-21 18:54 | ✅ |156| [Realterm](realterm.md) | 2 | 0 % | 100 % | 0 % | 2026-09-21 19:00 | ✅ |157| [E-Commerce Shipping Associate](slg001.md) | 2 | 0 % | 100 % | 0 % | 2026-09-21 19:04 | ✅ |158| [Wafna](wafna.md) | 2 | 0 % | 100 % | 0 % | 2026-09-21 19:11 | ✅ |159| [Westjet](westjet.md) | 2 | 0 % | 100 % | 0 % | 2026-09-21 19:13 | ✅ |160| [Téléfilm Canada](telefilmcanada.md) | 2 | 0 % | 100 % | 0 % | 2026-09-21 19:07 | ✅ |161| [BLEUFEU (Festival d'été de Québec)](bleufeu.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 18:13 | ✅ |162| [Cooperrentsequip](cooperrentsequip.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 18:24 | ✅ |163| [Enercare](enercare.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 18:28 | ✅ |164| [Gng](gng.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 18:32 | ✅ |165| [AIDE À L'EXPÉDITION/À LA RÉCEPTION](harrisrebar.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 18:40 | ✅ |166| [Leadsonline](leadsonline.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 18:52 | ✅ |167| [Levittsafety](levittsafety.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 18:52 | ✅ |168| [Ndtglobal](ndtglobal.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 18:55 | ✅ |169| [Assistant contrôleur (remplacement de congé de maternité)](sixflags.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 19:04 | ✅ |170| [State Industrial Products](stateindustrial.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 19:05 | ✅ |171| [Accueil / Service client (Montréal)](tourismholdings.md) | 1 | 0 % | 100 % | 100 % | 2026-09-21 19:09 | ✅ |172| [Trisura](trisura.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 19:09 | ✅ |173| [Production Operator I (Montreal)](wikoff.md) | 1 | 0 % | 100 % | 0 % | 2026-09-21 19:13 | ✅ |174| [Journalier de production](ecyclesolu.md) | 1 | 100 % | 100 % | 0 % | 2026-09-21 18:27 | ✅ |175| [Spectra Premium](spectrapremium.md) | 0 | — | — | — | 2026-09-21 19:05 | ✅ |176| [Canderel](canderel.md) | 0 | — | — | — | 2026-09-21 20:02 | ✅ |177| [CPAB (Conseil canadien sur la reddition de comptes)](cpab.md) | 0 | — | — | — | 2026-09-21 18:24 | ✅ |178| [Talent Acquisition Partner](euromoneyplc.md) | 0 | — | — | — | 2026-09-21 18:29 | ✅ |179| [Conseil de gestion financière des Premières Nations (FNFMB)](fnfmb.md) | 0 | — | — | — | 2026-09-21 18:30 | ✅ |180| [G3 Canada](g3canada.md) | 0 | — | — | — | 2026-09-21 18:30 | ✅ |181| [Sofinafoods](sofinafoods.md) | 0 | — | — | — | 2026-09-21 19:04 | ✅ |182183## Licence / conformité184185**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 l'employeur » 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.186187## Historique188189**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 :190- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ;191- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ;192- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ;193- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ;194- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ;195- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel).196197Commits touchant `jobka/connectors/dayforce.py` :198199- `cf7075e` 2026-08-26 [ka6] fix connecteur groupemaurice: 502 Bad Gateway transitoire du frontal Dayforce avortait tout le sync (stale 5,3 h, un seul POST search en échec). Garde-fou dans DayforceConnector: le POST de recherche retente une fois après pause sur 5xx, puis lève (sync en échec, jamais un faux 0) — même pattern que njoyn 33dba44 / digitalrecruiters 81cf8e2. Sync isolé re-testé: 108 offres trouvées (= médiane 108).200- `a5260cc` 2026-08-22 Vague B — 110 nouvelles sources (26 Dayforce nouvelle famille + 84 sur familles existantes)201