SPB Git forge

spb/job-ka

Public
229commits 1branches 0releases
38.1 MBsize
maindefault branch
7 h agolast push
HTML 82.1% Python 14.6% TypeScript 1.9% CSS 1% JavaScript 0.5%
1.6 KB · 37 lines python
Raw Blame History
1# =============================================================================2# Job·Ka — Groupe KA3# Auteur  : Simon-Pierre Boucher4# Contact : contact@spboucher.ai5# Fichier : jobka/connectors/altusgroup.py6# Rôle    : Connecteur Groupe Altus — workday (tenant altusgroup.wd3, site AltusGroup)7#           [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-25 ;8#           re-vérifié le 2026-09-19 : API OK, 42 offres, 0 au Québec (les 89#           offres multi-lieux vérifiées au détail : US/UK) — volume 0 légitime]10# Créé    : 2026-08-25   Modifié : 2026-09-1911# =============================================================================12import re1314from .workday import WorkdayConnector151617class AltusgroupConnector(WorkdayConnector):18    source_id = 'altusgroup'19    EMPLOYER = 'Groupe Altus'20    TENANT = 'altusgroup'21    HOST = 'wd3'22    SITE = 'AltusGroup'2324    # Ce tenant préfixe bulletFields par la région quand il y en a une :25    # ["Ontario", "R0013639"] ou ["R0013942"] seul. bullets[0] donnait donc26    # « Quebec » comme external_id (collision entre postes d'une même région,27    # constatée le 2026-08-26 : 2 offres trouvées, 1 seule en base). On prend28    # le bullet au format réquisition (R + chiffres), sinon le suffixe du29    # chemin (qui peut porter un suffixe de variante, ex. R0013801-1).30    _REQ_ID = re.compile(r'^R\d+(?:-\d+)?$')3132    def _external_id(self, item: dict, path: str) -> str:33        for b in item.get('bulletFields') or []:34            if self._REQ_ID.match(str(b).strip()):35                return str(b).strip()36        return path.rsplit('_', 1)[-1]37