[ka6] connecteur nortekinc: broken = fenêtre de maintenance planifiée Workday (systémique, terminée) — rien à réparer côté flux, sync rejoué found=4 = médiane 4.0 + artefact vague C corrigé (url vide → nortekair.com). Broken = faux positif: 3 syncs ok=0 « Workday en maintenance planifiée » (00:20, 02:21 et 07:09 le 2026-10-17) après dernier sync vert 22:01 la veille found=4, même fenêtre que puma/valmet/quadreal, détection maintenance de workday.py a proprement nommé la cause, AUCUN retrait. Fenêtre terminée à la mission (09:17): board live 200, 41 postes, sync isolé rejoué found=4 = médiane en 5,2 s, 4 offres QC actives (Montréal/St-Léonard-d'Aston/Québec x2) miss_count=0. Pas de migration: nortekair.com/careers (200) référence toujours myworkdayjobs.com/en-US/NortekAirSolutions. Artefact vague C: url vide dans sources.json → https://www.nortekair.com (200 vérifié live; nortekinc.com ne répond plus, marque opérante = Nortek Air Solutions). Docstring chronologie 1re intervention, fiches nortekinc.md/INDEX.md régénérées. 107 tests verts, pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
4 changed files +36 −12
modified
data/sources.json
+1 −1
@@ -11520,7 +11520,7 @@ | ||
| 11520 | 11520 | { |
| 11521 | 11521 | "id": "nortekinc", |
| 11522 | 11522 | "name": "Nortekinc", |
| 11523 | − "url": "", | |
| 11523 | + "url": "https://www.nortekair.com", | |
| 11524 | 11524 | "careers_url": "https://nortekinc.wd503.myworkdayjobs.com/NortekAirSolutions", |
| 11525 | 11525 | "sectors": [ |
| 11526 | 11526 | "TI", |
modified
docs/connecteurs/INDEX.md
+3 −3
@@ -5,14 +5,14 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/INDEX.md |
| 7 | 7 | Rôle : Index généré de la documentation des connecteurs (ATS, employeurs, portails, dépôt) |
| 8 | −Généré : 2026-10-17 09:04 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-10-17 09:19 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
| 12 | 12 | |
| 13 | 13 | # Job·Ka — Connecteurs (index) |
| 14 | 14 | |
| 15 | −> Index généré le 2026-10-17 09:04 EDT par `scripts/gen_connector_docs.py` (rejouable). Croise `data/sources.json`, l'introspection de `jobka/connectors/*.py` et la base live `data/jobka.db`. | |
| 15 | +> Index généré le 2026-10-17 09:19 EDT par `scripts/gen_connector_docs.py` (rejouable). Croise `data/sources.json`, l'introspection de `jobka/connectors/*.py` et la base live `data/jobka.db`. | |
| 16 | 16 | |
| 17 | 17 | **1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25566 offres actives** (23016 directes, 2550 portails ; 116 masquées comme doublons inter-sources, soit 25450 visibles). 1134 fiches. |
| 18 | 18 | |
@@ -688,7 +688,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 688 | 688 | | [Msd](msd.md) | [`workday`](ats-workday.md) | 4 | 100 % | 100 % | ✅ | |
| 689 | 689 | | [Nmédia](nmdia.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 4 | 0 % | 100 % | ✅ | |
| 690 | 690 | | [Norbert Health](norbert_health.md) | [`breezy`](ats-breezy.md) | 4 | 0 % | 100 % | ✅ | |
| 691 | −| [Nortekinc](nortekinc.md) | [`workday`](ats-workday.md) | 4 | 25 % | 100 % | ❌ | | |
| 691 | +| [Nortekinc](nortekinc.md) | [`workday`](ats-workday.md) | 4 | 25 % | 100 % | ✅ | | |
| 692 | 692 | | [Nssl](nssl.md) | [`dayforce`](ats-dayforce.md) | 4 | 0 % | 100 % | ✅ | |
| 693 | 693 | | [Nuvei](nuvei.md) | [`workable`](ats-workable.md) | 4 | 0 % | 100 % | ✅ | |
| 694 | 694 | | [O-I](o_i.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 4 | 25 % | 100 % | ✅ | |
modified
docs/connecteurs/nortekinc.md
+12 −7
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/nortekinc.md |
| 7 | 7 | Rôle : Fiche connecteur — Nortekinc (employeur direct, ATS workday) |
| 8 | −Généré : 2026-10-14 18:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-10-17 09:19 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -16,7 +16,7 @@ Généré : 2026-10-14 18:40 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 16 | 16 | |
| 17 | 17 | ## Description |
| 18 | 18 | |
| 19 | −- **Site** : [Nortekinc]() | |
| 19 | +- **Site** : [Nortekinc](https://www.nortekair.com) | |
| 20 | 20 | - **Page carrières** : https://nortekinc.wd503.myworkdayjobs.com/NortekAirSolutions |
| 21 | 21 | - **Secteurs** : TI, Services |
| 22 | 22 | - **Région** : Montréal |
@@ -38,7 +38,7 @@ Généré : 2026-10-14 18:40 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 38 | 38 | |
| 39 | 39 | ## Champs → schéma |
| 40 | 40 | |
| 41 | −Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-10-14 18:40 EDT). | |
| 41 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-10-17 09:19 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,19 +79,24 @@ Exemple réel : *Assembleur 1 - Fin de semaine* — Montréal · Un salaire de d | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-10-14 18:40 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-10-17 09:19 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 21 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 1/4 actives (25 %) |
| 86 | 86 | - **GPS** : 4/4 actives (100 %) |
| 87 | 87 | - **Mode** : 0/4 actives (0 %) |
| 88 | 88 | - **Parution** : 4/4 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-10-14 15:45 — trouvées 4, +0, ~0, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 473 | |
| 89 | +- **Dernier sync** : 2026-10-17 09:18 — trouvées 4, +0, ~2, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 496 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
| 94 | −Aucune erreur dans `sync_log` pour cette source. | |
| 94 | +Erreurs relevées dans `sync_log` : | |
| 95 | + | |
| 96 | +| Erreur | Occurrences | Dernière fois | | |
| 97 | +|---|---|---| | |
| 98 | +| Workday en maintenance planifiée (redirigé vers https://community.workday.com/maintenance-… | 2 | 2026-10-17 07:09 | | |
| 99 | +| Workday en maintenance planifiée (redirigé vers https://static.community.workday.com/maint… | 1 | 2026-10-17 02:21 | | |
| 95 | 100 | |
| 96 | 101 | - Rejouer un sync isolé : `.venv/bin/python run.py sync nortekinc` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='nortekinc' ORDER BY ts DESC LIMIT 5;"` |
| 97 | 102 | - Garde-fous : une source qui retourne ≤ 25 % de sa médiane historique déclenche une alerte et les retraits sont suspendus ; une offre doit manquer 2 syncs consécutifs avant `active=0`. |
modified
jobka/connectors/nortekinc.py
+20 −1
@@ -5,11 +5,30 @@ | ||
| 5 | 5 | # Fichier : jobka/connectors/nortekinc.py |
| 6 | 6 | # Rôle : Connecteur Nortekinc — workday (tenant nortekinc.wd503, site NortekAirSolutions) |
| 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-10-17 | |
| 9 | 9 | # ============================================================================= |
| 10 | 10 | from .workday import WorkdayConnector |
| 11 | 11 | |
| 12 | 12 | |
| 13 | +# Chronologie des interventions | |
| 14 | +# ----------------------------- | |
| 15 | +# 2026-10-17 (ka6, 1re intervention) — « broken » = fenêtre de maintenance | |
| 16 | +# PLANIFIÉE Workday (POST cxs redirigé vers community.workday.com/ | |
| 17 | +# maintenance-page), systémique : 3 syncs ok=0 « maintenance planifiée » | |
| 18 | +# à 00:20, 02:21 et 07:09 le 2026-10-17, même fenêtre que puma/valmet/ | |
| 19 | +# quadreal (~20 tenants Workday du repo). Dernier sync vert la veille | |
| 20 | +# 22:01 found=4 = médiane 4.0, AUCUN retrait. Fenêtre TERMINÉE au moment | |
| 21 | +# de la mission (09:17) : board live 200 avec 41 postes, sync rejoué | |
| 22 | +# found=4 = médiane en 5,2 s, 4 offres QC actives (Montréal, | |
| 23 | +# St-Léonard-d'Aston, Québec x2) miss_count=0. Rien à réparer côté flux. | |
| 24 | +# Pas de migration : nortekair.com/careers (200) référence toujours | |
| 25 | +# myworkdayjobs.com/en-US/NortekAirSolutions. Seul correctif : artefact | |
| 26 | +# vague C « url vide » dans data/sources.json -> https://www.nortekair.com | |
| 27 | +# (200 vérifié live ; nortekinc.com ne répond plus — Nortek Inc. absorbée | |
| 28 | +# par Madison Industries, la marque opérante est Nortek Air Solutions). | |
| 29 | +# Ne pas diagnostiquer tenant par tenant pendant ces fenêtres : repart seul. | |
| 30 | + | |
| 31 | + | |
| 13 | 32 | class NortekincConnector(WorkdayConnector): |
| 14 | 33 | source_id = 'nortekinc' |
| 15 | 34 | EMPLOYER = 'Nortekinc' |
| 16 | 35 | |