# ============================================================================= # Job·Ka — Groupe KA # Auteur : Simon-Pierre Boucher # Contact : contact@spboucher.ai # Fichier : jobka/connectors/harrisrebar.py # Rôle : Connecteur Nucor Rebar Fabrication / Harris Rebar — dayforce # (ns='harrisrebar', board='CANDIDATEPORTAL'), balayage fr-CA + en-CA # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23] # Créé : 2026-08-23 Modifié : 2026-09-10 # ============================================================================= """Harris Rebar (rebrandé Nucor Rebar Fabrication — harrisrebar.com redirige vers nucor.com depuis 2026) garde son tenant Dayforce `harrisrebar` actif. Contexte 2026-09-10 : la recherche Dayforce est PARTITIONNÉE par culture de publication — un poste publié en anglais n'apparaît PAS dans la recherche fr-CA (aucun repli serveur ; vérifié sur lavieenrose fr 172 / en 281 et soprema fr 23 / en 20). Ce tenant anglophone publie aujourd'hui 12 postes (ON/AB/NS/NB/BC) tous en en-CA : la recherche fr-CA seule renvoie 0. L'unique offre QC historique (16804, Montréal, publiée en français) a été dépubliée par l'employeur le 2026-09-10 — volume 0 légitime ce jour-là. Pour ne pas rater une future offre QC publiée en anglais seulement, fetch() balaie fr-CA PUIS en-CA et déduplique par jobPostingId (la version française gagne).""" from ..schema import JobPosting from .dayforce import DayforceConnector class HarrisrebarConnector(DayforceConnector): source_id = 'harrisrebar' EMPLOYER = 'Nucor Rebar Fabrication (Harris Rebar)' NS = 'harrisrebar' BOARD = 'CANDIDATEPORTAL' def fetch(self) -> list[JobPosting]: jobs = super().fetch() # culture fr-CA (défaut) seen = {j.external_id for j in jobs} self.CULTURE = 'en-CA' # attribut d'instance : la try: # classe (autres tenants) extra = super().fetch() # n'est pas modifiée finally: self.CULTURE = type(self).CULTURE jobs.extend(j for j in extra if j.external_id not in seen) return jobs