[ka6] fix connecteur iamgold: fausse alerte « stale » — variante CYCLE INTERROMPU (3e cas de la variante, 1re intervention sur cette source), le connecteur est SAIN et n'a nécessité AUCUN changement de code. Chronologie : syncs verts found=3 en continu jusqu'à ~13:05 EDT le 2026-10-06, puis le sync de ~15:26 EDT a échoué sur un 500 serveur transitoire du frontal Taleo (endpoint REST searchjobs, persistant à travers les 3 retries/backoff existants de taleo.py — panne momentanée côté Oracle, la page d'amorce jobsearch.ftl répondait 200 pendant tout l'incident), et les restarts pm2 de job-ka-sync des missions dentons (c2276fc) et jove (8c2fc01) du même jour ont retardé le cycle horaire suivant → trou > 4 h sans sync réussi = seuil stale franchi. Aucun changement de tenant, de portail ou de section (iamgold.taleo.net, section ex, portal=101430233 inchangé) ; registre sources.json déjà complet (url + careers_url). Sync isolé rejoué ×2 : found=3 (= médiane historique 3.0), ok=1, 1,6 s, les 3 offres QC vivantes confirmées (Partenaire RH Opérations 12 mois, Géologue de projet senior, Technicienne carothèque Exploration — mine Westwood, Abitibi). Même classe que childrensplace 5ed90ff / churchdwight 43ac4f4. Docstring iamgold.py enrichie (chronologie + volume typique). Fiches docs/connecteurs/ iamgold.md + ats-taleo.md + INDEX.md régénérées via scripts/gen_connector_docs.py (les 1131 autres fiches, dont seuls les instantanés horodatés changeaient, restaurées — hors périmètre). 107 tests pytest verts. pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 changed files +48 −28
modified
docs/connecteurs/INDEX.md
+8 −8
@@ -5,16 +5,16 @@ 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-06 20:15 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-10-06 20:32 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-06 20:15 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-06 20:32 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 | −**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25539 offres actives** (23320 directes, 2219 portails ; 111 masquées comme doublons inter-sources, soit 25428 visibles). 1134 fiches. | |
| 17 | +**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25500 offres actives** (23281 directes, 2219 portails ; 111 masquées comme doublons inter-sources, soit 25389 visibles). 1134 fiches. | |
| 18 | 18 | |
| 19 | 19 | Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conserve son URL originale ; la candidature se fait chez l'employeur (badge « Offre directe » sur les sources directes). |
| 20 | 20 | |
@@ -30,7 +30,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 30 | 30 | | [`njoyn`](ats-njoyn.md) | 11 | 1200 | 68 % | 85 % | |
| 31 | 31 | | [`workland`](ats-workland.md) | 1 | 1185 | 35 % | 100 % | |
| 32 | 32 | | [`greenhouse`](ats-greenhouse.md) | 132 | 851 | 19 % | 100 % | |
| 33 | −| [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 791 | 5 % | 100 % | | |
| 33 | +| [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 752 | 5 % | 100 % | | |
| 34 | 34 | | [`lever`](ats-lever.md) | 59 | 624 | 20 % | 96 % | |
| 35 | 35 | | [`breezy`](ats-breezy.md) | 71 | 416 | 39 % | 95 % | |
| 36 | 36 | | [`ashby`](ats-ashby.md) | 41 | 301 | 43 % | 59 % | |
@@ -82,20 +82,20 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 82 | 82 | | [Groupe Banque TD](td.md) | [`workday`](ats-workday.md) | 175 | 97 % | 94 % | ✅ | |
| 83 | 83 | | [Reitmans](reitmanscanadalteltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 170 | 21 % | 100 % | ✅ | |
| 84 | 84 | | [Consignaction (AQRCB)](consignaction.md) | [`workday`](ats-workday.md) | 168 | 83 % | 100 % | ✅ | |
| 85 | −| [CISSS de Laval](cisss_laval.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 167 | 1 % | 100 % | ✅ | | |
| 85 | +| [CISSS de Laval](cisss_laval.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 165 | 1 % | 100 % | ✅ | | |
| 86 | 86 | | [Sodexo Canada](sodexocanadaltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 164 | 84 % | 99 % | ✅ | |
| 87 | 87 | | [La Vie en Rose](lavieenrose.md) | [`dayforce`](ats-dayforce.md) | 154 | 3 % | 100 % | ✅ | |
| 88 | 88 | | [Le Groupe Maurice](groupemaurice.md) | [`dayforce`](ats-dayforce.md) | 152 | 0 % | 100 % | ✅ | |
| 89 | 89 | | [Ubisoft](ubisoft.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 152 | 0 % | 100 % | ✅ | |
| 90 | 90 | | [Vetstrategy](vetstrategy.md) | [`dayforce`](ats-dayforce.md) | 147 | 4 % | 100 % | ✅ | |
| 91 | 91 | | [Hydro-Québec](hydroquebec.md) | [`successfactors`](ats-successfactors.md) | 145 | 73 % | 86 % | ✅ | |
| 92 | −| [CISSS des Laurentides](cisss_laurentides.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 143 | 3 % | 100 % | ✅ | | |
| 93 | 92 | | [CISSS de l'Abitibi-Témiscamingue](cisss_abitibi.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 139 | 0 % | 100 % | ✅ | |
| 94 | 93 | | [TJX Canada (Winners, HomeSense, Marshalls)](tjx.md) | [`workday`](ats-workday.md) | 139 | 99 % | 100 % | ✅ | |
| 95 | 94 | | [Groupe Helios](groupehelios.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 124 | 1 % | 100 % | ✅ | |
| 96 | 95 | | [Artelia Canada](artelia.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 121 | 0 % | 100 % | ✅ | |
| 97 | 96 | | [Intact Corporation financière](intactfc.md) | [`workday`](ats-workday.md) | 121 | 0 % | 79 % | ✅ | |
| 98 | 97 | | [Deloitte Canada](deloitte.md) | [`successfactors`](ats-successfactors.md) | 114 | 98 % | 100 % | ✅ | |
| 98 | +| [CISSS des Laurentides](cisss_laurentides.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 113 | 4 % | 100 % | ✅ | | |
| 99 | 99 | | [Vidéotron](videotron.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 113 | 5 % | 100 % | ✅ | |
| 100 | 100 | | [CISSS de Chaudière-Appalaches](cisss_chaudiere_appalaches.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 99 | 5 % | 100 % | ✅ | |
| 101 | 101 | | [Genetec](genetec_inc.md) | [`workable`](ats-workable.md) | 99 | 0 % | 100 % | ✅ | |
@@ -103,12 +103,12 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 103 | 103 | | [BMO Groupe financier](bmo.md) | [`workday`](ats-workday.md) | 94 | 90 % | 82 % | ✅ | |
| 104 | 104 | | [Cascades](cascades.md) | [`successfactors`](ats-successfactors.md) | 93 | 76 % | 99 % | ✅ | |
| 105 | 105 | | [Sépaq](sepaq.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 91 | 51 % | 10 % | ✅ | |
| 106 | −| [CISSS de Lanaudière](cisss_lanaudiere.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 90 | 6 % | 100 % | ✅ | | |
| 107 | 106 | | [CISSS de l'Outaouais](cisss_outaouais.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 87 | 26 % | 100 % | ✅ | |
| 108 | 107 | | [Linen Chest](linenchest.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 87 | 8 % | 100 % | ✅ | |
| 109 | 108 | | [HIKINEX](recruiting.md) | [`breezy`](ats-breezy.md) | 86 | 0 % | 100 % | ✅ | |
| 110 | 109 | | [UAP Inc.](uapinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 86 | 47 % | 98 % | ✅ | |
| 111 | 110 | | [CAE](cae.md) | [`workday`](ats-workday.md) | 83 | 27 % | 93 % | ✅ | |
| 111 | +| [CISSS de Lanaudière](cisss_lanaudiere.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 83 | 6 % | 100 % | ✅ | | |
| 112 | 112 | | [Renaud-Bray](renaud_bray.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 82 | 1 % | 100 % | ✅ | |
| 113 | 113 | | [Bulkbarn](bulkbarn.md) | [`dayforce`](ats-dayforce.md) | 78 | 0 % | 100 % | ✅ | |
| 114 | 114 | | [Promutuel Assurance](promutuel.md) | [`workday`](ats-workday.md) | 76 | 1 % | 100 % | ✅ | |
@@ -753,7 +753,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 753 | 753 | | [Guillevin International](guillevin.md) | [`workday`](ats-workday.md) | 3 | 0 % | 100 % | ✅ | |
| 754 | 754 | | [Homepage](quanteo.md) | [`recruitee`](ats-recruitee.md) | 3 | 67 % | 100 % | ✅ | |
| 755 | 755 | | [Hopper](hopper.md) | [`ashby`](ats-ashby.md) | 3 | 0 % | 67 % | ✅ | |
| 756 | −| [IAMGOLD](iamgold.md) | [`taleo`](ats-taleo.md) | 3 | 0 % | 100 % | ❌ | | |
| 756 | +| [IAMGOLD](iamgold.md) | [`taleo`](ats-taleo.md) | 3 | 0 % | 100 % | ✅ | | |
| 757 | 757 | | [Keel Infrastructure](keelinfrastructure.md) | [`greenhouse`](ats-greenhouse.md) | 3 | 0 % | 100 % | ✅ | |
| 758 | 758 | | [Keyrus](keyrus2.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 3 | 0 % | 100 % | ✅ | |
| 759 | 759 | | [Korem](korem.md) | [`bamboohr`](ats-bamboohr.md) | 3 | 0 % | 100 % | ✅ | |
modified
docs/connecteurs/ats-taleo.md
+8 −7
@@ -5,14 +5,14 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-taleo.md |
| 7 | 7 | Rôle : Fiche plateforme ATS taleo — mécanique partagée + tableau des 5 tenants |
| 8 | −Généré : 2026-09-25 07:35 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-10-06 20:32 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 | # Plateforme ATS `taleo` |
| 14 | 14 | |
| 15 | −**5 employeurs connectés** via cette plateforme — **130 offres actives**. Module partagé : `jobka/connectors/taleo.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**5 employeurs connectés** via cette plateforme — **126 offres actives**. Module partagé : `jobka/connectors/taleo.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -45,11 +45,11 @@ Généré : 2026-09-25 07:35 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 45 | 45 | |
| 46 | 46 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 47 | 47 | |---|---|---|---|---|---|---| |
| 48 | −| [Agnico Eagle Mines](agnico_eagle.md) | 83 | 0 % | 100 % | 0 % | 2026-09-25 06:53 | ✅ | | |
| 49 | −| [CIUSSS de l'Est-de-l'Île-de-Montréal](ciusss_est_montreal.md) | 20 | 0 % | 100 % | 0 % | 2026-09-25 07:12 | ✅ | | |
| 50 | −| [Bell Textron Canada](bell_textron.md) | 16 | 0 % | 100 % | 0 % | 2026-09-25 06:57 | ✅ | | |
| 51 | −| [Bayshore HealthCare](bayshore.md) | 9 | 0 % | 100 % | 0 % | 2026-09-25 07:34 | ✅ | | |
| 52 | −| [IAMGOLD](iamgold.md) | 2 | 0 % | 100 % | 0 % | 2026-09-25 04:38 | ✅ | | |
| 48 | +| [Agnico Eagle Mines](agnico_eagle.md) | 73 | 0 % | 99 % | 0 % | 2026-10-06 20:17 | ✅ | | |
| 49 | +| [CIUSSS de l'Est-de-l'Île-de-Montréal](ciusss_est_montreal.md) | 22 | 0 % | 95 % | 0 % | 2026-10-06 20:32 | ✅ | | |
| 50 | +| [Bell Textron Canada](bell_textron.md) | 17 | 0 % | 100 % | 0 % | 2026-10-06 20:21 | ✅ | | |
| 51 | +| [Bayshore HealthCare](bayshore.md) | 11 | 0 % | 91 % | 0 % | 2026-10-06 20:21 | ✅ | | |
| 52 | +| [IAMGOLD](iamgold.md) | 3 | 0 % | 100 % | 0 % | 2026-10-06 20:32 | ✅ | | |
| 53 | 53 | |
| 54 | 54 | ## Licence / conformité |
| 55 | 55 | |
@@ -67,6 +67,7 @@ Généré : 2026-09-25 07:35 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 67 | 67 | |
| 68 | 68 | Commits touchant `jobka/connectors/taleo.py` : |
| 69 | 69 | |
| 70 | +- `5c5ffa7` 2026-09-25 [ka6] fix connecteur bayshore: retry avec backoff et cookies neufs dans _bootstrap de taleo.py — le statut stale vient d'UN sync échoué à 03:29 (« taleo bayshore: numéro de portail introuvable ») : le frontal Taleo renvoie à l'occasion la page d'amorce jobsearch.ftl SANS « portal=NNN » (interstitiel/session passager, statut 200) puis repart seul — transitoire récurrent de la plateforme, 4 occurrences en un mois sur 3 tenants (agnico_eagle 2026-09-01, textron 2026-09-02 et 2026-09-25 01:12, bayshore 2026-09-25 03:29), et le sync suivant de bayshore (06:57) avait déjà retrouvé found=9 ok=1 tout seul. Le durcissement du 2026-09-09 (_search_page : retries du non-JSON de searchjobs) ne couvrait pas cette étape : _bootstrap levait RuntimeError au premier HTML sans numéro de portail, faisant échouer tout le sync horaire. Fix minimal dans la classe de plateforme jobka/connectors/taleo.py (bénéficie aux 3 tenants touchés et à tous les connecteurs Taleo) : boucle de 3 essais dans _bootstrap avec backoff 10-20 s et session.cookies.clear() entre les essais — même famille de correctif que _search_page, appliqué à l'étape d'amorce. Sync isolé rejoué ×2 : found=9 (médiane 9.5), ok, ~35 s. Fiches docs/connecteurs/ bayshore.md + ats-taleo.md + INDEX.md régénérées via scripts/gen_connector_docs.py (les 1129 autres fiches, dont seuls les instantanés horodatés changeaient, restaurées — hors périmètre). 106 tests pytest verts. pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200. | |
| 70 | 71 | - `e45adfd` 2026-09-09 [ka6] fix connecteur bayshore: retry sur réponse searchjobs non-JSON dans la plateforme taleo — le frontal a renvoyé une page HTML statut 200 au lieu du JSON (« Expecting value: line 2 column 1 », constaté 2026-09-09 06h29 sur bayshore, reparti seul), cas couvert par aucun retry existant (ni 5xx ni anti-bot); nouveau _search_page, 3 essais backoff 10-20 s avec ré-amorçage de session, échec explicite avec extrait du corps après 3 essais; sync rejoué: 11 offres (médiane 11.0) |
| 71 | 72 | - `14546e9` 2026-09-09 [ka6] fix connecteur bell_textron: retry avec backoff sur 5xx transitoire dans la plateforme taleo — un 500 isolé de l'API searchjobs (constaté 2026-09-08 23h29 sur textron, reparti seul) faisait échouer tout le sync car raise_for_status dans base.get/post n'a aucun retry; nouveau _req couvrant amorce/liste/détail, 3 essais backoff 10-20-30 s, les 4xx restent des échecs immédiats (même correctif que workday b5b4be3); sync rejoué: 16 offres (médiane 16.0) |
| 72 | 73 | - `49067dd` 2026-08-19 Connecteurs phase 2 — correctifs et enrichissement champ par champ. Correctifs : villes SuccessFactors à trait d'union (préfixe municipal MAMH sur le slug, bogue « St »/« Pointe »), colonne date Taleo = date LIMITE chez agnico_eagle (+ garde-fou date future). Enrichissement : SmartRecruiters experienceLevel/function/industry/language/refNumber (lignes de liste, zéro requête), BambooHR locationType→work_mode, Breezy is_remote/logo_url/streetAddress, JSON-LD logo/industry/educationRequirements/skills (portails+icims+DR), Ashby applyUrl + composantes Bonus/Equity/Commission, Lever applyUrl + blocs opening/additional + allLocations, Workable application_url + function/industry, Recruitee careers_apply_url + description FR (translations) + expérience/scolarité + heures/sem, Greenhouse language + requisition_id, Workday externalUrl→apply_url + work_mode via facette Remote Type + clé cache v2, Guichet-Emplois avantages structurés + langue de travail, njoyn apply_url en colonne ; secours cache périmé quand le budget détail est épuisé (plus de fiches vidées) |
modified
docs/connecteurs/iamgold.md
+16 −12
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/iamgold.md |
| 7 | 7 | Rôle : Fiche connecteur — IAMGOLD (employeur direct, ATS taleo) |
| 8 | −Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-10-06 20:32 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -39,7 +39,7 @@ Généré : 2026-09-21 18:06 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 39 | 39 | |
| 40 | 40 | ## Champs → schéma |
| 41 | 41 | |
| 42 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-09-21 18:06 EDT). | |
| 42 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-10-06 20:32 EDT). | |
| 43 | 43 | |
| 44 | 44 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 45 | 45 | |---|---|---| |
@@ -65,7 +65,7 @@ Complétude mesurée sur les **2 offres actives** de la source (base live, 2026- | ||
| 65 | 65 | | `apply_url` — Candidature | lien de candidature directe | 0 % | |
| 66 | 66 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 67 | 67 | |
| 68 | −Exemple réel : *Partenaire d’affaires Ressources Humaines- Opérations - 12 mois* — Québec · ∅ · parue le 2026-09-18. | |
| 68 | +Exemple réel : *Technicienne ou technicien à la carothèque, Exploration* — Québec · ∅ · parue le 2026-10-01. | |
| 69 | 69 | |
| 70 | 70 | ## Fréquence & budgets |
| 71 | 71 | |
@@ -80,19 +80,23 @@ Exemple réel : *Partenaire d’affaires Ressources Humaines- Opérations - 12 m | ||
| 80 | 80 | |
| 81 | 81 | ## Volumétrie & complétude live |
| 82 | 82 | |
| 83 | −*(mesuré le 2026-09-21 18:06 EDT dans `data/jobka.db`)* | |
| 83 | +*(mesuré le 2026-10-06 20:32 EDT dans `data/jobka.db`)* | |
| 84 | 84 | |
| 85 | −- **Offres en base** : 3 (dont **2 actives**, 0 masquées comme doublons `dup_of`) | |
| 86 | −- **Salaire** : 0/2 actives (0 %) | |
| 87 | −- **GPS** : 2/2 actives (100 %) | |
| 88 | −- **Mode** : 0/2 actives (0 %) | |
| 89 | −- **Parution** : 2/2 actives (100 %) | |
| 90 | −- **Dernier sync** : 2026-09-21 17:12 — trouvées 2, +0, ~0, -0 | |
| 91 | −- **Syncs enregistrés** (`sync_log`) : 239 | |
| 85 | +- **Offres en base** : 4 (dont **3 actives**, 0 masquées comme doublons `dup_of`) | |
| 86 | +- **Salaire** : 0/3 actives (0 %) | |
| 87 | +- **GPS** : 3/3 actives (100 %) | |
| 88 | +- **Mode** : 0/3 actives (0 %) | |
| 89 | +- **Parution** : 3/3 actives (100 %) | |
| 90 | +- **Dernier sync** : 2026-10-06 20:32 — trouvées 3, +0, ~0, -0 | |
| 91 | +- **Syncs enregistrés** (`sync_log`) : 401 | |
| 92 | 92 | |
| 93 | 93 | ## Erreurs & dépannage |
| 94 | 94 | |
| 95 | −Aucune erreur dans `sync_log` pour cette source. | |
| 95 | +Erreurs relevées dans `sync_log` : | |
| 96 | + | |
| 97 | +| Erreur | Occurrences | Dernière fois | | |
| 98 | +|---|---|---| | |
| 99 | +| Taleo 5xx après 3 essais : 500 Server Error: Internal Server Error for url: https://iamgol… | 1 | 2026-10-06 17:59 | | |
| 96 | 100 | |
| 97 | 101 | - Rejouer un sync isolé : `.venv/bin/python run.py sync iamgold` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='iamgold' ORDER BY ts DESC LIMIT 5;"` |
| 98 | 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/iamgold.py
+16 −1
@@ -4,12 +4,27 @@ | ||
| 4 | 4 | # Contact : contact@spboucher.ai |
| 5 | 5 | # Fichier : jobka/connectors/jobka/connectors/iamgold.py |
| 6 | 6 | # Rôle : Connecteur IAMGOLD (mine Westwood, Abitibi) — Taleo, section ex |
| 7 | −# Créé : 2026-08-25 Modifié : 2026-08-25 | |
| 7 | +# Créé : 2026-08-25 Modifié : 2026-10-06 | |
| 8 | 8 | # ============================================================================= |
| 9 | 9 | from .taleo import TaleoConnector |
| 10 | 10 | |
| 11 | 11 | |
| 12 | 12 | class IamgoldConnector(TaleoConnector): |
| 13 | + """IAMGOLD — Taleo, section ``ex`` (mine Westwood, Abitibi-Témiscamingue). | |
| 14 | + | |
| 15 | + Volume typique : ~3 offres QC (médiane historique 3.0). | |
| 16 | + | |
| 17 | + 2026-10-06 — signalé « stale 4.3 h » par la supervision : FAUSSE ALERTE, | |
| 18 | + variante « cycle interrompu ». Chronologie : le sync de ~15:26 EDT a | |
| 19 | + échoué sur un 500 serveur Taleo transitoire (endpoint REST searchjobs, | |
| 20 | + persistant à travers les 3 retries/backoff de taleo.py — panne frontale | |
| 21 | + momentanée côté Oracle, page d'amorce 200 pendant tout l'incident), puis | |
| 22 | + les restarts pm2 de job-ka-sync des missions dentons/jove du même jour | |
| 23 | + ont retardé le cycle horaire suivant → trou > 4 h sans succès. Aucun | |
| 24 | + changement de tenant ni de portail. Sync rejoué ×2 : found=3, ok=1, | |
| 25 | + 1,6 s — même classe que childrensplace 5ed90ff / churchdwight 43ac4f4. | |
| 26 | + """ | |
| 27 | + | |
| 13 | 28 | source_id = "iamgold" |
| 14 | 29 | EMPLOYER = "IAMGOLD" |
| 15 | 30 | HOST = "iamgold" |
| 16 | 31 | |