SPB Git

spb/job-ka

Public

[ka6] connecteur telefilmcanada: stale = faux positif volume QC nul (médiane 1.0) — la MÊME offre id 1318 qu'en septembre, republiée/prolongée (échéance 2026-09-12 → 2026-10-19), expirée à nouveau à sa date limite, rien à réparer côté flux. L'offre « Conseiller.ère impact organisationel - EDIA » (Montréal, parue 2026-06-23) dépubliée automatiquement à son expiry 2026-10-19 03:59 UTC (= 2026-10-18 23:59 EDT) entre les syncs de 23:47 (found=1) et 02:15 (found=0); board vérifié vide dans les TROIS cultures fr-CA/en-CA/en-US (maxCount=0, pas d'aveuglement de culture), détail cxs 200 avec expiry passée = dépublication à l'échéance, pattern du tenant: chaque offre tombe à sa date limite (1500→10-18, 1476/1492→10-17, 1512→10-08). Pas de migration d'ATS: telefilm.ca/fr/qui-nous-sommes/carrieres référence toujours jobs.dayforcehcm.com/fr-CA/telefilmcanada/CANDIDATEPORTAL. Sync isolé rejoué: found=0 ok=1 removed=1 (retrait propre « date limite dépassée ») en 1,0 s. Si 1318 est reprolongée encore, elle reviendra seule (cycle type samsara, même id). Docstring chronologie ajouté (1re + 2e intervention), fiches telefilmcanada.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.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Oct 19, 2026) parent 945feed Browse files

3 changed files +43 −45

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-19 04:19 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
8 +Généré : 2026-10-19 04:34 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-19 04: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`.
15 +> Index généré le 2026-10-19 04:34 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** — **25157 offres actives** (22932 directes, 2225 portails ; 115 masquées comme doublons inter-sources, soit 25042 visibles). 1134 fiches.
17 +**1104 employeurs directs** connectés via **25 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **25180 offres actives** (22955 directes, 2225 portails ; 115 masquées comme doublons inter-sources, soit 25065 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
@@ -25,12 +25,12 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
25 25 | [`workday`](ats-workday.md) | 232 | 7361 | 47 % | 87 % |
26 26 | [`smartrecruiters`](ats-smartrecruiters.md) | 172 | 2975 | 17 % | 99 % |
27 27 | [`workable`](ats-workable.md) | 71 | 1968 | 18 % | 100 % |
28 −| [`dayforce`](ats-dayforce.md) | 129 | 1909 | 9 % | 100 % |
28 +| [`dayforce`](ats-dayforce.md) | 129 | 1908 | 9 % | 100 % |
29 29 | [`successfactors`](ats-successfactors.md) | 12 | 1754 | 20 % | 99 % |
30 30 | [`njoyn`](ats-njoyn.md) | 11 | 1241 | 69 % | 87 % |
31 31 | [`workland`](ats-workland.md) | 1 | 1106 | 36 % | 100 % |
32 32 | [`greenhouse`](ats-greenhouse.md) | 132 | 818 | 18 % | 100 % |
33 −| [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 775 | 6 % | 100 % |
33 +| [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 799 | 6 % | 100 % |
34 34 | [`lever`](ats-lever.md) | 58 | 610 | 20 % | 96 % |
35 35 | [`breezy`](ats-breezy.md) | 71 | 429 | 38 % | 95 % |
36 36 | [`bamboohr`](ats-bamboohr.md) | 37 | 285 | 8 % | 100 % |
@@ -124,6 +124,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
124 124 | [Norda Stelo](nordastelo.md) | [`teamtailor`](ats-teamtailor.md) | 60 | 0 % | 95 % | ✅ |
125 125 | [Gdv](gdv.md) | [`dayforce`](ats-dayforce.md) | 59 | 0 % | 100 % | ✅ |
126 126 | [Kiewit (Ganotec)](kiewit_ganotec.md) | [`successfactors`](ats-successfactors.md) | 59 | 0 % | 100 % | ✅ |
127 +| [CHU de Québec — Université Laval](chu_quebec.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 58 | 3 % | 100 % | ✅ |
127 128 | [ANCIA Personnel](anciapersonnelinc.md) | [`recruitee`](ats-recruitee.md) | 56 | 7 % | 100 % | ✅ |
128 129 | [Squarepoint Capital](squarepointcapital.md) | [`greenhouse`](ats-greenhouse.md) | 56 | 38 % | 100 % | ✅ |
129 130 | [Groupe Canam](groupecanam.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 55 | 71 % | 98 % | ✅ |
@@ -138,7 +139,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
138 139 | [Intelcom (Dragonfly)](intelcomgroup.md) | [`workday`](ats-workday.md) | 52 | 0 % | 100 % | ✅ |
139 140 | [BPA (Experts-conseils)](bpa.md) | [`dayforce`](ats-dayforce.md) | 51 | 0 % | 100 % | ✅ |
140 141 | [McKesson Canada](mckesson.md) | [`workday`](ats-workday.md) | 51 | 84 % | 88 % | ✅ |
141 −| [CHU de Québec — Université Laval](chu_quebec.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 48 | 4 % | 100 % | ✅ |
142 142 | [Levio](levio.md) | [`greenhouse`](ats-greenhouse.md) | 47 | 0 % | 100 % | ✅ |
143 143 | [Lightspeed Commerce](lightspeedhq.md) | [`ashby`](ats-ashby.md) | 47 | 0 % | 100 % | ✅ |
144 144 | [Unoria](unoria.md) | [`dayforce`](ats-dayforce.md) | 47 | 0 % | 100 % | ✅ |
@@ -169,6 +169,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
169 169 | [system canada technologies](systemcanadatechnologies.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 38 | 0 % | 100 % | ✅ |
170 170 | [Workin Group](workinquebec.md) | [`teamtailor`](ats-teamtailor.md) | 38 | 58 % | 100 % | ✅ |
171 171 | [Agnico Eagle Mines](agnico_eagle.md) | [`taleo`](ats-taleo.md) | 37 | 0 % | 100 % | ✅ |
172 +| [CHUM](chum.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 37 | 3 % | 100 % | ✅ |
172 173 | [Advanceauto](advanceauto.md) | [`workday`](ats-workday.md) | 36 | 0 % | 44 % | ✅ |
173 174 | [Cohere](cohere.md) | [`ashby`](ats-ashby.md) | 36 | 92 % | 28 % | ✅ |
174 175 | [Coveo](coveofr.md) | [`greenhouse`](ats-greenhouse.md) | 36 | 0 % | 100 % | ✅ |
@@ -231,7 +232,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
231 232 | [Transat A.T.](transatat1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 24 | 8 % | 100 % | ✅ |
232 233 | [Baseten](baseten.md) | [`ashby`](ats-ashby.md) | 23 | 100 % | 0 % | ✅ |
233 234 | [Broccolini](broccolini.md) | [`bamboohr`](ats-bamboohr.md) | 23 | 0 % | 100 % | ✅ |
234 −| [CHUM](chum.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 23 | 4 % | 100 % | ✅ |
235 235 | [Monteur CVC 1 /HVAC Assembler 1](sunbeltrentals.md) | [`workday`](ats-workday.md) | 23 | 0 % | 74 % | ✅ |
236 236 | [Spectrum Health Care](spectrumhealthcare.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 23 | 87 % | 100 % | ✅ |
237 237 | [Stellajones](stellajones.md) | [`dayforce`](ats-dayforce.md) | 23 | 26 % | 100 % | ✅ |
@@ -1042,7 +1042,6 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
1042 1042 | [Tristan Fleet](tristan_fleet_1.md) | [`workable`](ats-workable.md) | 1 | 0 % | 100 % | ✅ |
1043 1043 | [Trisura](trisura.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ |
1044 1044 | [Tyco](tyco.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ |
1045 −| [Téléfilm Canada](telefilmcanada.md) | [`dayforce`](ats-dayforce.md) | 1 | 0 % | 100 % | ✅ |
1046 1045 | [Uber Freight](uberfreight.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ |
1047 1046 | [Urbania](urbania.md) | [`breezy`](ats-breezy.md) | 1 | 0 % | 100 % | ✅ |
1048 1047 | [Valital Technologies](valital_technologies.md) | [`breezy`](ats-breezy.md) | 1 | 0 % | 100 % | ✅ |
@@ -1157,6 +1156,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser
1157 1156 | [Trueline](trueline.md) | [`breezy`](ats-breezy.md) | 0 | — | — | ✅ |
1158 1157 | [TruGreen](trugreen.md) | [`workday`](ats-workday.md) | 0 | — | — | ✅ |
1159 1158 | [Trupanion](trupanion1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 0 | — | — | ✅ |
1159 +| [Téléfilm Canada](telefilmcanada.md) | [`dayforce`](ats-dayforce.md) | 0 | — | — | ✅ |
1160 1160 | [USA Mechanical & Energy Services](usamechasp.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
1161 1161 | [VA Desk](vadesk.md) | [`breezy`](ats-breezy.md) | 0 | — | — | ✅ |
1162 1162 | [Valence Labs](valencelabs.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ |
modified docs/connecteurs/telefilmcanada.md +10 −36
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher
5 5 Contact : contact@spboucher.ai
6 6 Fichier : docs/connecteurs/telefilmcanada.md
7 7 Rôle : Fiche connecteur — Téléfilm Canada (employeur direct, ATS dayforce)
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-19 04:34 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER,
9 9 relancer le script pour régénérer.
10 10 =============================================================================
11 11 -->
@@ -38,33 +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).
42 −
43 −| Champ (`jobs.*`) | Rôle | Complétude |
44 −|---|---|---|
45 −| `title` — Titre | titre du poste | 100 % |
46 −| `employer` — Employeur | nom de l'entreprise | 100 % |
47 −| `url` — URL | lien direct vers l'offre originale | 100 % |
48 −| `description` — Description | texte complet (HTML nettoyé) | 100 % |
49 −| `city` — Ville | municipalité normalisée | 100 % |
50 −| `region` — Région | région administrative | 100 % |
51 −| `address` — Adresse | adresse du lieu de travail | 100 % |
52 −| `postal_code` — Code postal | code postal si publié | 0 % |
53 −| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % |
54 −| `employment_type` — Type | temps_plein / temps_partiel / … | 0 % |
55 −| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 0 % |
56 −| `salary_label` — Libellé salaire | texte salarial original | 0 % |
57 −| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % |
58 −| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 100 % |
59 −| `date_posted` — Date de parution | ISO 8601 | 100 % |
60 −| `date_deadline` — Date limite | date limite pour postuler | 100 % |
61 −| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 75 % |
62 −| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % |
63 −| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % |
64 −| `apply_url` — Candidature | lien de candidature directe | 0 % |
65 −| `gps` — GPS | lat/lng (géocodage sans invention) | 100 % |
66 −
67 −Exemple réel : *Adjoint.e administrative exécutive* — Montréal · ∅ · parue le 2026-09-29.
41 +*Aucune offre active en base pour cette source.*
68 42
69 43 ## Fréquence & budgets
70 44
@@ -79,15 +53,15 @@ Exemple réel : *Adjoint.e administrative exécutive* — Montréal · ∅ · pa
79 53
80 54 ## Volumétrie & complétude live
81 55
82 −*(mesuré le 2026-10-14 18:40 EDT dans `data/jobka.db`)*
56 +*(mesuré le 2026-10-19 04:34 EDT dans `data/jobka.db`)*
83 57
84 −- **Offres en base** : 5 (dont **4 actives**, 0 masquées comme doublons `dup_of`)
85 −- **Salaire** : 0/4 actives (0 %)
86 −- **GPS** : 4/4 actives (100 %)
87 −- **Mode** : 0/4 actives (0 %)
88 −- **Parution** : 4/4 actives (100 %)
89 −- **Dernier sync** : 2026-10-14 16:08 — trouvées 4, +0, ~0, -0
90 −- **Syncs enregistrés** (`sync_log`) : 448
58 +- **Offres en base** : 5 (dont **0 actives**, 0 masquées comme doublons `dup_of`)
59 +- **Salaire** : 0/0 actives (—)
60 +- **GPS** : 0/0 actives (—)
61 +- **Mode** : 0/0 actives (—)
62 +- **Parution** : 0/0 actives (—)
63 +- **Dernier sync** : 2026-10-19 04:33 — trouvées 0, +0, ~0, -1
64 +- **Syncs enregistrés** (`sync_log`) : 487
91 65
92 66 ## Erreurs & dépannage
93 67
modified jobka/connectors/telefilmcanada.py +25 −1
@@ -5,12 +5,36 @@
5 5 # Fichier : jobka/connectors/telefilmcanada.py
6 6 # Rôle : Connecteur Téléfilm Canada — dayforce (ns='telefilmcanada', board='CANDIDATEPORTAL')
7 7 # [généré par scripts/gen_connectors.py, flux vérifié le 2026-08-25]
8 −# Créé : 2026-08-25 Modifié : 2026-08-25
8 +# Créé : 2026-08-25 Modifié : 2026-10-19
9 9 # =============================================================================
10 10 from .dayforce import DayforceConnector
11 11
12 12
13 13 class TelefilmcanadaConnector(DayforceConnector):
14 + """Téléfilm Canada — tenant Dayforce telefilmcanada/CANDIDATEPORTAL.
15 +
16 + Historique santé :
17 + - 2026-09-12 (ka6) : « stale » = faux positif, l'unique offre QC (id 1318,
18 + Montréal) dépubliée automatiquement à son échéance (expiry 2026-09-12
19 + 03:59 UTC) ; artefact url vide corrigé dans sources.json → telefilm.ca.
20 + - 2026-10-19 (ka6) : « stale » = faux positif volume QC nul (médiane 1.0),
21 + MÊME offre id 1318 « Conseiller.ère impact organisationel - EDIA » :
22 + republiée/prolongée après septembre (échéance repoussée du 2026-09-12 au
23 + 2026-10-19), elle a expiré à nouveau à sa date limite (expiry 2026-10-19
24 + 03:59 UTC = 2026-10-18 23:59 EDT) entre les syncs de 23:47 (found=1) et
25 + 02:15 (found=0). Board vérifié vide dans les TROIS cultures (fr-CA,
26 + en-CA, en-US, maxCount=0) — pas d'aveuglement de culture ; détail cxs
27 + 200 avec expiry passée = dépublication à l'échéance, pattern de ce
28 + tenant : chaque offre porte une date limite et tombe du board à son
29 + expiry (1500→10-18, 1476/1492→10-17, 1512→10-08). Pas de migration :
30 + telefilm.ca/fr/qui-nous-sommes/carrieres référence toujours ce board.
31 + Sync rejoué found=0 ok=1, removed=1 (retrait propre « date limite
32 + dépassée »). Les syncs sont verts ok=1 ; la supervision compte found=0
33 + comme non-succès, d'où le stale. Si l'offre 1318 est reprolongée encore,
34 + elle reviendra seule au prochain sync (cycle de republication type
35 + samsara, même id).
36 + """
37 +
14 38 source_id = 'telefilmcanada'
15 39 EMPLOYER = 'Téléfilm Canada'
16 40 NS = 'telefilmcanada'
17 41
Menu

Theme