SPB Git

spb/job-ka

Public
8.4 KB

# Plateforme ATS jazzhr

27 employeurs connectés via cette plateforme — 145 offres actives. Module partagé : jobka/connectors/jazzhr.py ; un employeur = une sous-classe d'environ 10 lignes.

# Description & mécanique

Plateforme JazzHR (.applytojob.com), répandue chez les PME.

  • liste : GET https://.applytojob.com/apply/ -> liens /apply// (HTML léger, sans lieu fiable)
  • détail : GET https://.applytojob.com/apply// -> JSON-LD JobPosting (titre, lieu, dates, salaire, description). Cache BD + budget ; le filtre Québec est appliqué au détail — une offre sans détail frais (budget épuisé) est différée au prochain cycle plutôt que publiée sans lieu.

# Accès

  • Pagination : flux unique (une requête liste)
  • Backend : GET/POST direct requests (throttlé, User-Agent JobKaBot/1.0 identifié)
  • Auth : aucune — API/pages publiques du site carrières.
  • Throttle : 1.0 s entre requêtes.
  • Budgets (env) : JOBKA_JAZZHR_DETAIL_LIMIT (défaut 60)

# Tenants connectés

Employeur Actives Salaire GPS Mode Dernier sync OK
XTL Transport 31 0 % 97 % 10 % 2026-10-30 00:22 ✅
Playground 25 68 % 64 % 0 % 2026-10-29 23:58 ✅
Valnet 20 0 % 100 % 50 % 2026-10-30 00:18 ✅
Optel Group 11 0 % 91 % 0 % 2026-10-29 23:58 ✅
Turning Point Brands Canada 9 33 % 100 % 22 % 2026-10-30 00:03 ✅
WestGroupe 8 0 % 100 % 0 % 2026-10-30 00:22 ✅
Altitude Aerospace 7 14 % 100 % 0 % 2026-10-30 01:26 ✅
Fortigo Freight Services Inc. 6 17 % 50 % 0 % 2026-10-30 01:52 ✅
Digital Moment 4 0 % 100 % 50 % 2026-10-30 01:45 ✅
ePac Flexible Packaging 4 25 % 100 % 25 % 2026-10-30 01:48 ✅
36Pix 3 0 % 100 % 0 % 2026-10-29 23:58 ✅
Longbow Advantage 3 0 % 100 % 0 % 2026-10-29 23:51 ✅
Bloom 3 0 % 100 % 0 % 2026-10-29 23:51 ✅
Sun Gro Horticulture 3 0 % 100 % 0 % 2026-10-30 00:12 ✅
Ultium Cam 3 0 % 100 % 0 % 2026-10-30 00:17 ✅
Clinique D 2 0 % 100 % 0 % 2026-10-30 01:42 ✅
Motos Illimitees 1 100 % 100 % 0 % 2026-10-29 23:55 ✅
Precision Parcel & Package Deliveries 1 0 % 100 % 0 % 2026-10-29 23:59 ✅
Targray 1 0 % 100 % 0 % 2026-10-30 00:13 ✅
11 Residential 0 — — — 2026-10-30 00:04 ✅
Bluetooth SIG, Inc. 0 — — — 2026-10-30 01:32 ✅
FortNine 0 — — — 2026-10-30 01:34 ✅
GEOX 0 — — — 2026-10-30 01:53 ✅
Nadel International 0 — — — 2026-10-29 23:56 ✅
Seymour Pacific Developments 0 — — — 2026-10-30 00:08 ✅
Synterra 0 — — — 2026-10-30 00:12 ✅
Teal Communications, Inc. 0 — — — 2026-10-30 00:13 ✅

# 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 l'employeur » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai) sur les accès directs ; requêtes throttlées et plafonnées par budgets.

# 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/jazzhr.py :

  • 2d24635a 2026-10-20 [ka6] connecteur makeitbloom: stale = angle mort JazzHR réel — page détail sans JSON-LD JobPosting, repli HTML générique dans jazzhr.py (found 0→1). Les 3 offres SEO (UhDHyS6fne/xvSwVILniQ/qdFba5tbN5, Montréal) dépubliées le jour même entre les syncs de 06:38 (found=3) et 15:37 (found=0) du 2026-10-20, détails confirmés 410 Gone (marqueur JazzHR, cf. geox). MAIS le board n'était PAS vide : l'offre neuve dVcAlVM7ko « Spécialiste des médias payants » (republication du poste de sept. sous un id neuf, pattern du tenant) était rejetée par le filtre QC car sa page détail ne porte AUCUN bloc JSON-LD JobPosting (seul un Organization) — une première sur ce tenant, alors que le frère playground est toujours balisé. Vrai angle mort corrigé dans jazzhr.py : _detail_fields_from_html, repli quand extract_jobposting échoue — titre via h2 du job-header, lieu « Ville, QC, Canada » via le bloc job-attributes title=Location, type via resumator-job-employment, description via #job-description borné par resumator-mobile-apply-wrapper ; validé sur les pages live makeitbloom (sans LD → Montreal/QC) et playground (avec LD → chemin JSON-LD inchangé). Test de régression ajouté (QC gardée, ON lâchée, LD prioritaire). Sync isolé rejoué : found=1 added=1 ok=1 en 2,3 s, offre en base Montréal active. Artefact vague C : url vide dans sources.json → https://www.makeitbloom.com (200 vérifié live). Docstring chronologie 1re intervention, fiches makeitbloom.md/ats-jazzhr.md/INDEX.md régénérées. 108 tests verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
  • adb86378 2026-09-04 [ka6] connecteur derumarketcatering: compte JazzHR fermé — l'employeur (faux positif US, Kirkland WA, verdict site_source_mort du 2026-08-26) a désactivé son compte JazzHR, la page /apply/ renvoie 200 'Inactive Career Page' sans marqueur resumator; la garde anti-faux-zéro de la plateforme jazzhr (1c116d8) partait alors en 3 essais + 30 s de backoff par sync avec un message trompeur — détection explicite de la page 'Inactive Career Page' au niveau plateforme: échec immédiat, message 'compte JazzHR désactivé / source fermée chez l'ATS' dans sync_log; non-régression vérifiée sur tenant vivant (motosillimitees 2 offres, médiane 2.0); 0 offre active en base pour cette source
  • 1c116d85 2026-09-04 [ka6] fix connecteur motosillimitees: garde anti faux-zéro dans la plateforme jazzhr — la page liste renvoie parfois 200 sans la structure du jobboard (constaté 2026-09-04 10h09, sync à 0 en 0,2 s alors que 2 offres réelles), le marqueur 'resumator' est maintenant exigé avec retry+backoff sinon erreur explicite dans sync_log; sync rejoué: 2 offres (médiane 2.0), rotation d'offres de l'employeur absorbée
  • df3faf02 2026-08-25 Vague E — 3 nouvelles familles ATS (JazzHR, Teamtailor, Zoho Recruit) + 60 connecteurs, ~547 offres QC
Files · 17cb5feb00ad7368d32b6f3c8d5eaf875694f295
Menu

Theme