SPB Git

spb/job-ka

Public
History of docs/connecteurs/INDEX.md Clear filter
page 1
  1. Mon, Nov 2, 2026 4

    1. [ka6] fix connecteur trisura: aveuglement de culture fr-CA (Dayforce partitionné) → bi-culture fr-CA+en-CA
      …
      Stale « volume QC nul » : l'unique offre fr-CA 3449 « SOUSCRIPTEUR PRINCIPAL,
      SOLUTIONS PROFESSIONNELLES – MONTRÉAL » (parue 2026-06-10) dépubliée entre les
      syncs verts du 02/11 15:16 (found=1) et 17:47 (found=0) — marqueur Dayforce
      confirmé : détail 200 + postingStatus=4. MAIS le poste équivalent vit toujours
      côté anglais : 3220 « Souscripteur Principal, Solutions Professionnelles -
      Montreal » (Montréal QC, postingStatus=1, détail fr-CA 404), publié EN
      seulement — Trisura publie FR et EN comme deux postings distincts (ids
      différents). Preuves live : search fr-CA maxCount=0 vs en-CA/en-US 15 offres
      dont la QC 3220 = aveuglement de culture apparu en cours de vie (classe
      peaktech/cardinalcouriers). Pas de migration : trisura.com/careers pointe
      toujours jobs.dayforcehcm.com/en-US/trisura/CANDIDATEPORTAL (culture maîtresse
      EN, indice classe imperialdade). Fix : CULTURES fr-CA+en-CA fusion par
      external_id priorité fr-CA (pattern cardinalcouriers/peaktech/challenger/fnfmb).
      Sync isolé vert found=1 (= médiane 1.0) added=1 (3220) removed=1 (3449) en
      6,4 s, 108 tests pytest verts, fiches trisura.md/ats-dayforce.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 +15 −15
    2. [ka6] connecteur dxctechnology: faux positif « volume QC nul » (dépublication légitime de l'unique offre QC) — AUCUN code de fetch modifié (verdict rien_a_faire). Le stale vient de l'offre Workday 51583112 « Market Seller - Commercial Markets » (Montréal, parue 2026-10-03) dépubliée entre les syncs verts du 02/11 14:12 (found=1) et 16:47 (found=0), retrait propre removed=1 à 19:18 ; la supervision compte found=0 comme non-succès (médiane 0.5, fiche stale-volume-zero-faux-positif). Preuves live : board cxs 200 avec 1236 offres monde dont 23 « Canada » TOUTES hors QC (ON, NS, NL, MB ; l'entrée « 2 Locations » = New York + Houston) = DXC publie ses postes QC par rafales courtes (chaque offre QC en base a vécu ~1-3 semaines) ; marqueur Workday de dépublication : détail cxs 403 S22 « permission denied » sur l'offre retirée vs 200 sur une offre vivante (variante du 404 à ajouter au répertoire des marqueurs) ; pas de migration : careers.dxc.com référence toujours dxctechnology.wd1.myworkdayjobs.com/DXCJobs. Sync isolé rejoué vert ok=1 found=0 en 95,5 s (pagination complète des 1236 offres, filtre serveur locations factice sur ce tenant — détection ec1b90d du 2026-09-10 inchangée). Docstring chronologie ajoutée au connecteur, fiches dxctechnology.md/ats-workday.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. Si DXC republie un poste QC, il reviendra seul au prochain sync horaire.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +249 −249
  2. Sun, Nov 1, 2026 2

    1. Simon-Pierre Boucher · 1 file +16 −16
  3. Sat, Oct 31, 2026 8

    1. [ka6] connecteur paythings_19f14e354a62: tenant Breezy RÉSILIÉ le 2026-10-31, verdict site_source_mort — connecteur conservé intact (1re intervention, pattern xtl c4a681e1). Le stale signalé était d'abord le profil connu « volume QC nul » (syncs VERTS ok=1 found=0 en continu depuis la dépublication légitime de l'unique offre QC le 2026-08-31, médiane 0.0, fiche stale-volume-zero-faux-positif) ; mais depuis ce matin 09:19 EDT le portail https://paythings-19f14e354a62.breezy.hr renvoie 404 « Career portal not found » (racine ET /json, persistant sur 3 essais) = tenant supprimé chez Breezy, PAS systémique (5 tenants Breezy frères sondés 200 : above-flights, ac780, adi-albert-davidson-industries, adoc-tm, agence-carrieres). Employeur VIVANT (Paythings, fintech cash management AI, paythings.com 200, partenariat KORT Payments 2026-05) et qui recrute, mais AUCUNE migration d'ATS détectable : zéro page carrières sur paythings.com (sitemap = 8 pages produit/blog), aucun slug Breezy renommé (paythings/paythings-com/paythings-inc/paythingscom 404), aucun tenant Greenhouse/Lever/Workable/BambooHR/Recruitee/Ashby/Teamtailor/JazzHR/SmartRecruiters (Serper → néant) ; les offres visibles (Senior Director of Operations, remote Canada — pas clairement QC) ne circulent que via flux payants Appcast → agrégateurs (whatjobs/jobmesh/expertini/jobrapido) et LinkedIn, sans URL de candidature directe (chaînes de redirection suivies jusqu'au bout, impasses). Aucun code de fetch modifié : base.get lève un 404 explicite immédiat, sync_log propre ; 0 offre active en base (l'unique offre historique est inactive depuis longtemps), rien à archiver. Sync isolé rejoué : échec explicite attendu « 404 Client Error ». Si le tenant revient le sync repart seul ; si la fermeture se confirme sur plusieurs semaines, retrait complet au pattern derumarketcatering/mcgillstlaurent. Artefact vague C corrigé dans sources.json : url employeur vide → https://www.paythings.com (vérifiée 200). Docstring chronologie ajoutée au connecteur. Fiches paythings_19f14e354a62.md/ats-breezy.md/INDEX.md régénérées (1132 autres restaurées, hors périmètre). Non-régression plateforme breezy : agence_carrieres vert ok=1 found=1. 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 +124 −124
    2. [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 +10 −10
    3. [ka6] connecteur orthoclinical: stale = faux positif « volume QC nul » (récidive, 2e intervention) + unique ok=0 = fenêtre de maintenance planifiée Workday, rien à réparer — syncs VERTS en continu (ok=1 found=0) depuis la dépublication légitime de R0016868 le 2026-10-14 (intervention précédente), le « aucun succès depuis 394,7 h » de la supervision compte found=0 comme non-succès ; profil « ok=1 found=0 médiane 0.0 » (70+ cas, fiche stale-volume-zero-faux-positif, orthoclinical y figure déjà). L'unique échec du 2026-10-31 02:24 était la fenêtre de maintenance planifiée Workday (302 → static.community.workday.com/maintenance-page.html), SYSTÉMIQUE (~40 tenants, même épisode que myview 2a5092fe) — fiche workday-maintenance-fenetre-systemique appliquée : cxs re-sondé 200 = fenêtre finie. Re-vérification live exhaustive : board vivant total=20 (US/Inde/Tchéquie/Allemagne), searchText Quebec/Québec/Canada/Montréal = 0, unique offre multi-lieux R0016638 = 5 lieux US au détail cxs ; zéro migration d'ATS. found=0 est le reflet EXACT de la source, reverdira seul à la prochaine publication QC de QuidelOrtho. Sync isolé rejoué : vert ok=1 found=0 en 2,1 s. Aucun code de fetch modifié, note de re-vérification 2026-10-31 ajoutée à la docstring. Fiches orthoclinical.md/ats-workday.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. Si orthoclinical est re-signalé stale avec board sans lieu QC : rien à faire.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +7 −7
    4. [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 +21 −21
    5. [ka6] connecteur myview: stale = faux positif « volume QC nul » (récidive, 2e intervention) + unique ok=0 = fenêtre de maintenance planifiée Workday, rien à réparer — le tenant myview.wd3 (Loblaw Provigo/Maxi) est VIVANT et vide depuis la dépublication du 2026-09-08 (R2000587691) : API cxs 200 total=0 sur loblaw_careers ET sdm_careers, site frère careers 7 offres toutes ON/AB/SK, zéro lieu QC, aucune migration d'ATS. found=0 est le reflet EXACT de la source (médiane 0.0, embauche de masse Loblaw via careers.loblaw.ca, le site Workday ne porte qu'un filet d'offres) ; profil « ok=1 found=0 médiane ≤1 » (70+ cas, fiche stale-volume-zero-faux-positif). L'échec consécutif unique du 2026-10-31 02:15 était la fenêtre de maintenance planifiée Workday (302 → static.community.workday.com/maintenance-page.html), SYSTÉMIQUE : ~40 tenants Workday de l'app en rafale 02:06–02:53 (medtronic, michelinhr, miele, moneris, motorolasolutions… = la quasi-totalité des « degraded » du scan), tous reverdissent seuls — fiche workday-maintenance-fenetre-systemique appliquée : cxs sondé 200 = fenêtre finie, sync isolé rejoué immédiatement : vert ok=1 found=0 removed=0 en 1,8 s. Angle mort type Baie-D'Urfé exclu (total=0 global, pas de lieux à relire). Aucun code de fetch modifié, note de re-vérification 2026-10-31 ajoutée à la docstring. Fiches myview.md/ats-workday.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. Si myview est re-signalé stale avec cxs total=0 : rien à faire, reverdira à la prochaine publication QC de Loblaw sur Workday.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +121 −121
  4. Fri, Oct 30, 2026 9

    1. [ka6] fix connecteur valtech: restauration chirurgicale du fix 3f719c8a emporté par un rollback automatique (verdict de mission illisible), re-testé vert found=7 (= médiane 7.0) — le fix était BON, le revert 2a50302b était la panne. Chronologie : fix valtech committé à 15:13 EDT le 2026-10-30 (bascule boards-api.greenhouse.io → site carrières officiel valtech.com après disparition du board Greenhouse de l'API publique, testé vert found=7), auto-reverté par la supervision à 15:17 parce que le verdict JSON de la mission était tronqué → « inconnu » (cas identique à enercare f5248721, fiche mémoire rollback-automatique-collateral) ; retour au code boards-api → 404 « Job board not found » à chaque cycle → stale re-signalé. Prémisse du fix re-vérifiée live AVANT restauration : boards-api 404 racine (inchangé), silo EU job-boards.eu.greenhouse.io/valtech désormais 404 franc (il 500ait ?error=true le matin — le retrait du board EU s'est achevé), joblist valtech.com/joblist/getjsonresult fonctionnel. Restauration CHIRURGICALE (doctrine enercare : jamais revert du revert, les docs générées ont bougé depuis via neweratech/alliedreit) : git checkout 3f719c8a -- jobka/connectors/valtech.py + réédition careers_url dans data/sources.json + note « NE PAS RE-REVERTER » dans la docstring. Sync isolé rejoué : vert ok=1 found=7 removed=0 en 2,4 s, les MÊMES 7 offres actives (Montréal) — le revert n'avait touché que le code, pas la base. Fiches valtech.md/ats-greenhouse.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. Si valtech est re-signalé : lire la docstring du connecteur et git log d'abord.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +70 −70
    2. [ka6] connecteur neweratech: stale = faux positif « volume QC nul » (récidive, 2e intervention), rien à réparer — la paire QC « Infraction Review Technician / Représentant service à la clientèle - Révision des infractions » (Saint-Jean-sur-Richelieu, republiée depuis le 2026-10-06 sous les NOUVEAUX ids 8871458002/8871462002 — l'employeur recycle les mêmes postes par vagues, classe samsara/pouletrouge) a été DÉPUBLIÉE par New Era entre 13:26 et 16:31 EDT le 2026-10-30. Chronologie : vert found=2 en continu jusqu'à 13:26, found=0 dès 16:31, removed=2 au sync de 17:39 (garde-fou 2-miss), sync_log VERT sans interruption (ok=1, aucune erreur technique). Vérification live : détail boards-api 404 sur les deux ids (marqueur Greenhouse de dépublication), board racine 200 avec 73 offres sur 32 lieux TOUS hors Québec (É.-U./Inde/NZ/Malaisie/UK/Singapour/Remote) — tenant VIVANT, zéro migration d'ATS. Profil connu « ok=1 found=0 médiane ≤1.5 » (70+ cas) : multinationale TI américaine dont seuls les postes de contrôle du stationnement à Saint-Jean sont québécois, found=0 est le reflet EXACT de la source ; reverdira seul à la prochaine vague QC (déjà observé : 1re vague close le 2026-09-08 commit c0f89464, 2e vague 2026-10-06→30). Sync isolé rejoué : vert ok=1 found=0 en 0,2 s, 0 offre active en base. Aucun code de fetch modifié, docstring chronologie seulement. Fiches neweratech.md/ats-greenhouse.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 +125 −125
    3. [ka6] connecteur alliedreit: broken = faux positif « volume QC nul » (récidive, 2e intervention), rien à réparer — la paire FR/EN « Administrateur(trice) immobilier(ère) / Property Administrator (User Experience Partner) » (Montréal, parue 2026-10-09, republiée après l'épisode du 2026-10-08) a été DÉPUBLIÉE par Allied entre 12:22 et 14:37 EDT le 2026-10-30. Chronologie : vert found=2 en continu jusqu'à 12:22, found=0 dès 14:37, removed=2 au sync de 15:16 (garde-fou 2-miss), sync_log VERT sans interruption (ok=1, aucune erreur technique). Vérification live : API v0 détail 404 sur les deux ids d6000fb1/95361918 (premier essai 502 transitoire puis 404 stable ×3), pages détail jobs.lever.co encore 200 = variante « purge différée » documentée le 2026-10-08 sur CE tenant (trancher à l'API v0 + board, jamais au code HTTP de la page) ; board API v0 200, 8 offres TOUTES Toronto, 0 lieu QC — tenant VIVANT, zéro migration d'ATS. Profil connu « ok=1 found=0 médiane ≤1.5 » (70+ cas) : FPI torontoise au portefeuille montréalais réel, les offres QC sont épisodiques, found=0 est le reflet EXACT de la source ; reverdira seul à la prochaine publication QC. Sync isolé rejoué : vert ok=1 found=0 en 0,6 s. Aucun code de fetch modifié, docstring chronologie seulement. Fiches alliedreit.md/ats-lever.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 +115 −115
    4. [ka6] fix connecteur valtech: board Greenhouse disparu de l'API publique (migration silo EU cassée) → bascule sur le site carrières officiel valtech.com, IDs Greenhouse préservés — vert found=7 (= médiane 7.0)
      …
      Chronologie : vert found=7 en continu jusqu'à 10:11 EDT le 2026-10-30, puis
      404 « Job board not found » sur boards-api.greenhouse.io/v1/boards/valtech
      dès 11:53 (2 échecs consécutifs, stale). Diagnostic : le tenant vit sur le
      silo EU de Greenhouse (les absolute_url pointaient déjà sur
      job-boards.eu.greenhouse.io/valtech) mais TOUT le board y renvoie 500
      ?error=true (liste, détail, embed — un slug bidon donne 404, donc le board
      existe mais n'est plus servi), alors que l'API globale sert d'autres
      tenants EU (riverlane, eversports vérifiés 200) et que status.greenhouse.io
      est vert : board désactivé/mal migré côté Greenhouse, aucun slug de
      remplacement (Google n'indexe que « valtech », le site de l'employeur
      génère encore ces URLs). Réparation (doctrine autodesk→eightfold : suivre
      l'employeur) : fetch() réécrit sur le site carrières officiel —
      liste JSON /joblist/getjsonresult (paginée, 147 offres monde, garde-fou
      structure = erreur franche jamais un faux 0) + pages détail SSR
      /en-ca/career/jobs/<ghid>/ (description complète dans article.rte-block,
      datePosted JSON-LD = first_published Greenhouse vérifié, cache BD). Les IDs
      Greenhouse survivent en fin d'URL → continuité totale des external_id :
      sync isolé vert ok=1 found=7 updated=7 removed=0 en 14,8 s, les MÊMES
      7 offres actives (Montréal) qu'avant la panne, URLs repointées vers
      valtech.com (les anciennes job-boards.eu 500ent), dates de parution
      intactes (ex. 4999182101 → 2026-10-07). careers_url de sources.json
      repointée. Fiches valtech.md/ats-greenhouse.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 +52 −52
    5. [ka6] connecteur valard_construction_lp: stale = faux positif « volume QC nul », rien à réparer — les 2 offres QC (« Chargé de projets » Québec parue 2026-05-26 et « Directeur Ligne de Transport » Québec parue 2026-06-23 — found=3 par répétition de location, gotcha widget v1) dépubliées par Valard entre 10:11 et 11:53 EDT le 2026-10-30. Profil connu « ok=1 found=0 médiane ≤1.5 » (70+ cas) : la supervision compte un sync à 0 offre comme non-succès. Chronologie : vert found=3 en continu jusqu'à 10:11, puis ok=1 found=0 dès 11:53, removed=2 au sync de 13:48 (règle des 2 absences). Vérification live : widget v1 200, name=« Valard Construction », 59 entrées TOUTES hors Québec (AB/SK/ON/NS) ; détail des 2 shortcodes 2239CB7DA9 / A3FEA49B83 → 302 vers apply.workable.com/oops (marqueur Workable « dépublié ») — tenant VIVANT, zéro migration, le volume 0 est CORRECT (employeur pancanadien de lignes de transport, les chantiers QC Laval/Victoriaville ne publient qu'épisodiquement). Sync isolé rejoué : vert ok=1 found=0 en 1,1 s, 0 offre active en base = reflet exact de la source ; reverdira seul à la prochaine publication QC. Aucun code de fetch modifié, docstring chronologie seulement. Fiches valard_construction_lp.md/ats-workable.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 +103 −103
    6. [ka6] fix connecteur mcgillstlaurent: retrait définitif de la source (pattern derumarketcatering 6744631f) — le tenant JazzHR mcgillstlaurent.applytojob.com est fermé en PERMANENCE (« Inactive Career Page » 200, re-vérifié live le 2026-10-30, 8 jours et 67 échecs consécutifs depuis le 2026-10-22 — bien au-delà des lapses transitoires ~35 h type xtl) : 3e sortie JazzHR délibérée du groupe McGill St Laurent, migration Lever achevée. Deux missions ka6 (2026-10-22, 2026-10-23) avaient conclu site_source_mort en conservant le connecteur : la supervision le resynchronisait donc en boucle (statut broken), exactement le cas derumarketcatering. Couverture TOTALE prouvée par le frère mcgillstlaurentb8 (Lever org mcgillstlaurent, board unifié du groupe) : vert found=15 au sync du 2026-10-29 23:52, API Lever live = 16 offres dont les CWP Energy QC (Junior Power Trader, Agentic Innovation Specialist + versions FR) ; invariant « un seul connecteur Lever par org » → pas de réécriture. Les offres JazzHR résiduelles sont déjà expirées (0 active en base, expire_stale 7 j passé le 2026-10-29). Retrait complet pattern maison : suppression de jobka/connectors/mcgillstlaurent.py (registre auto-découvrant), de l'entrée data/sources.json (1108→1107 sources, employeurs_directs 1047→1046, updated 2026-10-30, /api/sources vérifié sans CWP Energy) et de la fiche docs/connecteurs/mcgillstlaurent.md ; INDEX.md et ats-jazzhr.md régénérés (28→27 tenants, 1133 autres fiches restaurées hors périmètre). run.py sync mcgillstlaurent → « connecteur inconnu » (attendu) ; non-régression plateforme jazzhr : xtltransportlogistics vert found=32 en 1,5 s. 108 tests pytest verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200. La supervision passera broken→retired d'elle-même (~14 j).
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +85 −86
  5. Thu, Oct 29, 2026 7

    1. Simon-Pierre Boucher · 1 file +178 −178
    2. [ka6] connecteur poolcorp: stale = faux positif « volume QC nul » (2e épisode), rien à réparer — l'unique offre QC R22181 « Expéditeur/Shipping Clerk » (Boucherville, parue 2026-10-27) dépubliée par POOLCORP entre 12:17 et 14:27 EDT le 2026-10-29. Profil connu « ok=1 found=0 médiane ≤1 » (70+ cas) : la supervision compte un sync à 0 offre comme non-succès. Chronologie : vert found=1 en continu jusqu'à 12:17, puis ok=1 found=0 dès 14:27 (missed=1). Vérification live : détail cxs de R22181 → 403 S22 (marqueur Workday documenté « dépublié ») ; board cxs 200 avec 137 offres publiées, facette pays = 100 % États-Unis (même pas de Canada), searchText Quebec/Québec/Boucherville/Montreal → 0 — tenant VIVANT, zéro migration, le volume 0 est CORRECT. Même classe saisonnière que l'épisode 2026-10-02 (industrie de la piscine, seul le centre de Boucherville publie au QC — R22132 « Seasonal Warehouse Associate » n'a vécu que 2 jours fin octobre). Sync isolé rejoué : vert ok=1 found=0 removed=1 en 10,2 s (R22181 retirée proprement à la règle des 2 absences), 0 offre active en base = reflet exact de la source ; reverdira seul à la prochaine publication QC. Aucun code de fetch modifié, docstring chronologie seulement. Fiches poolcorp.md/ats-workday.md/INDEX.md régénérées (1133 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 +143 −143
    3. [ka6] connecteur navcanada: stale = faux positif « volume QC nul », rien à réparer — les 2 dernières offres QC du board Workday dépubliées le 2026-10-28/29. Profil connu « ok=1 found=0 médiane ≤1 » (70+ cas) : la supervision compte un sync à 0 offre comme non-succès. Chronologie : vert found=2 en continu jusqu'au 2026-10-28 23:25 EDT, puis ok=1 found=0 dès 00:28 — les 2 offres QC (JR-8513 « Operational Training Specialist – Montreal ACC » et JR-8454 « Manager, Airspace Development ») dépubliées entre les deux, retirées proprement à la règle des 2 absences (removed=2 à 03:01). Vérification live : API cxs 200 avec 28 offres publiées (Ottawa/Toronto/Vancouver/Winnipeg/North Bay/Gander/Moncton/Edmonton/Kelowna) mais zéro Québec — le « Shift Scheduling Specialist » à « 2 Locations » est une NOUVELLE réquisition JR-8506 Toronto+Winnipeg, pas l'ancienne Montréal JR-8244 ; les 2 pages détail cxs des offres retirées renvoient 404 (marqueur Workday de dépublication) — tenant VIVANT, zéro migration, le volume 0 est CORRECT. Sync isolé rejoué : vert ok=1 found=0 en 3,9 s, 0 offre active en base = reflet exact de la source. Aucun code de fetch modifié, docstring chronologie seulement ; le connecteur reverdira seul à la prochaine publication QC (ACC de Montréal, roulement régulier). Fiches navcanada.md/ats-workday.md/INDEX.md régénérées (1133 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 +11 −11
  6. Wed, Oct 28, 2026 6

    1. [ka6] connecteur makeitbloom: stale = « Inactive Career Page » JazzHR probablement TRANSITOIRE, rien à réparer — lapse du tenant survenu le soir même (2026-10-28). Chronologie : vert found=3 (= médiane 3.0) en continu jusqu'à 18:28 EDT, puis « this account is no longer active » dès 20:54 (RuntimeError de la détection adb8637). Vérifié live : board /apply/ et pages détail des 3 offres en base renvoient 200 Inactive ; employeur VIVANT (les 3 postes relayés LinkedIn/Indeed après la coupure) ; ZÉRO migration — makeitbloom.com/careers pointe toujours le board JazzHR, pages /careers-marketing/ du sitemap datées 2018-2019, aucun board sur Lever/Greenhouse/Workable/BambooHR/Recruitee/Teamtailor/Breezy/Ashby (orgs « bloom » = homonymes Toronto/Paris), Serper → néant. PRÉCÉDENT DÉCISIF xtltransportlogistics : même marqueur du 2026-09-29 21:20 au 2026-10-01 08:30 (~35 h) puis retour vert TOUT SEUL (found=38, encore vert aujourd'hui à 32) — « Inactive Career Page » n'est pas toujours une résiliation définitive (contra mcgillstlaurent). Sync isolé rejoué : toujours Inactive, échec attendu, offres préservées. Connecteur conservé tel quel, docstring chronologie seulement ; si le tenant revient le sync repart seul, sinon expire_stale archivera les 3 offres (7 j, ~2026-11-04) et la supervision passera la source en retired (~14 j). Fiches makeitbloom.md/ats-jazzhr.md/INDEX.md régénérées (1133 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 +106 −106
    2. [ka6] connecteur doman_building_materials: stale = faux positif « volume QC nul », rien à réparer — les 4 offres QC du board Workable dépubliées en bloc le 2026-10-28. Profil connu « ok=1 found=0 » (70+ cas) : la supervision compte un sync à 0 offre comme non-succès. Chronologie : vert found=4 en continu jusqu'à 09:57 EDT, puis ok=1 found=0 dès 11:51 — les 4 offres QC (Employé d'entrepôt / Warehouse Person Québec du 2026-10-01, Représentant des ventes interne du 2026-09-16, Administrative Clerk / Commis à l'administration du 2026-09-14) dépubliées entre les deux, retirées proprement à la règle des 2 absences (removed=4 à 14:28). Vérification live : widget v1 GET 200 « Doman Building Materials Group Ltd » avec 17 offres publiées (C.-B., Saskatchewan, Ontario, N.-É., T.-N.) mais zéro Québec ; les 4 pages détail 302 → board + ?not_found=true (marqueur Workable de dépublication confirmé) — tenant VIVANT, zéro migration, le volume 0 est CORRECT. Sync isolé rejoué : vert ok=1 found=0 en 0,6 s, 0 offre active en base = reflet exact de la source. Aucun code de fetch modifié, docstring chronologie seulement ; employeur pancanadien à roulement par site (Maskinongé, Blainville), le connecteur reverdira seul à la prochaine publication QC. Fiches doman_building_materials.md/ats-workable.md/INDEX.md régénérées (1133 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.
      Simon-Pierre Boucher · 1 file +185 −185
  7. Tue, Oct 27, 2026 4

    1. [ka6] connecteur microhabitat: stale = fermeture saisonnière EN BLOC des 13 offres le 2026-10-27, rien à réparer dans le fetch — purge accélérée des offres fantômes. Chronologie : vert found=13 en continu jusqu'à 17:26 EDT, puis ok=1 found=0 dès 20:42 — les 13 postes (saisonniers d'agriculture urbaine parus au printemps, ex. Urban Farming Coordinator du 2026-04-29) fermés d'un coup entre les deux, fin de saison. Vérification live : /json 200 `[]` (contrôle décisif : une org Breezy inexistante renvoie 404 — le tenant est VIVANT), les 13 pages /p/ sondées une à une affichent toutes « Position Closed — Sorry, this position is no longer accepting candidates » sans formulaire de candidature, et microhabitat.com/careers pointe toujours vers microhabitat.breezy.hr — zéro migration, le volume 0 est CORRECT. Particularité vs les faux positifs « volume QC nul » habituels : médiane 13 ≥ DRIFT_MIN_BASE 8 → le garde-fou de dérive suspendait les retraits et laissait 13 offres fantômes actives en ligne. Purge par le mécanisme normal accéléré (précédent vadesk) : 3 syncs isolés rejoués → la médiane de la fenêtre DRIFT_HISTORY=5 tombe à 0, le garde se lève, règle des 2 absences → removed=13, 0 offre active en base = reflet exact de la source. Dernier sync vert ok=1 found=0 en 1,8 s. Aucun code de fetch modifié, docstring chronologie seulement ; le connecteur reverdira seul à la prochaine saison d'embauche. Fiches microhabitat.md/ats-breezy.md/INDEX.md régénérées (1133 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 +101 −101
    2. [ka6] fix connecteur ingeniuinc: migration d'ATS SmartRecruiters → site Odoo de l'employeur le 2026-10-27 — tenant SR vidé, nouvelle plateforme odoo.py. Diagnostic : vert found=1 en continu jusqu'à 07:32 EDT, puis ok=1 found=0 dès 10:23 (removed=1 à la règle des 2 absences) — l'unique offre, un fantôme paru le 2021-08-02, dépubliée entre les deux. Vérification live : API postings SmartRecruiters IngeniuInc 200 totalFound=0 (tenant existant mais vidé), page board 404 ; l'entreprise s'est rebaptisée Ingeniu Solutions (ingeniu.ca → www.ingeniusolutions.com) et publie désormais sur son PROPRE site Odoo (module website_hr_recruitment, /jobs) : 2 offres publiées. Nouvelle classe de plateforme jobka/connectors/odoo.py (pattern glow) : liste HTML rendue serveur (cartes jobs_grid, ancre /jobs/<slug>-<id>, titre <h3>, libellé <address>), pagination /jobs/page/N suivie, détail par MICRODONNÉES schema.org/JobPosting (meta datePosted/employmentType, div itemprop=description) — ⚠️ la div description ne porte que l'intro, le corps (responsabilités, compétences, avantages) vit dans les blocs website-builder qui la suivent : capture jusqu'au footer, CTA retiré ; cache BD + budget de re-visites (JOBKA_ODOO_DETAIL_LIMIT=60), garde-fou anti faux « 0 offre » (marqueur jobs_grid + retry). Lieux en cascade (doctrine bento_sushi, rien d'inventé) : addressLocality structurée → libellé <address> QC → ville citée dans le bloc JobPosting (« à notre bureau de Montréal », « Située à Montréal ») validée contre le référentiel des municipalités QC ; tout ce qui suit <footer> (siège en pied de page) jamais lu. ingeniuinc.py re-pointé sur OdooConnector (ids 743999764601957 → 15/38), sources.json mis à jour (url, careers_url, connector=odoo). Tests réels : fetch isolé 2 offres Montréal (teletravail/hybride, temps_plein, descriptions 2623/3633 car.), sync vert ok=1 found=2 added=2 en 0,3 s (médiane 0.5 — le nouveau board porte réellement 2 offres), 2 offres actives en base, l'ancienne offre SR inactive. 108 tests pytest verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200. Fiches ingeniuinc.md/ats-odoo.md/ats-smartrecruiters.md/INDEX.md régénérées (1132 autres restaurées, hors périmètre).
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file +37 −36
    3. [ka6] fix connecteur groupepmi: migration d'ATS Zoho Recruit → Glow in the Cloud le 2026-10-27 — tenant Zoho RÉSILIÉ, nouvelle plateforme glow.py. Diagnostic : vert found=10 en continu jusqu'à 07:20 EDT, puis ok=1 found=0 dès 10:10 (retraits suspendus par le garde-fou de dérive) ; le RSS et /jobs/Careers de groupepmi.zohorecruit.com renvoient tous deux une page d'erreur Zoho « groupepmi.zohorecruit.com does not exist » (200, 2596 octets) — tenant supprimé chez Zoho, pas un blip. La page carrières officielle groupepmi.ca/carriere/ pointe désormais (4 liens) vers jobs.glowinthecloud.com/groupepmi : ATS québécois Glow in the Cloud, 10 offres publiées (= médiane historique). Nouvelle classe de plateforme jobka/connectors/glow.py (pattern JazzHR) : liste HTML rendue serveur (cartes avec adresse complète), détail JSON-LD JobPosting (tabulations littérales absorbées par _jsonld), cache BD + budget de re-visites, garde-fou anti faux « 0 offre » (marqueur jobSearch-result + retry). Lieux en cascade (doctrine bento_sushi, rien d'inventé) : adresse de liste → jobLocation JSON-LD → ville citée dans la description validée contre le référentiel des municipalités QC (« Chantier Joliette ») ; le <address> des pages détail est le SIÈGE en footer, jamais utilisé ; 1 offre sans aucun marqueur de lieu correctement écartée. groupepmi.py re-pointé sur GlowConnector (ids 717696… → 20261015002…), sources.json mis à jour (careers_url, connector=glow). Tests réels : fetch isolé 9 offres QC/10 publiées, 2 syncs verts ok=1 found=9 (médiane 10) en 1,1 s puis 1,7 s avec removed=10 (anciennes offres Zoho retirées à la règle des 2 absences), 9 offres actives en base. 108 tests pytest verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200. Fiches groupepmi.md/ats-glow.md/ats-zoho_recruit.md/INDEX.md régénérées (1131 autres restaurées, hors périmètre).
      Simon-Pierre Boucher · 1 file +225 −224
Menu

Theme