HTML 82.1%
Python 14.6%
TypeScript 1.9%
CSS 1%
JavaScript 0.5%
1# =============================================================================2# Job·Ka — Groupe KA3# Auteur : Simon-Pierre Boucher4# Contact : contact@spboucher.ai5# Fichier : jobka/connectors/canderel.py6# Rôle : Connecteur Canderel — dayforce (ns='canderel', board='CANDIDATEPORTAL'),7# balayage fr-CA + en-CA8# [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23]9# Créé : 2026-08-23 Modifié : 2026-09-2110# =============================================================================11"""Canderel (canderel.com) — promoteur immobilier montréalais (siège à la12Place Ville Marie), tenant Dayforce `canderel`.1314Contexte 2026-09-21 : la recherche Dayforce est PARTITIONNÉE par culture de15publication — un poste publié en anglais n'apparaît PAS dans la recherche16fr-CA (constat harrisrebar 2026-09-10, aucun repli serveur). Les 2 offres QC17historiques (Coordonnateur RH 3674/3628, Montréal, publiées en français) ont18été dépubliées par l'employeur le 2026-09-21 — volume 0 légitime ce jour-là —19et les 3 offres restantes du board (Calgary 3709, Edmonton 3698, Toronto 3676)20sont publiées en anglais seulement : la recherche fr-CA renvoie maxCount=021alors que en-CA voit tout le board. Pour ne pas rater une future offre QC22publiée en anglais seulement, fetch() balaie fr-CA PUIS en-CA et déduplique23par jobPostingId (la version française gagne) ; le filtre Québec de la classe24de base s'applique inchangé."""25from ..schema import JobPosting26from .dayforce import DayforceConnector272829class CanderelConnector(DayforceConnector):30 source_id = 'canderel'31 EMPLOYER = 'Canderel'32 NS = 'canderel'33 BOARD = 'CANDIDATEPORTAL'3435 def fetch(self) -> list[JobPosting]:36 jobs = super().fetch() # culture fr-CA (défaut)37 seen = {j.external_id for j in jobs}38 self.CULTURE = 'en-CA' # attribut d'instance : la39 try: # classe (autres tenants)40 extra = super().fetch() # n'est pas modifiée41 finally:42 self.CULTURE = type(self).CULTURE43 jobs.extend(j for j in extra if j.external_id not in seen)44 return jobs45