SPB Git

spb/job-ka

Public
History of docs/connecteurs/ats-adp.md Clear filter
page 1
  1. Sun, Nov 1, 2026 1

  2. Sat, Oct 31, 2026 5

    1. [ka6] fix connecteur osgoode_properties: frontal ADP intermittent PAR CID (5e cas, garde-fou retry borné répliqué) — stale causé par 2 syncs 404 pendant l'épisode nocturne ADP du 30-31/10, tenant vivant, sync vert found=1 (= médiane 1.0)
      …
      Chronologie : vert found=1 en continu jusqu'à 21:26 EDT le 30/10, puis 404 franc sur la liste fr_CA à 23:47 et 02:24 — épisode nocturne ADP multi-tenants (nemaska_lithium, niobec, strathmore, uv_assurance, canadian_royalties touchés 23:45→03:23 pendant que cookit/cultures_genv/h2o_innovation répondaient 200), le même que niobec 61a2ddf8 de la veille. À 04:30 la panne persistait par intermittence pour CE cid : 2 succès sur 6 essais curl sur la MÊME URL liste à la même minute (404 404 200 200 404 404), et le sync rejoué sans correctif a encore pris un 404 à la seconde où curl obtenait 200. Le repli « détail seulement » du connecteur laisse volontairement passer les 4xx (un 404 franc est normalement un signal sûr chez ADP), d'où le stale — même angle mort que bento_sushi 64f53c8f, cookit 7873198d, mitsubishi_hc_capital (2026-10-26) et niobec (2026-10-31), fiche mémoire adp-frontal-intermittent-par-cid.
      
      Tenant VIVANT, aucune migration : la liste en_CA expose 3 réquisitions (Live-In Superintendent Ottawa, Live-In Superintendent Kingston ON, Concierge - Gatineau QC) — l'unique offre QC 9201780233629_1 est toujours publiée, found=1 est le volume exact.
      
      Correctif minimal, scoped au connecteur (doctrine des 4 frères, PAS de proxy) : _get_json retente jusqu'à 30 fois (pause 2 s) sur 404/502/503/504/timeout/non-JSON, timeout abaissé 30→15 s pour borner les connexions qui pendent. Dormant hors panne (1er essai OK = zéro surcoût) ; un sync vert ne coûte qu'UN appel liste par culture (détails en cache BD). L'itération bi-culture CULTURES=(fr_CA, en_CA) du fix f5132e4d est intacte.
      
      Test : sync isolé rejoué AVEC garde-fou = vert ok=1 found=1 added=0 removed=0 en 7,1 s (quelques retries absorbés), offre Concierge - Gatineau active en base. 108 tests pytest verts. Fiches osgoode_properties.md/ats-adp.md/INDEX.md régénérées (1132 autres restaurées, hors périmètre). pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +6 −6
    2. [ka6] fix connecteur niobec: frontal ADP intermittent PAR CID (4e cas, garde-fou retry borné répliqué) + correction d'un angle mort de culture — FORCE_CITY publiait l'offre talc de Timmins (ON) comme Saint-Honoré QC → bascule LANG en_US, found=0 = reflet exact de la source
      …
      Stale (2 échecs 404) : vert found=1 jusqu'à 21:24 EDT le 30/10 puis « default
      backend - 404 » nginx sur la liste à 23:45 et 02:15 — fenêtre nocturne ADP
      multi-tenants (nemaska_lithium, osgoode_properties, strathmore, uv_assurance,
      canadian_royalties touchés 23:45→03:23) qui a dégénéré pour CE cid en frontal
      intermittent (sonde 03:5x : liste ET détail 404 pendant que nemaska/abritek/
      strathmore répondent 200 la même minute ; 1 essai sur 6 aboutit). Même panne
      que bento_sushi/cookit/mitsubishi_hc_capital du 2026-10-26 (fiche
      adp-frontal-intermittent-par-cid) : garde-fou _get_json répliqué à
      l'identique (30 essais, pause 2 s, timeout 15 s, 404/502/503/504/timeout/
      non-JSON), inerte hors panne. Sync rejoué : vert found=1 en 1,9 s.
      
      2e découverte pendant la vérification bi-culture (fiche dayforce-partition-
      culture appliquée à ADP) : le cid 099e24b7 est le board corporatif MAGRIS
      (magrispm.com/careers y pointe en en_US), pas un board Niobec mono-site. La
      culture fr_CA ne liste qu'1 réquisition sur 20 ET en omet les
      requisitionLocations ; l'unique offre fr_CA (9204575399835_1 « Process
      Engineer/Metallurgist », circuits de TALC) est localisée « Timmins, ON » en
      en_US — publiée à tort comme Saint-Honoré QC via FORCE_CITY depuis la vague D.
      Board en_US vérifié live : 20 offres, 19/19 avec locations, toutes
      ON/CO/MT/TX/VT, zéro lieu QC. Correctif : LANG='en_US' (culture sur-ensemble,
      le filtre Québec tranche sur le vrai lieu), FORCE_CITY retiré. Syncs rejoués
      3× : ok=1 found=0 (1er passage 10,7 s = retries flaky au travail), offre
      Timmins retirée au 2e passage (garde-fou 2-miss ; DRIFT_MIN_BASE=8 > médiane
      1.0, retraits non suspendus). found=0 est désormais la VÉRITÉ de la source —
      profil « ok=1 found=0 médiane ≤1 » : si niobec est re-signalé stale avec le
      board en_US sans lieu QC, rien à faire, il reverdira à la prochaine embauche
      QC de Magris/Niobec.
      
      Fiches niobec.md/ats-adp.md/INDEX.md régénérées (1132 autres restaurées, hors
      périmètre). 108 tests pytest verts, pm2 restart job-ka-sync OK, site local
      200, www.job-ka.com 200.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +19 −19
  3. Mon, Oct 26, 2026 3

    1. [ka6] fix connecteur mitsubishi_hc_capital: 3e tenant ADP WFN touché le 2026-10-26 par le frontal intermittent par cid — même panne que bento_sushi (64f53c8f) et cookit (7873198d), même garde-fou de retry borné scoped au connecteur. Diagnostic : vert found=1 en continu jusqu'à 11:15 EDT, puis 404 franc sur la liste job-requisitions à 15:25 pendant que les frères ADP (cookit, bento_sushi, cultures_genv, groupe_nordik, h2o_innovation, ciena, richelieu…) sont verts à la même heure — pool backend malade côté ADP sélectionné par cid ; un seul raté suffit à rendre la source stale (cycle ~3 h > seuil 4 h) et le repli « détail seulement » de 9d9e3f4e laisse volontairement passer les 4xx. Sonde live de 8 essais à ~17h45 : 8× 200 JSON complet (meta.totalNumber=1 = médiane 1.0, requisitionLocations intactes 3/3 QC : pas besoin du fallback d'adresse de bento_sushi) — frontal malade par intermittence seulement. Correctif minimal dans mitsubishi_hc_capital.py : _get_json retente jusqu'à 30 fois (pause 2 s) sur 404/502/503/504/timeout/non-JSON, timeout abaissé 30→15 s pour borner les connexions qui pendent ; dormant dès que le frontal est sain (1er essai OK = zéro surcoût), un sync vert ne coûte qu'UN appel liste (détails en cache BD) ; compose avec le repli détail existant (un 404 persistant après 30 essais reste un échec propre, inventaire préservé). Tests réels : sync isolé vert ok=1 found=1 (= médiane 1.0) en 1,1 s, 1 offre active en base, 0 retrait ; chemin de retry prouvé par simulation (2× 404 absorbés puis 1 offre live). 108 tests pytest verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200. Fiches mitsubishi_hc_capital.md/ats-adp.md/INDEX.md régénérées (1131 autres restaurées, hors périmètre).
      Simon-Pierre Boucher · 1 file +19 −19
    2. Simon-Pierre Boucher · 1 file +6 −6
    3. [ka6] fix connecteur bento_sushi: le frontal ADP WFN ne sert plus ce tenant que par intermittence depuis ~08h EDT le 2026-10-26 (~1 requête sur 8 aboutit, sinon 404 nginx/openresty de 150 octets ou connexion qui pend) — garde-fou de retry borné scoped au connecteur. Diagnostic : vert found=8 en continu jusqu'à 07:23, puis 404 à 10:06 et 12:52 ; PAS systémique (les 15 autres tenants ADP verts à la même minute, ex. cultures_genv ok à 13:09:41 pendant que cookit échoue à 13:09:10 — seul cookit partage la signature), PAS notre IP (identique via proxy résidentiel Oxylabs -cc-CA), PAS le ccId (des verts partagent le défaut 19000101_000001), PAS une migration (portail humain recruitment.html 200, bentosushi.com/careers référence toujours le cid d0dfb14c, et l'essai chanceux 200 rend le JSON complet meta.totalNumber=8 = médiane) : pool backend malade côté ADP, sélectionné par cid, IP edge unique 170.146.102.193 donc rien à épingler. Correctif minimal dans bento_sushi.py : _get_json retente jusqu'à 30 fois (pause 2 s) sur 404/502/503/504/timeout/non-JSON, timeout abaissé à 30→15 s pour borner les connexions qui pendent (la voie directe et l'escalade proxy héritée de la base en profitent, coupe-circuit par hôte en aval) ; dormant dès que le frontal redevient sain (1er essai OK = zéro surcoût) et un sync vert ne coûte qu'UN appel liste (détails en cache BD). Le fix locations-absentes du 2026-10-23 (e0743907) reste nécessaire et actif (requisitionLocations toujours vides dans le 200 obtenu). Tests réels : 3 syncs isolés verts ok=1 found=8 (= médiane 8.0) en 1,7 s / 43,5 s / 53,3 s (le retry mâche les rafales de 404 : une rafale de 15 échecs consécutifs observée, d'où 30 essais, P(échec)≈2 %), 1 échec propre à 15 essais pendant le calibrage (erreur propagée, 8 offres actives intactes, 0 retrait). cookit = même panne, hors périmètre de cette mission. 108 tests pytest verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200. Fiches bento_sushi.md/ats-adp.md/INDEX.md régénérées (1131 autres restaurées, hors périmètre).
      Simon-Pierre Boucher · 1 file +19 −19
  4. Fri, Oct 23, 2026 6

    1. [ka6] fix connecteur h2o_innovation: le babillard fr_CA du tenant ADP WFN a cessé d'exposer requisitionLocations (liste+détail, 0/11) entre 00:06 et 02:35 EDT le 2026-10-23 — même nuit et même mécanique que bento_sushi (e0743907) — le filtre Québec rejetait les 10 offres pourtant toujours publiées (mêmes itemID). Particularité H2O vs bento: le babillard en_US du MÊME tenant expose encore ses locations (19/19) mais ne partage que ~3 itemID avec fr_CA, et les descriptions ne publient pas d'adresse complète (seulement « usine située à Ham-Nord », « bureau de Québec »). Correctif scoped au connecteur (_keep + _resolve_blind): une réquisition sans location passe le filtre puis son lieu est résolu sans rien inventer — 1) offre active connue en base = ville/code postal qu'ADP exposait avant la panne (offre revalidée live par la liste), 2) jointure par itemID sur le babillard en_US (locations ADP live; hors-QC écartée — cas réel « L'ingénieur.e de procédés » Burlington ON), 3) ville citée dans la description de l'employeur validée par region_for_city. Une offre sans marqueur QC est écartée; chemin normal repris tel quel si ADP ré-expose les locations fr_CA (fallback dormant). Sync isolé rejoué: ok=1 found=10 (= médiane 10.0) en 20,8 s, 10 actives avec ville/postal/région/GPS 100 %. 108 tests verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200. Fiches h2o_innovation.md/ats-adp.md/INDEX.md régénérées (1131 autres fiches restaurées, hors périmètre).
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +5 −5
  5. Wed, Oct 14, 2026 1

    1. Simon-Pierre Boucher · 1 file +19 −19
  6. Tue, Oct 13, 2026 1

  7. Sat, Oct 10, 2026 1

    1. [ka6] fix connecteur osgoode_properties: angle mort de culture ADP WFN comblé — le tenant ne publie qu'en en_CA, l'offre QC vivante était invisible en fr_CA. Stale « volume QC nul » (58e cas du pattern, 2e intervention) à double cause : (1) l'unique offre vue via fr_CA (9201778625489_1 « Site Administrator », Gatineau) a été DÉPUBLIÉE par l'employeur entre 08:31 et 10:45 le 2026-09-21 (missed=1 ×2 puis removed via garde-fou 2-miss), sync_log VERT en continu depuis (313 ok / 314, found=0 = correct) — le seul échec récent est un 404 transitoire isolé de la liste à 02:02 le 2026-10-10, revenue 200 <30 min après ; (2) MAIS le centre de carrières est PARTITIONNÉ par culture et ne publie plus qu'en en_CA : liste 200+[] en fr_CA ET en_US (le fallback générique de adp.py s'arrête à en_US → aveugle), alors que en_CA expose 2 offres vivantes dont 1 QC jamais vue par job-ka : 9201780233629_1 « Concierge - Gatineau » (Gatineau QC J8Y 4B1, 36-42 k$/an, parue 2026-08-07). Marqueur détail ADP documenté : offre vivante interrogée dans la MAUVAISE culture = 200 + squelette JSON sans requisitionTitle, IDENTIQUE à une offre dépubliée (vérifié sur Site Administrator) — seul le 404 est un retrait certain. Correctif : OsgoodePropertiesConnector itère CULTURES=(fr_CA, en_CA), fusion par itemID priorité fr_CA — variante ADP WFN du pattern bi-culture Dayforce (peaktech/challenger) et EXTRA_SITES Workday (pwc/enercare) ; le repli de revalidation essaie lui aussi chaque culture avant de conclure (squelette sans titre partout = indéterminé, pas un retrait) ; RuntimeError (non-JSON après 3 essais de _get_json) ajouté aux déclencheurs du repli. Sync isolé rejoué ×2 : found=1 stable, added=1 (offre 9201780233629_1 en base, active=1, salaire 36000-42000/an, URL lang=en_CA), ~3-4 s ; non-régression plateforme adp sur tenant vivant bento_sushi : found=10, ok. 107 tests pytest verts. Fiches docs/connecteurs/ osgoode_properties.md + ats-adp.md + INDEX.md régénérées via scripts/gen_connector_docs.py (les 1131 autres fiches, dont seuls les instantanés horodatés changeaient, restaurées — hors périmètre). pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +22 −22
  8. Mon, Sep 21, 2026 1

  9. Tue, Aug 25, 2026 2

    1. Vague E — 3 nouvelles familles ATS (JazzHR, Teamtailor, Zoho Recruit) + 60 connecteurs, ~547 offres QC
      …
      - Nouvelles classes de plateforme : jazzhr.py (liste /apply/ + JSON-LD),
        teamtailor.py (sitemap + JSON-LD), zoho_recruit.py (flux RSS public) —
        filtre QC au détail avec report si budget épuisé (doctrine taleo_tbe/adp).
      - serper_scout.py : 5 nouveaux motifs (jazzhr, teamtailor, zohorecruit,
        talentnest, njoyn avec CLID/CL/hôte) + CLID dans le dédoublonnage.
      - 60 connecteurs : 31 JazzHR (Optel 13, Playground 21, Ultium CAM,
        Altitude Aérospatiale, FortNine, XTL 21, Valnet 22…), 17 Zoho Recruit
        (Mallette Saguenay 26, DRB 22, dentago 20, Carnaval de Québec, FÉRIQUE,
        Altitude Sports, Excavations Lafontaine…), 9 Teamtailor (Norda Stelo 50,
        Workin Group 34, Humanise 13, CAM Mécanique, Synertek…), 3 Njoyn
        (IR-CUSM 37, RTL 17, Groupe Master 17).
      - njoyn.py : correctif _keep — certains habillages mettent la date dans la
        colonne pays (Groupe Master 0 -> 17) ; n'exclure que les pays reconnus.
      - sources.json : 1 108 sources, 23 familles ATS ; docs/connecteurs
        régénérées (1 133 fiches) ; rapport docs/prospection-vagueE.md
        (écartés motivés + reliquats vague F : TalentNest, ENPQ/APCHQ, CUSM).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +9 −8
    2. Vague D implémentée — 75 nouveaux connecteurs (968 -> 1044 employeurs), ~768 offres QC
      …
      - 55 connecteurs générés depuis feeds-vagueD.json (gen_connectors), tous
        synchronisés sans échec (333 offres). Sandvik re-pointé sur le babillard
        public sandvik-jobs.
      - 20 connecteurs manuels sur familles existantes (435 offres) : ADP ×12
        (Nordik, Uniboard, Richelieu, UV Assurance, Strathmore, H2O, Cook It,
        Canadian Royalties, Niobec, Nemaska, Abritek, Triple Boris), Alstom
        SuccessFactors (227 offres, La Pocatière/MTL), Kiewit-Ganotec (50),
        Groupe Bellemare Njoyn (27), Ville de Mirabel, Sel Windsor, Global Excel,
        Graymont TBE, IAMGOLD Taleo.
      - Correctifs de familles : adp.py FORCE_CITY (mono-sites QC sans
        requisitionLocation) ; taleo_tbe.py secours og:title variante
        « - Canada - QC - Ville » (Graymont 0 -> 4) ; successfactors.py slug
        « -queb » final + garde-fou is_quebec_location contre les faux « QC »
        (quality control, 3 offres US interceptées ; Kiewit 3 -> 50).
      - 9 pistes écartées avec raison (babillards US/vides, iCIMS SPA) —
        détail dans docs/prospection-vagueD.md.
      - sources.json : 1 048 sources ; docs/connecteurs régénérées (1 070 fiches).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +20 −8
  10. Sun, Aug 23, 2026 1

    1. Vague C — +620 connecteurs employeurs directs (350 -> 968)
      …
      Campagne de découverte massive en 3 angles : éclaireur Serper élargi
      (60 termes x 10 ATS x 3 pages), reprise des 266 flux confirmés le 22-08
      jamais intégrés, et sondage par nom de 182 grands employeurs QC sur 10 ATS.
      Fusion/nettoyage (scripts/merge_confirmed.py : dédoublonnage multi-vagues,
      filtre des faux positifs Québec hors province, nettoyage des noms issus des
      titres Google, exclusion des babillards de démo) puis secteurs attribués par
      lots (scripts/classify_sectors.py).
      
      - Workday +148, SmartRecruiters +118, Dayforce +96, Greenhouse +93,
        Breezy +50, Workable +40, Lever +32, Ashby +25, Recruitee +12, BambooHR +3
      - SuccessFactors +4 vérifiés main : TELUS, Énergir, VIA Rail, Canada Vie
      - prises notables : Thales, Fiera Capital, Fednav, Wolseley, Cominar, Ludia,
        Granit Design, Vortex Structures Aquatiques, Warner Bros. Discovery
      - 973 sources au registre ; docs/connecteurs régénérées (995 fiches) ;
        docs/CONFORMITE.md : section Vague C + écartés (Air Canada -> Phenom, TÉLUQ,
        Valero, faux QC)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +7 −7
  11. Sat, Aug 22, 2026 1

    1. Vague B — 110 nouvelles sources (26 Dayforce nouvelle famille + 84 sur familles existantes)
      …
      - Nouvelle famille Dayforce HCM (jobs.dayforcehcm.com, API JSON du frontal Next.js,
        csrf anonyme + recherche paginée, détail PayClass/PayType avec cache et budget) :
        26 employeurs dont Groupe Maurice, Groupe CH, La Vie en Rose, Eidos-Montréal,
        Air Canada Rouge, Port de Québec, Soprema, BPA…
      - Ajouts sur familles existantes : Workday +17 (Simons, Cineplex, TJX, FedEx, Abbott…),
        Greenhouse +17 (Coveo, KRAFTON, Lyft, AutoTrader…), SmartRecruiters +13,
        Workable +11, Breezy +8, Recruitee +7, Lever +6, Ashby +5.
      - sources.json : 244 → 354 sources ; docs/connecteurs régénérées (376 fiches).
      - docs/CONFORMITE.md : bases d'accès vérifiées 2026-08-22, 20+ sources écartées
        avec raisons (agences, agrégateurs, babillards vides, faux positifs français).
      - Sync validé : 110/110 sources OK, 2 102 offres ajoutées (total BD 25 280).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +7 −7
  12. Wed, Aug 19, 2026 2

  13. Tue, Aug 18, 2026 2

    1. docs/connecteurs : snapshot post-cycle complet (220 sources, 42 min)
      …
      Régénération des fiches sur l état stable après le premier cycle horaire
      complet à 220 sources (12:46-13:28) : 8 862 offres actives.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +4 −4
    2. Documentation connecteurs (standard Groupe-KA) + registre de conformité
      …
      - scripts/gen_connector_docs.py : générateur rejouable (ast + sources.json +
        BD live en lecture seule + sync_log + git) -> docs/connecteurs/ :
        INDEX.md + 17 fiches plateformes ATS (mécanique, endpoints, budgets,
        tableau des tenants) + 217 fiches employeurs + 3 fiches portails +
        fiche dépôt direct (239 fichiers, sections fixes standardisées)
      - docs/CONFORMITE.md : registre de conformité par famille (base d accès,
        attribution/lien candidature vérifié -> offre originale, zéro donnée
        personnelle de candidat, Québec Emploi écarté clicSÉQUR, vérifié 2026-08-18)
      - README : section Connecteurs (17 ATS, 217 employeurs directs, 3 portails,
        badge Offre directe, dépôt direct), structure/env/API à jour
      - data/sources.json : _meta enrichi (compteurs, liste ATS, pointeurs docs)
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +63
Menu

Theme