SPB Git

spb/job-ka

Public

[ka6] fix connecteur fnfmb: fusion cultures fr-CA+en-CA (board devenu anglophone, recherche Dayforce filtrée par culture) + vrai nom d'employeur (CGFPN/FNFMB)

Simon-Pierre Boucher committed (Aug 31, 2026) parent 0010f33 Browse files

2 changed files +21 −5

modified data/sources.json +2 −2
@@ -5711,8 +5711,8 @@
5711 }, 5711 },
5712 { 5712 {
5713 "id": "fnfmb", 5713 "id": "fnfmb",
5714− "name": "Avocate générale ou avocat général", 5714+ "name": "Conseil de gestion financière des Premières Nations (FNFMB)",
5715− "url": "", 5715+ "url": "https://fnfmb.com",
5716 "careers_url": "https://jobs.dayforcehcm.com/fr-CA/fnfmb/CANDIDATEPORTAL", 5716 "careers_url": "https://jobs.dayforcehcm.com/fr-CA/fnfmb/CANDIDATEPORTAL",
5717 "sectors": [], 5717 "sectors": [],
5718 "connector": "dayforce", 5718 "connector": "dayforce",
modified jobka/connectors/fnfmb.py +19 −3
@@ -3,15 +3,31 @@
3 # Auteur : Simon-Pierre Boucher 3 # Auteur : Simon-Pierre Boucher
4 # Contact : contact@spboucher.ai 4 # Contact : contact@spboucher.ai
5 # Fichier : jobka/connectors/fnfmb.py 5 # Fichier : jobka/connectors/fnfmb.py
6−# Rôle : Connecteur Avocate générale ou avocat général — dayforce (ns='fnfmb', board='CANDIDATEPORTAL') 6+# Rôle : Connecteur Conseil de gestion financière des Premières Nations
7+# (FNFMB) — dayforce (ns='fnfmb', board='CANDIDATEPORTAL')
7 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23] 8 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23]
8−# Créé : 2026-08-23 Modifié : 2026-08-23 9+# Créé : 2026-08-23 Modifié : 2026-08-31
9 # ============================================================================= 10 # =============================================================================
11+from ..schema import JobPosting
10 from .dayforce import DayforceConnector 12 from .dayforce import DayforceConnector
11 13
12 14
13 class FnfmbConnector(DayforceConnector): 15 class FnfmbConnector(DayforceConnector):
14 source_id = 'fnfmb' 16 source_id = 'fnfmb'
15− EMPLOYER = 'Avocate générale ou avocat général' 17+ EMPLOYER = 'Conseil de gestion financière des Premières Nations (FNFMB)'
16 NS = 'fnfmb' 18 NS = 'fnfmb'
17 BOARD = 'CANDIDATEPORTAL' 19 BOARD = 'CANDIDATEPORTAL'
20+
21+ # La recherche Dayforce filtre par culture : une offre sans version
22+ # française est invisible en fr-CA. Ce tenant ne publie plus de fr-CA
23+ # (constat 2026-08-31 : fr-CA -> 0, en-CA -> 10 offres), donc on
24+ # interroge les deux cultures et on fusionne, version fr-CA prioritaire.
25+ CULTURES = ('fr-CA', 'en-CA')
26+
27+ def fetch(self) -> list[JobPosting]:
28+ merged: dict[str, JobPosting] = {}
29+ for culture in self.CULTURES:
30+ self.CULTURE = culture
31+ for job in super().fetch():
32+ merged.setdefault(job.external_id, job)
33+ return list(merged.values())
18 34
Menu

Theme