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/euromoneyplc.py6# Rôle : Connecteur Delinian (ex-Euromoney plc) — dayforce (ns='euromoneyplc',7# board='CANDIDATEPORTAL'), balayage fr-CA + en-CA + en-GB8# [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23]9# Créé : 2026-08-23 Modifié : 2026-09-1110# =============================================================================11"""Delinian (groupe britannique, ex-Euromoney Institutional Investor plc) —12bureau de Montréal (1001 De Maisonneuve Ouest). delinian.com/careers pointe13toujours vers ce tenant Dayforce (portail en-GB).1415Contexte 2026-09-11 : la dernière offre QC (4827, Montréal, publiée en16français) a été dépubliée par l'employeur entre 09h19 et 11h40 EDT — le tenant17publie 0 poste TOTAL (boards CANDIDATEPORTAL et EUROMONEY × cultures fr-CA,18en-CA, en-GB, en-US vérifiés) : volume 0 légitime ce jour-là. Mais la19recherche Dayforce est PARTITIONNÉE par culture de publication (cf.20harrisrebar, 2026-09-10) et le portail officiel de Delinian est en-GB : une21future offre QC publiée en anglais serait invisible en fr-CA seul. fetch()22balaie donc fr-CA PUIS en-CA PUIS en-GB et déduplique par jobPostingId (la23version française gagne)."""24from ..schema import JobPosting25from .dayforce import DayforceConnector262728class EuromoneyplcConnector(DayforceConnector):29 source_id = 'euromoneyplc'30 EMPLOYER = 'Delinian (ex-Euromoney)'31 NS = 'euromoneyplc'32 BOARD = 'CANDIDATEPORTAL'33 EXTRA_CULTURES = ('en-CA', 'en-GB')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 for culture in self.EXTRA_CULTURES:39 self.CULTURE = culture # attribut d'instance : la40 try: # classe (autres tenants)41 extra = super().fetch() # n'est pas modifiée42 finally:43 self.CULTURE = type(self).CULTURE44 jobs.extend(j for j in extra if j.external_id not in seen)45 seen.update(j.external_id for j in extra)46 return jobs47