SPB Git

spb/job-ka

Public
9.7 KB

# State Industrial Products (stateindustrial)

Employeur direct · Plateforme ATS : dayforce · Statut registre : actif · Connecteur : jobka/connectors/stateindustrial.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 en-US
EMPLOYER State Industrial Products
NS stateindustrial
  • 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 01:03 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 01:02 — trouvées 0, +0, ~0, -0
  • Syncs enregistrés (sync_log) : 466

# 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/statei… 1 2026-10-14 19:24
HTTPSConnectionPool(host='jobs.dayforcehcm.com', port=443): Read timed out. (read timeout=… 1 2026-10-14 16:03
  • Rejouer un sync isolé : .venv/bin/python run.py sync stateindustrial puis inspecter sync_log : sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='stateindustrial' 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 State Industrial Products » 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/stateindustrial.py :

  • 21f1257b 2026-10-14 [ka6] connecteur stateindustrial: rien à réparer — 3e faux positif « stale volume QC nul » (60e cas du pattern), le « dernier succès 2026-10-12 09:55 » de la supervision = dernier sync found=1 avant la dépublication réelle de l'offre 11972 (postingStatus 1→4 le matin du 12, confirmée le 12 en 2e intervention). Depuis: 24 syncs verts ok=1 found=0 d'affilée + UN seul read timeout à 16:03 le 2026-10-14 — partie de la rafale d'instabilité du frontal Dayforce (~21 tenants, cf. 747d8e3c) et ANTÉRIEUR au durcissement retry ×3 de _search_page (commit 17:52 + restart). Board re-sondé live: 26 offres (US ×24, ON ×2) 0 QC en en-US ET en-CA, fr-CA toujours maxCount=0 (inchangé depuis la bascule 2026-09-17), détail 11972 toujours 200+postingStatus=4 (marqueur propre au tenant), stateindustrial.com/careers embarque toujours en-US/stateindustrial/CANDIDATEPORTAL — pas de migration, aucun angle mort. found oscille 0↔1 par design (cycle mensuel de republication avec id neuf: 11658/11661 août → 11795 5 sept → 11972 5 oct, prochaine attendue ~début nov), médiane 0.0. Sync isolé rejoué ×3: ok=1 found=0 stable, ~3,3 s. 107 tests pytest verts. Docstring stateindustrial.py enrichie (chronologie 3e intervention). Fiches stateindustrial.md / INDEX.md régénérées (1132 autres fiches restaurées — hors périmètre). pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
  • 5ee87eb8 2026-10-12 [ka6] connecteur stateindustrial: rien à réparer — 59e cas du pattern « stale volume QC nul » (2e intervention), dépublication RÉELLE le matin même de l'unique offre QC 11972 « Représentant(e) des ventes externes (français/anglais) » (Québec, 45-65 k, parue 2026-10-05) : postingStatus 1→4 et lastModified 14:25 UTC le 2026-10-12, retirée au garde-fou 2-miss (sync found=0 ok, removed=1). 3e itération du cycle de republication mensuel à id neuf (11658/11661 août → 11795 5 sept → 11972 5 oct) : found oscille 0↔1 par design, récidive attendue. Board vivant : 26 offres US/ON identiques en en-US ET en-CA (fr-CA toujours maxCount=0 — bascule d478a07 valide), aucune QC, pas de migration (stateindustrial.com/careers embarque toujours en-US/stateindustrial/CANDIDATEPORTAL). MARQUEUR DAYFORCE NEUF documenté : l'API détail d'une offre DÉPUBLIÉE peut rester 200 avec contenu complet (≠ gotcha 404 connu) — discriminant = champ postingStatus du détail (1=vivante, 4=dépubliée, calibré sur 3 offres vivantes du board) + absence du search, jamais le code HTTP. Changements : docstring stateindustrial.py enrichie (cycle + marqueur), careers_url sources.json fr-CA→en-US (culture vide depuis 2026-09-17, alignée sur le connecteur et le site officiel). Sync isolé rejoué ×2 : found=0 stable ok=1, ~2,4 s ; non-régression dayforce via lavieenrose found=137. 107 tests pytest verts. Fiches docs/connecteurs/ stateindustrial.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.
  • d478a070 2026-09-17 [ka6] fix connecteur stateindustrial: bascule CULTURE fr-CA → en-US (le tenant Dayforce ne sert plus rien en fr-CA) + correction artefacts sources.json — le statut stale combinait deux choses : (1) la dépublication NORMALE des 2 offres QC d'août (« Représentant(e) des ventes externes - Longueuil » 11661 et « Représentant(e) des ventes B2B » 11658, absentes du board dans TOUTES les cultures) qui a fait tomber found à 0 (miss_count=2 → active=0), et (2) un VRAI défaut d'aveuglement du connecteur : le search Dayforce du tenant stateindustrial en cultureCode fr-CA renvoie désormais maxCount=0 (vérifié live, 200 JSON valide) alors que le même search en en-US renvoie 29 offres, dont une offre QC RÉELLE au titre déjà francophone (« Représentant(e) des ventes externes (français/anglais) » 11795, Québec City QC, parue le 2026-09-05, détail API OK avec PayType Salary et fourchette 45-65 k) que le connecteur ne voyait pas. Le fr-CA n'est pas cassé globalement chez Dayforce (lavieenrose fr-CA = 150 offres) : c'est ce tenant qui a désactivé/vidé sa culture fr-CA. Correction minimale dans stateindustrial.py : CULTURE='en-US' (le filtre Québec reste côté client via _is_qc), plus correction des artefacts vague C dans sources.json : url vide → https://www.stateindustrial.com (vérifié 200, titre « Home - State Industrial Products ») et name/EMPLOYER « Stateindustrial » (slug collé) → « State Industrial Products », avec UPDATE du champ employer des 2 offres inactives en base. Sync isolé rejoué : found=1, added=1 en 6,9 s — l'offre 11795 est en base, active, ville Québec, région Capitale-Nationale, volume 1 ≈ médiane 0.5. 106 tests pytest verts. pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
  • c45c7530 2026-08-23 Vague C — +620 connecteurs employeurs directs (350 -> 968)
Files · 17cb5feb00ad7368d32b6f3c8d5eaf875694f295
Menu

Theme