SPB Git

spb/job-ka

Public
page 4
  1. Sat, Oct 17, 2026 6

    1. Simon-Pierre Boucher · 2 files +27 −5
  2. Fri, Oct 16, 2026 2

    1. Simon-Pierre Boucher · 6 files +163 −143
    2. Simon-Pierre Boucher · 5 files +560 −541
  3. Thu, Oct 15, 2026 10

    1. [ka6] connecteur allredi: rien à réparer côté flux — dépublication légitime de l'unique offre QC le 2026-10-15 + artefact vague C corrigé (homepage → Allredi). Stale = faux positif de volume nul (médiane 0.5): l'unique offre QC jamais vue (2717559 « Customer Service Representative » Laval, parue 2026-08-20, 45-55 k$) dépubliée par l'employeur entre 16:04 et 18:22 (found 1→0, missed=1, puis removed=1 via garde-fou 2-miss à 20:35), sync_log vert en continu — AUCUN échec technique. Marqueur Recruitee confirmé live (3e confirmation, classe gevgroupltd/huaweicanada): détail dépublié = 404 page /o/<slug> ET API /api/offers/2717559. Board re-vérifié vivant: 15 offres (Fairfield CA, Davenport IA, Pasadena TX, Gonzales LA, Leduc/Calgary AB, Coquitlam BC, Winnipeg MB) 0 QC, aucune translations.fr cachant un site QC (gotcha huaweicanada vérifié). Pas de migration: allredi.com/careers-page embarque toujours le widget RTWidget du même tenant (company id 82775, careers_url = allredi.recruitee.com, mêmes 15 offres). Sync rejoué vert found=0 = légitime en 0,2 s. Artefact vague C (classe gevgroupltd/jam/mlp): EMPLOYER/name = « homepage » (artefact du générateur) → Allredi (nom lu dans les descriptions: « fueling Allredi's growth across North America », fabricant/distributeur d'équipement de sablage au jet abrasif; allredi.py + sources.json), url vide → allredi.com; employeur propagé à la ligne inactive 2717559 (UPDATE direct, jamais réécrite par un sync). Docstring ajoutée (chronologie 1re intervention), fiches allredi.md/ats-recruitee.md/INDEX.md régénérées. Non-régression recruitee via anciapersonnelinc found=57. 107 tests verts, pm2 restart OK, site local+public 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +367 −370
    2. [ka6] fix connecteur mlp: panne shard Dayforce 2026-10-14 déjà résolue + assurance bi-culture (pattern jam/kdcone) + artefact vague C corrigé (Mlp → MacLean Power Systems). Broken = 3 échecs FRANCS ok=0 (read timeout 15:42 puis 503 ×2 à 19:07/20:07 sur /api/geo/mlp/jobposting/search, même rafale que kdcone/jam/imperialdade/harrisrebar/ndtglobal), jamais de faux 0 — les 3 offres QC préservées; syncs verts found=3 jusqu'à 13:12 le 14, trou ensuite = restarts pm2 des missions voisines. Panne résolue d'elle-même: sync rejoué vert found=3 = médiane 3.0 en 1,3 s. Pas de migration: macleanpower.com/careers-at-mps/ référence toujours le CandidatePortal Dayforce du namespace mlp (culture maîtresse en-US). Re-sondage tri-culture (pattern jam/kdcone/imperialdade): fr-CA ne voit que les 3 offres traduites (toutes QC Châteauguay) vs 136 offres en en-CA/en-US dont 2 QC (16245/16242, MÊMES ids = vraies traductions; 16217 « Machiniste Quart de soir » n'existe qu'en fr-CA) — aucune offre QC manquée aujourd'hui, mais vue fr-CA à 3/136 sur tenant à culture maîtresse EN = angle mort latent (cas jam: quasi-totalité du QC publiée qu'en EN) → fix CULTURES=(fr-CA,en-CA) fusion par external_id priorité fr-CA, found inchangé 3 = médiane, assurance contre un futur poste QC sans traduction FR. Artefact vague C (classe gevgroupltd/jam/kdcone): EMPLOYER/name = namespace brut « Mlp » → MacLean Power Systems (nom lu dans les descriptions: « Avec son siège social situé à Fort Mill, en Caroline du Sud, MacLean Power Systems (MPS) est le principal fabricant de produits critiques », 1600 employés, usine QC = filiale Vizimax Inc. 225 boul. Ford Châteauguay; mlp.py + sources.json), url vide → macleanpower.com; propagation aux 3 actives via sync (updated=3) + 3 lignes inactives (UPDATE direct, jamais réécrites par un sync). Docstring enrichie (chronologie 2e intervention), fiches mlp.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +100 −46
    3. [ka6] fix connecteur kdcone: angle mort de culture récupéré (found 14→15) + panne shard Dayforce 2026-10-14 déjà résolue + artefact vague C corrigé (Hygiéniste Industrielle → KDC/ONE). Broken = 3 échecs FRANCS ok=0 (read timeout 15:34 puis 503 ×2 à 19:01/19:52 sur /api/geo/kdcone/jobposting/search, même rafale que jam/harrisrebar/imperialdade/wikoff/wafna/leadsonline/peaktech/stateindustrial), jamais de faux 0 — les 14 offres QC préservées; syncs verts found=14 jusqu'à 13:07 le 14, trou ensuite = restarts pm2 des missions voisines. Panne résolue d'elle-même: sync rejoué vert found=14 = médiane 14.0 en 1,3 s. Pas de migration: kdc-one.com/careers référence toujours les CandidatePortal dayforcehcm par usine du namespace kdcone (cultures maîtresses en-US/en-GB). ANGLE MORT de culture (pattern jam/imperialdade/leadsonline/bly/boralex) détecté au re-sondage tri-culture: fr-CA ne voit que les 14 offres traduites (toutes QC) vs 127 offres en en-CA/en-US dont 14 QC — 13 communes + l'évergreen « Spontaneous Candidacy » Knowlton id 58831 publié SEULEMENT en EN (pendant FR id 58411, ids distincts par langue, classe pokafr) → fix CULTURES=(fr-CA,en-CA) fusion par external_id priorité fr-CA, found 14→15 (added=1, updated=14) + assurance contre un futur poste QC sans traduction FR (cas jam). Artefact vague C (classe gevgroupltd/jam): EMPLOYER/name = titre d'offre brut « Hygiéniste Industrielle » → KDC/ONE (nom lu dans les descriptions: « Chez KDC/ONE, nous sommes des leaders dans la fabrication en sous-traitance », plus grand fabricant de déodorants en Amérique du Nord, usines QC Knowlton + siège Longueuil; kdcone.py + sources.json), url vide → kdc-one.com; propagation aux 15 actives via sync + 8 lignes inactives (UPDATE direct, jamais réécrites par un sync). Docstring enrichie (chronologie 2e intervention), fiches kdcone.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +108 −75
    4. [ka6] fix connecteur jam: angle mort MAJEUR de culture récupéré (found 5→23) + panne shard Dayforce 2026-10-14 déjà résolue + artefact vague C corrigé (Architecte Salesforce Sommaire → JAM Industries). Broken = 4 échecs FRANCS ok=0 (500 à 15:26 puis 503 ×3 jusqu'à 19:37 sur /api/geo/jam/jobposting/search, même rafale que harrisrebar/imperialdade/wikoff/wafna/leadsonline/peaktech/stateindustrial), jamais de faux 0 — les 5 offres QC préservées; syncs verts found=5 jusqu'à 13:00 le 14, trou ensuite = restarts pm2 des missions voisines. Panne résolue d'elle-même: sync rejoué vert found=5 = médiane 5.0 en 1,3 s. Pas de migration: jamindustries.com/careers référence toujours jobs.dayforcehcm.com/jam/CANDIDATEPORTAL. ANGLE MORT réel (pattern imperialdade/leadsonline/bly/boralex) détecté au re-sondage tri-culture: fr-CA ne voit que 8 offres (5 QC) vs 41 en en-CA/en-US dont 21 QC — la quasi-totalité des postes QC de Baie-d'Urfé/Montréal (titres bilingues « … / Claims Administrator ») n'est publiée QUE dans les cultures EN; « Architecte Salesforce » id 1601 et « Coordonnateur de la chaîne d'approvisionnement » id 653 n'existent qu'en fr-CA → fix CULTURES=(fr-CA,en-CA) fusion par external_id priorité fr-CA, found 5→23 (added=7, updated=16). Artefact vague C (classe gevgroupltd/kodify): EMPLOYER/name = titre d'offre brut « Architecte Salesforce Sommaire » → JAM Industries (nom lu dans les descriptions: « Don't skip a beat, apply to JAM Industries! », distributeur d'instruments de musique/électronique depuis 1972, divisions Erikson Music/Audio/Consumer; jam.py + sources.json), url vide → jamindustries.com; propagation aux 23 actives via sync + 10 lignes inactives (UPDATE direct, jamais réécrites par un sync). Docstring enrichie (chronologie 2e intervention), fiches jam.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      Simon-Pierre Boucher · 5 files +117 −80
    5. [ka6] fix connecteur imperialdade: angle mort de culture récupéré (found 32→33) + panne shard Dayforce 2026-10-14 déjà résolue + artefact vague C corrigé (Sany → Imperial Brady Canada). Broken = 3 échecs FRANCS ok=0 (read timeout 15:23 puis 503 ×2 à 18:51/19:12 sur /api/geo/imperialdade/jobposting/search, même rafale que harrisrebar/wikoff/wafna/leadsonline/peaktech/stateindustrial), jamais de faux 0 — les 32-33 offres QC préservées; syncs verts found=32 jusqu'à 12:59 le 14, trou ensuite = restarts pm2 des missions voisines. Panne résolue d'elle-même: sync rejoué vert found=32 = médiane 32.5 en 2,4 s. Pas de migration: imperialbrady.com/careers référence toujours en-CA/imperialdade/CANCANDIDATEPORTAL (+ board US CANDIDATEPORTAL 185 offres 0 QC sondé). ANGLE MORT réel (pattern leadsonline/bly/boralex) détecté au re-sondage bi-board × tri-culture: fr-CA ne voit que 33 offres (32 QC) vs 47 en en-CA/en-US — « IT Business Analyst - Digital Integrations » Saint-Laurent id 10917 (parue 2026-09-17) n'existe que dans les cultures EN (lien officiel du site carrières = en-CA, culture maîtresse), « Chauffeur de camion porteur (classe 3) » Jonquière id 10515 n'existe qu'en fr-CA → fix CULTURES=(fr-CA,en-CA) fusion par external_id priorité fr-CA, found 32→33 (added=1). Artefact vague C (classe gevgroupltd/leadsonline): EMPLOYER/name « Sany » (marque d'une seule division, sany.ca à vendre) → Imperial Brady Canada (nom lu dans les descriptions d'offres: « Imperial Brady Canada, principal distributeur national »; imperialdade.py + sources.json), url vide → imperialbrady.com; propagation aux 32 actives via sync (updated=32) + 30 lignes inactives (UPDATE direct, jamais réécrites par un sync). Docstring enrichie (chronologie 2e intervention), fiches imperialdade.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      Simon-Pierre Boucher · 5 files +103 −63
    6. Simon-Pierre Boucher · 5 files +59 −47
    7. [ka6] connecteur stateindustrial: rien à réparer côté flux — found=0 légitime (4e intervention, offre 11972 toujours dépubliée postingStatus=4). Stale = variante « cycle interrompu »: dernier sync enregistré 2026-10-14 19:24 = 503 de la panne partielle de shard Dayforce du 14 (résolue, même rafale que wikoff/wafna/leadsonline/peaktech), puis trou de syncs causé par les restarts pm2 des missions voisines (scheduler vivant en plein cycle, lettre « c », à l'intervention); le « dernier succès 2026-10-12 09:55 » de la supervision = dernier sync found>0 avant la dépublication de 11972 (cas déjà tranché les 12 et 14/10), 24+ syncs verts ok=1 found=0 entre les deux, un seul read timeout 16:03 le 14 (rafale frontal, retry ×3 déjà en place 747d8e3c). Sync rejoué vert found=0 = médiane 0.0 en 1,2 s. Pas de migration: stateindustrial.com/careers (200) référence toujours jobs.dayforcehcm.com/en-US/stateindustrial/CANDIDATEPORTAL = même tenant/board. Pas d'angle mort: board re-sondé 25 offres (OH ×9, NC ×3, WI/FL/ON ×2, autres US ×6) 0 QC vérifiées lieux complets (stateCode/isoCountryCode), fr-CA maxCount=0 connu (bascule en-US du 2026-09-17), détail 11972 postingStatus=4 (marqueur propre au tenant: détail dépublié reste 200). Pas d'artefact vague C (EMPLOYER/name/url déjà corrects). Docstring enrichie (chronologie 4e intervention), fiches stateindustrial.md/ats-dayforce.md/INDEX.md régénérées. Prochaine republication mensuelle du poste « Représentant(e) des ventes externes » attendue ~début nov (cycle 11658/11661 → 11795 → 11972). 107 tests verts, pm2 restart OK, site local+public 200.
      Simon-Pierre Boucher · 4 files +56 −41
    8. [ka6] connecteur peaktech: rien à réparer côté flux — found=0 légitime (3e intervention, source structurellement 0 QC) + artefact vague C corrigé (Peaktech → Peak Technologies). Stale = variante « cycle interrompu »: dernier sync enregistré 2026-10-14 19:12 = 503 de la panne partielle de shard Dayforce du 14 (résolue, même rafale que wikoff/wafna/leadsonline), puis trou de syncs causé par les restarts pm2 des missions voisines (scheduler vivant en plein cycle, lettre « c », à l'intervention); le « dernier succès 2026-10-05 » de la supervision = dernier sync avec found>0 (offre 3870 dépubliée ce jour-là, cas 6a2cebc1), syncs ok=1 found=0 verts en continu entre les deux. Sync rejoué vert found=0 = médiane 0.0 en 4,6 s. Pas de migration: peaktech.com/about-peak-technologies/careers/ (403 anti-bot direct → Scrapfly 200) référence toujours dayforcehcm.com/CandidatePortal/en-CAN/peaktech = même tenant. Pas d'angle mort: fr-CA maxCount=0 (connu depuis 6a2cebc1), en-CA 46 offres TOUTES hors QC (US, GB ×2, BE, ON) vérifiées lieux complets (stateCode/isoCountryCode), en-US sondé = 0 QC aussi, les 3 offres virtuelles sans lieu inspectées au détail = aucune mention Québec/Montréal/Canada. Artefact vague C (classe wafna/leadsonline): EMPLOYER/name = namespace brut « Peaktech » → Peak Technologies (nom lu dans les descriptions d'offres « For over 35 years, Peak Technologies… » et titre du site officiel « Careers - Peak Technologies »; peaktech.py + sources.json), propagation aux 4 lignes en base (UPDATE direct, toutes inactives — aucun sync ne les aurait réécrites). Docstring enrichie (chronologie 3e intervention), fiches peaktech.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +76 −63
    9. [ka6] connecteur orthoclinical: rien à réparer côté flux — unique offre QC dépubliée le 2026-10-14 (found=0 légitime) + double artefact vague C corrigé (Field Service Representative → QuidelOrtho). Stale = variante « cycle interrompu » (restarts pm2 des missions voisines, 153 restarts, scheduler vivant en plein cycle à l'intervention). Dépublication RÉELLE de l'unique offre QC R0016868 « Field Service Representative - Quebec City Region » (parue 2026-09-14) entre 15:47 et 19:11 le 2026-10-14: détail cxs = 403 S22 (marqueur Workday classique), dernier sync avant trou = found=0 ok=1 jamais de faux échec. Board vivant 29 offres (US/Rochester, Inde, Chine, Allemagne, UK) 0 QC: searchText Quebec/Canada/Montreal/Montréal = 0, les 5 offres multi-lieux vérifiées une à une au détail cxs = 100 % US/UK, 8 sites frères sondés (External, Careers, QuidelOrtho…) = 404. Pas de migration: quidelortho.com/global/en/careers/careers-home référence toujours orthoclinical.wd1.myworkdayjobs.com/Search = même tenant/board. found=0 conforme à la médiane 0.5 (source oscillant 0/1), garde-fou de dérive non déclenché (DRIFT_MIN_BASE=8 > médiane), offre désactivée proprement par le pipeline (miss_count 2, removed=1, sync vert ok=1). DOUBLE artefact vague C corrigé (classe gevgroupltd/kodify 8ff81d0): EMPLOYER/name = titre d'offre brut « Field Service Representative » → QuidelOrtho (fusion Quidel + Ortho Clinical Diagnostics 2022, diagnostics in vitro; hiringOrganization Workday = Ortho-Clinical Diagnostics, Inc., nom courant lu dans les descriptions d'offres et sur le site officiel; orthoclinical.py + sources.json), url vide → quidelortho.com; propagation à la ligne en base (UPDATE direct, l'offre étant dépubliée aucun sync ne l'aurait réécrite). Docstring enrichie, fiches orthoclinical.md/ats-workday.md/INDEX.md régénérées. Non-régression workday via dupont found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +274 −285
    10. [ka6] fix connecteur leadsonline: angle mort de culture récupéré (found 1→2) + panne shard Dayforce 2026-10-14 déjà résolue + double artefact vague C corrigé (Leadsonline → LeadsOnline). Namespace supplémentaire de la panne partielle de shard Dayforce du 2026-10-14, DÉJÀ RÉSOLUE à l'intervention (syncs verts found=1 jusqu'à 15:38, 503 franc à 19:03 sur /api/geo/leadsonline/jobposting/search, ok=0 jamais de faux 0, offre QC préservée; trou de syncs ensuite = restarts pm2 des missions voisines, variante « cycle interrompu »; run.py sync repasse vert). Pas de migration: leadsonline.com/careers.html pointe toujours jobs.dayforcehcm.com/en-US/leadsonline/CANDIDATEPORTAL = même tenant/board. ANGLE MORT réel (pattern bly/boralex): fr-CA ne voit qu'1 offre (id 864 assemblage Saint-Laurent, traduite), en-CA/en-US voient les 8 offres du groupe (quasi toutes Plano TX) dont 2 QC — id 864 partagé ET « Coordonnateur(trice), Ressources humaines (Contrat d'un an) » Saint-Laurent id 922 publiée bilingue mais seulement dans les cultures EN → fix CULTURES=(fr-CA,en-CA) fusion par external_id priorité fr-CA, found 1→2 (added=1). Employeur identifié: LeadsOnline LLC (Plano TX, technologies d'enquête pour forces de l'ordre, IBIS/MatchPoint) — présence QC via l'acquisition d'Ultra Forensic Technology (ex-Forensic Technology, créatrice d'IBIS, production à Saint-Laurent). Artefact vague C (classe gevgroupltd 8ff81d0): EMPLOYER/name « Leadsonline » → LeadsOnline (casse officielle), url vide → leadsonline.com; propagation aux lignes actives (updated=1 via content_hash). Docstring enrichie, fiches leadsonline.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +116 −63
  4. Wed, Oct 14, 2026 18

    1. [ka6] connecteur wikoff: rien à réparer côté panne — namespace supplémentaire de la panne partielle de shard Dayforce du 2026-10-14, DÉJÀ RÉSOLUE à l'intervention (syncs verts found=1 jusqu'à 13:36, read timeout 16:20 puis 503 sur /api/geo/wikoff/jobposting/search à 19:38, échec franc ok=0 jamais de faux 0, 1 offre QC active préservée; run.py sync wikoff repasse vert found=1 = médiane 1.0, updated=1). Pas de migration: wikoff.com/careers pointe toujours jobs.dayforcehcm.com/en-US/wikoff/CANDIDATEPORTAL = même tenant/board. Partition de culture vérifiée (pas d'angle mort, pattern altg/wafna): fr-CA voit 1 offre, la QC (le tenant ne traduit que le poste québécois), en-CA/en-US voient les 40 offres du groupe (quasi toutes US) dont exactement la même QC (id 665 « Opérateur(trice) de Production (Montreal) » partagé) — fr-CA est la bonne culture. DOUBLE artefact vague C corrigé (classe gevgroupltd 8ff81d0): EMPLOYER/name = titre d'offre brut « Production Operator I (Montreal) » (classe kodify) → Wikoff Color Corporation (fabricant d'encres d'imprimerie et de revêtements détenu par ses employés ESOP, siège Fort Mill SC, usine montréalaise; nom lu dans les descriptions d'offres et sur le site officiel; wikoff.py + sources.json), url vide → wikoff.com; propagation faite à la ligne active (sync vert updated=1 via content_hash). Docstring enrichie, fiches wikoff.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      Simon-Pierre Boucher · 5 files +85 −54
    2. [ka6] connecteur wafna: rien à réparer côté panne — namespace supplémentaire de la panne partielle de shard Dayforce du 2026-10-14, DÉJÀ RÉSOLUE à l'intervention (syncs verts found=2 jusqu'à 13:32, read timeout 16:16 puis 503 sur /api/geo/wafna/jobposting/search à 19:34, échec franc ok=0 jamais de faux 0, 2 offres QC actives préservées; run.py sync wafna repasse vert found=2 = médiane 2.0, updated=2). Pas de migration: wismettacusa.com/ca/employment/ pointe toujours jobs.dayforcehcm.com/en-CA/wafna/CANCAREERSITE = même tenant/board. Partition de culture vérifiée (pas d'angle mort, pattern altg): fr-CA voit 2 offres TOUTES QC (le tenant ne traduit que les postes québécois), en-CA/en-US voient les 5 offres du groupe (BC/ON en plus) dont exactement les 2 mêmes QC (ids 5509/5516 partagés) — fr-CA est la bonne culture. DOUBLE artefact vague C corrigé (classe gevgroupltd 8ff81d0): EMPLOYER/name = namespace brut « Wafna » → Wismettac Asian Foods (WAFNA = Wismettac Asian Foods North America, importateur-distributeur d'aliments asiatiques du groupe Nishimoto Wismettac, succursale 5865 rue Kieran Saint-Laurent; nom lu dans les descriptions d'offres et sur le site officiel; wafna.py + sources.json), url vide → wismettacusa.com/ca/; propagation faite aux 2 lignes actives (sync vert updated=2 via content_hash). Docstring enrichie, fiches wafna.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      Simon-Pierre Boucher · 5 files +129 −98
    3. [ka6] fix connecteur bly: angle mort de culture récupéré (found 6→7) + panne shard Dayforce 2026-10-14 déjà résolue + double artefact vague C corrigé (Field Mechanic → Boart Longyear)
      …
      Panne: namespace supplémentaire de la panne partielle de shard Dayforce du
      2026-10-14, DÉJÀ RÉSOLUE côté Dayforce à l'intervention (syncs verts found=6
      jusqu'à 17:58, 500 à 17:33 puis 503 soutenu sur
      /api/geo/bly/jobposting/search de 18:14 à 22:05, échec franc ok=0 jamais de
      faux 0, 6 offres QC actives préservées; le scheduler repasse vert seul à
      22:17 found=6 = médiane 6.0). Pas de migration: careers.boartlongyear.com
      (frontend custom, l'ancien /careers/ est 404) fait postuler via
      jobs.dayforcehcm.com/en-CA/bly/CANDIDATEPORTAL = même tenant/board.
      
      VRAI angle mort de culture corrigé: fr-CA ne voit que les offres traduites
      (7 dont 6 QC), en-CA liste les 63 offres du board dont « Foreur
      Long-Trou/Dynamiteur » Val-d'Or (id 1000) publiée en ANGLAIS SEULEMENT et
      pourtant listée sur le site carrières officiel — invisible en fr-CA. Fix
      pattern peaktech/challenger/fnfmb: CULTURES=(fr-CA,en-CA), fusion par
      external_id priorité fr-CA → sync réel found=7, added=1, updated=6.
      
      DOUBLE artefact vague C corrigé (classe gevgroupltd 8ff81d0): EMPLOYER/name
      = titre de poste « Field Mechanic » → Boart Longyear (bly = ticker ASX;
      principal fournisseur mondial de services de forage minier, base QC à
      Val-d'Or; nom lu dans les descriptions FR des offres; bly.py +
      sources.json), url vide → boartlongyear.com; propagation faite aux 7 lignes
      actives via content_hash.
      
      Docstring enrichie, fiches bly.md/ats-dayforce.md/INDEX.md régénérées.
      Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart
      OK, site local+public 200.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +106 −65
    4. [ka6] connecteur altg: rien à réparer — namespace supplémentaire de la panne partielle de shard Dayforce du 2026-10-14, DÉJÀ RÉSOLUE côté Dayforce à l'intervention (syncs verts found=8 jusqu'à 17:55 — ce tenant a tenu ~4 h de plus que les namespaces tombés ~13:30, même profil qu'ajholdingsltd —, read timeout à 17:28 puis 503 soutenu sur /api/geo/altg/jobposting/search de 18:10 à 22:01, échec franc ok=0 jamais de faux 0, 8 offres QC actives préservées; à 22:14 le scheduler repasse vert seul found=7 et run.py sync altg confirme found=7 ≈ médiane 8 — l'offre manquante « Technicien / mécanicien pour chariot élévateur » Québec id 17308 est une VRAIE dépublication pendant la fenêtre, absente des deux cultures). Pas de migration: altg.com/career/ (200, altaequipment.com y redirige) embarque toujours jobs.dayforcehcm.com/altg/CANDIDATEPORTAL = même tenant/board. Partition de culture vérifiée: fr-CA voit 7 offres TOUTES QC (le tenant ne traduit que les postes québécois), en-CA voit les 108 offres du groupe dont exactement les 7 mêmes QC (ids identiques) — fr-CA est la bonne culture, pas d'angle mort. DOUBLE artefact vague C corrigé (classe gevgroupltd 8ff81d0): EMPLOYER/name = namespace brut « Altg » (= ticker NYSE d'Alta Equipment Group) → Alta Équipements de Manutention (marque lue dans les descriptions FR des offres; division Alta Material Handling Canada, succursales Dorval/Montréal/Québec; altg.py + sources.json), url vide → altg.ca (site canadien officiel, version /fr); propagation faite aux 7 lignes actives (sync vert updated=7 via content_hash). Docstring enrichie, fiches altg.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +94 −54
    5. [ka6] connecteur ajholdingsltd: rien à réparer — namespace supplémentaire de la panne partielle de shard Dayforce du 2026-10-14, DÉJÀ RÉSOLUE côté Dayforce à l'intervention (syncs verts found=3 jusqu'à 17:54 — ce tenant a tenu ~4 h de plus que les autres namespaces tombés ~13:30 —, 500 isolé à 17:25 puis 503 soutenu sur /api/geo/ajholdingsltd/jobposting/search de 18:08 à 21:59, échec franc ok=0 jamais de faux 0, 3 offres QC actives préservées; à 22h le même appel répond 200 JSON et run.py sync retourne found=3 = médiane, updated=3). Pas de migration: astenjohnson.com/careers (200) liste toujours des offres du même tenant/board dayforcehcm.com/en-US/ajholdingsltd/CANDIDATEPORTAL. Partition de culture vérifiée: fr-CA voit 7 offres dont les 3 QC (Salaberry-de-Valleyfield), en-CA 37 offres 0 QC (US/BE/CN/SG) — fr-CA est la bonne culture, pas d'angle mort. DOUBLE artefact vague C corrigé (classe gevgroupltd 8ff81d0): EMPLOYER/name = namespace brut « Ajholdingsltd » → AstenJohnson (AJ Holdings Ltd = AstenJohnson Holdings, fabricant mondial de toiles pour machines à papier, usine Baie Saint-François à Salaberry-de-Valleyfield; nom lu dans les descriptions d'offres; ajholdingsltd.py + sources.json), url vide → astenjohnson.com; propagation faite aux 3 lignes actives (sync vert updated=3 via content_hash). Docstring enrichie, fiches ajholdingsltd.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      …
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +73 −37
    6. [ka6] connecteur vestis: rien à réparer — namespace supplémentaire de la panne partielle de shard Dayforce du 2026-10-14 (500 à 16:13 puis 503 HTML soutenu sur /api/geo/vestis/jobposting/search, toutes combinaisons board × culture QL/CL/CANDIDATEPORTAL × fr-CA/en-CA/en-US; tenant frère benmor 200 JSON même session = frontal vivant; même 503 via proxy résidentiel CA = pas un blocage IP). Pas de migration: quebec-linge.com/about-us/careers (200, ⚠️ domaine à trait d'union — quebeclinge.com sans trait = domaine parqué /lander) pointe toujours dayforcehcm.com/CandidatePortal/.../vestis/Site/CLCANDIDATEPORTAL = même tenant. PISTE post-panne documentée: le lien officiel affiche le board frère CLCANDIDATEPORTAL (Canadian Linen) alors que le connecteur lit QLCANDIDATEPORTAL (vert found=17 à 13:31 le jour même) — si QL revient vide, sonder CL (pattern enercare). Syncs verts found=17 jusqu'à 13:31, échec franc ensuite (ok=0, jamais de faux 0), 17 offres QC actives préservées (Montréal, Québec, Saguenay, Sherbrooke). DOUBLE artefact vague C corrigé au passage (classe gevgroupltd 8ff81d0): EMPLOYER/name = titre d'offre « Journalier(ère) de production » → Quebec Linge (Quebec Linge & Uniform Service Co., groupe Vestis ex-Aramark Uniform Services; vestis.py + sources.json), url vide → quebec-linge.com; propagation aux 17 lignes au prochain sync vert via content_hash. Docstring enrichie, fiches vestis.md/ats-dayforce.md/INDEX.md régénérées. Non-régression dayforce via bleufeu found=1. 107 tests verts, pm2 restart OK, site local+public 200.
      Simon-Pierre Boucher · 5 files +82 −43
    7. Simon-Pierre Boucher · 1 file +28 −1
    8. Simon-Pierre Boucher · 1 file +21 −1
    9. Simon-Pierre Boucher · 1 file +22 −1
    10. Simon-Pierre Boucher · 1,135 files +8,833 −8,605
    11. Simon-Pierre Boucher · 3 files +45 −30
    12. [ka6] connecteur peaktech: rien à réparer côté source — instabilité GÉNÉRALE du frontal Dayforce le 2026-10-14 (14h59-17h36+ EDT), garde-fou _search_page durci. L'unique sync rouge de peaktech (500 à 15:49) faisait partie d'une rafale systémique jobs.dayforcehcm.com: 500 Internal Server Error ET read timeouts (30 s) intermittents sur ~21 tenants Dayforce de l'app en 2 cycles consécutifs (deltastar, flowcontrol, harrisrebar, imperialdade, jam, kdcone, mlp, ndtglobal, peaktech, realterm, stateindustrial, storagemart, superiorplus, valnetinc, vestis, wafna, wikoff, puis ajholdingsltd, altg, bly, boralex), 52 syncs Dayforce verts dans la même fenêtre = blip intermittent côté Dayforce, pas un blocage de notre IP (curl isolés 200). Board peaktech re-vérifié live: fr-CA maxCount=0 (inchangé depuis la bascule bi-culture 6a2cebc), en-CA 46 offres TOUTES hors QC (US ×43, Toronto, GB ×2, BE) — found=0 légitime, médiane 0.0. Fix générique dayforce.py _search_page: 3 essais + backoff 5s/10s (pattern taleo._bootstrap / smartrecruiters._list_page 528cbb1c) et couverture des requests.Timeout/ConnectionError que l'ancien garde-fou (2 essais, HTTPError 5xx seulement) ne retentait JAMAIS — ~la moitié des échecs de la rafale étaient des read timeouts. Bénéficie aux 129 connecteurs Dayforce de l'app. Sync isolé peaktech rejoué ×3: ok=1 found=0 stable, 35-53 s (retries absorbés pendant l'instabilité encore en cours). Non-régression dayforce via lavieenrose found=143 en 6,6 s. 107 tests pytest verts. Docstring peaktech.py enrichie (chronologie 2e intervention). Fiches peaktech.md / ats-dayforce.md / INDEX.md régénérées (1131 autres fiches 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 · 5 files +438 −416
  5. Tue, Oct 13, 2026 4

    1. [ka6] fix connecteur huaweicanada: location renommée EN-seulement par le tenant Recruitee — repli générique multi-lieux/traductions FR. Le 2026-10-13 vers 15h-16h EDT, la location « Montréal, 7101 Avenue du Parc » (labo Noah's Ark, id 99963) a été renommée côté EN en « Markham, 19 Allstate Parkway » (doublon du nom de la vraie location Markham id 99954), alors que la traduction FR du site carrières public, le JSON-LD des pages détail (addressLocality=Montréal) et les agrégateurs (LinkedIn, espresso-jobs, jobs.ca) affichent toujours Montréal. Les champs racine city/state_code de l'API /api/offers suivent l'EN → les 24 offres QC (toutes vivantes, détails 200 published, aucune dépubliée) sortaient d'un coup du filtre _keep : found 24→0 sur 2 syncs, retraits suspendus par le garde-fou dérive. Aucun signal de fermeture/déménagement du labo de Montréal. Fix générique recruitee.py : _qc_location() teste chaque entrée de locations[] (EN puis traduction FR) quand la racine n'est pas QC, et la ville/label/postal du lieu QC retenu font foi (postal partagé avec l'EN gardé seulement si G/H/J — évite un géocodage vers Markham L3R). Sync isolé rejoué ×3 : found=24 stable (médiane locale exacte), ville en base Montréal/Québec. Non-régression recruitee via framestore found=8 et amilia found=5. 107 tests pytest verts. sources.json : url vide → www.huawei.com/ca (artefact vague D). Fiches huaweicanada.md / ats-recruitee.md / INDEX.md régénérées (1131 autres fiches 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 · 6 files +383 −320
    2. [ka6] fix connecteur fresha: MIGRATION ATS Lever→Teamtailor (2e migration du repo après ten_canada Breezy→Greenhouse, 1re vers Teamtailor) — le tenant Lever « fresha » a été SUPPRIMÉ entre le 12 et le 13 oct. (API v0 404 {"ok":false,"error":"Document not found"} + board jobs.lever.co/fresha 404 + page détail de l'unique offre QC 404), 2 syncs rouges consécutifs. careers.fresha.com est désormais un site Teamtailor (tenant EU 8Ws7JiPnoEo@eu) sur DOMAINE CUSTOM : fresha.teamtailor.com redirige vers lui, mais le sitemap n'y liste que des URLs careers.fresha.com, invisibles au motif *.teamtailor.com de la plateforme → ajout générique de l'attribut DOMAIN à TeamtailorConnector (sitemap + regex construits sur le domaine custom, pattern minimal façon EXTRA_SITES/CULTURES), FreshaConnector converti LeverConnector→TeamtailorConnector avec DOMAIN='careers.fresha.com'. Le board migré porte 125 offres (sitemap) toutes Europe/Asie/Océanie, AUCUNE QC : l'unique offre historique « Account Manager (Montreal) » (d72356fc, parue 2026-05-28) n'a pas survécu à la migration — retirée au garde-fou 2-miss (missed=1 puis removed=1), found=0 est l'état légitime. Syncs isolés ×3 : ok=1 stable, 100 s → 99 s → 8,2 s (découverte étalée par le budget MAX_DETAILS=60 : 125 détails en 2 cycles, puis cache). Non-régression teamtailor via nordastelo found=60. 107 tests pytest verts. sources.json : connector lever→teamtailor, careers_url → careers.fresha.com, url vide → www.fresha.com. Fiches fresha.md / ats-teamtailor.md / ats-lever.md / INDEX.md régénérées (1130 autres fiches 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 · 7 files +189 −185
Menu

Theme