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%

[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 24 days ago (Aug 31, 2026) parent 0010f33

2 changed files +21 −5

modified data/sources.json +2 −2
@@ -5711,8 +5711,8 @@
5711 5711 },
5712 5712 {
5713 5713 "id": "fnfmb",
5714 − "name": "Avocate générale ou avocat général",
5715 − "url": "",
5714 + "name": "Conseil de gestion financière des Premières Nations (FNFMB)",
5715 + "url": "https://fnfmb.com",
5716 5716 "careers_url": "https://jobs.dayforcehcm.com/fr-CA/fnfmb/CANDIDATEPORTAL",
5717 5717 "sectors": [],
5718 5718 "connector": "dayforce",
modified jobka/connectors/fnfmb.py +19 −3
@@ -3,15 +3,31 @@
3 3 # Auteur : Simon-Pierre Boucher
4 4 # Contact : contact@spboucher.ai
5 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 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 12 from .dayforce import DayforceConnector
11 13
12 14
13 15 class FnfmbConnector(DayforceConnector):
14 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 18 NS = 'fnfmb'
17 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