SPB Git

spb/job-ka

Public

[ka6] fix connecteur shell: employeur Shell Canada — l'unique offre QC (Terminal Operator – Fixed Term, Montreal - Terminal, R208883, publiée 2026-08-26) a été dépubliée à la source en moins de 24 h : détail Workday 404 (deux formes d'URL), recherche interne R208883/Montreal = 0, facette locationCountry sans Canada sur les 45 postings du site ShellCareers. Volume 0 légitime (médiane historique 0.5 — employeur à 0-1 offre QC). Purge par le mécanisme normal du pipeline: sync isolé rejoué le 2026-08-27 → miss_count=2 + retrait → active=0 (found=0, removed=1, statut ok). Durcissement (même esprit que sofinafoods 26a1e02): Shell publie ses postes opérationnels/horaires sur un second site Workday du même tenant, « Fasttrack » (vérifié: R209807 Scotford - Refinery y figure, absent de ShellCareers) — ShellConnector.fetch balaie maintenant ShellCareers + Fasttrack avec dédup par external_id, pour ne pas rater un futur poste québécois publié uniquement sur Fasttrack; filtre Québec de la classe de base inchangé. Testé: fetch réel voit 45 offres brutes ShellCareers + 12 Fasttrack, 0 après filtre QC = comportement correct, SITE restauré après balayage.

Simon-Pierre Boucher committed (Aug 27, 2026) parent 26a1e02 Browse files

1 changed file +29 −2

Unified Split
modified jobka/connectors/shell.py +29 −2
@@ -3,11 +3,22 @@
3 # Auteur : Simon-Pierre Boucher 3 # Auteur : Simon-Pierre Boucher
4 # Contact : contact@spboucher.ai 4 # Contact : contact@spboucher.ai
5 # Fichier : jobka/connectors/shell.py 5 # Fichier : jobka/connectors/shell.py
6−# Rôle : Connecteur Shell Canada — workday (tenant shell.wd3, site ShellCareers) 6+# Rôle : Connecteur Shell Canada — workday (tenant shell.wd3, sites
7+# ShellCareers + Fasttrack)
7 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-22] 8 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-22]
8−# Créé : 2026-08-22 Modifié : 2026-08-22 9+# Créé : 2026-08-22 Modifié : 2026-08-27
9 # ============================================================================= 10 # =============================================================================
11+# Note ka6 (2026-08-27) : l'unique offre QC (Terminal Operator – Fixed Term,
12+# Montreal - Terminal, R208883, publiée 2026-08-26) a été dépubliée à la source
13+# en moins de 24 h (détail 404, recherche interne 0, facette locationCountry
14+# sans Canada) → volume 0 légitime, médiane historique 0.5. Shell publie par
15+# ailleurs ses postes opérationnels/horaires sur un second site Workday du
16+# même tenant, « Fasttrack » (vérifié : R209807 Scotford - Refinery y figure) ;
17+# pour ne pas rater un futur poste québécois publié uniquement là, on balaie
18+# aussi ce site, avec dédup par external_id (certaines offres paraissent sur
19+# les deux). Le filtre Québec de la classe de base s'applique inchangé.
10 from .workday import WorkdayConnector 20 from .workday import WorkdayConnector
21+from ..schema import JobPosting
11 22
12 23
13 class ShellConnector(WorkdayConnector): 24 class ShellConnector(WorkdayConnector):
@@ -16,3 +27,19 @@ class ShellConnector(WorkdayConnector):
16 TENANT = 'shell' 27 TENANT = 'shell'
17 HOST = 'wd3' 28 HOST = 'wd3'
18 SITE = 'ShellCareers' 29 SITE = 'ShellCareers'
30+ EXTRA_SITES = ('Fasttrack',)
31+
32+ def fetch(self) -> list[JobPosting]:
33+ jobs = super().fetch()
34+ seen = {j.external_id for j in jobs}
35+ site = self.SITE
36+ try:
37+ for extra in self.EXTRA_SITES:
38+ self.SITE = extra
39+ fresh = [j for j in super().fetch()
40+ if j.external_id not in seen]
41+ jobs.extend(fresh)
42+ seen.update(j.external_id for j in fresh)
43+ finally:
44+ self.SITE = site
45+ return jobs
19 46
Menu

Theme