[ka6] fix connecteur x4th_day_trucking: employeur de camionnage AMÉRICAIN (4th Day Trucking) — les 182 postings du board Breezy sont tous aux É.-U. (VA, OH, TX, CA…), zéro Québec. L'unique offre captée (CDL A LOCAL TRUCK DRIVING POSITION Grocery ACCOUNT!, 163eb419c625, East Granby) était un faux positif: East Granby, CONNECTICUT — « Granby » (ville d'Estrie, _QC_CITIES) matchait dans le libellé, même famille que usamechasp b387be9, MAIS la variante Breezy échappe au fix f4038e4 parce que _keep passe le nom d'État COMPLET (« East Granby, Connecticut ») alors que _NON_QC_REGION_RE ne couvre que les codes (« CT »). Le passage 1→0 du 2026-08-27 vient de la dépublication de cette offre à la source (absente des 182 postings actuels) — volume 0 légitime, médiane 0.5 < DRIFT_MIN_BASE=8. Durcissement minimal: BreezyConnector._keep rejette désormais tout posting dont location.country.id est présent et != CA (donnée autoritaire de l'API Breezy, avant l'heuristique texte); pays absent → heuristique inchangée. Vérifié sans régression sur 5 boards QC légitimes (novipro 16, progesys_inc 25, brandmomentum 36, microhabitat 13, bellatrx_inc 14 — 104/104 postings retenus portent country.id=CA, volumes identiques avant/après). Purge par le mécanisme normal: sync isolé rejoué → miss_count=2 → active=0 (found=0, removed=1, statut ok). Test final: fetch réel = 182 bruts, 0 retenus = comportement correct. Note de contexte ajoutée au connecteur. pm2 restart job-ka-sync OK, site 200.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2 changed files +17 −2
modified
jobka/connectors/breezy.py
+9 −1
@@ -5,7 +5,7 @@ | ||
| 5 | 5 | # Fichier : jobka/connectors/breezy.py |
| 6 | 6 | # Rôle : Classe de plateforme Breezy HR (<org>.breezy.hr/json) — un |
| 7 | 7 | # employeur = une sous-classe de ~8 lignes (ORG, EMPLOYER) |
| 8 | −# Créé : 2026-08-17 Modifié : 2026-08-17 | |
| 8 | +# Créé : 2026-08-17 Modifié : 2026-08-27 | |
| 9 | 9 | # ============================================================================= |
| 10 | 10 | """Plateforme Breezy HR. |
| 11 | 11 | |
@@ -41,6 +41,14 @@ class BreezyConnector(BaseConnector): | ||
| 41 | 41 | if not self.quebec_only: |
| 42 | 42 | return True |
| 43 | 43 | loc = item.get("location") or {} |
| 44 | + # Breezy expose le pays de façon autoritaire : un posting hors Canada | |
| 45 | + # n'est jamais québécois, même si sa ville est homonyme d'une ville QC | |
| 46 | + # (« East Granby, Connecticut » matchait Granby — bug x4th_day_trucking | |
| 47 | + # 2026-08-27, la variante nom d'État COMPLET échappe à _NON_QC_REGION_RE | |
| 48 | + # qui ne couvre que les codes « CT »). Pays absent : heuristique texte. | |
| 49 | + country = ((loc.get("country") or {}).get("id") or "").upper() | |
| 50 | + if country and country != "CA": | |
| 51 | + return False | |
| 44 | 52 | state = (loc.get("state") or {}) |
| 45 | 53 | if (state.get("id") or "").upper() == "QC": |
| 46 | 54 | return True |
modified
jobka/connectors/x4th_day_trucking.py
+8 −1
@@ -5,8 +5,15 @@ | ||
| 5 | 5 | # Fichier : jobka/connectors/x4th_day_trucking.py |
| 6 | 6 | # Rôle : Connecteur 4th Day Trucking — breezy (org « 4th-day-trucking ») |
| 7 | 7 | # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-23] |
| 8 | −# Créé : 2026-08-23 Modifié : 2026-08-23 | |
| 8 | +# Créé : 2026-08-23 Modifié : 2026-08-27 | |
| 9 | 9 | # ============================================================================= |
| 10 | +# NOTE ka6 (2026-08-27) : employeur de camionnage AMÉRICAIN — les 182 postings | |
| 11 | +# du board sont tous aux É.-U. (VA, OH, TX…), zéro Québec. L'unique offre | |
| 12 | +# historique (« CDL A LOCAL TRUCK DRIVING… », East Granby) était un faux | |
| 13 | +# positif : East Granby, CONNECTICUT — « Granby » matchait dans le libellé et | |
| 14 | +# le nom d'État complet « Connecticut » échappait à _NON_QC_REGION_RE (codes | |
| 15 | +# seulement). Corrigé par le garde pays de BreezyConnector._keep | |
| 16 | +# (location.country.id != CA → rejet). Volume 0 = comportement correct. | |
| 10 | 17 | from .breezy import BreezyConnector |
| 11 | 18 | |
| 12 | 19 | |
| 13 | 20 | |