SPB Git forge

spb/job-ka

Public
229commits 1branches 0releases
38.1 MBsize
maindefault branch
1 h agolast push
HTML 82.1% Python 14.6% TypeScript 1.9% CSS 1% JavaScript 0.5%
6.3 KB · 74 lines markdown
Rendered Raw Blame History
1<!--2=============================================================================3Job·Ka — Groupe KA4Auteur  : Simon-Pierre Boucher5Contact : contact@spboucher.ai6Fichier : docs/connecteurs/ats-taleo.md7Rôle    : Fiche plateforme ATS taleo — mécanique partagée + tableau des 5 tenants8Gé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# Plateforme ATS `taleo`1415**5 employeurs connectés** via cette plateforme — **122 offres actives**. Module partagé : `jobka/connectors/taleo.py` ; un employeur = une sous-classe d'environ 10 lignes.1617## Description & mécanique1819> Plateforme Oracle Taleo Enterprise.20>21> Les sections carrières Taleo exposent une API REST publique (celle que le22> frontal jobsearch.ftl consomme lui-même) :23> - amorce : GET  https://<host>.taleo.net/careersection/<section>/jobsearch.ftl24>            (cookies de session + numéro de portail « portal=NNN » dans le HTML)25> - liste  : POST https://<host>.taleo.net/careersection/rest/jobboard/searchjobs26>            ?lang=fr&portal=<NNN>  body JSON {pageNo, sorting…}27>            -> {requisitionList:[{jobId, contestNo, column:[...],28>                locationsColumns:[i]}], pagingData:{totalCount, pageSize}}29> - détail : la page jobdetail.ftl?job=<contestNo> (description HTML rendue30>            côté serveur) — visitée avec cache BD et budget.31>32> Le contenu des colonnes dépend de la configuration du portail : on repère la33> colonne des lieux via `locationsColumns` et on suppose la première colonne34> comme titre (constaté sur tous les portails testés).3536## Accès3738- **Pagination** : flux unique (une requête liste)39- **Backend** : GET/POST direct `requests` (throttlé, User-Agent `JobKaBot/1.0` identifié)40- **Auth** : aucune — API/pages publiques du site carrières.41- **Throttle** : 1.0 s entre requêtes.42- **Budgets (env)** : `JOBKA_TALEO_DETAIL_LIMIT` (défaut `120`)4344## Tenants connectés4546| Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK |47|---|---|---|---|---|---|---|48| [Agnico Eagle Mines](agnico_eagle.md) | 70 | 0 % | 100 % | 0 % | 2026-09-21 16:35 | ✅ |49| [CIUSSS de l'Est-de-l'Île-de-Montréal](ciusss_est_montreal.md) | 23 | 0 % | 100 % | 0 % | 2026-09-21 16:50 | ✅ |50| [Bell Textron Canada](bell_textron.md) | 18 | 0 % | 100 % | 0 % | 2026-09-21 16:39 | ✅ |51| [Bayshore HealthCare](bayshore.md) | 9 | 0 % | 100 % | 0 % | 2026-09-21 16:38 | ✅ |52| [IAMGOLD](iamgold.md) | 2 | 0 % | 100 % | 0 % | 2026-09-21 17:12 | ✅ |5354## Licence / conformité5556**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.5758## Historique5960**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 :61- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ;62- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ;63- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ;64- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ;65- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ;66- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel).6768Commits touchant `jobka/connectors/taleo.py` :6970- `e45adfd` 2026-09-09 [ka6] fix connecteur bayshore: retry sur réponse searchjobs non-JSON dans la plateforme taleo — le frontal a renvoyé une page HTML statut 200 au lieu du JSON (« Expecting value: line 2 column 1 », constaté 2026-09-09 06h29 sur bayshore, reparti seul), cas couvert par aucun retry existant (ni 5xx ni anti-bot); nouveau _search_page, 3 essais backoff 10-20 s avec ré-amorçage de session, échec explicite avec extrait du corps après 3 essais; sync rejoué: 11 offres (médiane 11.0)71- `14546e9` 2026-09-09 [ka6] fix connecteur bell_textron: retry avec backoff sur 5xx transitoire dans la plateforme taleo — un 500 isolé de l'API searchjobs (constaté 2026-09-08 23h29 sur textron, reparti seul) faisait échouer tout le sync car raise_for_status dans base.get/post n'a aucun retry; nouveau _req couvrant amorce/liste/détail, 3 essais backoff 10-20-30 s, les 4xx restent des échecs immédiats (même correctif que workday b5b4be3); sync rejoué: 16 offres (médiane 16.0)72- `49067dd` 2026-08-19 Connecteurs phase 2 — correctifs et enrichissement champ par champ. Correctifs : villes SuccessFactors à trait d'union (préfixe municipal MAMH sur le slug, bogue « St »/« Pointe »), colonne date Taleo = date LIMITE chez agnico_eagle (+ garde-fou date future). Enrichissement : SmartRecruiters experienceLevel/function/industry/language/refNumber (lignes de liste, zéro requête), BambooHR locationType→work_mode, Breezy is_remote/logo_url/streetAddress, JSON-LD logo/industry/educationRequirements/skills (portails+icims+DR), Ashby applyUrl + composantes Bonus/Equity/Commission, Lever applyUrl + blocs opening/additional + allLocations, Workable application_url + function/industry, Recruitee careers_apply_url + description FR (translations) + expérience/scolarité + heures/sem, Greenhouse language + requisition_id, Workday externalUrl→apply_url + work_mode via facette Remote Type + clé cache v2, Guichet-Emplois avantages structurés + langue de travail, njoyn apply_url en colonne ; secours cache périmé quand le budget détail est épuisé (plus de fiches vidées)73- `4917d57` 2026-08-18 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics et grands employeurs QC74