HTML 82.1%
Python 14.6%
TypeScript 1.9%
CSS 1%
JavaScript 0.5%
1<!--2=============================================================================3Job·Ka — Groupe KA4Auteur : Simon-Pierre Boucher5Contact : contact@spboucher.ai6Fichier : docs/connecteurs/altom_transport.md7Rôle : Fiche connecteur — Altom Transport (employeur direct, ATS workable)8Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,9 relancer le script pour régénérer.10=============================================================================11-->1213# Altom Transport (`altom_transport`)1415**Employeur direct** · Plateforme ATS : [`workable`](ats-workable.md) · Statut registre : actif · Connecteur : `jobka/connectors/altom_transport.py`1617## Description1819- **Site** : [Altom Transport](https://altomtransport.com)20- **Page carrières** : https://apply.workable.com/altom-transport21- **Secteurs** : Transport, Camionnage22- **Région** : Montréal23- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire.2425## Accès2627- **Mécanique** : voir la fiche plateforme [`ats-workable.md`](ats-workable.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme).28- **Identifiants du tenant** (attributs du connecteur) :2930| Attribut | Valeur |31|---|---|32| `EMPLOYER` | `Altom Transport` |33| `ORG` | `altom-transport` |34- **Throttle** : 1.0 s entre requêtes.35- **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).3637## Champs → schéma3839*Aucune offre active en base pour cette source.*4041## Fréquence & budgets4243- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources.44- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`).45- 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.4647## Volumétrie & complétude live4849*(mesuré le 2026-09-21 18:06 EDT dans `data/jobka.db`)*5051- **Offres en base** : 1 (dont **0 actives**, 0 masquées comme doublons `dup_of`)52- **Salaire** : 0/0 actives (—)53- **GPS** : 0/0 actives (—)54- **Mode** : 0/0 actives (—)55- **Parution** : 0/0 actives (—)56- **Dernier sync** : 2026-09-21 16:37 — trouvées 0, +0, ~0, -057- **Syncs enregistrés** (`sync_log`) : 2925859## Erreurs & dépannage6061Erreurs relevées dans `sync_log` :6263| Erreur | Occurrences | Dernière fois |64|---|---|---|65| HTTPSConnectionPool(host='apply.workable.com', port=443): Max retries exceeded with url: /… | 1 | 2026-09-18 12:51 |6667- Rejouer un sync isolé : `.venv/bin/python run.py sync altom_transport` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='altom_transport' ORDER BY ts DESC LIMIT 5;"`68- 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`.6970## Licence / conformité7172**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 Altom Transport » 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.7374## Historique7576**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 :77- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ;78- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ;79- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ;80- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ;81- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ;82- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel).8384Commits touchant `jobka/connectors/altom_transport.py` :8586- `ea13137` 2026-09-18 [ka6] fix connecteur altom_transport: faux positif de supervision (0 offre QC légitime chez ce transporteur US) + échec DNS transitoire ponctuel — aucun défaut du connecteur, correction d'un artefact sources.json (url vide) — le statut stale vient de la définition de succès de la supervision : le tenant Workable altom-transport n'a AUCUNE offre QC depuis la fermeture de « Chauffeur de Camion-Citerne Classe 1 » (Montréal) fin août, donc chaque sync horaire rend ok=1 found=0 (médiane 0.0) et est compté comme non-succès depuis le 2026-08-28 (509 h). Le connecteur est INTACT et re-vérifié live : l'API widget répond 200 avec 52 offres, TOUTES aux États-Unis — zéro lieu CA dans les tableaux locations, zéro poste en télétravail, zéro mention Québec/Montréal dans le JSON complet (l'aveuglement type stateindustrial est exclu). L'unique sync en échec (17/09 20:51) est une NameResolutionError DNS transitoire sur apply.workable.com, non reproduite. Même profil que earthrated f7b1c35, canadasmotorcycle 175b215, jsheldllc bdc5d09, psacunion 4d8080b : tenant à volume QC nul/faible compté non-succès par la supervision. Correction au passage de l'artefact du générateur vague C : url vide dans data/sources.json → https://altomtransport.com (vérifié 200, titre « Altom Transport | Petroleum and Chemical Transportation » ; la fiche affichait « Site : [Altom Transport]() »). Le nom d'employeur « Altom Transport » est correct. Docstring du connecteur mise à jour (52 offres, re-vérif 2026-09-18). Sync isolé rejoué : found=0 en 0,2 s, ok=1 — 0 est le volume légitime tant qu'Altom ne republie pas au Québec ; les offres reviendront d'elles-mêmes si republiées. 106 tests pytest verts. pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.87- `2fa16cd` 2026-08-28 [ka6] fix connecteur altom_transport: employeur AMÉRICAIN de transport de liquides en vrac (Altom Transport, siège à Hammond, Indiana, dessert US+Canada) à volume QC naturellement très faible (médiane 0.5) — le board Workable apply.workable.com/altom-transport est passé à 0 offre QC le 2026-08-28 : vide LÉGITIME, la seule offre québécoise (« Chauffeur de Camion-Citerne Classe 1 », Montréal, parue 2026-07-21, vraie offre QC — permis classe 1) a été fermée par l'employeur (URL CBB48687CC → redirection /oops). Vérifications réelles : API widget v1 200 avec 37 offres, TOUTES aux É.-U. (Indiana, Ohio, Illinois, Texas, Louisiane…), 0 faux positif — le filtre is_quebec_location fait exactement son travail. Le statut stale venait du volume 0 compté comme échec par la supervision ; le connecteur est sain (syncs ok=1, board 200). L'offre montréalaise avait déjà été purgée par le mécanisme normal (miss_count=2 → removed=1, active=0 au sync de 12:27). Test final : fetch réel = 37 bruts, 0 retenus (QC) = comportement correct, les offres QC réapparaîtront d'elles-mêmes quand Altom republiera au Québec. Note de contexte ajoutée au connecteur, aucun changement de code. Sync isolé rejoué (ok), pm2 restart job-ka-sync OK, site 200.88- `c45c753` 2026-08-23 Vague C — +620 connecteurs employeurs directs (350 -> 968)89