SPB Git

spb/job-ka

Public
8.9 KB

# Peak Technologies (peaktech)

Employeur direct · Plateforme ATS : dayforce · Statut registre : actif · Connecteur : jobka/connectors/peaktech.py

# Description

# Accès

  • Mécanique : voir la fiche plateforme ats-dayforce.md — API JSON publique du site carrières, backend requests direct (Scrapfly seulement si indiqué sur la fiche plateforme).
  • Identifiants du tenant (attributs du connecteur) :
Attribut Valeur
BOARD CANDIDATEPORTAL
CULTURE fr-CA
EMPLOYER Peak Technologies
NS peaktech
  • Throttle : 0.8 s entre requêtes.
  • Filtre Québec : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon is_quebec_location côté client).

# Champs → schéma

Aucune offre active en base pour cette source.

# Fréquence & budgets

  • Cadence : resynchronisation horaire (PM2 job-ka-sync = run.py watch 60), suivie du géocodage en lot puis de la déduplication inter-sources.
  • Throttle : 0.8 s minimum entre deux requêtes vers la source (request_delay).
  • Budgets / plafonds (variables d'environnement) :
Variable Défaut
JOBKA_DAYFORCE_DETAIL_LIMIT 80
  • Cache BD des pages détail (detail_cache) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change.

# Volumétrie & complétude live

(mesuré le 2026-10-15 00:45 EDT dans data/jobka.db)

  • Offres en base : 4 (dont 0 actives, 0 masquées comme doublons dup_of)
  • Salaire : 0/0 actives (—)
  • GPS : 0/0 actives (—)
  • Mode : 0/0 actives (—)
  • Parution : 0/0 actives (—)
  • Dernier sync : 2026-10-15 00:45 — trouvées 0, +0, ~0, -0
  • Syncs enregistrés (sync_log) : 473

# Erreurs & dépannage

Erreurs relevées dans sync_log :

Erreur Occurrences Dernière fois
503 Server Error: Service Unavailable for url: https://jobs.dayforcehcm.com/api/geo/peakte… 1 2026-10-14 19:12
500 Server Error: Internal Server Error for url: https://jobs.dayforcehcm.com/api/geo/peak… 1 2026-10-14 15:49
  • Rejouer un sync isolé : .venv/bin/python run.py sync peaktech puis inspecter sync_log : sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='peaktech' ORDER BY ts DESC LIMIT 5;"
  • Garde-fous : une source qui retourne ≤ 25 % de sa médiane historique déclenche une alerte et les retraits sont suspendus ; une offre doit manquer 2 syncs consécutifs avant active=0.

# Licence / conformité

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 Peak Technologies » 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.

# Historique

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 :

  • fd4bfc8 qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ;
  • 5a66f48 +59 employeurs (sondage massif d'ATS + détection de pages carrières) ;
  • 4917d57 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ;
  • f6e7571 portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ;
  • 744cbfc badge « Offre directe », stats directes/portails, dépôt direct employeurs ;
  • 1604ff9 reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel).

Commits touchant jobka/connectors/peaktech.py :

  • 747d8e3c 2026-10-14 [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.
  • 6a2cebc1 2026-10-05 [ka6] fix connecteur peaktech: stale « volume QC nul » (40e cas du pattern, 1re intervention sur cette source) — found=0 est CORRECT (médiane historique 0.5, Peak Technologies siège US, le bureau de Montréal 9066 Pascal-Gagnon n'a que 0-1 poste par vagues) : l'unique offre QC en base (3870 « Technicien de service sur le terrain », Montréal, parue 2026-07-30) a été DÉPUBLIÉE par l'employeur entre 13:25 et 15:40 EDT le 2026-10-05 (found 1 → 0, missed=1 puis removed=1 via le garde-fou 2-miss), sync_log VERT en continu (ok=1). MAIS vrai angle mort découvert et corrigé au passage : la recherche Dayforce de ce tenant est PARTITIONNÉE par culture — fr-CA renvoie désormais maxCount=0 (plus aucune offre traduite FR) alors qu'en-CA liste les 37-38 offres du board ; une future offre QC publiée seulement en anglais aurait été invisible. FIX : peaktech.py converti au pattern bi-culture CULTURES=('fr-CA','en-CA') avec fusion par external_id, version fr-CA prioritaire (même pattern que challenger/fnfmb/euromoneyplc). Board re-vérifié live : 38 offres toutes HORS QC (US ×~35, Toronto ON, GB, BE, IE) — zéro angle mort restant. Aucune migration d'ATS : peaktech.com/about-peak-technologies/careers/ (200) référence toujours dayforcehcm.com/CandidatePortal/en-CAN/peaktech (même tenant). Artefact vague C comblé dans sources.json : url employeur vide → https://www.peaktech.com (vérifié 200, « Digital Supply Chain & Mobility Solutions - Peak Technologies »), JSON valide. Tant que Peak Technologies ne republie rien au Québec, ce connecteur sera re-signalé périodiquement : structurel, pas une panne (même classe que mitacs a49f7a5 / rbc edde0ca / zoetis 78938c3). Preuve du fetch bi-culture : fr-CA voit 0, en-CA voit 37, merge filtré QC → 0. Sync isolé rejoué ×3 : found=0 stable, ok=1, 4,4-4,8 s ; non-régression du pattern bi-culture Dayforce sur challenger : found=2, ok=1. Fiches docs/connecteurs/ peaktech.md + ats-dayforce.md + INDEX.md régénérées via scripts/gen_connector_docs.py (les ~1130 autres fiches, dont seuls les instantanés horodatés changeaient, restaurées — hors périmètre). 106 tests pytest verts. pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
  • 856863d2 2026-08-25 Vague D implémentée — 75 nouveaux connecteurs (968 -> 1044 employeurs), ~768 offres QC
Files · 6d1c144de66ed4476c3c43e2d856d6f6a55d6ff9
Menu

Theme