Phase 3 — registres et conformité : sources.json (244 sources, 19 familles ATS + réseau Atlas multi-employeurs, retraits cssdm/ttcglobal, lassonde re-pointé sur le site maison) ; docs/CONFORMITE.md daté 2026-08-19 (bases d'accès des nouvelles familles, base légale des API ATS publiques, démarche documentée pour le flux officiel Guichet-Emplois/Job Bank — page libre-service disparue, passer par le formulaire Aide et soutien —, 11 sources écartées avec raisons) ; docs/connecteurs régénérées (265 fiches) ; njoyn : signature stricte de l'habillage tableau (le libellé du lien doit être le numéro de poste) pour ne jamais intercepter les habillages « titre dans le lien » (STL/RTC).
268 changed files +7,498 −4,232
modified
data/sources.json
+3088 −2783
@@ -1,2785 +1,3090 @@ | ||
| 1 | 1 | { |
| 2 | − "_meta": { | |
| 3 | − "project": "Job·Ka — Groupe KA", | |
| 4 | − "author": "Simon-Pierre Boucher <contact@spboucher.ai>", | |
| 5 | − "role": "Registre descriptif des sources (alimente la page Sources)", | |
| 6 | − "updated": "2026-08-18", | |
| 7 | − "counts": { | |
| 8 | − "employeurs_directs": 217, | |
| 9 | − "plateformes_ats": 17, | |
| 10 | − "portails": 3, | |
| 11 | − "depot_direct": 1 | |
| 12 | − }, | |
| 13 | − "ats": [ | |
| 14 | − "adp", | |
| 15 | − "ashby", | |
| 16 | − "bamboohr", | |
| 17 | − "breezy", | |
| 18 | − "digitalrecruiters", | |
| 19 | − "greenhouse", | |
| 20 | − "icims", | |
| 21 | − "lever", | |
| 22 | − "njoyn", | |
| 23 | − "recruitee", | |
| 24 | − "smartrecruiters", | |
| 25 | − "successfactors", | |
| 26 | − "taleo", | |
| 27 | − "ultipro", | |
| 28 | − "workable", | |
| 29 | − "workday", | |
| 30 | − "workland" | |
| 31 | − ], | |
| 32 | − "docs": "docs/connecteurs/INDEX.md (fiches générées par scripts/gen_connector_docs.py) ; conformité : docs/CONFORMITE.md" | |
| 33 | − }, | |
| 34 | − "sources": [ | |
| 35 | − { | |
| 36 | − "id": "cae", | |
| 37 | − "name": "CAE", | |
| 38 | − "url": "https://www.cae.com", | |
| 39 | − "careers_url": "https://cae.wd3.myworkdayjobs.com/career", | |
| 40 | − "sectors": [ | |
| 41 | − "Aéronautique", | |
| 42 | − "Simulation", | |
| 43 | − "TI" | |
| 44 | − ], | |
| 45 | − "connector": "workday", | |
| 46 | − "status": "actif", | |
| 47 | − "region": "Montréal" | |
| 48 | − }, | |
| 49 | − { | |
| 50 | − "id": "desjardins", | |
| 51 | − "name": "Mouvement Desjardins", | |
| 52 | − "url": "https://www.desjardins.com", | |
| 53 | − "careers_url": "https://desjardins.wd10.myworkdayjobs.com/Desjardins", | |
| 54 | − "sectors": [ | |
| 55 | − "Finance", | |
| 56 | − "Assurance", | |
| 57 | − "TI" | |
| 58 | − ], | |
| 59 | − "connector": "workday", | |
| 60 | − "status": "actif", | |
| 61 | − "region": "Lévis / province" | |
| 62 | − }, | |
| 63 | − { | |
| 64 | − "id": "poka", | |
| 65 | − "name": "Poka", | |
| 66 | − "url": "https://www.poka.io", | |
| 67 | − "careers_url": "https://job-boards.greenhouse.io/poka", | |
| 68 | − "sectors": [ | |
| 69 | − "TI", | |
| 70 | − "SaaS manufacturier" | |
| 71 | − ], | |
| 72 | − "connector": "greenhouse", | |
| 73 | − "status": "actif", | |
| 74 | − "region": "Québec" | |
| 75 | − }, | |
| 76 | − { | |
| 77 | − "id": "mistplay", | |
| 78 | − "name": "Mistplay", | |
| 79 | − "url": "https://www.mistplay.com", | |
| 80 | − "careers_url": "https://jobs.lever.co/mistplay", | |
| 81 | − "sectors": [ | |
| 82 | − "TI", | |
| 83 | − "Jeu mobile" | |
| 84 | − ], | |
| 85 | − "connector": "lever", | |
| 86 | − "status": "actif", | |
| 87 | − "region": "Montréal" | |
| 88 | − }, | |
| 89 | − { | |
| 90 | − "id": "ubisoft", | |
| 91 | − "name": "Ubisoft", | |
| 92 | − "url": "https://www.ubisoft.com", | |
| 93 | − "careers_url": "https://jobs.smartrecruiters.com/company/Ubisoft2", | |
| 94 | − "sectors": [ | |
| 95 | − "Jeux vidéo", | |
| 96 | − "TI", | |
| 97 | − "Création" | |
| 98 | − ], | |
| 99 | − "connector": "smartrecruiters", | |
| 100 | − "status": "actif", | |
| 101 | − "region": "Montréal / Québec / Sherbrooke" | |
| 102 | − }, | |
| 103 | − { | |
| 104 | − "id": "mcgill", | |
| 105 | − "name": "Université McGill", | |
| 106 | − "url": "https://www.mcgill.ca", | |
| 107 | − "careers_url": "https://mcgill.wd3.myworkdayjobs.com/McGill_Careers", | |
| 108 | − "sectors": [ | |
| 109 | − "Éducation", | |
| 110 | − "Recherche", | |
| 111 | − "Administration" | |
| 112 | − ], | |
| 113 | − "connector": "workday", | |
| 114 | − "status": "actif", | |
| 115 | − "region": "Montréal" | |
| 116 | − }, | |
| 117 | − { | |
| 118 | − "id": "agropur", | |
| 119 | − "name": "Agropur", | |
| 120 | − "url": "https://www.agropur.com", | |
| 121 | − "careers_url": "https://agropur.wd3.myworkdayjobs.com/Agropur_Careers", | |
| 122 | − "sectors": [ | |
| 123 | − "Agroalimentaire", | |
| 124 | − "Production" | |
| 125 | − ], | |
| 126 | − "connector": "workday", | |
| 127 | − "status": "actif", | |
| 128 | − "region": "Longueuil / province" | |
| 129 | − }, | |
| 130 | − { | |
| 131 | − "id": "saputo", | |
| 132 | − "name": "Saputo", | |
| 133 | − "url": "https://www.saputo.com", | |
| 134 | − "careers_url": "https://saputo.wd5.myworkdayjobs.com/Saputo_External_Careers", | |
| 135 | − "sectors": [ | |
| 136 | − "Agroalimentaire", | |
| 137 | − "Production" | |
| 138 | − ], | |
| 139 | − "connector": "workday", | |
| 140 | − "status": "actif", | |
| 141 | − "region": "Montréal / province" | |
| 142 | − }, | |
| 143 | − { | |
| 144 | − "id": "ia_groupe", | |
| 145 | − "name": "iA Groupe financier", | |
| 146 | − "url": "https://ia.ca", | |
| 147 | − "careers_url": "https://ia.wd3.myworkdayjobs.com/Professional", | |
| 148 | − "sectors": [ | |
| 149 | − "Assurance", | |
| 150 | − "Finance", | |
| 151 | − "TI" | |
| 152 | − ], | |
| 153 | − "connector": "workday", | |
| 154 | − "status": "actif", | |
| 155 | − "region": "Québec" | |
| 156 | − }, | |
| 157 | − { | |
| 158 | − "id": "tandemlaunch", | |
| 159 | − "name": "TandemLaunch", | |
| 160 | − "url": "https://www.tandemlaunch.com", | |
| 161 | − "careers_url": "https://boards.greenhouse.io/tandemlaunch", | |
| 162 | − "sectors": [ | |
| 163 | − "TI", | |
| 164 | − "Deep tech" | |
| 165 | − ], | |
| 166 | − "connector": "greenhouse", | |
| 167 | − "status": "actif", | |
| 168 | − "region": "Montréal" | |
| 169 | − }, | |
| 170 | − { | |
| 171 | − "id": "potloc", | |
| 172 | − "name": "Potloc", | |
| 173 | − "url": "https://www.potloc.com", | |
| 174 | − "careers_url": "https://jobs.lever.co/Potloc", | |
| 175 | − "sectors": [ | |
| 176 | − "TI", | |
| 177 | − "Études de marché" | |
| 178 | − ], | |
| 179 | − "connector": "lever", | |
| 180 | − "status": "actif", | |
| 181 | − "region": "Montréal" | |
| 182 | − }, | |
| 183 | − { | |
| 184 | − "id": "biximontreal", | |
| 185 | − "name": "BIXI Montréal", | |
| 186 | − "url": "", | |
| 187 | − "careers_url": "https://biximontreal.recruitee.com", | |
| 188 | − "sectors": [ | |
| 189 | − "Transport" | |
| 190 | − ], | |
| 191 | − "connector": "recruitee", | |
| 192 | − "status": "actif", | |
| 193 | − "region": "Montréal" | |
| 194 | − }, | |
| 195 | − { | |
| 196 | − "id": "adeleexpressfr", | |
| 197 | − "name": "Adèle Express", | |
| 198 | − "url": "", | |
| 199 | − "careers_url": "https://adeleexpressfr.recruitee.com", | |
| 200 | − "sectors": [ | |
| 201 | − "Transport" | |
| 202 | − ], | |
| 203 | − "connector": "recruitee", | |
| 204 | − "status": "actif", | |
| 205 | − "region": "Montréal" | |
| 206 | − }, | |
| 207 | − { | |
| 208 | − "id": "framestore", | |
| 209 | − "name": "Framestore", | |
| 210 | − "url": "", | |
| 211 | − "careers_url": "https://framestore.recruitee.com", | |
| 212 | − "sectors": [ | |
| 213 | − "Effets visuels", | |
| 214 | − "Création" | |
| 215 | − ], | |
| 216 | − "connector": "recruitee", | |
| 217 | − "status": "actif", | |
| 218 | − "region": "Montréal" | |
| 219 | − }, | |
| 220 | − { | |
| 221 | − "id": "lg2", | |
| 222 | − "name": "LG2", | |
| 223 | − "url": "", | |
| 224 | − "careers_url": "https://lg2.recruitee.com", | |
| 225 | − "sectors": [ | |
| 226 | − "Publicité", | |
| 227 | − "Création" | |
| 228 | − ], | |
| 229 | − "connector": "recruitee", | |
| 230 | − "status": "actif", | |
| 231 | − "region": "Montréal, Québec" | |
| 232 | − }, | |
| 233 | − { | |
| 234 | − "id": "petalmd", | |
| 235 | − "name": "Petal", | |
| 236 | − "url": "", | |
| 237 | − "careers_url": "https://petalmd.recruitee.com", | |
| 238 | − "sectors": [ | |
| 239 | − "TI", | |
| 240 | − "Santé" | |
| 241 | − ], | |
| 242 | − "connector": "recruitee", | |
| 243 | − "status": "actif", | |
| 244 | − "region": "Montréal, Québec" | |
| 245 | − }, | |
| 246 | − { | |
| 247 | − "id": "squeezestudio", | |
| 248 | − "name": "Squeeze Studio Animation", | |
| 249 | − "url": "", | |
| 250 | − "careers_url": "https://squeezestudio.recruitee.com", | |
| 251 | − "sectors": [ | |
| 252 | − "Animation", | |
| 253 | − "Création" | |
| 254 | − ], | |
| 255 | − "connector": "recruitee", | |
| 256 | − "status": "actif", | |
| 257 | − "region": "Montréal, Québec" | |
| 258 | − }, | |
| 259 | − { | |
| 260 | − "id": "medialo", | |
| 261 | − "name": "Médialo", | |
| 262 | − "url": "", | |
| 263 | − "careers_url": "https://medialo.recruitee.com", | |
| 264 | − "sectors": [ | |
| 265 | − "Médias" | |
| 266 | − ], | |
| 267 | − "connector": "recruitee", | |
| 268 | − "status": "actif", | |
| 269 | − "region": "Mont-Laurier, Terrebonne" | |
| 270 | − }, | |
| 271 | − { | |
| 272 | − "id": "huaweicanada", | |
| 273 | − "name": "Huawei Canada", | |
| 274 | − "url": "", | |
| 275 | − "careers_url": "https://huaweicanada.recruitee.com", | |
| 276 | − "sectors": [ | |
| 277 | − "TI", | |
| 278 | − "Recherche" | |
| 279 | − ], | |
| 280 | − "connector": "recruitee", | |
| 281 | − "status": "actif", | |
| 282 | − "region": "Montréal" | |
| 283 | − }, | |
| 284 | − { | |
| 285 | − "id": "ajwalter", | |
| 286 | − "name": "AJ Walter Aviation", | |
| 287 | − "url": "", | |
| 288 | − "careers_url": "https://ajwalter.recruitee.com", | |
| 289 | − "sectors": [ | |
| 290 | − "Aéronautique" | |
| 291 | − ], | |
| 292 | − "connector": "recruitee", | |
| 293 | − "status": "actif", | |
| 294 | − "region": "Montréal" | |
| 295 | − }, | |
| 296 | − { | |
| 297 | − "id": "anciapersonnelinc", | |
| 298 | − "name": "ANCIA Personnel", | |
| 299 | − "url": "", | |
| 300 | − "careers_url": "https://anciapersonnelinc.recruitee.com", | |
| 301 | − "sectors": [ | |
| 302 | − "Placement" | |
| 303 | − ], | |
| 304 | − "connector": "recruitee", | |
| 305 | − "status": "actif", | |
| 306 | − "region": "Lévis, Québec, Montréal" | |
| 307 | − }, | |
| 308 | − { | |
| 309 | − "id": "youset", | |
| 310 | − "name": "YouSet", | |
| 311 | − "url": "", | |
| 312 | − "careers_url": "https://youset.breezy.hr", | |
| 313 | − "sectors": [ | |
| 314 | − "Assurance", | |
| 315 | − "TI" | |
| 316 | − ], | |
| 317 | − "connector": "breezy", | |
| 318 | − "status": "actif", | |
| 319 | − "region": "Montréal" | |
| 320 | − }, | |
| 321 | − { | |
| 322 | − "id": "brandmomentum", | |
| 323 | − "name": "Brand Momentum", | |
| 324 | − "url": "", | |
| 325 | − "careers_url": "https://brandmomentum.breezy.hr", | |
| 326 | − "sectors": [ | |
| 327 | − "Marketing", | |
| 328 | − "Ventes" | |
| 329 | − ], | |
| 330 | − "connector": "breezy", | |
| 331 | − "status": "actif", | |
| 332 | − "region": "Montréal, Laval, Québec" | |
| 333 | − }, | |
| 334 | − { | |
| 335 | − "id": "ino_ca", | |
| 336 | − "name": "Luqia (INO)", | |
| 337 | − "url": "", | |
| 338 | − "careers_url": "https://ino-ca.breezy.hr", | |
| 339 | − "sectors": [ | |
| 340 | − "Optique-photonique", | |
| 341 | − "Recherche" | |
| 342 | − ], | |
| 343 | − "connector": "breezy", | |
| 344 | − "status": "actif", | |
| 345 | − "region": "Québec" | |
| 346 | − }, | |
| 347 | − { | |
| 348 | − "id": "canada_global", | |
| 349 | − "name": "Canada Global Recruitment", | |
| 350 | − "url": "", | |
| 351 | − "careers_url": "https://canada-global.breezy.hr", | |
| 352 | − "sectors": [ | |
| 353 | − "Placement" | |
| 354 | − ], | |
| 355 | − "connector": "breezy", | |
| 356 | − "status": "actif", | |
| 357 | − "region": "Montréal" | |
| 358 | − }, | |
| 359 | − { | |
| 360 | − "id": "alphanumeric_systems", | |
| 361 | − "name": "Alphanumeric Systems", | |
| 362 | − "url": "", | |
| 363 | − "careers_url": "https://alphanumeric-systems.breezy.hr", | |
| 364 | − "sectors": [ | |
| 365 | − "TI", | |
| 366 | − "Santé" | |
| 367 | − ], | |
| 368 | − "connector": "breezy", | |
| 369 | − "status": "actif", | |
| 370 | − "region": "Montréal, Sainte-Foy" | |
| 371 | − }, | |
| 372 | − { | |
| 373 | − "id": "microhabitat", | |
| 374 | − "name": "MicroHabitat", | |
| 375 | − "url": "", | |
| 376 | − "careers_url": "https://microhabitat.breezy.hr", | |
| 377 | − "sectors": [ | |
| 378 | − "Agriculture urbaine" | |
| 379 | − ], | |
| 380 | − "connector": "breezy", | |
| 381 | − "status": "actif", | |
| 382 | − "region": "Montréal, Québec" | |
| 383 | − }, | |
| 384 | − { | |
| 385 | − "id": "eq3_ltd", | |
| 386 | − "name": "EQ3", | |
| 387 | − "url": "", | |
| 388 | − "careers_url": "https://eq3-ltd.breezy.hr", | |
| 389 | − "sectors": [ | |
| 390 | − "Commerce de détail", | |
| 391 | − "Meuble" | |
| 392 | − ], | |
| 393 | − "connector": "breezy", | |
| 394 | − "status": "actif", | |
| 395 | − "region": "Brossard, Laval, Montréal" | |
| 396 | − }, | |
| 397 | − { | |
| 398 | − "id": "nora_pharma", | |
| 399 | − "name": "Nora Pharma", | |
| 400 | − "url": "", | |
| 401 | − "careers_url": "https://nora-pharma.breezy.hr", | |
| 402 | − "sectors": [ | |
| 403 | − "Pharmaceutique" | |
| 404 | − ], | |
| 405 | − "connector": "breezy", | |
| 406 | − "status": "actif", | |
| 407 | − "region": "Laval, Montréal, Granby" | |
| 408 | − }, | |
| 409 | − { | |
| 410 | − "id": "voxdata", | |
| 411 | − "name": "VOXDATA", | |
| 412 | − "url": "", | |
| 413 | − "careers_url": "https://voxdata.breezy.hr", | |
| 414 | − "sectors": [ | |
| 415 | − "Centre d'appels" | |
| 416 | − ], | |
| 417 | − "connector": "breezy", | |
| 418 | − "status": "actif", | |
| 419 | − "region": "Montréal" | |
| 420 | − }, | |
| 421 | − { | |
| 422 | − "id": "trois_brasseurs", | |
| 423 | − "name": "3 Brasseurs Canada", | |
| 424 | − "url": "", | |
| 425 | − "careers_url": "https://3brasseurs.breezy.hr", | |
| 426 | − "sectors": [ | |
| 427 | − "Restauration" | |
| 428 | − ], | |
| 429 | − "connector": "breezy", | |
| 430 | − "status": "actif", | |
| 431 | − "region": "Montréal, Laval, Brossard" | |
| 432 | − }, | |
| 433 | − { | |
| 434 | − "id": "vaporus_inc", | |
| 435 | − "name": "Vaporus", | |
| 436 | − "url": "", | |
| 437 | − "careers_url": "https://vaporus-inc.breezy.hr", | |
| 438 | − "sectors": [ | |
| 439 | − "Commerce de détail" | |
| 440 | − ], | |
| 441 | − "connector": "breezy", | |
| 442 | − "status": "actif", | |
| 443 | − "region": "Montréal" | |
| 444 | − }, | |
| 445 | − { | |
| 446 | − "id": "reseau_mieux_etre", | |
| 447 | − "name": "Réseau Mieux-Être", | |
| 448 | − "url": "", | |
| 449 | − "careers_url": "https://reseau-mieux-etre.breezy.hr", | |
| 450 | − "sectors": [ | |
| 451 | − "Santé" | |
| 452 | − ], | |
| 453 | − "connector": "breezy", | |
| 454 | − "status": "actif", | |
| 455 | − "region": "Montréal" | |
| 456 | − }, | |
| 457 | − { | |
| 458 | − "id": "novipro", | |
| 459 | − "name": "NOVIPRO", | |
| 460 | − "url": "", | |
| 461 | − "careers_url": "https://novipro.breezy.hr", | |
| 462 | − "sectors": [ | |
| 463 | − "TI" | |
| 464 | − ], | |
| 465 | − "connector": "breezy", | |
| 466 | − "status": "actif", | |
| 467 | − "region": "Montréal, Longueuil" | |
| 468 | − }, | |
| 469 | − { | |
| 470 | − "id": "adi_albert_davidson_industries", | |
| 471 | − "name": "ADI - Albert Davidson Industries", | |
| 472 | − "url": "", | |
| 473 | − "careers_url": "https://adi-albert-davidson-industries.breezy.hr", | |
| 474 | − "sectors": [ | |
| 475 | − "Manufacture" | |
| 476 | − ], | |
| 477 | − "connector": "breezy", | |
| 478 | − "status": "actif", | |
| 479 | − "region": "Pointe-Claire" | |
| 480 | − }, | |
| 481 | − { | |
| 482 | − "id": "tehora", | |
| 483 | − "name": "TEHORA", | |
| 484 | − "url": "", | |
| 485 | − "careers_url": "https://apply.workable.com/tehora", | |
| 486 | − "sectors": [ | |
| 487 | − "Ingénierie", | |
| 488 | − "TI", | |
| 489 | − "Conseil" | |
| 490 | − ], | |
| 491 | − "connector": "workable", | |
| 492 | − "status": "actif", | |
| 493 | − "region": "Montréal, Québec, Gatineau" | |
| 494 | − }, | |
| 495 | − { | |
| 496 | − "id": "sogeclair", | |
| 497 | − "name": "SOGECLAIR", | |
| 498 | − "url": "", | |
| 499 | − "careers_url": "https://apply.workable.com/sogeclair", | |
| 500 | − "sectors": [ | |
| 501 | − "Aéronautique", | |
| 502 | − "Ingénierie" | |
| 503 | − ], | |
| 504 | − "connector": "workable", | |
| 505 | − "status": "actif", | |
| 506 | − "region": "Montréal, Mirabel, Laval" | |
| 507 | − }, | |
| 508 | − { | |
| 509 | − "id": "valsoft_corp", | |
| 510 | − "name": "Valsoft", | |
| 511 | − "url": "", | |
| 512 | − "careers_url": "https://apply.workable.com/valsoft-corp", | |
| 513 | − "sectors": [ | |
| 514 | − "TI", | |
| 515 | − "Logiciel" | |
| 516 | − ], | |
| 517 | − "connector": "workable", | |
| 518 | − "status": "actif", | |
| 519 | − "region": "Montréal" | |
| 520 | − }, | |
| 521 | − { | |
| 522 | − "id": "sideinc", | |
| 523 | − "name": "Side (PTW)", | |
| 524 | − "url": "", | |
| 525 | − "careers_url": "https://apply.workable.com/sideinc", | |
| 526 | − "sectors": [ | |
| 527 | − "Jeux vidéo" | |
| 528 | − ], | |
| 529 | − "connector": "workable", | |
| 530 | − "status": "actif", | |
| 531 | − "region": "Montréal, Québec" | |
| 532 | − }, | |
| 533 | − { | |
| 534 | − "id": "tecsys", | |
| 535 | − "name": "Tecsys", | |
| 536 | − "url": "", | |
| 537 | − "careers_url": "https://apply.workable.com/tecsys", | |
| 538 | − "sectors": [ | |
| 539 | − "TI", | |
| 540 | − "Logistique" | |
| 541 | − ], | |
| 542 | − "connector": "workable", | |
| 543 | − "status": "actif", | |
| 544 | − "region": "Montréal" | |
| 545 | − }, | |
| 546 | − { | |
| 547 | − "id": "evolving_web", | |
| 548 | − "name": "Evolving Web", | |
| 549 | − "url": "", | |
| 550 | − "careers_url": "https://apply.workable.com/evolving-web", | |
| 551 | − "sectors": [ | |
| 552 | − "TI", | |
| 553 | − "Web" | |
| 554 | − ], | |
| 555 | − "connector": "workable", | |
| 556 | − "status": "actif", | |
| 557 | − "region": "Montréal" | |
| 558 | − }, | |
| 559 | − { | |
| 560 | − "id": "lamour", | |
| 561 | − "name": "Lamour", | |
| 562 | − "url": "", | |
| 563 | − "careers_url": "https://apply.workable.com/lamour", | |
| 564 | − "sectors": [ | |
| 565 | − "Textile", | |
| 566 | − "Manufacture" | |
| 567 | − ], | |
| 568 | − "connector": "workable", | |
| 569 | − "status": "actif", | |
| 570 | − "region": "Montréal" | |
| 571 | − }, | |
| 572 | − { | |
| 573 | − "id": "botpress", | |
| 574 | − "name": "Botpress", | |
| 575 | − "url": "", | |
| 576 | − "careers_url": "https://apply.workable.com/botpress", | |
| 577 | − "sectors": [ | |
| 578 | − "TI", | |
| 579 | − "IA" | |
| 580 | − ], | |
| 581 | − "connector": "workable", | |
| 582 | − "status": "actif", | |
| 583 | − "region": "Montréal, Québec" | |
| 584 | − }, | |
| 585 | − { | |
| 586 | − "id": "eminent_valet", | |
| 587 | − "name": "Eminent Valet", | |
| 588 | − "url": "", | |
| 589 | − "careers_url": "https://apply.workable.com/eminent-valet", | |
| 590 | − "sectors": [ | |
| 591 | − "Services" | |
| 592 | − ], | |
| 593 | − "connector": "workable", | |
| 594 | − "status": "actif", | |
| 595 | − "region": "Montréal" | |
| 596 | − }, | |
| 597 | − { | |
| 598 | − "id": "lidd", | |
| 599 | − "name": "LIDD Consultants", | |
| 600 | − "url": "", | |
| 601 | − "careers_url": "https://apply.workable.com/lidd", | |
| 602 | − "sectors": [ | |
| 603 | − "Conseil", | |
| 604 | − "Logistique" | |
| 605 | − ], | |
| 606 | − "connector": "workable", | |
| 607 | − "status": "actif", | |
| 608 | − "region": "Montréal" | |
| 609 | − }, | |
| 610 | − { | |
| 611 | − "id": "nuovophotography", | |
| 612 | − "name": "Nuovo Photography", | |
| 613 | − "url": "", | |
| 614 | − "careers_url": "https://apply.workable.com/nuovophotography", | |
| 615 | − "sectors": [ | |
| 616 | − "Photographie" | |
| 617 | − ], | |
| 618 | − "connector": "workable", | |
| 619 | − "status": "actif", | |
| 620 | − "region": "Montréal" | |
| 621 | − }, | |
| 622 | − { | |
| 623 | − "id": "sweat_pants_agency", | |
| 624 | − "name": "Sweat Pants Agency", | |
| 625 | − "url": "", | |
| 626 | − "careers_url": "https://apply.workable.com/sweat-pants-agency", | |
| 627 | − "sectors": [ | |
| 628 | − "Marketing" | |
| 629 | − ], | |
| 630 | − "connector": "workable", | |
| 631 | − "status": "actif", | |
| 632 | − "region": "Montréal, Laval, Québec" | |
| 633 | − }, | |
| 634 | − { | |
| 635 | − "id": "flinks", | |
| 636 | − "name": "Flinks", | |
| 637 | − "url": "", | |
| 638 | − "careers_url": "https://apply.workable.com/flinks", | |
| 639 | − "sectors": [ | |
| 640 | − "TI", | |
| 641 | − "Fintech" | |
| 642 | − ], | |
| 643 | − "connector": "workable", | |
| 644 | − "status": "actif", | |
| 645 | − "region": "Montréal" | |
| 646 | − }, | |
| 647 | − { | |
| 648 | − "id": "unit8", | |
| 649 | − "name": "Unit8", | |
| 650 | − "url": "", | |
| 651 | − "careers_url": "https://apply.workable.com/unit8", | |
| 652 | − "sectors": [ | |
| 653 | − "TI", | |
| 654 | − "Données" | |
| 655 | − ], | |
| 656 | − "connector": "workable", | |
| 657 | − "status": "actif", | |
| 658 | − "region": "Montréal" | |
| 659 | − }, | |
| 660 | − { | |
| 661 | − "id": "bardel_entertainment", | |
| 662 | − "name": "Bardel Entertainment", | |
| 663 | − "url": "", | |
| 664 | − "careers_url": "https://apply.workable.com/bardel-entertainment", | |
| 665 | − "sectors": [ | |
| 666 | − "Animation" | |
| 667 | − ], | |
| 668 | − "connector": "workable", | |
| 669 | − "status": "actif", | |
| 670 | − "region": "Montréal" | |
| 671 | − }, | |
| 672 | − { | |
| 673 | − "id": "atecna_montreal", | |
| 674 | − "name": "Atecna", | |
| 675 | − "url": "", | |
| 676 | − "careers_url": "https://apply.workable.com/atecna-montreal", | |
| 677 | − "sectors": [ | |
| 678 | − "TI", | |
| 679 | − "Conseil" | |
| 680 | − ], | |
| 681 | − "connector": "workable", | |
| 682 | − "status": "actif", | |
| 683 | − "region": "Montréal" | |
| 684 | − }, | |
| 685 | − { | |
| 686 | − "id": "charger_logistics_inc", | |
| 687 | − "name": "Charger Logistics", | |
| 688 | − "url": "", | |
| 689 | − "careers_url": "https://apply.workable.com/charger-logistics-inc", | |
| 690 | − "sectors": [ | |
| 691 | − "Transport", | |
| 692 | − "Logistique" | |
| 693 | − ], | |
| 694 | − "connector": "workable", | |
| 695 | − "status": "actif", | |
| 696 | − "region": "Dorval" | |
| 697 | − }, | |
| 698 | − { | |
| 699 | − "id": "maintainx", | |
| 700 | − "name": "MaintainX", | |
| 701 | − "url": "", | |
| 702 | − "careers_url": "https://jobs.ashbyhq.com/maintainx", | |
| 703 | − "sectors": [ | |
| 704 | − "TI", | |
| 705 | − "SaaS" | |
| 706 | − ], | |
| 707 | − "connector": "ashby", | |
| 708 | − "status": "actif", | |
| 709 | − "region": "Montréal" | |
| 710 | − }, | |
| 711 | − { | |
| 712 | − "id": "tetrix", | |
| 713 | − "name": "Tetrix", | |
| 714 | − "url": "", | |
| 715 | − "careers_url": "https://jobs.ashbyhq.com/tetrix", | |
| 716 | − "sectors": [ | |
| 717 | − "TI" | |
| 718 | − ], | |
| 719 | − "connector": "ashby", | |
| 720 | − "status": "actif", | |
| 721 | − "region": "Montréal" | |
| 722 | − }, | |
| 723 | − { | |
| 724 | − "id": "hopper", | |
| 725 | − "name": "Hopper", | |
| 726 | − "url": "", | |
| 727 | − "careers_url": "https://jobs.ashbyhq.com/hopper", | |
| 728 | − "sectors": [ | |
| 729 | − "TI", | |
| 730 | − "Voyage" | |
| 731 | − ], | |
| 732 | − "connector": "ashby", | |
| 733 | − "status": "actif", | |
| 734 | − "region": "Montréal" | |
| 735 | − }, | |
| 736 | − { | |
| 737 | − "id": "mistral_ai", | |
| 738 | − "name": "Mistral AI", | |
| 739 | − "url": "", | |
| 740 | − "careers_url": "https://jobs.ashbyhq.com/mistral.ai", | |
| 741 | − "sectors": [ | |
| 742 | − "TI", | |
| 743 | − "IA" | |
| 744 | − ], | |
| 745 | − "connector": "ashby", | |
| 746 | − "status": "actif", | |
| 747 | − "region": "Montréal" | |
| 748 | − }, | |
| 749 | − { | |
| 750 | − "id": "nomic", | |
| 751 | − "name": "Nomic Bio", | |
| 752 | − "url": "", | |
| 753 | − "careers_url": "https://jobs.ashbyhq.com/nomic", | |
| 754 | − "sectors": [ | |
| 755 | − "Biotechnologie" | |
| 756 | − ], | |
| 757 | − "connector": "ashby", | |
| 758 | − "status": "actif", | |
| 759 | − "region": "Montréal" | |
| 760 | − }, | |
| 761 | − { | |
| 762 | − "id": "fuse", | |
| 763 | − "name": "Fuse Energy", | |
| 764 | − "url": "", | |
| 765 | − "careers_url": "https://jobs.ashbyhq.com/Fuse", | |
| 766 | − "sectors": [ | |
| 767 | − "Énergie", | |
| 768 | − "TI" | |
| 769 | − ], | |
| 770 | − "connector": "ashby", | |
| 771 | − "status": "actif", | |
| 772 | − "region": "Montréal" | |
| 773 | − }, | |
| 774 | − { | |
| 775 | − "id": "no_saint", | |
| 776 | − "name": "No Saint", | |
| 777 | − "url": "", | |
| 778 | − "careers_url": "https://jobs.ashbyhq.com/no-saint", | |
| 779 | − "sectors": [ | |
| 780 | − "Création" | |
| 781 | − ], | |
| 782 | − "connector": "ashby", | |
| 783 | − "status": "actif", | |
| 784 | − "region": "Montréal" | |
| 785 | − }, | |
| 786 | − { | |
| 787 | − "id": "vasco", | |
| 788 | − "name": "Vasco", | |
| 789 | − "url": "", | |
| 790 | − "careers_url": "https://jobs.ashbyhq.com/vasco", | |
| 791 | − "sectors": [ | |
| 792 | − "TI" | |
| 793 | − ], | |
| 794 | − "connector": "ashby", | |
| 795 | − "status": "actif", | |
| 796 | − "region": "Montréal" | |
| 797 | − }, | |
| 798 | − { | |
| 799 | − "id": "cohere", | |
| 800 | − "name": "Cohere", | |
| 801 | − "url": "", | |
| 802 | − "careers_url": "https://jobs.ashbyhq.com/cohere", | |
| 803 | − "sectors": [ | |
| 804 | − "TI", | |
| 805 | − "IA" | |
| 806 | − ], | |
| 807 | − "connector": "ashby", | |
| 808 | − "status": "actif", | |
| 809 | − "region": "Montréal" | |
| 810 | − }, | |
| 811 | − { | |
| 812 | − "id": "industrious", | |
| 813 | − "name": "Industrious", | |
| 814 | − "url": "", | |
| 815 | − "careers_url": "https://jobs.ashbyhq.com/industrious", | |
| 816 | − "sectors": [ | |
| 817 | − "Immobilier", | |
| 818 | − "Services" | |
| 819 | − ], | |
| 820 | − "connector": "ashby", | |
| 821 | − "status": "actif", | |
| 822 | − "region": "Montréal" | |
| 823 | − }, | |
| 824 | − { | |
| 825 | − "id": "eqbank", | |
| 826 | − "name": "EQ Bank", | |
| 827 | − "url": "", | |
| 828 | − "careers_url": "https://jobs.lever.co/eqbank", | |
| 829 | − "sectors": [ | |
| 830 | − "Finance" | |
| 831 | − ], | |
| 832 | − "connector": "lever", | |
| 833 | − "status": "actif", | |
| 834 | − "region": "Montréal" | |
| 835 | − }, | |
| 836 | − { | |
| 837 | − "id": "usmobile", | |
| 838 | − "name": "US Mobile", | |
| 839 | − "url": "", | |
| 840 | − "careers_url": "https://jobs.lever.co/USMobile", | |
| 841 | − "sectors": [ | |
| 842 | − "Télécoms" | |
| 843 | − ], | |
| 844 | − "connector": "lever", | |
| 845 | − "status": "actif", | |
| 846 | − "region": "Montréal" | |
| 847 | − }, | |
| 848 | − { | |
| 849 | − "id": "dilitrust", | |
| 850 | − "name": "DiliTrust", | |
| 851 | − "url": "", | |
| 852 | − "careers_url": "https://jobs.lever.co/dilitrust", | |
| 853 | − "sectors": [ | |
| 854 | − "TI", | |
| 855 | − "Juridique" | |
| 856 | − ], | |
| 857 | − "connector": "lever", | |
| 858 | − "status": "actif", | |
| 859 | − "region": "Montréal" | |
| 860 | − }, | |
| 861 | − { | |
| 862 | − "id": "spreedly", | |
| 863 | − "name": "Spreedly", | |
| 864 | − "url": "", | |
| 865 | − "careers_url": "https://jobs.lever.co/spreedly", | |
| 866 | − "sectors": [ | |
| 867 | − "TI", | |
| 868 | − "Fintech" | |
| 869 | − ], | |
| 870 | − "connector": "lever", | |
| 871 | − "status": "actif", | |
| 872 | − "region": "Montréal" | |
| 873 | − }, | |
| 874 | − { | |
| 875 | − "id": "xsolla", | |
| 876 | − "name": "Xsolla", | |
| 877 | − "url": "", | |
| 878 | − "careers_url": "https://jobs.lever.co/xsolla", | |
| 879 | − "sectors": [ | |
| 880 | − "TI", | |
| 881 | − "Jeux vidéo" | |
| 882 | − ], | |
| 883 | − "connector": "lever", | |
| 884 | − "status": "actif", | |
| 885 | − "region": "Montréal" | |
| 886 | − }, | |
| 887 | − { | |
| 888 | − "id": "alimentiv_2", | |
| 889 | − "name": "Alimentiv", | |
| 890 | − "url": "", | |
| 891 | − "careers_url": "https://jobs.lever.co/alimentiv-2", | |
| 892 | − "sectors": [ | |
| 893 | − "Recherche clinique" | |
| 894 | − ], | |
| 895 | − "connector": "lever", | |
| 896 | − "status": "actif", | |
| 897 | − "region": "Montréal, Québec" | |
| 898 | − }, | |
| 899 | − { | |
| 900 | − "id": "vo2_group", | |
| 901 | − "name": "VO2 Group", | |
| 902 | − "url": "", | |
| 903 | − "careers_url": "https://jobs.lever.co/vo2-group", | |
| 904 | − "sectors": [ | |
| 905 | − "TI", | |
| 906 | − "Conseil" | |
| 907 | − ], | |
| 908 | − "connector": "lever", | |
| 909 | − "status": "actif", | |
| 910 | − "region": "Montréal" | |
| 911 | − }, | |
| 912 | − { | |
| 913 | − "id": "distro", | |
| 914 | − "name": "Distro", | |
| 915 | − "url": "", | |
| 916 | − "careers_url": "https://jobs.lever.co/distro", | |
| 917 | − "sectors": [ | |
| 918 | − "Ventes", | |
| 919 | − "TI" | |
| 920 | − ], | |
| 921 | − "connector": "lever", | |
| 922 | − "status": "actif", | |
| 923 | − "region": "Montréal, Westmount" | |
| 924 | − }, | |
| 925 | − { | |
| 926 | − "id": "aviyatech", | |
| 927 | − "name": "Aviya Aerospace Systems", | |
| 928 | − "url": "", | |
| 929 | − "careers_url": "https://jobs.lever.co/aviyatech", | |
| 930 | − "sectors": [ | |
| 931 | − "Aéronautique" | |
| 932 | − ], | |
| 933 | − "connector": "lever", | |
| 934 | − "status": "actif", | |
| 935 | − "region": "Longueuil" | |
| 936 | − }, | |
| 937 | − { | |
| 938 | − "id": "gorh", | |
| 939 | − "name": "Go RH", | |
| 940 | − "url": "", | |
| 941 | − "careers_url": "https://jobs.lever.co/gorh", | |
| 942 | − "sectors": [ | |
| 943 | − "Placement", | |
| 944 | − "RH" | |
| 945 | − ], | |
| 946 | − "connector": "lever", | |
| 947 | − "status": "actif", | |
| 948 | − "region": "Montréal, Québec" | |
| 949 | − }, | |
| 950 | − { | |
| 951 | − "id": "tsmg", | |
| 952 | − "name": "TSMG", | |
| 953 | − "url": "", | |
| 954 | − "careers_url": "https://jobs.lever.co/tsmg", | |
| 955 | − "sectors": [ | |
| 956 | − "Placement", | |
| 957 | − "Télécoms" | |
| 958 | − ], | |
| 959 | − "connector": "lever", | |
| 960 | − "status": "actif", | |
| 961 | − "region": "Montréal, Québec" | |
| 962 | − }, | |
| 963 | − { | |
| 964 | − "id": "dulcedo", | |
| 965 | − "name": "Dulcedo Management", | |
| 966 | − "url": "", | |
| 967 | − "careers_url": "https://jobs.lever.co/dulcedo", | |
| 968 | − "sectors": [ | |
| 969 | − "Mode", | |
| 970 | − "Gestion d'artistes" | |
| 971 | − ], | |
| 972 | − "connector": "lever", | |
| 973 | − "status": "actif", | |
| 974 | − "region": "Montréal" | |
| 975 | − }, | |
| 976 | − { | |
| 977 | − "id": "osedea", | |
| 978 | − "name": "OSEDEA", | |
| 979 | − "url": "", | |
| 980 | − "careers_url": "https://jobs.lever.co/osedea", | |
| 981 | − "sectors": [ | |
| 982 | − "TI", | |
| 983 | − "Web" | |
| 984 | − ], | |
| 985 | − "connector": "lever", | |
| 986 | − "status": "actif", | |
| 987 | − "region": "Montréal" | |
| 988 | − }, | |
| 989 | − { | |
| 990 | − "id": "mthreerecruitingportal", | |
| 991 | − "name": "mthree", | |
| 992 | − "url": "", | |
| 993 | − "careers_url": "https://job-boards.greenhouse.io/mthreerecruitingportal", | |
| 994 | − "sectors": [ | |
| 995 | − "TI", | |
| 996 | − "Placement" | |
| 997 | − ], | |
| 998 | − "connector": "greenhouse", | |
| 999 | − "status": "actif", | |
| 1000 | − "region": "Montréal" | |
| 1001 | − }, | |
| 1002 | − { | |
| 1003 | − "id": "appdirect", | |
| 1004 | − "name": "AppDirect", | |
| 1005 | − "url": "", | |
| 1006 | − "careers_url": "https://job-boards.greenhouse.io/appdirect", | |
| 1007 | − "sectors": [ | |
| 1008 | − "TI", | |
| 1009 | − "SaaS" | |
| 1010 | − ], | |
| 1011 | − "connector": "greenhouse", | |
| 1012 | − "status": "actif", | |
| 1013 | − "region": "Montréal" | |
| 1014 | − }, | |
| 1015 | − { | |
| 1016 | − "id": "siainnovationsinc", | |
| 1017 | − "name": "SIA Innovations", | |
| 1018 | − "url": "", | |
| 1019 | − "careers_url": "https://job-boards.greenhouse.io/siainnovationsinc", | |
| 1020 | − "sectors": [ | |
| 1021 | − "TI" | |
| 1022 | − ], | |
| 1023 | − "connector": "greenhouse", | |
| 1024 | − "status": "actif", | |
| 1025 | − "region": "Montréal" | |
| 1026 | − }, | |
| 1027 | − { | |
| 1028 | − "id": "gearboxquebec", | |
| 1029 | − "name": "Gearbox Studio Québec", | |
| 1030 | − "url": "", | |
| 1031 | − "careers_url": "https://job-boards.greenhouse.io/gearboxquebec", | |
| 1032 | − "sectors": [ | |
| 1033 | − "Jeux vidéo" | |
| 1034 | − ], | |
| 1035 | − "connector": "greenhouse", | |
| 1036 | − "status": "actif", | |
| 1037 | − "region": "Montréal, Québec" | |
| 1038 | − }, | |
| 1039 | − { | |
| 1040 | − "id": "broadsign", | |
| 1041 | − "name": "Broadsign", | |
| 1042 | − "url": "", | |
| 1043 | − "careers_url": "https://job-boards.greenhouse.io/broadsign", | |
| 1044 | − "sectors": [ | |
| 1045 | − "TI", | |
| 1046 | − "Affichage" | |
| 1047 | − ], | |
| 1048 | − "connector": "greenhouse", | |
| 1049 | − "status": "actif", | |
| 1050 | − "region": "Montréal" | |
| 1051 | − }, | |
| 1052 | − { | |
| 1053 | − "id": "lush", | |
| 1054 | − "name": "Lush Cosmétiques", | |
| 1055 | − "url": "", | |
| 1056 | − "careers_url": "https://job-boards.greenhouse.io/lush", | |
| 1057 | − "sectors": [ | |
| 1058 | − "Commerce de détail" | |
| 1059 | − ], | |
| 1060 | − "connector": "greenhouse", | |
| 1061 | − "status": "actif", | |
| 1062 | − "region": "Montréal, Québec" | |
| 1063 | − }, | |
| 1064 | − { | |
| 1065 | − "id": "onrunning", | |
| 1066 | − "name": "On Running", | |
| 1067 | − "url": "", | |
| 1068 | − "careers_url": "https://job-boards.greenhouse.io/onrunning", | |
| 1069 | − "sectors": [ | |
| 1070 | − "Commerce de détail", | |
| 1071 | − "Sport" | |
| 1072 | − ], | |
| 1073 | − "connector": "greenhouse", | |
| 1074 | − "status": "actif", | |
| 1075 | − "region": "Montréal" | |
| 1076 | − }, | |
| 1077 | − { | |
| 1078 | − "id": "vmlcanadaen", | |
| 1079 | − "name": "VML Canada", | |
| 1080 | − "url": "", | |
| 1081 | − "careers_url": "https://job-boards.greenhouse.io/vmlcanadaen", | |
| 1082 | − "sectors": [ | |
| 1083 | − "Publicité" | |
| 1084 | − ], | |
| 1085 | − "connector": "greenhouse", | |
| 1086 | − "status": "actif", | |
| 1087 | − "region": "Montréal" | |
| 1088 | − }, | |
| 1089 | − { | |
| 1090 | − "id": "ttcglobal", | |
| 1091 | − "name": "TTC Global", | |
| 1092 | − "url": "", | |
| 1093 | − "careers_url": "https://job-boards.greenhouse.io/ttcglobal", | |
| 1094 | − "sectors": [ | |
| 1095 | − "TI", | |
| 1096 | − "Conseil" | |
| 1097 | − ], | |
| 1098 | − "connector": "greenhouse", | |
| 1099 | − "status": "actif", | |
| 1100 | − "region": "Montréal" | |
| 1101 | − }, | |
| 1102 | − { | |
| 1103 | − "id": "national", | |
| 1104 | − "name": "NATIONAL", | |
| 1105 | − "url": "", | |
| 1106 | − "careers_url": "https://job-boards.greenhouse.io/national", | |
| 1107 | − "sectors": [ | |
| 1108 | − "Relations publiques" | |
| 1109 | − ], | |
| 1110 | − "connector": "greenhouse", | |
| 1111 | − "status": "actif", | |
| 1112 | − "region": "Montréal" | |
| 1113 | − }, | |
| 1114 | − { | |
| 1115 | − "id": "vaco", | |
| 1116 | − "name": "Vaco", | |
| 1117 | − "url": "", | |
| 1118 | − "careers_url": "https://job-boards.greenhouse.io/vaco", | |
| 1119 | − "sectors": [ | |
| 1120 | − "Placement", | |
| 1121 | − "Conseil" | |
| 1122 | − ], | |
| 1123 | − "connector": "greenhouse", | |
| 1124 | − "status": "actif", | |
| 1125 | − "region": "Montréal" | |
| 1126 | − }, | |
| 1127 | − { | |
| 1128 | − "id": "samsara", | |
| 1129 | − "name": "Samsara", | |
| 1130 | − "url": "", | |
| 1131 | − "careers_url": "https://job-boards.greenhouse.io/samsara", | |
| 1132 | − "sectors": [ | |
| 1133 | − "TI", | |
| 1134 | − "IoT" | |
| 1135 | − ], | |
| 1136 | − "connector": "greenhouse", | |
| 1137 | − "status": "actif", | |
| 1138 | − "region": "Montréal" | |
| 1139 | − }, | |
| 1140 | − { | |
| 1141 | − "id": "rodeofx", | |
| 1142 | − "name": "Rodeo FX", | |
| 1143 | − "url": "", | |
| 1144 | − "careers_url": "https://jobs.smartrecruiters.com/company/RodeoFX", | |
| 1145 | − "sectors": [ | |
| 1146 | − "Effets visuels", | |
| 1147 | − "Création" | |
| 1148 | − ], | |
| 1149 | − "connector": "smartrecruiters", | |
| 1150 | − "status": "actif", | |
| 1151 | − "region": "Montréal, Québec" | |
| 1152 | − }, | |
| 1153 | − { | |
| 1154 | − "id": "mattelinc", | |
| 1155 | − "name": "Mattel (Mega Bloks)", | |
| 1156 | − "url": "", | |
| 1157 | − "careers_url": "https://jobs.smartrecruiters.com/company/MattelInc", | |
| 1158 | − "sectors": [ | |
| 1159 | − "Jouets", | |
| 1160 | − "Manufacture" | |
| 1161 | − ], | |
| 1162 | − "connector": "smartrecruiters", | |
| 1163 | − "status": "actif", | |
| 1164 | − "region": "Montréal" | |
| 1165 | − }, | |
| 1166 | − { | |
| 1167 | − "id": "servicenow", | |
| 1168 | − "name": "ServiceNow", | |
| 1169 | − "url": "", | |
| 1170 | − "careers_url": "https://jobs.smartrecruiters.com/company/ServiceNow", | |
| 1171 | − "sectors": [ | |
| 1172 | − "TI", | |
| 1173 | − "SaaS" | |
| 1174 | − ], | |
| 1175 | − "connector": "smartrecruiters", | |
| 1176 | − "status": "actif", | |
| 1177 | − "region": "Montréal" | |
| 1178 | − }, | |
| 1179 | − { | |
| 1180 | − "id": "medfar", | |
| 1181 | − "name": "MEDFAR Solutions Cliniques", | |
| 1182 | − "url": "", | |
| 1183 | − "careers_url": "https://jobs.smartrecruiters.com/company/Medfar", | |
| 1184 | − "sectors": [ | |
| 1185 | − "TI", | |
| 1186 | − "Santé" | |
| 1187 | − ], | |
| 1188 | − "connector": "smartrecruiters", | |
| 1189 | − "status": "actif", | |
| 1190 | − "region": "Montréal" | |
| 1191 | − }, | |
| 1192 | − { | |
| 1193 | − "id": "astucemedia", | |
| 1194 | − "name": "Astucemedia", | |
| 1195 | − "url": "", | |
| 1196 | − "careers_url": "https://jobs.smartrecruiters.com/company/Astucemedia", | |
| 1197 | − "sectors": [ | |
| 1198 | − "Médias", | |
| 1199 | − "TI" | |
| 1200 | − ], | |
| 1201 | − "connector": "smartrecruiters", | |
| 1202 | − "status": "actif", | |
| 1203 | − "region": "Montréal" | |
| 1204 | − }, | |
| 1205 | − { | |
| 1206 | − "id": "emcocorporation", | |
| 1207 | − "name": "EMCO", | |
| 1208 | − "url": "", | |
| 1209 | − "careers_url": "https://jobs.smartrecruiters.com/company/EMCOCorporation", | |
| 1210 | − "sectors": [ | |
| 1211 | − "Distribution", | |
| 1212 | − "Construction" | |
| 1213 | − ], | |
| 1214 | − "connector": "smartrecruiters", | |
| 1215 | − "status": "actif", | |
| 1216 | − "region": "Montréal, Québec, Laval" | |
| 1217 | − }, | |
| 1218 | − { | |
| 1219 | − "id": "cfmontreal", | |
| 1220 | − "name": "CF Montréal", | |
| 1221 | − "url": "", | |
| 1222 | − "careers_url": "https://jobs.smartrecruiters.com/company/CFMontreal", | |
| 1223 | − "sectors": [ | |
| 1224 | − "Sport" | |
| 1225 | − ], | |
| 1226 | − "connector": "smartrecruiters", | |
| 1227 | − "status": "actif", | |
| 1228 | − "region": "Montréal" | |
| 1229 | − }, | |
| 1230 | − { | |
| 1231 | − "id": "reitmanscanadalteltd", | |
| 1232 | − "name": "Reitmans", | |
| 1233 | − "url": "", | |
| 1234 | − "careers_url": "https://jobs.smartrecruiters.com/company/ReitmansCanadaLteLtd", | |
| 1235 | − "sectors": [ | |
| 1236 | − "Commerce de détail", | |
| 1237 | − "Mode" | |
| 1238 | − ], | |
| 1239 | − "connector": "smartrecruiters", | |
| 1240 | − "status": "actif", | |
| 1241 | − "region": "Montréal, Québec, Laval" | |
| 1242 | − }, | |
| 1243 | − { | |
| 1244 | − "id": "transatat1", | |
| 1245 | − "name": "Transat A.T.", | |
| 1246 | − "url": "", | |
| 1247 | − "careers_url": "https://jobs.smartrecruiters.com/company/TransatAT1", | |
| 1248 | − "sectors": [ | |
| 1249 | − "Voyage", | |
| 1250 | − "Aérien" | |
| 1251 | − ], | |
| 1252 | − "connector": "smartrecruiters", | |
| 1253 | − "status": "actif", | |
| 1254 | − "region": "Montréal" | |
| 1255 | − }, | |
| 1256 | − { | |
| 1257 | − "id": "talan", | |
| 1258 | − "name": "Talan", | |
| 1259 | − "url": "", | |
| 1260 | − "careers_url": "https://jobs.smartrecruiters.com/company/Talan", | |
| 1261 | − "sectors": [ | |
| 1262 | − "TI", | |
| 1263 | − "Conseil" | |
| 1264 | − ], | |
| 1265 | − "connector": "smartrecruiters", | |
| 1266 | − "status": "actif", | |
| 1267 | − "region": "Montréal" | |
| 1268 | − }, | |
| 1269 | − { | |
| 1270 | − "id": "hoyoverse", | |
| 1271 | − "name": "HoYoverse", | |
| 1272 | − "url": "", | |
| 1273 | − "careers_url": "https://jobs.smartrecruiters.com/company/hoyoverse", | |
| 1274 | − "sectors": [ | |
| 1275 | − "Jeux vidéo" | |
| 1276 | − ], | |
| 1277 | − "connector": "smartrecruiters", | |
| 1278 | − "status": "actif", | |
| 1279 | − "region": "Montréal" | |
| 1280 | − }, | |
| 1281 | − { | |
| 1282 | − "id": "peoplecanfly", | |
| 1283 | − "name": "People Can Fly", | |
| 1284 | − "url": "", | |
| 1285 | − "careers_url": "https://jobs.smartrecruiters.com/company/PeopleCanFly", | |
| 1286 | − "sectors": [ | |
| 1287 | − "Jeux vidéo" | |
| 1288 | − ], | |
| 1289 | − "connector": "smartrecruiters", | |
| 1290 | − "status": "actif", | |
| 1291 | − "region": "Montréal" | |
| 1292 | − }, | |
| 1293 | − { | |
| 1294 | − "id": "techo_bloc", | |
| 1295 | − "name": "Techo-Bloc", | |
| 1296 | − "url": "", | |
| 1297 | − "careers_url": "https://jobs.smartrecruiters.com/company/techo-bloc", | |
| 1298 | − "sectors": [ | |
| 1299 | − "Manufacture", | |
| 1300 | − "Aménagement" | |
| 1301 | − ], | |
| 1302 | − "connector": "smartrecruiters", | |
| 1303 | − "status": "actif", | |
| 1304 | − "region": "Chambly, Saint-Hubert" | |
| 1305 | − }, | |
| 1306 | − { | |
| 1307 | − "id": "sparkgrid", | |
| 1308 | − "name": "Sparkgrid", | |
| 1309 | − "url": "", | |
| 1310 | − "careers_url": "https://jobs.smartrecruiters.com/company/Sparkgrid", | |
| 1311 | − "sectors": [ | |
| 1312 | − "TI" | |
| 1313 | − ], | |
| 1314 | − "connector": "smartrecruiters", | |
| 1315 | − "status": "actif", | |
| 1316 | − "region": "Montréal" | |
| 1317 | − }, | |
| 1318 | − { | |
| 1319 | − "id": "xplornet", | |
| 1320 | − "name": "Xplornet", | |
| 1321 | − "url": "", | |
| 1322 | − "careers_url": "https://jobs.smartrecruiters.com/company/XPLORNET", | |
| 1323 | − "sectors": [ | |
| 1324 | − "Télécoms" | |
| 1325 | − ], | |
| 1326 | − "connector": "smartrecruiters", | |
| 1327 | − "status": "actif", | |
| 1328 | − "region": "Montréal" | |
| 1329 | − }, | |
| 1330 | − { | |
| 1331 | − "id": "cima2", | |
| 1332 | − "name": "CIMA+", | |
| 1333 | − "url": "", | |
| 1334 | − "careers_url": "https://jobs.smartrecruiters.com/company/CIMA2", | |
| 1335 | − "sectors": [ | |
| 1336 | − "Ingénierie" | |
| 1337 | − ], | |
| 1338 | − "connector": "smartrecruiters", | |
| 1339 | − "status": "actif", | |
| 1340 | − "region": "Montréal, Québec, Laval" | |
| 1341 | − }, | |
| 1342 | − { | |
| 1343 | − "id": "venturemedia", | |
| 1344 | − "name": "Venture Media", | |
| 1345 | − "url": "", | |
| 1346 | − "careers_url": "https://jobs.smartrecruiters.com/company/VentureMedia", | |
| 1347 | − "sectors": [ | |
| 1348 | − "Médias" | |
| 1349 | − ], | |
| 1350 | − "connector": "smartrecruiters", | |
| 1351 | − "status": "actif", | |
| 1352 | − "region": "Montréal" | |
| 1353 | − }, | |
| 1354 | − { | |
| 1355 | − "id": "jexcelleinc", | |
| 1356 | − "name": "J'Excelle", | |
| 1357 | − "url": "", | |
| 1358 | − "careers_url": "https://jobs.smartrecruiters.com/company/JExcelleInc", | |
| 1359 | − "sectors": [ | |
| 1360 | − "Placement" | |
| 1361 | − ], | |
| 1362 | − "connector": "smartrecruiters", | |
| 1363 | − "status": "actif", | |
| 1364 | − "region": "Montréal, Laval, Gatineau" | |
| 1365 | − }, | |
| 1366 | − { | |
| 1367 | − "id": "circlek", | |
| 1368 | − "name": "Couche-Tard / Circle K", | |
| 1369 | − "url": "", | |
| 1370 | − "careers_url": "https://circlek.wd3.myworkdayjobs.com/CircleKStoreJobs", | |
| 1371 | − "sectors": [ | |
| 1372 | − "Commerce de détail" | |
| 1373 | − ], | |
| 1374 | − "connector": "workday", | |
| 1375 | − "status": "actif", | |
| 1376 | − "region": "Québec, Montréal, Drummondville" | |
| 1377 | − }, | |
| 1378 | − { | |
| 1379 | − "id": "td", | |
| 1380 | − "name": "Groupe Banque TD", | |
| 1381 | − "url": "", | |
| 1382 | − "careers_url": "https://td.wd3.myworkdayjobs.com/TD_Bank_Careers", | |
| 1383 | − "sectors": [ | |
| 1384 | − "Finance" | |
| 1385 | − ], | |
| 1386 | − "connector": "workday", | |
| 1387 | − "status": "actif", | |
| 1388 | − "region": "Montréal, Québec" | |
| 1389 | − }, | |
| 1390 | − { | |
| 1391 | − "id": "cibc", | |
| 1392 | − "name": "Banque CIBC", | |
| 1393 | − "url": "", | |
| 1394 | − "careers_url": "https://cibc.wd3.myworkdayjobs.com/search", | |
| 1395 | − "sectors": [ | |
| 1396 | − "Finance" | |
| 1397 | − ], | |
| 1398 | − "connector": "workday", | |
| 1399 | − "status": "actif", | |
| 1400 | − "region": "Montréal, Québec" | |
| 1401 | − }, | |
| 1402 | − { | |
| 1403 | − "id": "bmo", | |
| 1404 | − "name": "BMO Groupe financier", | |
| 1405 | − "url": "", | |
| 1406 | − "careers_url": "https://bmo.wd3.myworkdayjobs.com/External", | |
| 1407 | − "sectors": [ | |
| 1408 | − "Finance" | |
| 1409 | − ], | |
| 1410 | − "connector": "workday", | |
| 1411 | − "status": "actif", | |
| 1412 | − "region": "Montréal, Laval, Gatineau" | |
| 1413 | − }, | |
| 1414 | − { | |
| 1415 | − "id": "autodesk", | |
| 1416 | − "name": "Autodesk", | |
| 1417 | − "url": "", | |
| 1418 | − "careers_url": "https://autodesk.wd1.myworkdayjobs.com/Ext", | |
| 1419 | − "sectors": [ | |
| 1420 | − "TI", | |
| 1421 | − "Logiciel" | |
| 1422 | − ], | |
| 1423 | − "connector": "workday", | |
| 1424 | − "status": "actif", | |
| 1425 | − "region": "Montréal" | |
| 1426 | − }, | |
| 1427 | − { | |
| 1428 | − "id": "manulife", | |
| 1429 | − "name": "Manuvie", | |
| 1430 | − "url": "", | |
| 1431 | − "careers_url": "https://manulife.wd3.myworkdayjobs.com/MFCJH_Jobs", | |
| 1432 | − "sectors": [ | |
| 1433 | − "Assurance", | |
| 1434 | − "Finance" | |
| 1435 | − ], | |
| 1436 | − "connector": "workday", | |
| 1437 | − "status": "actif", | |
| 1438 | − "region": "Montréal" | |
| 1439 | − }, | |
| 1440 | − { | |
| 1441 | − "id": "cogeco", | |
| 1442 | − "name": "Cogeco", | |
| 1443 | − "url": "", | |
| 1444 | − "careers_url": "https://cogeco.wd3.myworkdayjobs.com/Cogeco_Careers", | |
| 1445 | − "sectors": [ | |
| 1446 | − "Télécoms" | |
| 1447 | − ], | |
| 1448 | − "connector": "workday", | |
| 1449 | − "status": "actif", | |
| 1450 | − "region": "Montréal, Trois-Rivières" | |
| 1451 | − }, | |
| 1452 | − { | |
| 1453 | − "id": "mckesson", | |
| 1454 | − "name": "McKesson Canada", | |
| 1455 | − "url": "", | |
| 1456 | − "careers_url": "https://mckesson.wd3.myworkdayjobs.com/External_Careers", | |
| 1457 | − "sectors": [ | |
| 1458 | − "Pharmaceutique", | |
| 1459 | − "Distribution" | |
| 1460 | − ], | |
| 1461 | − "connector": "workday", | |
| 1462 | − "status": "actif", | |
| 1463 | − "region": "Montréal" | |
| 1464 | − }, | |
| 1465 | − { | |
| 1466 | − "id": "sunlife", | |
| 1467 | − "name": "Sun Life", | |
| 1468 | − "url": "", | |
| 1469 | − "careers_url": "https://sunlife.wd3.myworkdayjobs.com/Experienced-Jobs", | |
| 1470 | − "sectors": [ | |
| 1471 | − "Assurance", | |
| 1472 | − "Finance" | |
| 1473 | − ], | |
| 1474 | − "connector": "workday", | |
| 1475 | − "status": "actif", | |
| 1476 | − "region": "Montréal, Québec" | |
| 1477 | − }, | |
| 1478 | − { | |
| 1479 | − "id": "gsk", | |
| 1480 | − "name": "GSK", | |
| 1481 | − "url": "", | |
| 1482 | − "careers_url": "https://gsk.wd5.myworkdayjobs.com/GSKCareers", | |
| 1483 | − "sectors": [ | |
| 1484 | − "Pharmaceutique" | |
| 1485 | − ], | |
| 1486 | − "connector": "workday", | |
| 1487 | − "status": "actif", | |
| 1488 | − "region": "Laval, Québec" | |
| 1489 | − }, | |
| 1490 | − { | |
| 1491 | − "id": "pfizer", | |
| 1492 | − "name": "Pfizer Canada", | |
| 1493 | − "url": "", | |
| 1494 | − "careers_url": "https://pfizer.wd1.myworkdayjobs.com/PfizerCareers", | |
| 1495 | − "sectors": [ | |
| 1496 | − "Pharmaceutique" | |
| 1497 | − ], | |
| 1498 | − "connector": "workday", | |
| 1499 | − "status": "actif", | |
| 1500 | − "region": "Kirkland" | |
| 1501 | − }, | |
| 1502 | − { | |
| 1503 | − "id": "vicpark", | |
| 1504 | − "name": "Victoria Park Medispa", | |
| 1505 | − "url": "", | |
| 1506 | − "careers_url": "https://vicpark.bamboohr.com/careers", | |
| 1507 | − "sectors": [ | |
| 1508 | − "Santé", | |
| 1509 | − "Esthétique" | |
| 1510 | − ], | |
| 1511 | − "connector": "bamboohr", | |
| 1512 | − "status": "actif", | |
| 1513 | − "region": "Montréal, Gatineau, Granby" | |
| 1514 | − }, | |
| 1515 | − { | |
| 1516 | − "id": "labelink", | |
| 1517 | − "name": "Produits Labelink", | |
| 1518 | − "url": "", | |
| 1519 | − "careers_url": "https://labelink.bamboohr.com/careers", | |
| 1520 | − "sectors": [ | |
| 1521 | − "Impression", | |
| 1522 | − "Manufacture" | |
| 1523 | − ], | |
| 1524 | − "connector": "bamboohr", | |
| 1525 | − "status": "actif", | |
| 1526 | − "region": "Montréal, Laval, Granby" | |
| 1527 | − }, | |
| 1528 | − { | |
| 1529 | − "id": "dcbel", | |
| 1530 | − "name": "dcbel", | |
| 1531 | − "url": "", | |
| 1532 | − "careers_url": "https://dcbel.bamboohr.com/careers", | |
| 1533 | − "sectors": [ | |
| 1534 | − "Énergie", | |
| 1535 | − "TI" | |
| 1536 | − ], | |
| 1537 | − "connector": "bamboohr", | |
| 1538 | − "status": "actif", | |
| 1539 | − "region": "Montréal" | |
| 1540 | − }, | |
| 1541 | − { | |
| 1542 | − "id": "explorance", | |
| 1543 | − "name": "Explorance", | |
| 1544 | − "url": "", | |
| 1545 | − "careers_url": "https://explorance.bamboohr.com/careers", | |
| 1546 | − "sectors": [ | |
| 1547 | − "TI", | |
| 1548 | − "SaaS" | |
| 1549 | − ], | |
| 1550 | − "connector": "bamboohr", | |
| 1551 | − "status": "actif", | |
| 1552 | − "region": "Montréal" | |
| 1553 | − }, | |
| 1554 | − { | |
| 1555 | − "id": "opalrt", | |
| 1556 | − "name": "OPAL-RT Technologies", | |
| 1557 | − "url": "", | |
| 1558 | − "careers_url": "https://opalrt.bamboohr.com/careers", | |
| 1559 | − "sectors": [ | |
| 1560 | − "TI", | |
| 1561 | − "Ingénierie" | |
| 1562 | − ], | |
| 1563 | − "connector": "bamboohr", | |
| 1564 | − "status": "actif", | |
| 1565 | − "region": "Montréal" | |
| 1566 | − }, | |
| 1567 | − { | |
| 1568 | − "id": "kpidigital", | |
| 1569 | − "name": "KPI Digital", | |
| 1570 | − "url": "", | |
| 1571 | − "careers_url": "https://kpidigital.bamboohr.com/careers", | |
| 1572 | − "sectors": [ | |
| 1573 | − "TI", | |
| 1574 | − "Données" | |
| 1575 | − ], | |
| 1576 | − "connector": "bamboohr", | |
| 1577 | − "status": "actif", | |
| 1578 | − "region": "Montréal" | |
| 1579 | − }, | |
| 1580 | − { | |
| 1581 | − "id": "triotech", | |
| 1582 | − "name": "Triotech", | |
| 1583 | − "url": "", | |
| 1584 | − "careers_url": "https://triotech.bamboohr.com/careers", | |
| 1585 | − "sectors": [ | |
| 1586 | − "Divertissement", | |
| 1587 | − "Manufacture" | |
| 1588 | − ], | |
| 1589 | − "connector": "bamboohr", | |
| 1590 | − "status": "actif", | |
| 1591 | − "region": "Joliette, Montréal" | |
| 1592 | − }, | |
| 1593 | − { | |
| 1594 | − "id": "robotiq", | |
| 1595 | − "name": "Robotiq", | |
| 1596 | − "url": "", | |
| 1597 | − "careers_url": "https://robotiq.bamboohr.com/careers", | |
| 1598 | − "sectors": [ | |
| 1599 | − "Robotique", | |
| 1600 | − "Manufacture" | |
| 1601 | − ], | |
| 1602 | − "connector": "bamboohr", | |
| 1603 | − "status": "actif", | |
| 1604 | − "region": "Lévis" | |
| 1605 | − }, | |
| 1606 | − { | |
| 1607 | − "id": "northwestrubber", | |
| 1608 | − "name": "North West Rubber", | |
| 1609 | − "url": "", | |
| 1610 | − "careers_url": "https://northwestrubber.bamboohr.com/careers", | |
| 1611 | − "sectors": [ | |
| 1612 | − "Manufacture" | |
| 1613 | − ], | |
| 1614 | − "connector": "bamboohr", | |
| 1615 | − "status": "actif", | |
| 1616 | − "region": "Sherbrooke" | |
| 1617 | − }, | |
| 1618 | − { | |
| 1619 | − "id": "nexapp", | |
| 1620 | − "name": "Nexapp", | |
| 1621 | − "url": "", | |
| 1622 | − "careers_url": "https://nexapp.bamboohr.com/careers", | |
| 1623 | − "sectors": [ | |
| 1624 | − "TI", | |
| 1625 | − "Web" | |
| 1626 | − ], | |
| 1627 | − "connector": "bamboohr", | |
| 1628 | − "status": "actif", | |
| 1629 | − "region": "Québec" | |
| 1630 | − }, | |
| 1631 | − { | |
| 1632 | − "id": "scalia", | |
| 1633 | − "name": "Propriétés Scalia", | |
| 1634 | − "url": "", | |
| 1635 | − "careers_url": "https://scalia.bamboohr.com/careers", | |
| 1636 | − "sectors": [ | |
| 1637 | − "Immobilier" | |
| 1638 | − ], | |
| 1639 | − "connector": "bamboohr", | |
| 1640 | − "status": "actif", | |
| 1641 | − "region": "Montréal, Anjou" | |
| 1642 | − }, | |
| 1643 | − { | |
| 1644 | − "id": "surmesur", | |
| 1645 | − "name": "Surmesur", | |
| 1646 | − "url": "", | |
| 1647 | − "careers_url": "https://surmesur.bamboohr.com/careers", | |
| 1648 | − "sectors": [ | |
| 1649 | − "Mode", | |
| 1650 | − "Commerce de détail" | |
| 1651 | − ], | |
| 1652 | − "connector": "bamboohr", | |
| 1653 | − "status": "actif", | |
| 1654 | − "region": "Québec, Laval" | |
| 1655 | − }, | |
| 1656 | − { | |
| 1657 | − "id": "portagecybertech", | |
| 1658 | − "name": "Portage CyberTech", | |
| 1659 | − "url": "", | |
| 1660 | − "careers_url": "https://portagecybertech.bamboohr.com/careers", | |
| 1661 | − "sectors": [ | |
| 1662 | − "TI", | |
| 1663 | − "Cybersécurité" | |
| 1664 | − ], | |
| 1665 | − "connector": "bamboohr", | |
| 1666 | − "status": "actif", | |
| 1667 | − "region": "Gatineau, Montréal" | |
| 1668 | − }, | |
| 1669 | − { | |
| 1670 | − "id": "toonboom", | |
| 1671 | − "name": "Toon Boom Animation", | |
| 1672 | − "url": "", | |
| 1673 | − "careers_url": "https://toonboom.bamboohr.com/careers", | |
| 1674 | − "sectors": [ | |
| 1675 | − "Animation", | |
| 1676 | − "TI" | |
| 1677 | − ], | |
| 1678 | − "connector": "bamboohr", | |
| 1679 | − "status": "actif", | |
| 1680 | − "region": "Montréal" | |
| 1681 | − }, | |
| 1682 | − { | |
| 1683 | − "id": "eosaircraftinc", | |
| 1684 | − "name": "EOS Aircraft", | |
| 1685 | − "url": "", | |
| 1686 | − "careers_url": "https://eosaircraftinc.bamboohr.com/careers", | |
| 1687 | − "sectors": [ | |
| 1688 | − "Aéronautique" | |
| 1689 | − ], | |
| 1690 | − "connector": "bamboohr", | |
| 1691 | − "status": "actif", | |
| 1692 | − "region": "Montréal" | |
| 1693 | − }, | |
| 1694 | − { | |
| 1695 | − "id": "rethinkcanada", | |
| 1696 | − "name": "Rethink", | |
| 1697 | − "url": "", | |
| 1698 | − "careers_url": "https://rethinkcanada.bamboohr.com/careers", | |
| 1699 | − "sectors": [ | |
| 1700 | − "Publicité" | |
| 1701 | − ], | |
| 1702 | − "connector": "bamboohr", | |
| 1703 | − "status": "actif", | |
| 1704 | − "region": "Montréal" | |
| 1705 | − }, | |
| 1706 | − { | |
| 1707 | − "id": "bc2", | |
| 1708 | − "name": "Groupe BC2", | |
| 1709 | − "url": "", | |
| 1710 | − "careers_url": "https://bc2.bamboohr.com/careers", | |
| 1711 | − "sectors": [ | |
| 1712 | − "Urbanisme", | |
| 1713 | − "Conseil" | |
| 1714 | − ], | |
| 1715 | − "connector": "bamboohr", | |
| 1716 | − "status": "actif", | |
| 1717 | − "region": "Montréal" | |
| 1718 | − }, | |
| 1719 | − { | |
| 1720 | − "id": "ott", | |
| 1721 | − "name": "OTT Financial", | |
| 1722 | − "url": "", | |
| 1723 | − "careers_url": "https://ott.bamboohr.com/careers", | |
| 1724 | − "sectors": [ | |
| 1725 | − "Finance" | |
| 1726 | − ], | |
| 1727 | − "connector": "bamboohr", | |
| 1728 | − "status": "actif", | |
| 1729 | − "region": "Montréal" | |
| 1730 | − }, | |
| 1731 | − { | |
| 1732 | − "id": "mitacs", | |
| 1733 | − "name": "Mitacs", | |
| 1734 | − "url": "", | |
| 1735 | − "careers_url": "https://mitacs.bamboohr.com/careers", | |
| 1736 | − "sectors": [ | |
| 1737 | − "Recherche", | |
| 1738 | − "OBNL" | |
| 1739 | − ], | |
| 1740 | − "connector": "bamboohr", | |
| 1741 | − "status": "actif", | |
| 1742 | − "region": "Montréal" | |
| 1743 | − }, | |
| 1744 | − { | |
| 1745 | − "id": "lightspeedhq", | |
| 1746 | − "name": "Lightspeed Commerce", | |
| 1747 | − "url": "", | |
| 1748 | − "careers_url": "https://jobs.ashbyhq.com/lightspeedhq", | |
| 1749 | − "sectors": [ | |
| 1750 | − "TI" | |
| 1751 | − ], | |
| 1752 | − "connector": "ashby", | |
| 1753 | − "status": "actif", | |
| 1754 | − "region": "Montréal" | |
| 1755 | − }, | |
| 1756 | − { | |
| 1757 | − "id": "bigbang", | |
| 1758 | − "name": "Big Bang", | |
| 1759 | − "url": "", | |
| 1760 | − "careers_url": "https://bigbang.bamboohr.com/careers", | |
| 1761 | − "sectors": [ | |
| 1762 | − "TI" | |
| 1763 | − ], | |
| 1764 | − "connector": "bamboohr", | |
| 1765 | − "status": "actif", | |
| 1766 | − "region": "Montréal" | |
| 1767 | − }, | |
| 1768 | − { | |
| 1769 | − "id": "broccolini", | |
| 1770 | − "name": "Broccolini", | |
| 1771 | − "url": "", | |
| 1772 | − "careers_url": "https://broccolini.bamboohr.com/careers", | |
| 1773 | − "sectors": [ | |
| 1774 | − "Construction", | |
| 1775 | − "Immobilier" | |
| 1776 | − ], | |
| 1777 | − "connector": "bamboohr", | |
| 1778 | − "status": "actif", | |
| 1779 | − "region": "Montréal" | |
| 1780 | − }, | |
| 1781 | − { | |
| 1782 | − "id": "cordonbleu", | |
| 1783 | − "name": "Aliments Ouimet-Cordon Bleu inc.", | |
| 1784 | − "url": "https://clarkcordonbleu.ca", | |
| 1785 | − "careers_url": "https://cordonbleu.bamboohr.com/careers", | |
| 1786 | − "sectors": [ | |
| 1787 | − "Production" | |
| 1788 | − ], | |
| 1789 | − "connector": "bamboohr", | |
| 1790 | − "status": "actif", | |
| 1791 | − "region": "" | |
| 1792 | − }, | |
| 1793 | − { | |
| 1794 | − "id": "devimco", | |
| 1795 | − "name": "Devimco Appartements", | |
| 1796 | − "url": "https://devimco.com", | |
| 1797 | − "careers_url": "https://devimco.bamboohr.com/careers", | |
| 1798 | − "sectors": [ | |
| 1799 | − "Immobilier" | |
| 1800 | − ], | |
| 1801 | − "connector": "bamboohr", | |
| 1802 | − "status": "actif", | |
| 1803 | − "region": "" | |
| 1804 | − }, | |
| 1805 | − { | |
| 1806 | − "id": "evlo", | |
| 1807 | − "name": "EVLO (Hydro-Québec)", | |
| 1808 | − "url": "", | |
| 1809 | − "careers_url": "https://evlo.bamboohr.com/careers", | |
| 1810 | − "sectors": [ | |
| 1811 | − "Énergie" | |
| 1812 | − ], | |
| 1813 | − "connector": "bamboohr", | |
| 1814 | − "status": "actif", | |
| 1815 | − "region": "Varennes" | |
| 1816 | − }, | |
| 1817 | − { | |
| 1818 | − "id": "fenetresconcept", | |
| 1819 | − "name": "Fenêtres Concept", | |
| 1820 | − "url": "https://fenetresconcept.com", | |
| 1821 | − "careers_url": "https://fenetresconcept.bamboohr.com/careers", | |
| 1822 | − "sectors": [ | |
| 1823 | − "Production" | |
| 1824 | − ], | |
| 1825 | − "connector": "bamboohr", | |
| 1826 | − "status": "actif", | |
| 1827 | − "region": "" | |
| 1828 | − }, | |
| 1829 | − { | |
| 1830 | − "id": "flare", | |
| 1831 | − "name": "Flare (cybersécurité)", | |
| 1832 | − "url": "", | |
| 1833 | − "careers_url": "https://flare.bamboohr.com/careers", | |
| 1834 | − "sectors": [ | |
| 1835 | − "TI" | |
| 1836 | − ], | |
| 1837 | − "connector": "bamboohr", | |
| 1838 | − "status": "actif", | |
| 1839 | − "region": "Montréal" | |
| 1840 | − }, | |
| 1841 | − { | |
| 1842 | − "id": "korem", | |
| 1843 | − "name": "Korem", | |
| 1844 | − "url": "", | |
| 1845 | − "careers_url": "https://korem.bamboohr.com/careers", | |
| 1846 | − "sectors": [ | |
| 1847 | − "TI" | |
| 1848 | − ], | |
| 1849 | − "connector": "bamboohr", | |
| 1850 | − "status": "actif", | |
| 1851 | − "region": "Québec" | |
| 1852 | − }, | |
| 1853 | − { | |
| 1854 | − "id": "logisco", | |
| 1855 | − "name": "Logisco", | |
| 1856 | − "url": "https://logisco.com", | |
| 1857 | − "careers_url": "https://logisco.bamboohr.com/careers", | |
| 1858 | − "sectors": [ | |
| 1859 | − "Immobilier" | |
| 1860 | − ], | |
| 1861 | − "connector": "bamboohr", | |
| 1862 | − "status": "actif", | |
| 1863 | − "region": "" | |
| 1864 | − }, | |
| 1865 | − { | |
| 1866 | − "id": "alayacare", | |
| 1867 | − "name": "AlayaCare", | |
| 1868 | − "url": "https://www.alayacare.com", | |
| 1869 | − "careers_url": "https://job-boards.greenhouse.io/alayacare", | |
| 1870 | − "sectors": [ | |
| 1871 | − "TI", | |
| 1872 | − "Santé" | |
| 1873 | − ], | |
| 1874 | − "connector": "greenhouse", | |
| 1875 | − "status": "actif", | |
| 1876 | − "region": "Montréal" | |
| 1877 | − }, | |
| 1878 | − { | |
| 1879 | − "id": "gurussolutions", | |
| 1880 | − "name": "GURUS Solutions", | |
| 1881 | − "url": "", | |
| 1882 | − "careers_url": "https://job-boards.greenhouse.io/gurussolutions", | |
| 1883 | − "sectors": [ | |
| 1884 | − "TI" | |
| 1885 | − ], | |
| 1886 | − "connector": "greenhouse", | |
| 1887 | − "status": "actif", | |
| 1888 | − "region": "Montréal" | |
| 1889 | − }, | |
| 1890 | − { | |
| 1891 | − "id": "levio", | |
| 1892 | − "name": "Levio", | |
| 1893 | − "url": "", | |
| 1894 | − "careers_url": "https://job-boards.greenhouse.io/levio", | |
| 1895 | − "sectors": [ | |
| 1896 | − "TI" | |
| 1897 | − ], | |
| 1898 | − "connector": "greenhouse", | |
| 1899 | − "status": "actif", | |
| 1900 | − "region": "Québec, Montréal" | |
| 1901 | − }, | |
| 1902 | − { | |
| 1903 | − "id": "sidlee", | |
| 1904 | − "name": "Sid Lee", | |
| 1905 | − "url": "", | |
| 1906 | − "careers_url": "https://job-boards.greenhouse.io/sidlee", | |
| 1907 | − "sectors": [ | |
| 1908 | − "Marketing", | |
| 1909 | − "Création" | |
| 1910 | − ], | |
| 1911 | − "connector": "greenhouse", | |
| 1912 | − "status": "actif", | |
| 1913 | − "region": "Montréal" | |
| 1914 | − }, | |
| 1915 | − { | |
| 1916 | − "id": "valtech", | |
| 1917 | − "name": "Valtech", | |
| 1918 | − "url": "", | |
| 1919 | − "careers_url": "https://job-boards.greenhouse.io/valtech", | |
| 1920 | − "sectors": [ | |
| 1921 | − "TI" | |
| 1922 | − ], | |
| 1923 | − "connector": "greenhouse", | |
| 1924 | − "status": "actif", | |
| 1925 | − "region": "Montréal" | |
| 1926 | − }, | |
| 1927 | − { | |
| 1928 | − "id": "vooban", | |
| 1929 | − "name": "Vooban", | |
| 1930 | − "url": "", | |
| 1931 | − "careers_url": "https://job-boards.greenhouse.io/vooban", | |
| 1932 | − "sectors": [ | |
| 1933 | − "TI" | |
| 1934 | − ], | |
| 1935 | − "connector": "greenhouse", | |
| 1936 | − "status": "actif", | |
| 1937 | − "region": "Québec" | |
| 1938 | − }, | |
| 1939 | − { | |
| 1940 | − "id": "bhvr", | |
| 1941 | − "name": "Behaviour Interactif", | |
| 1942 | − "url": "", | |
| 1943 | − "careers_url": "https://jobs.lever.co/bhvr", | |
| 1944 | − "sectors": [ | |
| 1945 | − "Jeux vidéo" | |
| 1946 | − ], | |
| 1947 | − "connector": "lever", | |
| 1948 | − "status": "actif", | |
| 1949 | − "region": "Montréal" | |
| 1950 | − }, | |
| 1951 | − { | |
| 1952 | − "id": "cirquedusoleil", | |
| 1953 | − "name": "Cirque du Soleil", | |
| 1954 | − "url": "https://www.cirquedusoleil.com", | |
| 1955 | − "careers_url": "https://jobs.lever.co/cirquedusoleil", | |
| 1956 | − "sectors": [ | |
| 1957 | − "Divertissement", | |
| 1958 | − "Création" | |
| 1959 | − ], | |
| 1960 | − "connector": "lever", | |
| 1961 | − "status": "actif", | |
| 1962 | − "region": "Montréal" | |
| 1963 | − }, | |
| 1964 | − { | |
| 1965 | − "id": "mirego", | |
| 1966 | − "name": "Mirego", | |
| 1967 | − "url": "", | |
| 1968 | − "careers_url": "https://jobs.lever.co/mirego", | |
| 1969 | − "sectors": [ | |
| 1970 | − "TI" | |
| 1971 | − ], | |
| 1972 | − "connector": "lever", | |
| 1973 | − "status": "actif", | |
| 1974 | − "region": "Québec, Montréal" | |
| 1975 | − }, | |
| 1976 | − { | |
| 1977 | − "id": "spiria", | |
| 1978 | − "name": "Spiria", | |
| 1979 | − "url": "", | |
| 1980 | − "careers_url": "https://jobs.lever.co/spiria", | |
| 1981 | − "sectors": [ | |
| 1982 | − "TI" | |
| 1983 | − ], | |
| 1984 | − "connector": "lever", | |
| 1985 | − "status": "actif", | |
| 1986 | − "region": "Montréal, Gatineau" | |
| 1987 | − }, | |
| 1988 | − { | |
| 1989 | − "id": "amilia", | |
| 1990 | − "name": "Amilia", | |
| 1991 | − "url": "", | |
| 1992 | − "careers_url": "https://amilia.recruitee.com", | |
| 1993 | − "sectors": [ | |
| 1994 | − "TI" | |
| 1995 | − ], | |
| 1996 | − "connector": "recruitee", | |
| 1997 | − "status": "actif", | |
| 1998 | − "region": "Montréal" | |
| 1999 | − }, | |
| 2000 | − { | |
| 2001 | − "id": "gameloft", | |
| 2002 | − "name": "Gameloft", | |
| 2003 | − "url": "https://www.gameloft.com", | |
| 2004 | − "careers_url": "https://jobs.smartrecruiters.com/company/gameloft", | |
| 2005 | − "sectors": [ | |
| 2006 | − "Jeux vidéo" | |
| 2007 | − ], | |
| 2008 | − "connector": "smartrecruiters", | |
| 2009 | − "status": "actif", | |
| 2010 | − "region": "Montréal" | |
| 2011 | − }, | |
| 2012 | − { | |
| 2013 | − "id": "gologic", | |
| 2014 | − "name": "GoLogic", | |
| 2015 | − "url": "", | |
| 2016 | − "careers_url": "https://jobs.smartrecruiters.com/company/gologic", | |
| 2017 | − "sectors": [ | |
| 2018 | − "TI" | |
| 2019 | − ], | |
| 2020 | − "connector": "smartrecruiters", | |
| 2021 | − "status": "actif", | |
| 2022 | − "region": "Montréal" | |
| 2023 | − }, | |
| 2024 | − { | |
| 2025 | − "id": "groupecanam", | |
| 2026 | − "name": "Groupe Canam", | |
| 2027 | − "url": "", | |
| 2028 | − "careers_url": "https://jobs.smartrecruiters.com/company/groupecanam", | |
| 2029 | − "sectors": [ | |
| 2030 | − "Production", | |
| 2031 | − "Construction" | |
| 2032 | − ], | |
| 2033 | − "connector": "smartrecruiters", | |
| 2034 | − "status": "actif", | |
| 2035 | − "region": "Saint-Georges" | |
| 2036 | − }, | |
| 2037 | − { | |
| 2038 | − "id": "playmind", | |
| 2039 | − "name": "Playmind", | |
| 2040 | − "url": "", | |
| 2041 | − "careers_url": "https://jobs.smartrecruiters.com/company/playmind", | |
| 2042 | − "sectors": [ | |
| 2043 | − "Jeux vidéo" | |
| 2044 | − ], | |
| 2045 | − "connector": "smartrecruiters", | |
| 2046 | − "status": "actif", | |
| 2047 | − "region": "Montréal" | |
| 2048 | − }, | |
| 2049 | − { | |
| 2050 | − "id": "qsl", | |
| 2051 | − "name": "QSL", | |
| 2052 | − "url": "https://qsl.com", | |
| 2053 | − "careers_url": "https://jobs.smartrecruiters.com/company/qsl", | |
| 2054 | − "sectors": [], | |
| 2055 | − "connector": "smartrecruiters", | |
| 2056 | − "status": "actif", | |
| 2057 | − "region": "Québec" | |
| 2058 | − }, | |
| 2059 | − { | |
| 2060 | − "id": "stelpro", | |
| 2061 | − "name": "Stelpro", | |
| 2062 | − "url": "", | |
| 2063 | − "careers_url": "https://jobs.smartrecruiters.com/company/stelpro", | |
| 2064 | − "sectors": [ | |
| 2065 | − "Production" | |
| 2066 | − ], | |
| 2067 | − "connector": "smartrecruiters", | |
| 2068 | − "status": "actif", | |
| 2069 | − "region": "Saint-Bruno-de-Montarville" | |
| 2070 | − }, | |
| 2071 | − { | |
| 2072 | − "id": "talsom", | |
| 2073 | − "name": "Talsom", | |
| 2074 | − "url": "", | |
| 2075 | − "careers_url": "https://jobs.smartrecruiters.com/company/talsom", | |
| 2076 | − "sectors": [ | |
| 2077 | − "TI" | |
| 2078 | − ], | |
| 2079 | − "connector": "smartrecruiters", | |
| 2080 | − "status": "actif", | |
| 2081 | − "region": "Montréal" | |
| 2082 | − }, | |
| 2083 | − { | |
| 2084 | − "id": "videotron", | |
| 2085 | − "name": "Vidéotron", | |
| 2086 | − "url": "https://videotron.com", | |
| 2087 | − "careers_url": "https://jobs.smartrecruiters.com/company/videotron", | |
| 2088 | − "sectors": [], | |
| 2089 | − "connector": "smartrecruiters", | |
| 2090 | − "status": "actif", | |
| 2091 | − "region": "Montréal" | |
| 2092 | − }, | |
| 2093 | − { | |
| 2094 | − "id": "vosker", | |
| 2095 | − "name": "Vosker", | |
| 2096 | − "url": "", | |
| 2097 | − "careers_url": "https://jobs.smartrecruiters.com/company/vosker", | |
| 2098 | − "sectors": [ | |
| 2099 | − "TI", | |
| 2100 | − "Production" | |
| 2101 | − ], | |
| 2102 | − "connector": "smartrecruiters", | |
| 2103 | − "status": "actif", | |
| 2104 | − "region": "Victoriaville" | |
| 2105 | − }, | |
| 2106 | − { | |
| 2107 | − "id": "genetec_inc", | |
| 2108 | − "name": "Genetec", | |
| 2109 | − "url": "https://genetec.com", | |
| 2110 | − "careers_url": "https://apply.workable.com/genetec-inc", | |
| 2111 | − "sectors": [], | |
| 2112 | − "connector": "workable", | |
| 2113 | − "status": "actif", | |
| 2114 | − "region": "Montréal" | |
| 2115 | − }, | |
| 2116 | − { | |
| 2117 | − "id": "mila_2", | |
| 2118 | − "name": "Mila — Institut québécois d'IA", | |
| 2119 | − "url": "https://mila.quebec", | |
| 2120 | − "careers_url": "https://apply.workable.com/mila-2", | |
| 2121 | − "sectors": [], | |
| 2122 | − "connector": "workable", | |
| 2123 | − "status": "actif", | |
| 2124 | − "region": "Montréal" | |
| 2125 | − }, | |
| 2126 | − { | |
| 2127 | − "id": "airbus", | |
| 2128 | − "name": "Airbus Canada", | |
| 2129 | − "url": "https://airbus.com", | |
| 2130 | − "careers_url": "https://ag.wd3.myworkdayjobs.com/Airbus", | |
| 2131 | − "sectors": [], | |
| 2132 | − "connector": "workday", | |
| 2133 | − "status": "actif", | |
| 2134 | − "region": "Mirabel" | |
| 2135 | − }, | |
| 2136 | − { | |
| 2137 | − "id": "alcoa", | |
| 2138 | − "name": "Alcoa Canada", | |
| 2139 | − "url": "https://alcoa.com", | |
| 2140 | − "careers_url": "https://alcoa.wd5.myworkdayjobs.com/Careers", | |
| 2141 | − "sectors": [], | |
| 2142 | − "connector": "workday", | |
| 2143 | − "status": "actif", | |
| 2144 | − "region": "Baie-Comeau" | |
| 2145 | − }, | |
| 2146 | − { | |
| 2147 | − "id": "altasciences", | |
| 2148 | − "name": "Altasciences", | |
| 2149 | − "url": "", | |
| 2150 | − "careers_url": "https://altasciences.wd1.myworkdayjobs.com/Careers", | |
| 2151 | − "sectors": [ | |
| 2152 | − "Pharmaceutique" | |
| 2153 | − ], | |
| 2154 | − "connector": "workday", | |
| 2155 | − "status": "actif", | |
| 2156 | − "region": "Laval" | |
| 2157 | − }, | |
| 2158 | − { | |
| 2159 | − "id": "bdc", | |
| 2160 | − "name": "BDC", | |
| 2161 | − "url": "", | |
| 2162 | − "careers_url": "https://bdc.wd10.myworkdayjobs.com/bdc_careers", | |
| 2163 | − "sectors": [ | |
| 2164 | − "Finance" | |
| 2165 | − ], | |
| 2166 | − "connector": "workday", | |
| 2167 | − "status": "actif", | |
| 2168 | − "region": "Montréal" | |
| 2169 | − }, | |
| 2170 | − { | |
| 2171 | − "id": "beneva", | |
| 2172 | − "name": "Beneva", | |
| 2173 | − "url": "https://beneva.ca", | |
| 2174 | − "careers_url": "https://beneva.wd10.myworkdayjobs.com/BenevaSite_carriere", | |
| 2175 | − "sectors": [], | |
| 2176 | − "connector": "workday", | |
| 2177 | − "status": "actif", | |
| 2178 | − "region": "Québec" | |
| 2179 | − }, | |
| 2180 | − { | |
| 2181 | − "id": "caaquebec", | |
| 2182 | − "name": "CAA-Québec", | |
| 2183 | − "url": "https://caaquebec.com", | |
| 2184 | − "careers_url": "https://caaquebec.wd3.myworkdayjobs.com/CarrieresCAA-Quebec", | |
| 2185 | − "sectors": [], | |
| 2186 | − "connector": "workday", | |
| 2187 | − "status": "actif", | |
| 2188 | − "region": "Québec" | |
| 2189 | − }, | |
| 2190 | − { | |
| 2191 | − "id": "canadiantirecorporation", | |
| 2192 | − "name": "Canadian Tire", | |
| 2193 | − "url": "https://canadiantire.ca", | |
| 2194 | − "careers_url": "https://canadiantirecorporation.wd3.myworkdayjobs.com/Enterprise_External_Careers_Site", | |
| 2195 | − "sectors": [], | |
| 2196 | − "connector": "workday", | |
| 2197 | − "status": "actif", | |
| 2198 | − "region": "Montréal" | |
| 2199 | − }, | |
| 2200 | − { | |
| 2201 | − "id": "cdpq", | |
| 2202 | − "name": "CDPQ — Caisse de dépôt et placement du Québec", | |
| 2203 | − "url": "https://cdpq.com", | |
| 2204 | − "careers_url": "https://cdpq.wd10.myworkdayjobs.com/CDPQ", | |
| 2205 | − "sectors": [], | |
| 2206 | − "connector": "workday", | |
| 2207 | − "status": "actif", | |
| 2208 | − "region": "Montréal" | |
| 2209 | − }, | |
| 2210 | − { | |
| 2211 | − "id": "churchdwight", | |
| 2212 | − "name": "Church & Dwight Canada", | |
| 2213 | − "url": "https://churchdwight.ca", | |
| 2214 | − "careers_url": "https://churchdwight.wd1.myworkdayjobs.com/chdcanadacareers", | |
| 2215 | − "sectors": [ | |
| 2216 | − "Production" | |
| 2217 | − ], | |
| 2218 | − "connector": "workday", | |
| 2219 | − "status": "actif", | |
| 2220 | − "region": "" | |
| 2221 | − }, | |
| 2222 | − { | |
| 2223 | − "id": "exfo", | |
| 2224 | − "name": "EXFO", | |
| 2225 | − "url": "", | |
| 2226 | − "careers_url": "https://exfo.wd10.myworkdayjobs.com/exfo_careers", | |
| 2227 | − "sectors": [ | |
| 2228 | − "TI", | |
| 2229 | − "Télécommunications" | |
| 2230 | − ], | |
| 2231 | − "connector": "workday", | |
| 2232 | − "status": "actif", | |
| 2233 | − "region": "Québec" | |
| 2234 | − }, | |
| 2235 | − { | |
| 2236 | − "id": "fondsftq", | |
| 2237 | − "name": "Fonds de solidarité FTQ", | |
| 2238 | − "url": "https://fondsftq.com", | |
| 2239 | − "careers_url": "https://fondsftq.wd10.myworkdayjobs.com/sitecarriere_externe", | |
| 2240 | − "sectors": [], | |
| 2241 | − "connector": "workday", | |
| 2242 | − "status": "actif", | |
| 2243 | − "region": "Montréal" | |
| 2244 | − }, | |
| 2245 | − { | |
| 2246 | − "id": "intactfc", | |
| 2247 | − "name": "Intact Corporation financière", | |
| 2248 | − "url": "", | |
| 2249 | − "careers_url": "https://intactfc.wd3.myworkdayjobs.com/Intactfc", | |
| 2250 | − "sectors": [ | |
| 2251 | − "Assurance" | |
| 2252 | − ], | |
| 2253 | − "connector": "workday", | |
| 2254 | − "status": "actif", | |
| 2255 | − "region": "Montréal" | |
| 2256 | − }, | |
| 2257 | − { | |
| 2258 | − "id": "investpsp", | |
| 2259 | − "name": "Investissements PSP", | |
| 2260 | − "url": "https://investpsp.com", | |
| 2261 | − "careers_url": "https://investpsp.wd3.myworkdayjobs.com/psp_careers", | |
| 2262 | − "sectors": [], | |
| 2263 | − "connector": "workday", | |
| 2264 | − "status": "actif", | |
| 2265 | − "region": "Montréal" | |
| 2266 | − }, | |
| 2267 | − { | |
| 2268 | − "id": "investquebec", | |
| 2269 | − "name": "Investissement Québec", | |
| 2270 | − "url": "https://investquebec.com", | |
| 2271 | − "careers_url": "https://investquebec.wd10.myworkdayjobs.com/Ext", | |
| 2272 | − "sectors": [], | |
| 2273 | − "connector": "workday", | |
| 2274 | − "status": "actif", | |
| 2275 | − "region": "Québec" | |
| 2276 | − }, | |
| 2277 | − { | |
| 2278 | − "id": "plusgrade", | |
| 2279 | − "name": "Plusgrade", | |
| 2280 | − "url": "https://plusgrade.com", | |
| 2281 | − "careers_url": "https://plusgrade.wd10.myworkdayjobs.com/Plusgrade_External_Site", | |
| 2282 | − "sectors": [], | |
| 2283 | − "connector": "workday", | |
| 2284 | − "status": "actif", | |
| 2285 | − "region": "Montréal" | |
| 2286 | − }, | |
| 2287 | − { | |
| 2288 | − "id": "promutuel", | |
| 2289 | − "name": "Promutuel Assurance", | |
| 2290 | − "url": "https://promutuelassurance.ca", | |
| 2291 | − "careers_url": "https://promutuel.wd3.myworkdayjobs.com/promutuel_carrieres", | |
| 2292 | − "sectors": [], | |
| 2293 | − "connector": "workday", | |
| 2294 | − "status": "actif", | |
| 2295 | − "region": "Québec" | |
| 2296 | − }, | |
| 2297 | − { | |
| 2298 | − "id": "rcgt", | |
| 2299 | − "name": "Raymond Chabot Grant Thornton", | |
| 2300 | − "url": "https://rcgt.com", | |
| 2301 | − "careers_url": "https://rcgt.wd3.myworkdayjobs.com/External", | |
| 2302 | − "sectors": [], | |
| 2303 | − "connector": "workday", | |
| 2304 | − "status": "actif", | |
| 2305 | − "region": "Montréal" | |
| 2306 | − }, | |
| 2307 | − { | |
| 2308 | − "id": "riotinto", | |
| 2309 | − "name": "Rio Tinto", | |
| 2310 | − "url": "", | |
| 2311 | − "careers_url": "https://riotinto.wd3.myworkdayjobs.com/riotinto_careers", | |
| 2312 | − "sectors": [ | |
| 2313 | − "Mines" | |
| 2314 | − ], | |
| 2315 | − "connector": "workday", | |
| 2316 | − "status": "actif", | |
| 2317 | − "region": "Saguenay, Montréal" | |
| 2318 | − }, | |
| 2319 | − { | |
| 2320 | − "id": "suncor", | |
| 2321 | − "name": "Suncor Énergie", | |
| 2322 | − "url": "https://suncor.com", | |
| 2323 | − "careers_url": "https://suncor.wd1.myworkdayjobs.com/Suncor_External", | |
| 2324 | − "sectors": [], | |
| 2325 | − "connector": "workday", | |
| 2326 | − "status": "actif", | |
| 2327 | − "region": "Montréal" | |
| 2328 | − }, | |
| 2329 | − { | |
| 2330 | − "id": "walmart", | |
| 2331 | − "name": "Walmart Canada", | |
| 2332 | − "url": "https://walmart.ca", | |
| 2333 | − "careers_url": "https://walmart.wd504.myworkdayjobs.com/WalmartExternal", | |
| 2334 | − "sectors": [], | |
| 2335 | − "connector": "workday", | |
| 2336 | − "status": "actif", | |
| 2337 | − "region": "Montréal" | |
| 2338 | − }, | |
| 2339 | − { | |
| 2340 | − "id": "agnico_eagle", | |
| 2341 | − "name": "Agnico Eagle Mines", | |
| 2342 | − "url": "https://www.agnicoeagle.com", | |
| 2343 | − "careers_url": "https://agnicoeagle.taleo.net/careersection/2/jobsearch.ftl?lang=fr", | |
| 2344 | − "sectors": [ | |
| 2345 | − "Mines", | |
| 2346 | − "Ingénierie", | |
| 2347 | − "Métiers spécialisés" | |
| 2348 | − ], | |
| 2349 | − "connector": "taleo", | |
| 2350 | − "status": "actif", | |
| 2351 | − "region": "Abitibi-Témiscamingue, Malartic, Rouyn-Noranda" | |
| 2352 | − }, | |
| 2353 | − { | |
| 2354 | − "id": "ciusss_est_montreal", | |
| 2355 | − "name": "CIUSSS de l'Est-de-l'Île-de-Montréal", | |
| 2356 | − "url": "https://ciusss-estmtl.gouv.qc.ca", | |
| 2357 | − "careers_url": "https://ciusssemtl.taleo.net/careersection/cemtl/jobsearch.ftl?lang=fr", | |
| 2358 | − "sectors": [ | |
| 2359 | − "Santé", | |
| 2360 | − "Services sociaux", | |
| 2361 | − "Secteur public" | |
| 2362 | − ], | |
| 2363 | − "connector": "taleo", | |
| 2364 | − "status": "actif", | |
| 2365 | − "region": "Montréal" | |
| 2366 | − }, | |
| 2367 | − { | |
| 2368 | − "id": "bayshore", | |
| 2369 | − "name": "Bayshore HealthCare", | |
| 2370 | − "url": "https://www.bayshore.ca", | |
| 2371 | − "careers_url": "https://bayshore.taleo.net/careersection/bs_ex/jobsearch.ftl?lang=fr", | |
| 2372 | − "sectors": [ | |
| 2373 | − "Santé", | |
| 2374 | − "Soins à domicile" | |
| 2375 | − ], | |
| 2376 | − "connector": "taleo", | |
| 2377 | − "status": "actif", | |
| 2378 | − "region": "Montréal, Québec" | |
| 2379 | − }, | |
| 2380 | − { | |
| 2381 | − "id": "bell_textron", | |
| 2382 | − "name": "Bell Textron Canada", | |
| 2383 | − "url": "https://www.bellflight.com", | |
| 2384 | − "careers_url": "https://textron.taleo.net/careersection/bell/jobsearch.ftl?lang=fr", | |
| 2385 | − "sectors": [ | |
| 2386 | − "Aéronautique", | |
| 2387 | − "Fabrication" | |
| 2388 | − ], | |
| 2389 | − "connector": "taleo", | |
| 2390 | − "status": "actif", | |
| 2391 | − "region": "Mirabel" | |
| 2392 | − }, | |
| 2393 | − { | |
| 2394 | − "id": "sante_montreal", | |
| 2395 | − "name": "Santé Québec — Montréal", | |
| 2396 | − "url": "https://santemontreal.ca", | |
| 2397 | − "careers_url": "https://emplois.santemontreal.qc.ca/CL3/xweb/xweb.asp?clid=54327&page=joblisting&lang=2", | |
| 2398 | − "sectors": [ | |
| 2399 | − "Santé", | |
| 2400 | − "Services sociaux", | |
| 2401 | − "Secteur public" | |
| 2402 | − ], | |
| 2403 | − "connector": "njoyn", | |
| 2404 | − "status": "actif", | |
| 2405 | − "region": "Montréal" | |
| 2406 | − }, | |
| 2407 | − { | |
| 2408 | − "id": "ville_gatineau", | |
| 2409 | − "name": "Ville de Gatineau", | |
| 2410 | − "url": "https://www.gatineau.ca", | |
| 2411 | − "careers_url": "https://gatineau.njoyn.com/CL2/xweb/xweb.asp?clid=27082&page=joblisting&lang=2", | |
| 2412 | − "sectors": [ | |
| 2413 | − "Municipal", | |
| 2414 | − "Secteur public" | |
| 2415 | − ], | |
| 2416 | − "connector": "njoyn", | |
| 2417 | − "status": "actif", | |
| 2418 | − "region": "Gatineau" | |
| 2419 | − }, | |
| 2420 | − { | |
| 2421 | − "id": "ville_terrebonne", | |
| 2422 | − "name": "Ville de Terrebonne", | |
| 2423 | − "url": "https://www.ville.terrebonne.qc.ca", | |
| 2424 | − "careers_url": "https://clients.njoyn.com/cl4/xweb/xweb.asp?clid=71764&page=joblisting&lang=2", | |
| 2425 | − "sectors": [ | |
| 2426 | − "Municipal", | |
| 2427 | − "Secteur public" | |
| 2428 | − ], | |
| 2429 | − "connector": "njoyn", | |
| 2430 | − "status": "actif", | |
| 2431 | − "region": "Terrebonne" | |
| 2432 | − }, | |
| 2433 | − { | |
| 2434 | − "id": "stl_laval", | |
| 2435 | − "name": "Société de transport de Laval", | |
| 2436 | − "url": "https://www.stlaval.ca", | |
| 2437 | − "careers_url": "https://lavaltransit.njoyn.com/CL2/xweb/xweb.asp?clid=60406&page=joblisting&lang=2", | |
| 2438 | − "sectors": [ | |
| 2439 | − "Transport collectif", | |
| 2440 | − "Secteur public" | |
| 2441 | − ], | |
| 2442 | − "connector": "njoyn", | |
| 2443 | − "status": "actif", | |
| 2444 | − "region": "Laval" | |
| 2445 | − }, | |
| 2446 | − { | |
| 2447 | − "id": "rtc_quebec", | |
| 2448 | − "name": "Réseau de transport de la Capitale", | |
| 2449 | − "url": "https://www.rtcquebec.ca", | |
| 2450 | − "careers_url": "https://rtc.njoyn.com/CGI/xweb/xweb.asp?clid=23009&page=joblisting&lang=2", | |
| 2451 | − "sectors": [ | |
| 2452 | − "Transport collectif", | |
| 2453 | − "Secteur public" | |
| 2454 | − ], | |
| 2455 | − "connector": "njoyn", | |
| 2456 | − "status": "actif", | |
| 2457 | − "region": "Québec" | |
| 2458 | − }, | |
| 2459 | − { | |
| 2460 | − "id": "messer_canada", | |
| 2461 | − "name": "Messer Canada", | |
| 2462 | − "url": "https://www.messer-ca.com", | |
| 2463 | − "careers_url": "https://recruiting.ultipro.com/MES1005MESR/JobBoard/dbd63926-d756-486f-a254-b2a6ede1d26e", | |
| 2464 | − "sectors": [ | |
| 2465 | − "Gaz industriels", | |
| 2466 | − "Industrie" | |
| 2467 | − ], | |
| 2468 | − "connector": "ultipro", | |
| 2469 | − "status": "actif", | |
| 2470 | − "region": "Montréal, Québec, Saint-Georges" | |
| 2471 | − }, | |
| 2472 | − { | |
| 2473 | − "id": "capreit", | |
| 2474 | − "name": "CAPREIT", | |
| 2475 | − "url": "https://www.capreit.ca", | |
| 2476 | − "careers_url": "https://careers-capreit.icims.com/jobs/search?ss=1", | |
| 2477 | − "sectors": [ | |
| 2478 | − "Immobilier", | |
| 2479 | − "Gestion immobilière" | |
| 2480 | − ], | |
| 2481 | − "connector": "icims", | |
| 2482 | − "status": "actif", | |
| 2483 | − "region": "Montréal" | |
| 2484 | − }, | |
| 2485 | − { | |
| 2486 | − "id": "mccarthy_tetrault", | |
| 2487 | − "name": "McCarthy Tétrault", | |
| 2488 | − "url": "https://www.mccarthy.ca", | |
| 2489 | − "careers_url": "https://careers-mccarthyca.icims.com/jobs/search?ss=1", | |
| 2490 | − "sectors": [ | |
| 2491 | − "Juridique", | |
| 2492 | − "Services professionnels" | |
| 2493 | − ], | |
| 2494 | − "connector": "icims", | |
| 2495 | − "status": "actif", | |
| 2496 | − "region": "Montréal, Québec" | |
| 2497 | − }, | |
| 2498 | − { | |
| 2499 | − "id": "omni_hotels_horaire", | |
| 2500 | − "name": "Omni Hôtel Mont-Royal", | |
| 2501 | − "url": "https://www.omnihotels.com/fr/hotels/montreal-mont-royal", | |
| 2502 | − "careers_url": "https://externalhourly-omnihotels.icims.com/jobs/search?ss=1", | |
| 2503 | − "sectors": [ | |
| 2504 | − "Hôtellerie", | |
| 2505 | − "Restauration" | |
| 2506 | − ], | |
| 2507 | − "connector": "icims", | |
| 2508 | − "status": "actif", | |
| 2509 | − "region": "Montréal" | |
| 2510 | − }, | |
| 2511 | − { | |
| 2512 | − "id": "omni_hotels_gestion", | |
| 2513 | − "name": "Omni Hôtel Mont-Royal", | |
| 2514 | − "url": "https://www.omnihotels.com/fr/hotels/montreal-mont-royal", | |
| 2515 | − "careers_url": "https://externalmanager-omnihotels.icims.com/jobs/search?ss=1", | |
| 2516 | − "sectors": [ | |
| 2517 | − "Hôtellerie", | |
| 2518 | − "Gestion" | |
| 2519 | − ], | |
| 2520 | − "connector": "icims", | |
| 2521 | − "status": "actif", | |
| 2522 | − "region": "Montréal" | |
| 2523 | − }, | |
| 2524 | − { | |
| 2525 | − "id": "edf_renouvelables", | |
| 2526 | − "name": "EDF Renouvelables Canada", | |
| 2527 | − "url": "https://www.edf-renouvelables.ca", | |
| 2528 | − "careers_url": "https://cafrench-edf-re.icims.com/jobs/search?ss=1", | |
| 2529 | − "sectors": [ | |
| 2530 | − "Énergie", | |
| 2531 | − "Ingénierie" | |
| 2532 | − ], | |
| 2533 | − "connector": "icims", | |
| 2534 | − "status": "actif", | |
| 2535 | − "region": "Montréal" | |
| 2536 | − }, | |
| 2537 | − { | |
| 2538 | − "id": "bombardier", | |
| 2539 | − "name": "Bombardier", | |
| 2540 | − "url": "https://bombardier.com", | |
| 2541 | − "careers_url": "https://jobs.bombardier.com", | |
| 2542 | − "sectors": [ | |
| 2543 | − "Aéronautique", | |
| 2544 | − "Ingénierie", | |
| 2545 | − "Fabrication" | |
| 2546 | − ], | |
| 2547 | − "connector": "successfactors", | |
| 2548 | − "status": "actif", | |
| 2549 | − "region": "Dorval, Mirabel, Montréal" | |
| 2550 | − }, | |
| 2551 | − { | |
| 2552 | − "id": "domtar", | |
| 2553 | − "name": "Domtar", | |
| 2554 | − "url": "https://www.domtar.com", | |
| 2555 | − "careers_url": "https://jobs.domtar.com", | |
| 2556 | − "sectors": [ | |
| 2557 | − "Pâtes et papiers", | |
| 2558 | − "Foresterie", | |
| 2559 | − "Fabrication" | |
| 2560 | − ], | |
| 2561 | − "connector": "successfactors", | |
| 2562 | − "status": "actif", | |
| 2563 | − "region": "Montréal, Windsor, Lachine" | |
| 2564 | − }, | |
| 2565 | − { | |
| 2566 | − "id": "cascades", | |
| 2567 | − "name": "Cascades", | |
| 2568 | − "url": "https://www.cascades.com", | |
| 2569 | − "careers_url": "https://jobs.cascades.com", | |
| 2570 | − "sectors": [ | |
| 2571 | − "Pâtes et papiers", | |
| 2572 | − "Emballage", | |
| 2573 | − "Fabrication" | |
| 2574 | − ], | |
| 2575 | − "connector": "successfactors", | |
| 2576 | − "status": "actif", | |
| 2577 | − "region": "Kingsey Falls, Drummondville, Candiac" | |
| 2578 | − }, | |
| 2579 | − { | |
| 2580 | − "id": "lassonde", | |
| 2581 | − "name": "Industries Lassonde", | |
| 2582 | − "url": "https://www.lassonde.com", | |
| 2583 | − "careers_url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=f96ce972-7721-4c7b-99ea-9a970ddc824a&ccId=19000101_000001&lang=fr_CA", | |
| 2584 | − "sectors": [ | |
| 2585 | − "Agroalimentaire", | |
| 2586 | − "Fabrication" | |
| 2587 | − ], | |
| 2588 | − "connector": "adp", | |
| 2589 | − "status": "actif", | |
| 2590 | − "region": "Rougemont, Montréal" | |
| 2591 | − }, | |
| 2592 | − { | |
| 2593 | − "id": "mitsubishi_hc_capital", | |
| 2594 | − "name": "Mitsubishi HC Capital Canada", | |
| 2595 | − "url": "https://www.mhccna.com", | |
| 2596 | − "careers_url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=b3ef4f03-f8ff-4ded-80c8-6dd5c5a224f7&ccId=9200144510729_2&lang=fr_CA", | |
| 2597 | − "sectors": [ | |
| 2598 | − "Finance", | |
| 2599 | − "Financement commercial" | |
| 2600 | − ], | |
| 2601 | − "connector": "adp", | |
| 2602 | − "status": "actif", | |
| 2603 | − "region": "Laval, Trois-Rivières" | |
| 2604 | − }, | |
| 2605 | − { | |
| 2606 | − "id": "msi_gestion", | |
| 2607 | − "name": "MSI Gestion immobilière", | |
| 2608 | − "url": "https://www.msimmobiliers.com", | |
| 2609 | − "careers_url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=47d4e792-26e5-471c-92ac-73c60131bab8&ccId=19000101_000001&lang=fr_CA", | |
| 2610 | − "sectors": [ | |
| 2611 | − "Immobilier", | |
| 2612 | − "Gestion immobilière" | |
| 2613 | − ], | |
| 2614 | − "connector": "adp", | |
| 2615 | − "status": "actif", | |
| 2616 | − "region": "Montréal" | |
| 2617 | − }, | |
| 2618 | − { | |
| 2619 | − "id": "sante_quebec", | |
| 2620 | − "name": "Santé Québec", | |
| 2621 | − "url": "https://sante.quebec", | |
| 2622 | − "careers_url": "https://emplois.sante.quebec", | |
| 2623 | − "sectors": [ | |
| 2624 | − "Santé", | |
| 2625 | − "Secteur public", | |
| 2626 | − "Administration" | |
| 2627 | − ], | |
| 2628 | − "connector": "digitalrecruiters", | |
| 2629 | − "status": "actif", | |
| 2630 | − "region": "Montréal, Québec" | |
| 2631 | − }, | |
| 2632 | − { | |
| 2633 | − "id": "cssdm", | |
| 2634 | − "name": "Centre de services scolaire de Montréal", | |
| 2635 | − "url": "https://www.cssdm.gouv.qc.ca", | |
| 2636 | − "careers_url": "https://www.cssdm.gouv.qc.ca/travailler-cssdm/offres-emploi/", | |
| 2637 | − "sectors": [ | |
| 2638 | − "Éducation", | |
| 2639 | − "Secteur public" | |
| 2640 | − ], | |
| 2641 | − "connector": "workland", | |
| 2642 | − "status": "actif", | |
| 2643 | − "region": "Montréal" | |
| 2644 | − }, | |
| 2645 | − { | |
| 2646 | − "id": "guichet_emplois", | |
| 2647 | − "name": "Guichet-Emplois (Canada)", | |
| 2648 | − "url": "https://www.guichetemplois.gc.ca", | |
| 2649 | − "careers_url": "https://www.guichetemplois.gc.ca/jobsearch/rechercheemplois?fprov=QC", | |
| 2650 | − "sectors": [ | |
| 2651 | − "Portail", | |
| 2652 | − "Tous secteurs" | |
| 2653 | − ], | |
| 2654 | − "connector": "portail", | |
| 2655 | − "status": "actif", | |
| 2656 | − "region": "Québec (province)", | |
| 2657 | − "aggregator": true | |
| 2658 | − }, | |
| 2659 | − { | |
| 2660 | − "id": "jobillico", | |
| 2661 | − "name": "Jobillico", | |
| 2662 | − "url": "https://www.jobillico.com", | |
| 2663 | − "careers_url": "https://www.jobillico.com/recherche-emploi", | |
| 2664 | − "sectors": [ | |
| 2665 | − "Portail", | |
| 2666 | − "Tous secteurs" | |
| 2667 | − ], | |
| 2668 | − "connector": "portail", | |
| 2669 | − "status": "actif", | |
| 2670 | − "region": "Québec (province)", | |
| 2671 | − "aggregator": true | |
| 2672 | − }, | |
| 2673 | − { | |
| 2674 | − "id": "espresso_jobs", | |
| 2675 | − "name": "Espresso-Jobs", | |
| 2676 | − "url": "https://www.espresso-jobs.com", | |
| 2677 | − "careers_url": "https://www.espresso-jobs.com/emploi", | |
| 2678 | − "sectors": [ | |
| 2679 | − "Portail", | |
| 2680 | − "TI", | |
| 2681 | − "Créatif" | |
| 2682 | − ], | |
| 2683 | − "connector": "portail", | |
| 2684 | − "status": "actif", | |
| 2685 | − "region": "Québec (province)", | |
| 2686 | − "aggregator": true | |
| 2687 | − }, | |
| 2688 | − { | |
| 2689 | − "id": "depot-direct", | |
| 2690 | − "name": "Dépôt direct employeurs", | |
| 2691 | − "url": "https://www.job-ka.com/employeurs", | |
| 2692 | − "careers_url": "https://www.job-ka.com/employeurs", | |
| 2693 | − "sectors": [ | |
| 2694 | − "Tous secteurs" | |
| 2695 | − ], | |
| 2696 | − "connector": "depot-direct", | |
| 2697 | − "status": "modération", | |
| 2698 | − "region": "Québec (province)" | |
| 2699 | − }, | |
| 2700 | − { | |
| 2701 | − "id": "mxo", | |
| 2702 | − "name": "MXO", | |
| 2703 | − "url": "https://mxoconseil.com", | |
| 2704 | − "careers_url": "https://mxo.bamboohr.com/careers", | |
| 2705 | − "sectors": [ | |
| 2706 | − "manufacturier/commerce" | |
| 2707 | − ], | |
| 2708 | − "connector": "bamboohr", | |
| 2709 | − "status": "actif", | |
| 2710 | − "region": "" | |
| 2711 | − }, | |
| 2712 | − { | |
| 2713 | − "id": "pouletrouge", | |
| 2714 | − "name": "Poulet Rouge", | |
| 2715 | − "url": "https://poulet-rouge.ca", | |
| 2716 | − "careers_url": "https://pouletrouge.bamboohr.com/careers", | |
| 2717 | − "sectors": [ | |
| 2718 | − "restauration" | |
| 2719 | − ], | |
| 2720 | − "connector": "bamboohr", | |
| 2721 | − "status": "actif", | |
| 2722 | − "region": "Montréal" | |
| 2723 | − }, | |
| 2724 | − { | |
| 2725 | − "id": "ziptrekeco", | |
| 2726 | − "name": "Ziptrek Tremblant", | |
| 2727 | − "url": "https://tremblant.ziptrek.com", | |
| 2728 | − "careers_url": "https://ziptrekeco.bamboohr.com/careers", | |
| 2729 | − "sectors": [ | |
| 2730 | − "manufacturier/commerce" | |
| 2731 | − ], | |
| 2732 | − "connector": "bamboohr", | |
| 2733 | − "status": "actif", | |
| 2734 | − "region": "" | |
| 2735 | − }, | |
| 2736 | − { | |
| 2737 | − "id": "jgrivesud", | |
| 2738 | − "name": "JG Rive-Sud (GFS)", | |
| 2739 | − "url": "https://jgfruitsetlegumes.com", | |
| 2740 | − "careers_url": "https://gfs.wd5.myworkdayjobs.com/jgrive-sud", | |
| 2741 | − "sectors": [ | |
| 2742 | − "manufacturier/commerce" | |
| 2743 | − ], | |
| 2744 | − "connector": "workday", | |
| 2745 | − "status": "actif", | |
| 2746 | − "region": "" | |
| 2747 | − }, | |
| 2748 | − { | |
| 2749 | − "id": "gfs", | |
| 2750 | − "name": "Service alimentaire Gordon", | |
| 2751 | − "url": "https://gfs.ca", | |
| 2752 | − "careers_url": "https://gfs.wd5.myworkdayjobs.com/usjobs-french", | |
| 2753 | − "sectors": [ | |
| 2754 | − "manufacturier/commerce" | |
| 2755 | − ], | |
| 2756 | − "connector": "workday", | |
| 2757 | − "status": "actif", | |
| 2758 | − "region": "" | |
| 2759 | − }, | |
| 2760 | − { | |
| 2761 | − "id": "scottsmiraclegro", | |
| 2762 | − "name": "Scotts Canada (Fafard)", | |
| 2763 | − "url": "https://scottsmiraclegro.com", | |
| 2764 | − "careers_url": "https://scottsmiraclegro.wd5.myworkdayjobs.com/SMGExternal", | |
| 2765 | − "sectors": [ | |
| 2766 | − "manufacturier/commerce" | |
| 2767 | − ], | |
| 2768 | − "connector": "workday", | |
| 2769 | − "status": "actif", | |
| 2770 | − "region": "" | |
| 2771 | − }, | |
| 2772 | − { | |
| 2773 | − "id": "sleeman", | |
| 2774 | − "name": "Brasseries Sleeman (Unibroue)", | |
| 2775 | − "url": "https://unibroue.com", | |
| 2776 | − "careers_url": "https://sleeman.wd3.myworkdayjobs.com/SBL", | |
| 2777 | − "sectors": [ | |
| 2778 | − "manufacturier/commerce" | |
| 2779 | − ], | |
| 2780 | − "connector": "workday", | |
| 2781 | − "status": "actif", | |
| 2782 | − "region": "" | |
| 2783 | − } | |
| 2784 | − ] | |
| 2 | + "_meta": { | |
| 3 | + "project": "Job·Ka — Groupe KA", | |
| 4 | + "author": "Simon-Pierre Boucher <contact@spboucher.ai>", | |
| 5 | + "role": "Registre descriptif des sources (alimente la page Sources)", | |
| 6 | + "updated": "2026-08-19", | |
| 7 | + "counts": { | |
| 8 | + "employeurs_directs": 240, | |
| 9 | + "plateformes_ats": 19, | |
| 10 | + "portails": 3, | |
| 11 | + "depot_direct": 1, | |
| 12 | + "reseaux_multi_employeurs": 1 | |
| 13 | + }, | |
| 14 | + "ats": [ | |
| 15 | + "adp", | |
| 16 | + "ashby", | |
| 17 | + "bamboohr", | |
| 18 | + "breezy", | |
| 19 | + "digitalrecruiters", | |
| 20 | + "greenhouse", | |
| 21 | + "icims", | |
| 22 | + "lever", | |
| 23 | + "njoyn", | |
| 24 | + "recruitee", | |
| 25 | + "smartrecruiters", | |
| 26 | + "successfactors", | |
| 27 | + "taleo", | |
| 28 | + "taleo_tbe", | |
| 29 | + "ultipro", | |
| 30 | + "workable", | |
| 31 | + "workday", | |
| 32 | + "workland", | |
| 33 | + "wpjobmanager" | |
| 34 | + ], | |
| 35 | + "docs": "docs/connecteurs/INDEX.md (fiches générées par scripts/gen_connector_docs.py) ; conformité : docs/CONFORMITE.md" | |
| 36 | + }, | |
| 37 | + "sources": [ | |
| 38 | + { | |
| 39 | + "id": "adeleexpressfr", | |
| 40 | + "name": "Adèle Express", | |
| 41 | + "url": "", | |
| 42 | + "careers_url": "https://adeleexpressfr.recruitee.com", | |
| 43 | + "sectors": [ | |
| 44 | + "Transport" | |
| 45 | + ], | |
| 46 | + "connector": "recruitee", | |
| 47 | + "status": "actif", | |
| 48 | + "region": "Montréal" | |
| 49 | + }, | |
| 50 | + { | |
| 51 | + "id": "adi_albert_davidson_industries", | |
| 52 | + "name": "ADI - Albert Davidson Industries", | |
| 53 | + "url": "", | |
| 54 | + "careers_url": "https://adi-albert-davidson-industries.breezy.hr", | |
| 55 | + "sectors": [ | |
| 56 | + "Manufacture" | |
| 57 | + ], | |
| 58 | + "connector": "breezy", | |
| 59 | + "status": "actif", | |
| 60 | + "region": "Pointe-Claire" | |
| 61 | + }, | |
| 62 | + { | |
| 63 | + "id": "agnico_eagle", | |
| 64 | + "name": "Agnico Eagle Mines", | |
| 65 | + "url": "https://www.agnicoeagle.com", | |
| 66 | + "careers_url": "https://agnicoeagle.taleo.net/careersection/2/jobsearch.ftl?lang=fr", | |
| 67 | + "sectors": [ | |
| 68 | + "Mines", | |
| 69 | + "Ingénierie", | |
| 70 | + "Métiers spécialisés" | |
| 71 | + ], | |
| 72 | + "connector": "taleo", | |
| 73 | + "status": "actif", | |
| 74 | + "region": "Abitibi-Témiscamingue, Malartic, Rouyn-Noranda" | |
| 75 | + }, | |
| 76 | + { | |
| 77 | + "id": "agropur", | |
| 78 | + "name": "Agropur", | |
| 79 | + "url": "https://www.agropur.com", | |
| 80 | + "careers_url": "https://agropur.wd3.myworkdayjobs.com/Agropur_Careers", | |
| 81 | + "sectors": [ | |
| 82 | + "Agroalimentaire", | |
| 83 | + "Production" | |
| 84 | + ], | |
| 85 | + "connector": "workday", | |
| 86 | + "status": "actif", | |
| 87 | + "region": "Longueuil / province" | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "id": "airbus", | |
| 91 | + "name": "Airbus Canada", | |
| 92 | + "url": "https://airbus.com", | |
| 93 | + "careers_url": "https://ag.wd3.myworkdayjobs.com/Airbus", | |
| 94 | + "sectors": [], | |
| 95 | + "connector": "workday", | |
| 96 | + "status": "actif", | |
| 97 | + "region": "Mirabel" | |
| 98 | + }, | |
| 99 | + { | |
| 100 | + "id": "ajwalter", | |
| 101 | + "name": "AJ Walter Aviation", | |
| 102 | + "url": "", | |
| 103 | + "careers_url": "https://ajwalter.recruitee.com", | |
| 104 | + "sectors": [ | |
| 105 | + "Aéronautique" | |
| 106 | + ], | |
| 107 | + "connector": "recruitee", | |
| 108 | + "status": "actif", | |
| 109 | + "region": "Montréal" | |
| 110 | + }, | |
| 111 | + { | |
| 112 | + "id": "alayacare", | |
| 113 | + "name": "AlayaCare", | |
| 114 | + "url": "https://www.alayacare.com", | |
| 115 | + "careers_url": "https://job-boards.greenhouse.io/alayacare", | |
| 116 | + "sectors": [ | |
| 117 | + "TI", | |
| 118 | + "Santé" | |
| 119 | + ], | |
| 120 | + "connector": "greenhouse", | |
| 121 | + "status": "actif", | |
| 122 | + "region": "Montréal" | |
| 123 | + }, | |
| 124 | + { | |
| 125 | + "id": "alcoa", | |
| 126 | + "name": "Alcoa Canada", | |
| 127 | + "url": "https://alcoa.com", | |
| 128 | + "careers_url": "https://alcoa.wd5.myworkdayjobs.com/Careers", | |
| 129 | + "sectors": [], | |
| 130 | + "connector": "workday", | |
| 131 | + "status": "actif", | |
| 132 | + "region": "Baie-Comeau" | |
| 133 | + }, | |
| 134 | + { | |
| 135 | + "id": "alimentiv_2", | |
| 136 | + "name": "Alimentiv", | |
| 137 | + "url": "", | |
| 138 | + "careers_url": "https://jobs.lever.co/alimentiv-2", | |
| 139 | + "sectors": [ | |
| 140 | + "Recherche clinique" | |
| 141 | + ], | |
| 142 | + "connector": "lever", | |
| 143 | + "status": "actif", | |
| 144 | + "region": "Montréal, Québec" | |
| 145 | + }, | |
| 146 | + { | |
| 147 | + "id": "alphanumeric_systems", | |
| 148 | + "name": "Alphanumeric Systems", | |
| 149 | + "url": "", | |
| 150 | + "careers_url": "https://alphanumeric-systems.breezy.hr", | |
| 151 | + "sectors": [ | |
| 152 | + "TI", | |
| 153 | + "Santé" | |
| 154 | + ], | |
| 155 | + "connector": "breezy", | |
| 156 | + "status": "actif", | |
| 157 | + "region": "Montréal, Sainte-Foy" | |
| 158 | + }, | |
| 159 | + { | |
| 160 | + "id": "altasciences", | |
| 161 | + "name": "Altasciences", | |
| 162 | + "url": "", | |
| 163 | + "careers_url": "https://altasciences.wd1.myworkdayjobs.com/Careers", | |
| 164 | + "sectors": [ | |
| 165 | + "Pharmaceutique" | |
| 166 | + ], | |
| 167 | + "connector": "workday", | |
| 168 | + "status": "actif", | |
| 169 | + "region": "Laval" | |
| 170 | + }, | |
| 171 | + { | |
| 172 | + "id": "amilia", | |
| 173 | + "name": "Amilia", | |
| 174 | + "url": "", | |
| 175 | + "careers_url": "https://amilia.recruitee.com", | |
| 176 | + "sectors": [ | |
| 177 | + "TI" | |
| 178 | + ], | |
| 179 | + "connector": "recruitee", | |
| 180 | + "status": "actif", | |
| 181 | + "region": "Montréal" | |
| 182 | + }, | |
| 183 | + { | |
| 184 | + "id": "anciapersonnelinc", | |
| 185 | + "name": "ANCIA Personnel", | |
| 186 | + "url": "", | |
| 187 | + "careers_url": "https://anciapersonnelinc.recruitee.com", | |
| 188 | + "sectors": [ | |
| 189 | + "Placement" | |
| 190 | + ], | |
| 191 | + "connector": "recruitee", | |
| 192 | + "status": "actif", | |
| 193 | + "region": "Lévis, Québec, Montréal" | |
| 194 | + }, | |
| 195 | + { | |
| 196 | + "id": "appdirect", | |
| 197 | + "name": "AppDirect", | |
| 198 | + "url": "", | |
| 199 | + "careers_url": "https://job-boards.greenhouse.io/appdirect", | |
| 200 | + "sectors": [ | |
| 201 | + "TI", | |
| 202 | + "SaaS" | |
| 203 | + ], | |
| 204 | + "connector": "greenhouse", | |
| 205 | + "status": "actif", | |
| 206 | + "region": "Montréal" | |
| 207 | + }, | |
| 208 | + { | |
| 209 | + "id": "astucemedia", | |
| 210 | + "name": "Astucemedia", | |
| 211 | + "url": "", | |
| 212 | + "careers_url": "https://jobs.smartrecruiters.com/company/Astucemedia", | |
| 213 | + "sectors": [ | |
| 214 | + "Médias", | |
| 215 | + "TI" | |
| 216 | + ], | |
| 217 | + "connector": "smartrecruiters", | |
| 218 | + "status": "actif", | |
| 219 | + "region": "Montréal" | |
| 220 | + }, | |
| 221 | + { | |
| 222 | + "id": "atecna_montreal", | |
| 223 | + "name": "Atecna", | |
| 224 | + "url": "", | |
| 225 | + "careers_url": "https://apply.workable.com/atecna-montreal", | |
| 226 | + "sectors": [ | |
| 227 | + "TI", | |
| 228 | + "Conseil" | |
| 229 | + ], | |
| 230 | + "connector": "workable", | |
| 231 | + "status": "actif", | |
| 232 | + "region": "Montréal" | |
| 233 | + }, | |
| 234 | + { | |
| 235 | + "id": "atlas_workland", | |
| 236 | + "name": "Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…)", | |
| 237 | + "url": "https://www.workland.com", | |
| 238 | + "careers_url": "https://atlas.workland.com", | |
| 239 | + "connector": "workland", | |
| 240 | + "sectors": [ | |
| 241 | + "Éducation", | |
| 242 | + "Santé", | |
| 243 | + "Secteur public", | |
| 244 | + "Multi-employeurs" | |
| 245 | + ], | |
| 246 | + "region": "Québec (province)", | |
| 247 | + "status": "actif" | |
| 248 | + }, | |
| 249 | + { | |
| 250 | + "id": "autodesk", | |
| 251 | + "name": "Autodesk", | |
| 252 | + "url": "", | |
| 253 | + "careers_url": "https://autodesk.wd1.myworkdayjobs.com/Ext", | |
| 254 | + "sectors": [ | |
| 255 | + "TI", | |
| 256 | + "Logiciel" | |
| 257 | + ], | |
| 258 | + "connector": "workday", | |
| 259 | + "status": "actif", | |
| 260 | + "region": "Montréal" | |
| 261 | + }, | |
| 262 | + { | |
| 263 | + "id": "aviyatech", | |
| 264 | + "name": "Aviya Aerospace Systems", | |
| 265 | + "url": "", | |
| 266 | + "careers_url": "https://jobs.lever.co/aviyatech", | |
| 267 | + "sectors": [ | |
| 268 | + "Aéronautique" | |
| 269 | + ], | |
| 270 | + "connector": "lever", | |
| 271 | + "status": "actif", | |
| 272 | + "region": "Longueuil" | |
| 273 | + }, | |
| 274 | + { | |
| 275 | + "id": "bardel_entertainment", | |
| 276 | + "name": "Bardel Entertainment", | |
| 277 | + "url": "", | |
| 278 | + "careers_url": "https://apply.workable.com/bardel-entertainment", | |
| 279 | + "sectors": [ | |
| 280 | + "Animation" | |
| 281 | + ], | |
| 282 | + "connector": "workable", | |
| 283 | + "status": "actif", | |
| 284 | + "region": "Montréal" | |
| 285 | + }, | |
| 286 | + { | |
| 287 | + "id": "bayshore", | |
| 288 | + "name": "Bayshore HealthCare", | |
| 289 | + "url": "https://www.bayshore.ca", | |
| 290 | + "careers_url": "https://bayshore.taleo.net/careersection/bs_ex/jobsearch.ftl?lang=fr", | |
| 291 | + "sectors": [ | |
| 292 | + "Santé", | |
| 293 | + "Soins à domicile" | |
| 294 | + ], | |
| 295 | + "connector": "taleo", | |
| 296 | + "status": "actif", | |
| 297 | + "region": "Montréal, Québec" | |
| 298 | + }, | |
| 299 | + { | |
| 300 | + "id": "bc2", | |
| 301 | + "name": "Groupe BC2", | |
| 302 | + "url": "", | |
| 303 | + "careers_url": "https://bc2.bamboohr.com/careers", | |
| 304 | + "sectors": [ | |
| 305 | + "Urbanisme", | |
| 306 | + "Conseil" | |
| 307 | + ], | |
| 308 | + "connector": "bamboohr", | |
| 309 | + "status": "actif", | |
| 310 | + "region": "Montréal" | |
| 311 | + }, | |
| 312 | + { | |
| 313 | + "id": "bdc", | |
| 314 | + "name": "BDC", | |
| 315 | + "url": "", | |
| 316 | + "careers_url": "https://bdc.wd10.myworkdayjobs.com/bdc_careers", | |
| 317 | + "sectors": [ | |
| 318 | + "Finance" | |
| 319 | + ], | |
| 320 | + "connector": "workday", | |
| 321 | + "status": "actif", | |
| 322 | + "region": "Montréal" | |
| 323 | + }, | |
| 324 | + { | |
| 325 | + "id": "bell_textron", | |
| 326 | + "name": "Bell Textron Canada", | |
| 327 | + "url": "https://www.bellflight.com", | |
| 328 | + "careers_url": "https://textron.taleo.net/careersection/bell/jobsearch.ftl?lang=fr", | |
| 329 | + "sectors": [ | |
| 330 | + "Aéronautique", | |
| 331 | + "Fabrication" | |
| 332 | + ], | |
| 333 | + "connector": "taleo", | |
| 334 | + "status": "actif", | |
| 335 | + "region": "Mirabel" | |
| 336 | + }, | |
| 337 | + { | |
| 338 | + "id": "beneva", | |
| 339 | + "name": "Beneva", | |
| 340 | + "url": "https://beneva.ca", | |
| 341 | + "careers_url": "https://beneva.wd10.myworkdayjobs.com/BenevaSite_carriere", | |
| 342 | + "sectors": [], | |
| 343 | + "connector": "workday", | |
| 344 | + "status": "actif", | |
| 345 | + "region": "Québec" | |
| 346 | + }, | |
| 347 | + { | |
| 348 | + "id": "bento_sushi", | |
| 349 | + "name": "Bento Sushi", | |
| 350 | + "url": "https://www.bentosushi.com", | |
| 351 | + "careers_url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=d0dfb14c-f365-4599-b39b-0fdccb3d1160&ccId=19000101_000001&lang=fr_CA", | |
| 352 | + "connector": "adp", | |
| 353 | + "sectors": [ | |
| 354 | + "Restauration" | |
| 355 | + ], | |
| 356 | + "region": "Québec (province)", | |
| 357 | + "status": "actif" | |
| 358 | + }, | |
| 359 | + { | |
| 360 | + "id": "bhvr", | |
| 361 | + "name": "Behaviour Interactif", | |
| 362 | + "url": "", | |
| 363 | + "careers_url": "https://jobs.lever.co/bhvr", | |
| 364 | + "sectors": [ | |
| 365 | + "Jeux vidéo" | |
| 366 | + ], | |
| 367 | + "connector": "lever", | |
| 368 | + "status": "actif", | |
| 369 | + "region": "Montréal" | |
| 370 | + }, | |
| 371 | + { | |
| 372 | + "id": "bigbang", | |
| 373 | + "name": "Big Bang", | |
| 374 | + "url": "", | |
| 375 | + "careers_url": "https://bigbang.bamboohr.com/careers", | |
| 376 | + "sectors": [ | |
| 377 | + "TI" | |
| 378 | + ], | |
| 379 | + "connector": "bamboohr", | |
| 380 | + "status": "actif", | |
| 381 | + "region": "Montréal" | |
| 382 | + }, | |
| 383 | + { | |
| 384 | + "id": "biximontreal", | |
| 385 | + "name": "BIXI Montréal", | |
| 386 | + "url": "", | |
| 387 | + "careers_url": "https://biximontreal.recruitee.com", | |
| 388 | + "sectors": [ | |
| 389 | + "Transport" | |
| 390 | + ], | |
| 391 | + "connector": "recruitee", | |
| 392 | + "status": "actif", | |
| 393 | + "region": "Montréal" | |
| 394 | + }, | |
| 395 | + { | |
| 396 | + "id": "bmo", | |
| 397 | + "name": "BMO Groupe financier", | |
| 398 | + "url": "", | |
| 399 | + "careers_url": "https://bmo.wd3.myworkdayjobs.com/External", | |
| 400 | + "sectors": [ | |
| 401 | + "Finance" | |
| 402 | + ], | |
| 403 | + "connector": "workday", | |
| 404 | + "status": "actif", | |
| 405 | + "region": "Montréal, Laval, Gatineau" | |
| 406 | + }, | |
| 407 | + { | |
| 408 | + "id": "bombardier", | |
| 409 | + "name": "Bombardier", | |
| 410 | + "url": "https://bombardier.com", | |
| 411 | + "careers_url": "https://jobs.bombardier.com", | |
| 412 | + "sectors": [ | |
| 413 | + "Aéronautique", | |
| 414 | + "Ingénierie", | |
| 415 | + "Fabrication" | |
| 416 | + ], | |
| 417 | + "connector": "successfactors", | |
| 418 | + "status": "actif", | |
| 419 | + "region": "Dorval, Mirabel, Montréal" | |
| 420 | + }, | |
| 421 | + { | |
| 422 | + "id": "botpress", | |
| 423 | + "name": "Botpress", | |
| 424 | + "url": "", | |
| 425 | + "careers_url": "https://apply.workable.com/botpress", | |
| 426 | + "sectors": [ | |
| 427 | + "TI", | |
| 428 | + "IA" | |
| 429 | + ], | |
| 430 | + "connector": "workable", | |
| 431 | + "status": "actif", | |
| 432 | + "region": "Montréal, Québec" | |
| 433 | + }, | |
| 434 | + { | |
| 435 | + "id": "brandmomentum", | |
| 436 | + "name": "Brand Momentum", | |
| 437 | + "url": "", | |
| 438 | + "careers_url": "https://brandmomentum.breezy.hr", | |
| 439 | + "sectors": [ | |
| 440 | + "Marketing", | |
| 441 | + "Ventes" | |
| 442 | + ], | |
| 443 | + "connector": "breezy", | |
| 444 | + "status": "actif", | |
| 445 | + "region": "Montréal, Laval, Québec" | |
| 446 | + }, | |
| 447 | + { | |
| 448 | + "id": "broadsign", | |
| 449 | + "name": "Broadsign", | |
| 450 | + "url": "", | |
| 451 | + "careers_url": "https://job-boards.greenhouse.io/broadsign", | |
| 452 | + "sectors": [ | |
| 453 | + "TI", | |
| 454 | + "Affichage" | |
| 455 | + ], | |
| 456 | + "connector": "greenhouse", | |
| 457 | + "status": "actif", | |
| 458 | + "region": "Montréal" | |
| 459 | + }, | |
| 460 | + { | |
| 461 | + "id": "broccolini", | |
| 462 | + "name": "Broccolini", | |
| 463 | + "url": "", | |
| 464 | + "careers_url": "https://broccolini.bamboohr.com/careers", | |
| 465 | + "sectors": [ | |
| 466 | + "Construction", | |
| 467 | + "Immobilier" | |
| 468 | + ], | |
| 469 | + "connector": "bamboohr", | |
| 470 | + "status": "actif", | |
| 471 | + "region": "Montréal" | |
| 472 | + }, | |
| 473 | + { | |
| 474 | + "id": "caaquebec", | |
| 475 | + "name": "CAA-Québec", | |
| 476 | + "url": "https://caaquebec.com", | |
| 477 | + "careers_url": "https://caaquebec.wd3.myworkdayjobs.com/CarrieresCAA-Quebec", | |
| 478 | + "sectors": [], | |
| 479 | + "connector": "workday", | |
| 480 | + "status": "actif", | |
| 481 | + "region": "Québec" | |
| 482 | + }, | |
| 483 | + { | |
| 484 | + "id": "cae", | |
| 485 | + "name": "CAE", | |
| 486 | + "url": "https://www.cae.com", | |
| 487 | + "careers_url": "https://cae.wd3.myworkdayjobs.com/career", | |
| 488 | + "sectors": [ | |
| 489 | + "Aéronautique", | |
| 490 | + "Simulation", | |
| 491 | + "TI" | |
| 492 | + ], | |
| 493 | + "connector": "workday", | |
| 494 | + "status": "actif", | |
| 495 | + "region": "Montréal" | |
| 496 | + }, | |
| 497 | + { | |
| 498 | + "id": "canada_global", | |
| 499 | + "name": "Canada Global Recruitment", | |
| 500 | + "url": "", | |
| 501 | + "careers_url": "https://canada-global.breezy.hr", | |
| 502 | + "sectors": [ | |
| 503 | + "Placement" | |
| 504 | + ], | |
| 505 | + "connector": "breezy", | |
| 506 | + "status": "actif", | |
| 507 | + "region": "Montréal" | |
| 508 | + }, | |
| 509 | + { | |
| 510 | + "id": "canadiantirecorporation", | |
| 511 | + "name": "Canadian Tire", | |
| 512 | + "url": "https://canadiantire.ca", | |
| 513 | + "careers_url": "https://canadiantirecorporation.wd3.myworkdayjobs.com/Enterprise_External_Careers_Site", | |
| 514 | + "sectors": [], | |
| 515 | + "connector": "workday", | |
| 516 | + "status": "actif", | |
| 517 | + "region": "Montréal" | |
| 518 | + }, | |
| 519 | + { | |
| 520 | + "id": "capreit", | |
| 521 | + "name": "CAPREIT", | |
| 522 | + "url": "https://www.capreit.ca", | |
| 523 | + "careers_url": "https://careers-capreit.icims.com/jobs/search?ss=1", | |
| 524 | + "sectors": [ | |
| 525 | + "Immobilier", | |
| 526 | + "Gestion immobilière" | |
| 527 | + ], | |
| 528 | + "connector": "icims", | |
| 529 | + "status": "actif", | |
| 530 | + "region": "Montréal" | |
| 531 | + }, | |
| 532 | + { | |
| 533 | + "id": "cascades", | |
| 534 | + "name": "Cascades", | |
| 535 | + "url": "https://www.cascades.com", | |
| 536 | + "careers_url": "https://jobs.cascades.com", | |
| 537 | + "sectors": [ | |
| 538 | + "Pâtes et papiers", | |
| 539 | + "Emballage", | |
| 540 | + "Fabrication" | |
| 541 | + ], | |
| 542 | + "connector": "successfactors", | |
| 543 | + "status": "actif", | |
| 544 | + "region": "Kingsey Falls, Drummondville, Candiac" | |
| 545 | + }, | |
| 546 | + { | |
| 547 | + "id": "cdpq", | |
| 548 | + "name": "CDPQ — Caisse de dépôt et placement du Québec", | |
| 549 | + "url": "https://cdpq.com", | |
| 550 | + "careers_url": "https://cdpq.wd10.myworkdayjobs.com/CDPQ", | |
| 551 | + "sectors": [], | |
| 552 | + "connector": "workday", | |
| 553 | + "status": "actif", | |
| 554 | + "region": "Montréal" | |
| 555 | + }, | |
| 556 | + { | |
| 557 | + "id": "cfmontreal", | |
| 558 | + "name": "CF Montréal", | |
| 559 | + "url": "", | |
| 560 | + "careers_url": "https://jobs.smartrecruiters.com/company/CFMontreal", | |
| 561 | + "sectors": [ | |
| 562 | + "Sport" | |
| 563 | + ], | |
| 564 | + "connector": "smartrecruiters", | |
| 565 | + "status": "actif", | |
| 566 | + "region": "Montréal" | |
| 567 | + }, | |
| 568 | + { | |
| 569 | + "id": "cgi", | |
| 570 | + "name": "CGI", | |
| 571 | + "url": "https://www.cgi.com", | |
| 572 | + "careers_url": "https://cgi.njoyn.com/CORP/xweb/xweb.asp?clid=21001&page=joblisting&lang=2", | |
| 573 | + "connector": "njoyn", | |
| 574 | + "sectors": [ | |
| 575 | + "TI", | |
| 576 | + "Services-conseils" | |
| 577 | + ], | |
| 578 | + "region": "Montréal, Québec", | |
| 579 | + "status": "actif" | |
| 580 | + }, | |
| 581 | + { | |
| 582 | + "id": "charger_logistics_inc", | |
| 583 | + "name": "Charger Logistics", | |
| 584 | + "url": "", | |
| 585 | + "careers_url": "https://apply.workable.com/charger-logistics-inc", | |
| 586 | + "sectors": [ | |
| 587 | + "Transport", | |
| 588 | + "Logistique" | |
| 589 | + ], | |
| 590 | + "connector": "workable", | |
| 591 | + "status": "actif", | |
| 592 | + "region": "Dorval" | |
| 593 | + }, | |
| 594 | + { | |
| 595 | + "id": "chu_quebec", | |
| 596 | + "name": "CHU de Québec — Université Laval", | |
| 597 | + "url": "https://www.chudequebec.ca", | |
| 598 | + "careers_url": "https://chudequebec.carrieresante.gouv.qc.ca", | |
| 599 | + "connector": "wpjobmanager", | |
| 600 | + "sectors": [ | |
| 601 | + "Santé", | |
| 602 | + "Secteur public" | |
| 603 | + ], | |
| 604 | + "region": "Québec", | |
| 605 | + "status": "actif" | |
| 606 | + }, | |
| 607 | + { | |
| 608 | + "id": "chum", | |
| 609 | + "name": "CHUM", | |
| 610 | + "url": "https://www.chumontreal.qc.ca", | |
| 611 | + "careers_url": "https://chum.carrieresante.gouv.qc.ca", | |
| 612 | + "connector": "wpjobmanager", | |
| 613 | + "sectors": [ | |
| 614 | + "Santé", | |
| 615 | + "Secteur public" | |
| 616 | + ], | |
| 617 | + "region": "Montréal", | |
| 618 | + "status": "actif" | |
| 619 | + }, | |
| 620 | + { | |
| 621 | + "id": "churchdwight", | |
| 622 | + "name": "Church & Dwight Canada", | |
| 623 | + "url": "https://churchdwight.ca", | |
| 624 | + "careers_url": "https://churchdwight.wd1.myworkdayjobs.com/chdcanadacareers", | |
| 625 | + "sectors": [ | |
| 626 | + "Production" | |
| 627 | + ], | |
| 628 | + "connector": "workday", | |
| 629 | + "status": "actif", | |
| 630 | + "region": "" | |
| 631 | + }, | |
| 632 | + { | |
| 633 | + "id": "cibc", | |
| 634 | + "name": "Banque CIBC", | |
| 635 | + "url": "", | |
| 636 | + "careers_url": "https://cibc.wd3.myworkdayjobs.com/search", | |
| 637 | + "sectors": [ | |
| 638 | + "Finance" | |
| 639 | + ], | |
| 640 | + "connector": "workday", | |
| 641 | + "status": "actif", | |
| 642 | + "region": "Montréal, Québec" | |
| 643 | + }, | |
| 644 | + { | |
| 645 | + "id": "cima2", | |
| 646 | + "name": "CIMA+", | |
| 647 | + "url": "", | |
| 648 | + "careers_url": "https://jobs.smartrecruiters.com/company/CIMA2", | |
| 649 | + "sectors": [ | |
| 650 | + "Ingénierie" | |
| 651 | + ], | |
| 652 | + "connector": "smartrecruiters", | |
| 653 | + "status": "actif", | |
| 654 | + "region": "Montréal, Québec, Laval" | |
| 655 | + }, | |
| 656 | + { | |
| 657 | + "id": "circlek", | |
| 658 | + "name": "Couche-Tard / Circle K", | |
| 659 | + "url": "", | |
| 660 | + "careers_url": "https://circlek.wd3.myworkdayjobs.com/CircleKStoreJobs", | |
| 661 | + "sectors": [ | |
| 662 | + "Commerce de détail" | |
| 663 | + ], | |
| 664 | + "connector": "workday", | |
| 665 | + "status": "actif", | |
| 666 | + "region": "Québec, Montréal, Drummondville" | |
| 667 | + }, | |
| 668 | + { | |
| 669 | + "id": "cirquedusoleil", | |
| 670 | + "name": "Cirque du Soleil", | |
| 671 | + "url": "https://www.cirquedusoleil.com", | |
| 672 | + "careers_url": "https://jobs.lever.co/cirquedusoleil", | |
| 673 | + "sectors": [ | |
| 674 | + "Divertissement", | |
| 675 | + "Création" | |
| 676 | + ], | |
| 677 | + "connector": "lever", | |
| 678 | + "status": "actif", | |
| 679 | + "region": "Montréal" | |
| 680 | + }, | |
| 681 | + { | |
| 682 | + "id": "cisss_abitibi", | |
| 683 | + "name": "CISSS de l'Abitibi-Témiscamingue", | |
| 684 | + "url": "https://www.cisss-at.gouv.qc.ca", | |
| 685 | + "careers_url": "https://cisssat.carrieresante.gouv.qc.ca", | |
| 686 | + "connector": "wpjobmanager", | |
| 687 | + "sectors": [ | |
| 688 | + "Santé", | |
| 689 | + "Secteur public" | |
| 690 | + ], | |
| 691 | + "region": "Abitibi-Témiscamingue", | |
| 692 | + "status": "actif" | |
| 693 | + }, | |
| 694 | + { | |
| 695 | + "id": "cisss_chaudiere_appalaches", | |
| 696 | + "name": "CISSS de Chaudière-Appalaches", | |
| 697 | + "url": "https://www.cisssca.com", | |
| 698 | + "careers_url": "https://cisssca.carrieresante.gouv.qc.ca", | |
| 699 | + "connector": "wpjobmanager", | |
| 700 | + "sectors": [ | |
| 701 | + "Santé", | |
| 702 | + "Secteur public" | |
| 703 | + ], | |
| 704 | + "region": "Chaudière-Appalaches", | |
| 705 | + "status": "actif" | |
| 706 | + }, | |
| 707 | + { | |
| 708 | + "id": "cisss_lanaudiere", | |
| 709 | + "name": "CISSS de Lanaudière", | |
| 710 | + "url": "https://www.cisss-lanaudiere.gouv.qc.ca", | |
| 711 | + "careers_url": "https://lanaudiere.carrieresante.gouv.qc.ca", | |
| 712 | + "connector": "wpjobmanager", | |
| 713 | + "sectors": [ | |
| 714 | + "Santé", | |
| 715 | + "Secteur public" | |
| 716 | + ], | |
| 717 | + "region": "Lanaudière", | |
| 718 | + "status": "actif" | |
| 719 | + }, | |
| 720 | + { | |
| 721 | + "id": "cisss_laurentides", | |
| 722 | + "name": "CISSS des Laurentides", | |
| 723 | + "url": "https://www.santelaurentides.gouv.qc.ca", | |
| 724 | + "careers_url": "https://laurentides.carrieresante.gouv.qc.ca", | |
| 725 | + "connector": "wpjobmanager", | |
| 726 | + "sectors": [ | |
| 727 | + "Santé", | |
| 728 | + "Secteur public" | |
| 729 | + ], | |
| 730 | + "region": "Laurentides", | |
| 731 | + "status": "actif" | |
| 732 | + }, | |
| 733 | + { | |
| 734 | + "id": "cisss_laval", | |
| 735 | + "name": "CISSS de Laval", | |
| 736 | + "url": "https://www.lavalensante.com", | |
| 737 | + "careers_url": "https://cissslaval.carrieresante.gouv.qc.ca", | |
| 738 | + "connector": "wpjobmanager", | |
| 739 | + "sectors": [ | |
| 740 | + "Santé", | |
| 741 | + "Secteur public" | |
| 742 | + ], | |
| 743 | + "region": "Laval", | |
| 744 | + "status": "actif" | |
| 745 | + }, | |
| 746 | + { | |
| 747 | + "id": "cisss_outaouais", | |
| 748 | + "name": "CISSS de l'Outaouais", | |
| 749 | + "url": "https://cisss-outaouais.gouv.qc.ca", | |
| 750 | + "careers_url": "https://viensvivretespassions.ca", | |
| 751 | + "connector": "wpjobmanager", | |
| 752 | + "sectors": [ | |
| 753 | + "Santé", | |
| 754 | + "Secteur public" | |
| 755 | + ], | |
| 756 | + "region": "Outaouais", | |
| 757 | + "status": "actif" | |
| 758 | + }, | |
| 759 | + { | |
| 760 | + "id": "ciusss_est_montreal", | |
| 761 | + "name": "CIUSSS de l'Est-de-l'Île-de-Montréal", | |
| 762 | + "url": "https://ciusss-estmtl.gouv.qc.ca", | |
| 763 | + "careers_url": "https://ciusssemtl.taleo.net/careersection/cemtl/jobsearch.ftl?lang=fr", | |
| 764 | + "sectors": [ | |
| 765 | + "Santé", | |
| 766 | + "Services sociaux", | |
| 767 | + "Secteur public" | |
| 768 | + ], | |
| 769 | + "connector": "taleo", | |
| 770 | + "status": "actif", | |
| 771 | + "region": "Montréal" | |
| 772 | + }, | |
| 773 | + { | |
| 774 | + "id": "cogeco", | |
| 775 | + "name": "Cogeco", | |
| 776 | + "url": "", | |
| 777 | + "careers_url": "https://cogeco.wd3.myworkdayjobs.com/Cogeco_Careers", | |
| 778 | + "sectors": [ | |
| 779 | + "Télécoms" | |
| 780 | + ], | |
| 781 | + "connector": "workday", | |
| 782 | + "status": "actif", | |
| 783 | + "region": "Montréal, Trois-Rivières" | |
| 784 | + }, | |
| 785 | + { | |
| 786 | + "id": "cohere", | |
| 787 | + "name": "Cohere", | |
| 788 | + "url": "", | |
| 789 | + "careers_url": "https://jobs.ashbyhq.com/cohere", | |
| 790 | + "sectors": [ | |
| 791 | + "TI", | |
| 792 | + "IA" | |
| 793 | + ], | |
| 794 | + "connector": "ashby", | |
| 795 | + "status": "actif", | |
| 796 | + "region": "Montréal" | |
| 797 | + }, | |
| 798 | + { | |
| 799 | + "id": "cordonbleu", | |
| 800 | + "name": "Aliments Ouimet-Cordon Bleu inc.", | |
| 801 | + "url": "https://clarkcordonbleu.ca", | |
| 802 | + "careers_url": "https://cordonbleu.bamboohr.com/careers", | |
| 803 | + "sectors": [ | |
| 804 | + "Production" | |
| 805 | + ], | |
| 806 | + "connector": "bamboohr", | |
| 807 | + "status": "actif", | |
| 808 | + "region": "" | |
| 809 | + }, | |
| 810 | + { | |
| 811 | + "id": "cssdd", | |
| 812 | + "name": "CSS des Découvreurs", | |
| 813 | + "url": "https://www.cssdd.gouv.qc.ca", | |
| 814 | + "careers_url": "https://emplois.cssdd.gouv.qc.ca", | |
| 815 | + "connector": "digitalrecruiters", | |
| 816 | + "sectors": [ | |
| 817 | + "Éducation", | |
| 818 | + "Secteur public" | |
| 819 | + ], | |
| 820 | + "region": "Québec", | |
| 821 | + "status": "actif" | |
| 822 | + }, | |
| 823 | + { | |
| 824 | + "id": "cultures_genv", | |
| 825 | + "name": "Cultures Gen V", | |
| 826 | + "url": "https://gen-v.com", | |
| 827 | + "careers_url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=8b346731-d189-4cf2-a14c-9e48d38befde&ccId=36427051_2&lang=fr_CA", | |
| 828 | + "connector": "adp", | |
| 829 | + "sectors": [ | |
| 830 | + "Agroalimentaire", | |
| 831 | + "Serriculture" | |
| 832 | + ], | |
| 833 | + "region": "Montérégie", | |
| 834 | + "status": "actif" | |
| 835 | + }, | |
| 836 | + { | |
| 837 | + "id": "dcbel", | |
| 838 | + "name": "dcbel", | |
| 839 | + "url": "", | |
| 840 | + "careers_url": "https://dcbel.bamboohr.com/careers", | |
| 841 | + "sectors": [ | |
| 842 | + "Énergie", | |
| 843 | + "TI" | |
| 844 | + ], | |
| 845 | + "connector": "bamboohr", | |
| 846 | + "status": "actif", | |
| 847 | + "region": "Montréal" | |
| 848 | + }, | |
| 849 | + { | |
| 850 | + "id": "deloitte", | |
| 851 | + "name": "Deloitte Canada", | |
| 852 | + "url": "https://www.deloitte.com/ca", | |
| 853 | + "careers_url": "https://careers.deloitte.ca", | |
| 854 | + "connector": "successfactors", | |
| 855 | + "sectors": [ | |
| 856 | + "Services-conseils", | |
| 857 | + "Comptabilité", | |
| 858 | + "TI" | |
| 859 | + ], | |
| 860 | + "region": "Montréal, Québec", | |
| 861 | + "status": "actif" | |
| 862 | + }, | |
| 863 | + { | |
| 864 | + "id": "depot-direct", | |
| 865 | + "name": "Dépôt direct employeurs", | |
| 866 | + "url": "https://www.job-ka.com/employeurs", | |
| 867 | + "careers_url": "https://www.job-ka.com/employeurs", | |
| 868 | + "sectors": [ | |
| 869 | + "Tous secteurs" | |
| 870 | + ], | |
| 871 | + "connector": "depot-direct", | |
| 872 | + "status": "modération", | |
| 873 | + "region": "Québec (province)" | |
| 874 | + }, | |
| 875 | + { | |
| 876 | + "id": "desjardins", | |
| 877 | + "name": "Mouvement Desjardins", | |
| 878 | + "url": "https://www.desjardins.com", | |
| 879 | + "careers_url": "https://desjardins.wd10.myworkdayjobs.com/Desjardins", | |
| 880 | + "sectors": [ | |
| 881 | + "Finance", | |
| 882 | + "Assurance", | |
| 883 | + "TI" | |
| 884 | + ], | |
| 885 | + "connector": "workday", | |
| 886 | + "status": "actif", | |
| 887 | + "region": "Lévis / province" | |
| 888 | + }, | |
| 889 | + { | |
| 890 | + "id": "devimco", | |
| 891 | + "name": "Devimco Appartements", | |
| 892 | + "url": "https://devimco.com", | |
| 893 | + "careers_url": "https://devimco.bamboohr.com/careers", | |
| 894 | + "sectors": [ | |
| 895 | + "Immobilier" | |
| 896 | + ], | |
| 897 | + "connector": "bamboohr", | |
| 898 | + "status": "actif", | |
| 899 | + "region": "" | |
| 900 | + }, | |
| 901 | + { | |
| 902 | + "id": "dilitrust", | |
| 903 | + "name": "DiliTrust", | |
| 904 | + "url": "", | |
| 905 | + "careers_url": "https://jobs.lever.co/dilitrust", | |
| 906 | + "sectors": [ | |
| 907 | + "TI", | |
| 908 | + "Juridique" | |
| 909 | + ], | |
| 910 | + "connector": "lever", | |
| 911 | + "status": "actif", | |
| 912 | + "region": "Montréal" | |
| 913 | + }, | |
| 914 | + { | |
| 915 | + "id": "distro", | |
| 916 | + "name": "Distro", | |
| 917 | + "url": "", | |
| 918 | + "careers_url": "https://jobs.lever.co/distro", | |
| 919 | + "sectors": [ | |
| 920 | + "Ventes", | |
| 921 | + "TI" | |
| 922 | + ], | |
| 923 | + "connector": "lever", | |
| 924 | + "status": "actif", | |
| 925 | + "region": "Montréal, Westmount" | |
| 926 | + }, | |
| 927 | + { | |
| 928 | + "id": "domtar", | |
| 929 | + "name": "Domtar", | |
| 930 | + "url": "https://www.domtar.com", | |
| 931 | + "careers_url": "https://jobs.domtar.com", | |
| 932 | + "sectors": [ | |
| 933 | + "Pâtes et papiers", | |
| 934 | + "Foresterie", | |
| 935 | + "Fabrication" | |
| 936 | + ], | |
| 937 | + "connector": "successfactors", | |
| 938 | + "status": "actif", | |
| 939 | + "region": "Montréal, Windsor, Lachine" | |
| 940 | + }, | |
| 941 | + { | |
| 942 | + "id": "dulcedo", | |
| 943 | + "name": "Dulcedo Management", | |
| 944 | + "url": "", | |
| 945 | + "careers_url": "https://jobs.lever.co/dulcedo", | |
| 946 | + "sectors": [ | |
| 947 | + "Mode", | |
| 948 | + "Gestion d'artistes" | |
| 949 | + ], | |
| 950 | + "connector": "lever", | |
| 951 | + "status": "actif", | |
| 952 | + "region": "Montréal" | |
| 953 | + }, | |
| 954 | + { | |
| 955 | + "id": "edf_renouvelables", | |
| 956 | + "name": "EDF Renouvelables Canada", | |
| 957 | + "url": "https://www.edf-renouvelables.ca", | |
| 958 | + "careers_url": "https://cafrench-edf-re.icims.com/jobs/search?ss=1", | |
| 959 | + "sectors": [ | |
| 960 | + "Énergie", | |
| 961 | + "Ingénierie" | |
| 962 | + ], | |
| 963 | + "connector": "icims", | |
| 964 | + "status": "actif", | |
| 965 | + "region": "Montréal" | |
| 966 | + }, | |
| 967 | + { | |
| 968 | + "id": "emcocorporation", | |
| 969 | + "name": "EMCO", | |
| 970 | + "url": "", | |
| 971 | + "careers_url": "https://jobs.smartrecruiters.com/company/EMCOCorporation", | |
| 972 | + "sectors": [ | |
| 973 | + "Distribution", | |
| 974 | + "Construction" | |
| 975 | + ], | |
| 976 | + "connector": "smartrecruiters", | |
| 977 | + "status": "actif", | |
| 978 | + "region": "Montréal, Québec, Laval" | |
| 979 | + }, | |
| 980 | + { | |
| 981 | + "id": "eminent_valet", | |
| 982 | + "name": "Eminent Valet", | |
| 983 | + "url": "", | |
| 984 | + "careers_url": "https://apply.workable.com/eminent-valet", | |
| 985 | + "sectors": [ | |
| 986 | + "Services" | |
| 987 | + ], | |
| 988 | + "connector": "workable", | |
| 989 | + "status": "actif", | |
| 990 | + "region": "Montréal" | |
| 991 | + }, | |
| 992 | + { | |
| 993 | + "id": "eosaircraftinc", | |
| 994 | + "name": "EOS Aircraft", | |
| 995 | + "url": "", | |
| 996 | + "careers_url": "https://eosaircraftinc.bamboohr.com/careers", | |
| 997 | + "sectors": [ | |
| 998 | + "Aéronautique" | |
| 999 | + ], | |
| 1000 | + "connector": "bamboohr", | |
| 1001 | + "status": "actif", | |
| 1002 | + "region": "Montréal" | |
| 1003 | + }, | |
| 1004 | + { | |
| 1005 | + "id": "eq3_ltd", | |
| 1006 | + "name": "EQ3", | |
| 1007 | + "url": "", | |
| 1008 | + "careers_url": "https://eq3-ltd.breezy.hr", | |
| 1009 | + "sectors": [ | |
| 1010 | + "Commerce de détail", | |
| 1011 | + "Meuble" | |
| 1012 | + ], | |
| 1013 | + "connector": "breezy", | |
| 1014 | + "status": "actif", | |
| 1015 | + "region": "Brossard, Laval, Montréal" | |
| 1016 | + }, | |
| 1017 | + { | |
| 1018 | + "id": "eqbank", | |
| 1019 | + "name": "EQ Bank", | |
| 1020 | + "url": "", | |
| 1021 | + "careers_url": "https://jobs.lever.co/eqbank", | |
| 1022 | + "sectors": [ | |
| 1023 | + "Finance" | |
| 1024 | + ], | |
| 1025 | + "connector": "lever", | |
| 1026 | + "status": "actif", | |
| 1027 | + "region": "Montréal" | |
| 1028 | + }, | |
| 1029 | + { | |
| 1030 | + "id": "espresso_jobs", | |
| 1031 | + "name": "Espresso-Jobs", | |
| 1032 | + "url": "https://www.espresso-jobs.com", | |
| 1033 | + "careers_url": "https://www.espresso-jobs.com/emploi", | |
| 1034 | + "sectors": [ | |
| 1035 | + "Portail", | |
| 1036 | + "TI", | |
| 1037 | + "Créatif" | |
| 1038 | + ], | |
| 1039 | + "connector": "portail", | |
| 1040 | + "status": "actif", | |
| 1041 | + "region": "Québec (province)", | |
| 1042 | + "aggregator": true | |
| 1043 | + }, | |
| 1044 | + { | |
| 1045 | + "id": "evlo", | |
| 1046 | + "name": "EVLO (Hydro-Québec)", | |
| 1047 | + "url": "", | |
| 1048 | + "careers_url": "https://evlo.bamboohr.com/careers", | |
| 1049 | + "sectors": [ | |
| 1050 | + "Énergie" | |
| 1051 | + ], | |
| 1052 | + "connector": "bamboohr", | |
| 1053 | + "status": "actif", | |
| 1054 | + "region": "Varennes" | |
| 1055 | + }, | |
| 1056 | + { | |
| 1057 | + "id": "evolving_web", | |
| 1058 | + "name": "Evolving Web", | |
| 1059 | + "url": "", | |
| 1060 | + "careers_url": "https://apply.workable.com/evolving-web", | |
| 1061 | + "sectors": [ | |
| 1062 | + "TI", | |
| 1063 | + "Web" | |
| 1064 | + ], | |
| 1065 | + "connector": "workable", | |
| 1066 | + "status": "actif", | |
| 1067 | + "region": "Montréal" | |
| 1068 | + }, | |
| 1069 | + { | |
| 1070 | + "id": "exfo", | |
| 1071 | + "name": "EXFO", | |
| 1072 | + "url": "", | |
| 1073 | + "careers_url": "https://exfo.wd10.myworkdayjobs.com/exfo_careers", | |
| 1074 | + "sectors": [ | |
| 1075 | + "TI", | |
| 1076 | + "Télécommunications" | |
| 1077 | + ], | |
| 1078 | + "connector": "workday", | |
| 1079 | + "status": "actif", | |
| 1080 | + "region": "Québec" | |
| 1081 | + }, | |
| 1082 | + { | |
| 1083 | + "id": "exo", | |
| 1084 | + "name": "exo (transport métropolitain)", | |
| 1085 | + "url": "https://exo.quebec", | |
| 1086 | + "careers_url": "https://phh.tbe.taleo.net/phh04/ats/careers/v2/jobSearch?org=AMT&cws=39", | |
| 1087 | + "connector": "taleo_tbe", | |
| 1088 | + "sectors": [ | |
| 1089 | + "Transport", | |
| 1090 | + "Secteur public" | |
| 1091 | + ], | |
| 1092 | + "region": "Montréal", | |
| 1093 | + "status": "actif" | |
| 1094 | + }, | |
| 1095 | + { | |
| 1096 | + "id": "explorance", | |
| 1097 | + "name": "Explorance", | |
| 1098 | + "url": "", | |
| 1099 | + "careers_url": "https://explorance.bamboohr.com/careers", | |
| 1100 | + "sectors": [ | |
| 1101 | + "TI", | |
| 1102 | + "SaaS" | |
| 1103 | + ], | |
| 1104 | + "connector": "bamboohr", | |
| 1105 | + "status": "actif", | |
| 1106 | + "region": "Montréal" | |
| 1107 | + }, | |
| 1108 | + { | |
| 1109 | + "id": "fenetresconcept", | |
| 1110 | + "name": "Fenêtres Concept", | |
| 1111 | + "url": "https://fenetresconcept.com", | |
| 1112 | + "careers_url": "https://fenetresconcept.bamboohr.com/careers", | |
| 1113 | + "sectors": [ | |
| 1114 | + "Production" | |
| 1115 | + ], | |
| 1116 | + "connector": "bamboohr", | |
| 1117 | + "status": "actif", | |
| 1118 | + "region": "" | |
| 1119 | + }, | |
| 1120 | + { | |
| 1121 | + "id": "flare", | |
| 1122 | + "name": "Flare (cybersécurité)", | |
| 1123 | + "url": "", | |
| 1124 | + "careers_url": "https://flare.bamboohr.com/careers", | |
| 1125 | + "sectors": [ | |
| 1126 | + "TI" | |
| 1127 | + ], | |
| 1128 | + "connector": "bamboohr", | |
| 1129 | + "status": "actif", | |
| 1130 | + "region": "Montréal" | |
| 1131 | + }, | |
| 1132 | + { | |
| 1133 | + "id": "flinks", | |
| 1134 | + "name": "Flinks", | |
| 1135 | + "url": "", | |
| 1136 | + "careers_url": "https://apply.workable.com/flinks", | |
| 1137 | + "sectors": [ | |
| 1138 | + "TI", | |
| 1139 | + "Fintech" | |
| 1140 | + ], | |
| 1141 | + "connector": "workable", | |
| 1142 | + "status": "actif", | |
| 1143 | + "region": "Montréal" | |
| 1144 | + }, | |
| 1145 | + { | |
| 1146 | + "id": "fondsftq", | |
| 1147 | + "name": "Fonds de solidarité FTQ", | |
| 1148 | + "url": "https://fondsftq.com", | |
| 1149 | + "careers_url": "https://fondsftq.wd10.myworkdayjobs.com/sitecarriere_externe", | |
| 1150 | + "sectors": [], | |
| 1151 | + "connector": "workday", | |
| 1152 | + "status": "actif", | |
| 1153 | + "region": "Montréal" | |
| 1154 | + }, | |
| 1155 | + { | |
| 1156 | + "id": "framestore", | |
| 1157 | + "name": "Framestore", | |
| 1158 | + "url": "", | |
| 1159 | + "careers_url": "https://framestore.recruitee.com", | |
| 1160 | + "sectors": [ | |
| 1161 | + "Effets visuels", | |
| 1162 | + "Création" | |
| 1163 | + ], | |
| 1164 | + "connector": "recruitee", | |
| 1165 | + "status": "actif", | |
| 1166 | + "region": "Montréal" | |
| 1167 | + }, | |
| 1168 | + { | |
| 1169 | + "id": "fruitdor", | |
| 1170 | + "name": "Fruit d'Or", | |
| 1171 | + "url": "https://fruitdor.ca", | |
| 1172 | + "careers_url": "https://recruiting.ultipro.ca/FRU5100FRUIT/JobBoard/91103632-8052-480e-a5b0-a6028d640577/", | |
| 1173 | + "connector": "ultipro", | |
| 1174 | + "sectors": [ | |
| 1175 | + "Agroalimentaire", | |
| 1176 | + "Manufacturier" | |
| 1177 | + ], | |
| 1178 | + "region": "Centre-du-Québec", | |
| 1179 | + "status": "actif" | |
| 1180 | + }, | |
| 1181 | + { | |
| 1182 | + "id": "fuse", | |
| 1183 | + "name": "Fuse Energy", | |
| 1184 | + "url": "", | |
| 1185 | + "careers_url": "https://jobs.ashbyhq.com/Fuse", | |
| 1186 | + "sectors": [ | |
| 1187 | + "Énergie", | |
| 1188 | + "TI" | |
| 1189 | + ], | |
| 1190 | + "connector": "ashby", | |
| 1191 | + "status": "actif", | |
| 1192 | + "region": "Montréal" | |
| 1193 | + }, | |
| 1194 | + { | |
| 1195 | + "id": "gameloft", | |
| 1196 | + "name": "Gameloft", | |
| 1197 | + "url": "https://www.gameloft.com", | |
| 1198 | + "careers_url": "https://jobs.smartrecruiters.com/company/gameloft", | |
| 1199 | + "sectors": [ | |
| 1200 | + "Jeux vidéo" | |
| 1201 | + ], | |
| 1202 | + "connector": "smartrecruiters", | |
| 1203 | + "status": "actif", | |
| 1204 | + "region": "Montréal" | |
| 1205 | + }, | |
| 1206 | + { | |
| 1207 | + "id": "gearboxquebec", | |
| 1208 | + "name": "Gearbox Studio Québec", | |
| 1209 | + "url": "", | |
| 1210 | + "careers_url": "https://job-boards.greenhouse.io/gearboxquebec", | |
| 1211 | + "sectors": [ | |
| 1212 | + "Jeux vidéo" | |
| 1213 | + ], | |
| 1214 | + "connector": "greenhouse", | |
| 1215 | + "status": "actif", | |
| 1216 | + "region": "Montréal, Québec" | |
| 1217 | + }, | |
| 1218 | + { | |
| 1219 | + "id": "genetec_inc", | |
| 1220 | + "name": "Genetec", | |
| 1221 | + "url": "https://genetec.com", | |
| 1222 | + "careers_url": "https://apply.workable.com/genetec-inc", | |
| 1223 | + "sectors": [], | |
| 1224 | + "connector": "workable", | |
| 1225 | + "status": "actif", | |
| 1226 | + "region": "Montréal" | |
| 1227 | + }, | |
| 1228 | + { | |
| 1229 | + "id": "gfs", | |
| 1230 | + "name": "Service alimentaire Gordon", | |
| 1231 | + "url": "https://gfs.ca", | |
| 1232 | + "careers_url": "https://gfs.wd5.myworkdayjobs.com/usjobs-french", | |
| 1233 | + "sectors": [ | |
| 1234 | + "manufacturier/commerce" | |
| 1235 | + ], | |
| 1236 | + "connector": "workday", | |
| 1237 | + "status": "actif", | |
| 1238 | + "region": "" | |
| 1239 | + }, | |
| 1240 | + { | |
| 1241 | + "id": "gologic", | |
| 1242 | + "name": "GoLogic", | |
| 1243 | + "url": "", | |
| 1244 | + "careers_url": "https://jobs.smartrecruiters.com/company/gologic", | |
| 1245 | + "sectors": [ | |
| 1246 | + "TI" | |
| 1247 | + ], | |
| 1248 | + "connector": "smartrecruiters", | |
| 1249 | + "status": "actif", | |
| 1250 | + "region": "Montréal" | |
| 1251 | + }, | |
| 1252 | + { | |
| 1253 | + "id": "gorh", | |
| 1254 | + "name": "Go RH", | |
| 1255 | + "url": "", | |
| 1256 | + "careers_url": "https://jobs.lever.co/gorh", | |
| 1257 | + "sectors": [ | |
| 1258 | + "Placement", | |
| 1259 | + "RH" | |
| 1260 | + ], | |
| 1261 | + "connector": "lever", | |
| 1262 | + "status": "actif", | |
| 1263 | + "region": "Montréal, Québec" | |
| 1264 | + }, | |
| 1265 | + { | |
| 1266 | + "id": "groupecanam", | |
| 1267 | + "name": "Groupe Canam", | |
| 1268 | + "url": "", | |
| 1269 | + "careers_url": "https://jobs.smartrecruiters.com/company/groupecanam", | |
| 1270 | + "sectors": [ | |
| 1271 | + "Production", | |
| 1272 | + "Construction" | |
| 1273 | + ], | |
| 1274 | + "connector": "smartrecruiters", | |
| 1275 | + "status": "actif", | |
| 1276 | + "region": "Saint-Georges" | |
| 1277 | + }, | |
| 1278 | + { | |
| 1279 | + "id": "gsk", | |
| 1280 | + "name": "GSK", | |
| 1281 | + "url": "", | |
| 1282 | + "careers_url": "https://gsk.wd5.myworkdayjobs.com/GSKCareers", | |
| 1283 | + "sectors": [ | |
| 1284 | + "Pharmaceutique" | |
| 1285 | + ], | |
| 1286 | + "connector": "workday", | |
| 1287 | + "status": "actif", | |
| 1288 | + "region": "Laval, Québec" | |
| 1289 | + }, | |
| 1290 | + { | |
| 1291 | + "id": "guichet_emplois", | |
| 1292 | + "name": "Guichet-Emplois (Canada)", | |
| 1293 | + "url": "https://www.guichetemplois.gc.ca", | |
| 1294 | + "careers_url": "https://www.guichetemplois.gc.ca/jobsearch/rechercheemplois?fprov=QC", | |
| 1295 | + "sectors": [ | |
| 1296 | + "Portail", | |
| 1297 | + "Tous secteurs" | |
| 1298 | + ], | |
| 1299 | + "connector": "portail", | |
| 1300 | + "status": "actif", | |
| 1301 | + "region": "Québec (province)", | |
| 1302 | + "aggregator": true | |
| 1303 | + }, | |
| 1304 | + { | |
| 1305 | + "id": "gurussolutions", | |
| 1306 | + "name": "GURUS Solutions", | |
| 1307 | + "url": "", | |
| 1308 | + "careers_url": "https://job-boards.greenhouse.io/gurussolutions", | |
| 1309 | + "sectors": [ | |
| 1310 | + "TI" | |
| 1311 | + ], | |
| 1312 | + "connector": "greenhouse", | |
| 1313 | + "status": "actif", | |
| 1314 | + "region": "Montréal" | |
| 1315 | + }, | |
| 1316 | + { | |
| 1317 | + "id": "hec_montreal", | |
| 1318 | + "name": "HEC Montréal", | |
| 1319 | + "url": "https://www.hec.ca", | |
| 1320 | + "careers_url": "https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=NYQEDG&cws=40", | |
| 1321 | + "connector": "taleo_tbe", | |
| 1322 | + "sectors": [ | |
| 1323 | + "Éducation", | |
| 1324 | + "Administration" | |
| 1325 | + ], | |
| 1326 | + "region": "Montréal", | |
| 1327 | + "status": "actif" | |
| 1328 | + }, | |
| 1329 | + { | |
| 1330 | + "id": "hec_montreal_profs", | |
| 1331 | + "name": "HEC Montréal — corps professoral", | |
| 1332 | + "url": "https://www.hec.ca", | |
| 1333 | + "careers_url": "https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=NYQEDG&cws=41", | |
| 1334 | + "connector": "taleo_tbe", | |
| 1335 | + "sectors": [ | |
| 1336 | + "Éducation", | |
| 1337 | + "Recherche" | |
| 1338 | + ], | |
| 1339 | + "region": "Montréal", | |
| 1340 | + "status": "actif" | |
| 1341 | + }, | |
| 1342 | + { | |
| 1343 | + "id": "hopper", | |
| 1344 | + "name": "Hopper", | |
| 1345 | + "url": "", | |
| 1346 | + "careers_url": "https://jobs.ashbyhq.com/hopper", | |
| 1347 | + "sectors": [ | |
| 1348 | + "TI", | |
| 1349 | + "Voyage" | |
| 1350 | + ], | |
| 1351 | + "connector": "ashby", | |
| 1352 | + "status": "actif", | |
| 1353 | + "region": "Montréal" | |
| 1354 | + }, | |
| 1355 | + { | |
| 1356 | + "id": "hoyoverse", | |
| 1357 | + "name": "HoYoverse", | |
| 1358 | + "url": "", | |
| 1359 | + "careers_url": "https://jobs.smartrecruiters.com/company/hoyoverse", | |
| 1360 | + "sectors": [ | |
| 1361 | + "Jeux vidéo" | |
| 1362 | + ], | |
| 1363 | + "connector": "smartrecruiters", | |
| 1364 | + "status": "actif", | |
| 1365 | + "region": "Montréal" | |
| 1366 | + }, | |
| 1367 | + { | |
| 1368 | + "id": "huaweicanada", | |
| 1369 | + "name": "Huawei Canada", | |
| 1370 | + "url": "", | |
| 1371 | + "careers_url": "https://huaweicanada.recruitee.com", | |
| 1372 | + "sectors": [ | |
| 1373 | + "TI", | |
| 1374 | + "Recherche" | |
| 1375 | + ], | |
| 1376 | + "connector": "recruitee", | |
| 1377 | + "status": "actif", | |
| 1378 | + "region": "Montréal" | |
| 1379 | + }, | |
| 1380 | + { | |
| 1381 | + "id": "hydroquebec", | |
| 1382 | + "name": "Hydro-Québec", | |
| 1383 | + "url": "https://www.hydroquebec.com", | |
| 1384 | + "careers_url": "https://emploi.hydroquebec.com", | |
| 1385 | + "connector": "successfactors", | |
| 1386 | + "sectors": [ | |
| 1387 | + "Énergie", | |
| 1388 | + "Génie", | |
| 1389 | + "TI", | |
| 1390 | + "Secteur public" | |
| 1391 | + ], | |
| 1392 | + "region": "Montréal, Québec (province)", | |
| 1393 | + "status": "actif" | |
| 1394 | + }, | |
| 1395 | + { | |
| 1396 | + "id": "ia_groupe", | |
| 1397 | + "name": "iA Groupe financier", | |
| 1398 | + "url": "https://ia.ca", | |
| 1399 | + "careers_url": "https://ia.wd3.myworkdayjobs.com/Professional", | |
| 1400 | + "sectors": [ | |
| 1401 | + "Assurance", | |
| 1402 | + "Finance", | |
| 1403 | + "TI" | |
| 1404 | + ], | |
| 1405 | + "connector": "workday", | |
| 1406 | + "status": "actif", | |
| 1407 | + "region": "Québec" | |
| 1408 | + }, | |
| 1409 | + { | |
| 1410 | + "id": "industrious", | |
| 1411 | + "name": "Industrious", | |
| 1412 | + "url": "", | |
| 1413 | + "careers_url": "https://jobs.ashbyhq.com/industrious", | |
| 1414 | + "sectors": [ | |
| 1415 | + "Immobilier", | |
| 1416 | + "Services" | |
| 1417 | + ], | |
| 1418 | + "connector": "ashby", | |
| 1419 | + "status": "actif", | |
| 1420 | + "region": "Montréal" | |
| 1421 | + }, | |
| 1422 | + { | |
| 1423 | + "id": "ino_ca", | |
| 1424 | + "name": "Luqia (INO)", | |
| 1425 | + "url": "", | |
| 1426 | + "careers_url": "https://ino-ca.breezy.hr", | |
| 1427 | + "sectors": [ | |
| 1428 | + "Optique-photonique", | |
| 1429 | + "Recherche" | |
| 1430 | + ], | |
| 1431 | + "connector": "breezy", | |
| 1432 | + "status": "actif", | |
| 1433 | + "region": "Québec" | |
| 1434 | + }, | |
| 1435 | + { | |
| 1436 | + "id": "intactfc", | |
| 1437 | + "name": "Intact Corporation financière", | |
| 1438 | + "url": "", | |
| 1439 | + "careers_url": "https://intactfc.wd3.myworkdayjobs.com/Intactfc", | |
| 1440 | + "sectors": [ | |
| 1441 | + "Assurance" | |
| 1442 | + ], | |
| 1443 | + "connector": "workday", | |
| 1444 | + "status": "actif", | |
| 1445 | + "region": "Montréal" | |
| 1446 | + }, | |
| 1447 | + { | |
| 1448 | + "id": "investpsp", | |
| 1449 | + "name": "Investissements PSP", | |
| 1450 | + "url": "https://investpsp.com", | |
| 1451 | + "careers_url": "https://investpsp.wd3.myworkdayjobs.com/psp_careers", | |
| 1452 | + "sectors": [], | |
| 1453 | + "connector": "workday", | |
| 1454 | + "status": "actif", | |
| 1455 | + "region": "Montréal" | |
| 1456 | + }, | |
| 1457 | + { | |
| 1458 | + "id": "investquebec", | |
| 1459 | + "name": "Investissement Québec", | |
| 1460 | + "url": "https://investquebec.com", | |
| 1461 | + "careers_url": "https://investquebec.wd10.myworkdayjobs.com/Ext", | |
| 1462 | + "sectors": [], | |
| 1463 | + "connector": "workday", | |
| 1464 | + "status": "actif", | |
| 1465 | + "region": "Québec" | |
| 1466 | + }, | |
| 1467 | + { | |
| 1468 | + "id": "jexcelleinc", | |
| 1469 | + "name": "J'Excelle", | |
| 1470 | + "url": "", | |
| 1471 | + "careers_url": "https://jobs.smartrecruiters.com/company/JExcelleInc", | |
| 1472 | + "sectors": [ | |
| 1473 | + "Placement" | |
| 1474 | + ], | |
| 1475 | + "connector": "smartrecruiters", | |
| 1476 | + "status": "actif", | |
| 1477 | + "region": "Montréal, Laval, Gatineau" | |
| 1478 | + }, | |
| 1479 | + { | |
| 1480 | + "id": "jgrivesud", | |
| 1481 | + "name": "JG Rive-Sud (GFS)", | |
| 1482 | + "url": "https://jgfruitsetlegumes.com", | |
| 1483 | + "careers_url": "https://gfs.wd5.myworkdayjobs.com/jgrive-sud", | |
| 1484 | + "sectors": [ | |
| 1485 | + "manufacturier/commerce" | |
| 1486 | + ], | |
| 1487 | + "connector": "workday", | |
| 1488 | + "status": "actif", | |
| 1489 | + "region": "" | |
| 1490 | + }, | |
| 1491 | + { | |
| 1492 | + "id": "jobillico", | |
| 1493 | + "name": "Jobillico", | |
| 1494 | + "url": "https://www.jobillico.com", | |
| 1495 | + "careers_url": "https://www.jobillico.com/recherche-emploi", | |
| 1496 | + "sectors": [ | |
| 1497 | + "Portail", | |
| 1498 | + "Tous secteurs" | |
| 1499 | + ], | |
| 1500 | + "connector": "portail", | |
| 1501 | + "status": "actif", | |
| 1502 | + "region": "Québec (province)", | |
| 1503 | + "aggregator": true | |
| 1504 | + }, | |
| 1505 | + { | |
| 1506 | + "id": "korem", | |
| 1507 | + "name": "Korem", | |
| 1508 | + "url": "", | |
| 1509 | + "careers_url": "https://korem.bamboohr.com/careers", | |
| 1510 | + "sectors": [ | |
| 1511 | + "TI" | |
| 1512 | + ], | |
| 1513 | + "connector": "bamboohr", | |
| 1514 | + "status": "actif", | |
| 1515 | + "region": "Québec" | |
| 1516 | + }, | |
| 1517 | + { | |
| 1518 | + "id": "kpidigital", | |
| 1519 | + "name": "KPI Digital", | |
| 1520 | + "url": "", | |
| 1521 | + "careers_url": "https://kpidigital.bamboohr.com/careers", | |
| 1522 | + "sectors": [ | |
| 1523 | + "TI", | |
| 1524 | + "Données" | |
| 1525 | + ], | |
| 1526 | + "connector": "bamboohr", | |
| 1527 | + "status": "actif", | |
| 1528 | + "region": "Montréal" | |
| 1529 | + }, | |
| 1530 | + { | |
| 1531 | + "id": "kruger", | |
| 1532 | + "name": "Kruger", | |
| 1533 | + "url": "https://www.kruger.com", | |
| 1534 | + "careers_url": "https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=KRUGER2&cws=76", | |
| 1535 | + "connector": "taleo_tbe", | |
| 1536 | + "sectors": [ | |
| 1537 | + "Pâtes et papiers", | |
| 1538 | + "Manufacturier" | |
| 1539 | + ], | |
| 1540 | + "region": "Montréal, Trois-Rivières", | |
| 1541 | + "status": "actif" | |
| 1542 | + }, | |
| 1543 | + { | |
| 1544 | + "id": "labelink", | |
| 1545 | + "name": "Produits Labelink", | |
| 1546 | + "url": "", | |
| 1547 | + "careers_url": "https://labelink.bamboohr.com/careers", | |
| 1548 | + "sectors": [ | |
| 1549 | + "Impression", | |
| 1550 | + "Manufacture" | |
| 1551 | + ], | |
| 1552 | + "connector": "bamboohr", | |
| 1553 | + "status": "actif", | |
| 1554 | + "region": "Montréal, Laval, Granby" | |
| 1555 | + }, | |
| 1556 | + { | |
| 1557 | + "id": "lamour", | |
| 1558 | + "name": "Lamour", | |
| 1559 | + "url": "", | |
| 1560 | + "careers_url": "https://apply.workable.com/lamour", | |
| 1561 | + "sectors": [ | |
| 1562 | + "Textile", | |
| 1563 | + "Manufacture" | |
| 1564 | + ], | |
| 1565 | + "connector": "workable", | |
| 1566 | + "status": "actif", | |
| 1567 | + "region": "Montréal" | |
| 1568 | + }, | |
| 1569 | + { | |
| 1570 | + "id": "lassonde", | |
| 1571 | + "name": "Industries Lassonde", | |
| 1572 | + "url": "https://www.lassonde.com", | |
| 1573 | + "careers_url": "https://www.lassonde.com/fr/emplois/", | |
| 1574 | + "sectors": [ | |
| 1575 | + "Agroalimentaire", | |
| 1576 | + "Fabrication" | |
| 1577 | + ], | |
| 1578 | + "connector": "custom", | |
| 1579 | + "status": "actif", | |
| 1580 | + "region": "Rougemont, Montréal" | |
| 1581 | + }, | |
| 1582 | + { | |
| 1583 | + "id": "levio", | |
| 1584 | + "name": "Levio", | |
| 1585 | + "url": "", | |
| 1586 | + "careers_url": "https://job-boards.greenhouse.io/levio", | |
| 1587 | + "sectors": [ | |
| 1588 | + "TI" | |
| 1589 | + ], | |
| 1590 | + "connector": "greenhouse", | |
| 1591 | + "status": "actif", | |
| 1592 | + "region": "Québec, Montréal" | |
| 1593 | + }, | |
| 1594 | + { | |
| 1595 | + "id": "lg2", | |
| 1596 | + "name": "LG2", | |
| 1597 | + "url": "", | |
| 1598 | + "careers_url": "https://lg2.recruitee.com", | |
| 1599 | + "sectors": [ | |
| 1600 | + "Publicité", | |
| 1601 | + "Création" | |
| 1602 | + ], | |
| 1603 | + "connector": "recruitee", | |
| 1604 | + "status": "actif", | |
| 1605 | + "region": "Montréal, Québec" | |
| 1606 | + }, | |
| 1607 | + { | |
| 1608 | + "id": "lidd", | |
| 1609 | + "name": "LIDD Consultants", | |
| 1610 | + "url": "", | |
| 1611 | + "careers_url": "https://apply.workable.com/lidd", | |
| 1612 | + "sectors": [ | |
| 1613 | + "Conseil", | |
| 1614 | + "Logistique" | |
| 1615 | + ], | |
| 1616 | + "connector": "workable", | |
| 1617 | + "status": "actif", | |
| 1618 | + "region": "Montréal" | |
| 1619 | + }, | |
| 1620 | + { | |
| 1621 | + "id": "lightspeedhq", | |
| 1622 | + "name": "Lightspeed Commerce", | |
| 1623 | + "url": "", | |
| 1624 | + "careers_url": "https://jobs.ashbyhq.com/lightspeedhq", | |
| 1625 | + "sectors": [ | |
| 1626 | + "TI" | |
| 1627 | + ], | |
| 1628 | + "connector": "ashby", | |
| 1629 | + "status": "actif", | |
| 1630 | + "region": "Montréal" | |
| 1631 | + }, | |
| 1632 | + { | |
| 1633 | + "id": "logisco", | |
| 1634 | + "name": "Logisco", | |
| 1635 | + "url": "https://logisco.com", | |
| 1636 | + "careers_url": "https://logisco.bamboohr.com/careers", | |
| 1637 | + "sectors": [ | |
| 1638 | + "Immobilier" | |
| 1639 | + ], | |
| 1640 | + "connector": "bamboohr", | |
| 1641 | + "status": "actif", | |
| 1642 | + "region": "" | |
| 1643 | + }, | |
| 1644 | + { | |
| 1645 | + "id": "lush", | |
| 1646 | + "name": "Lush Cosmétiques", | |
| 1647 | + "url": "", | |
| 1648 | + "careers_url": "https://job-boards.greenhouse.io/lush", | |
| 1649 | + "sectors": [ | |
| 1650 | + "Commerce de détail" | |
| 1651 | + ], | |
| 1652 | + "connector": "greenhouse", | |
| 1653 | + "status": "actif", | |
| 1654 | + "region": "Montréal, Québec" | |
| 1655 | + }, | |
| 1656 | + { | |
| 1657 | + "id": "mackenzie", | |
| 1658 | + "name": "Placements Mackenzie (Power/IGM)", | |
| 1659 | + "url": "https://www.placementsmackenzie.com", | |
| 1660 | + "careers_url": "https://careersfr-mackenzieinvestments.icims.com/jobs/search?ss=1", | |
| 1661 | + "connector": "icims", | |
| 1662 | + "sectors": [ | |
| 1663 | + "Finance" | |
| 1664 | + ], | |
| 1665 | + "region": "Montréal", | |
| 1666 | + "status": "actif" | |
| 1667 | + }, | |
| 1668 | + { | |
| 1669 | + "id": "maintainx", | |
| 1670 | + "name": "MaintainX", | |
| 1671 | + "url": "", | |
| 1672 | + "careers_url": "https://jobs.ashbyhq.com/maintainx", | |
| 1673 | + "sectors": [ | |
| 1674 | + "TI", | |
| 1675 | + "SaaS" | |
| 1676 | + ], | |
| 1677 | + "connector": "ashby", | |
| 1678 | + "status": "actif", | |
| 1679 | + "region": "Montréal" | |
| 1680 | + }, | |
| 1681 | + { | |
| 1682 | + "id": "manulife", | |
| 1683 | + "name": "Manuvie", | |
| 1684 | + "url": "", | |
| 1685 | + "careers_url": "https://manulife.wd3.myworkdayjobs.com/MFCJH_Jobs", | |
| 1686 | + "sectors": [ | |
| 1687 | + "Assurance", | |
| 1688 | + "Finance" | |
| 1689 | + ], | |
| 1690 | + "connector": "workday", | |
| 1691 | + "status": "actif", | |
| 1692 | + "region": "Montréal" | |
| 1693 | + }, | |
| 1694 | + { | |
| 1695 | + "id": "mattelinc", | |
| 1696 | + "name": "Mattel (Mega Bloks)", | |
| 1697 | + "url": "", | |
| 1698 | + "careers_url": "https://jobs.smartrecruiters.com/company/MattelInc", | |
| 1699 | + "sectors": [ | |
| 1700 | + "Jouets", | |
| 1701 | + "Manufacture" | |
| 1702 | + ], | |
| 1703 | + "connector": "smartrecruiters", | |
| 1704 | + "status": "actif", | |
| 1705 | + "region": "Montréal" | |
| 1706 | + }, | |
| 1707 | + { | |
| 1708 | + "id": "mccarthy_tetrault", | |
| 1709 | + "name": "McCarthy Tétrault", | |
| 1710 | + "url": "https://www.mccarthy.ca", | |
| 1711 | + "careers_url": "https://careers-mccarthyca.icims.com/jobs/search?ss=1", | |
| 1712 | + "sectors": [ | |
| 1713 | + "Juridique", | |
| 1714 | + "Services professionnels" | |
| 1715 | + ], | |
| 1716 | + "connector": "icims", | |
| 1717 | + "status": "actif", | |
| 1718 | + "region": "Montréal, Québec" | |
| 1719 | + }, | |
| 1720 | + { | |
| 1721 | + "id": "mcgill", | |
| 1722 | + "name": "Université McGill", | |
| 1723 | + "url": "https://www.mcgill.ca", | |
| 1724 | + "careers_url": "https://mcgill.wd3.myworkdayjobs.com/McGill_Careers", | |
| 1725 | + "sectors": [ | |
| 1726 | + "Éducation", | |
| 1727 | + "Recherche", | |
| 1728 | + "Administration" | |
| 1729 | + ], | |
| 1730 | + "connector": "workday", | |
| 1731 | + "status": "actif", | |
| 1732 | + "region": "Montréal" | |
| 1733 | + }, | |
| 1734 | + { | |
| 1735 | + "id": "mckesson", | |
| 1736 | + "name": "McKesson Canada", | |
| 1737 | + "url": "", | |
| 1738 | + "careers_url": "https://mckesson.wd3.myworkdayjobs.com/External_Careers", | |
| 1739 | + "sectors": [ | |
| 1740 | + "Pharmaceutique", | |
| 1741 | + "Distribution" | |
| 1742 | + ], | |
| 1743 | + "connector": "workday", | |
| 1744 | + "status": "actif", | |
| 1745 | + "region": "Montréal" | |
| 1746 | + }, | |
| 1747 | + { | |
| 1748 | + "id": "medfar", | |
| 1749 | + "name": "MEDFAR Solutions Cliniques", | |
| 1750 | + "url": "", | |
| 1751 | + "careers_url": "https://jobs.smartrecruiters.com/company/Medfar", | |
| 1752 | + "sectors": [ | |
| 1753 | + "TI", | |
| 1754 | + "Santé" | |
| 1755 | + ], | |
| 1756 | + "connector": "smartrecruiters", | |
| 1757 | + "status": "actif", | |
| 1758 | + "region": "Montréal" | |
| 1759 | + }, | |
| 1760 | + { | |
| 1761 | + "id": "medialo", | |
| 1762 | + "name": "Médialo", | |
| 1763 | + "url": "", | |
| 1764 | + "careers_url": "https://medialo.recruitee.com", | |
| 1765 | + "sectors": [ | |
| 1766 | + "Médias" | |
| 1767 | + ], | |
| 1768 | + "connector": "recruitee", | |
| 1769 | + "status": "actif", | |
| 1770 | + "region": "Mont-Laurier, Terrebonne" | |
| 1771 | + }, | |
| 1772 | + { | |
| 1773 | + "id": "messer_canada", | |
| 1774 | + "name": "Messer Canada", | |
| 1775 | + "url": "https://www.messer-ca.com", | |
| 1776 | + "careers_url": "https://recruiting.ultipro.com/MES1005MESR/JobBoard/dbd63926-d756-486f-a254-b2a6ede1d26e", | |
| 1777 | + "sectors": [ | |
| 1778 | + "Gaz industriels", | |
| 1779 | + "Industrie" | |
| 1780 | + ], | |
| 1781 | + "connector": "ultipro", | |
| 1782 | + "status": "actif", | |
| 1783 | + "region": "Montréal, Québec, Saint-Georges" | |
| 1784 | + }, | |
| 1785 | + { | |
| 1786 | + "id": "microhabitat", | |
| 1787 | + "name": "MicroHabitat", | |
| 1788 | + "url": "", | |
| 1789 | + "careers_url": "https://microhabitat.breezy.hr", | |
| 1790 | + "sectors": [ | |
| 1791 | + "Agriculture urbaine" | |
| 1792 | + ], | |
| 1793 | + "connector": "breezy", | |
| 1794 | + "status": "actif", | |
| 1795 | + "region": "Montréal, Québec" | |
| 1796 | + }, | |
| 1797 | + { | |
| 1798 | + "id": "mila_2", | |
| 1799 | + "name": "Mila — Institut québécois d'IA", | |
| 1800 | + "url": "https://mila.quebec", | |
| 1801 | + "careers_url": "https://apply.workable.com/mila-2", | |
| 1802 | + "sectors": [], | |
| 1803 | + "connector": "workable", | |
| 1804 | + "status": "actif", | |
| 1805 | + "region": "Montréal" | |
| 1806 | + }, | |
| 1807 | + { | |
| 1808 | + "id": "mirego", | |
| 1809 | + "name": "Mirego", | |
| 1810 | + "url": "", | |
| 1811 | + "careers_url": "https://jobs.lever.co/mirego", | |
| 1812 | + "sectors": [ | |
| 1813 | + "TI" | |
| 1814 | + ], | |
| 1815 | + "connector": "lever", | |
| 1816 | + "status": "actif", | |
| 1817 | + "region": "Québec, Montréal" | |
| 1818 | + }, | |
| 1819 | + { | |
| 1820 | + "id": "mistplay", | |
| 1821 | + "name": "Mistplay", | |
| 1822 | + "url": "https://www.mistplay.com", | |
| 1823 | + "careers_url": "https://jobs.lever.co/mistplay", | |
| 1824 | + "sectors": [ | |
| 1825 | + "TI", | |
| 1826 | + "Jeu mobile" | |
| 1827 | + ], | |
| 1828 | + "connector": "lever", | |
| 1829 | + "status": "actif", | |
| 1830 | + "region": "Montréal" | |
| 1831 | + }, | |
| 1832 | + { | |
| 1833 | + "id": "mistral_ai", | |
| 1834 | + "name": "Mistral AI", | |
| 1835 | + "url": "", | |
| 1836 | + "careers_url": "https://jobs.ashbyhq.com/mistral.ai", | |
| 1837 | + "sectors": [ | |
| 1838 | + "TI", | |
| 1839 | + "IA" | |
| 1840 | + ], | |
| 1841 | + "connector": "ashby", | |
| 1842 | + "status": "actif", | |
| 1843 | + "region": "Montréal" | |
| 1844 | + }, | |
| 1845 | + { | |
| 1846 | + "id": "mitacs", | |
| 1847 | + "name": "Mitacs", | |
| 1848 | + "url": "", | |
| 1849 | + "careers_url": "https://mitacs.bamboohr.com/careers", | |
| 1850 | + "sectors": [ | |
| 1851 | + "Recherche", | |
| 1852 | + "OBNL" | |
| 1853 | + ], | |
| 1854 | + "connector": "bamboohr", | |
| 1855 | + "status": "actif", | |
| 1856 | + "region": "Montréal" | |
| 1857 | + }, | |
| 1858 | + { | |
| 1859 | + "id": "mitsubishi_hc_capital", | |
| 1860 | + "name": "Mitsubishi HC Capital Canada", | |
| 1861 | + "url": "https://www.mhccna.com", | |
| 1862 | + "careers_url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=b3ef4f03-f8ff-4ded-80c8-6dd5c5a224f7&ccId=9200144510729_2&lang=fr_CA", | |
| 1863 | + "sectors": [ | |
| 1864 | + "Finance", | |
| 1865 | + "Financement commercial" | |
| 1866 | + ], | |
| 1867 | + "connector": "adp", | |
| 1868 | + "status": "actif", | |
| 1869 | + "region": "Laval, Trois-Rivières" | |
| 1870 | + }, | |
| 1871 | + { | |
| 1872 | + "id": "msi_gestion", | |
| 1873 | + "name": "MSI Gestion immobilière", | |
| 1874 | + "url": "https://www.msimmobiliers.com", | |
| 1875 | + "careers_url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=47d4e792-26e5-471c-92ac-73c60131bab8&ccId=19000101_000001&lang=fr_CA", | |
| 1876 | + "sectors": [ | |
| 1877 | + "Immobilier", | |
| 1878 | + "Gestion immobilière" | |
| 1879 | + ], | |
| 1880 | + "connector": "adp", | |
| 1881 | + "status": "actif", | |
| 1882 | + "region": "Montréal" | |
| 1883 | + }, | |
| 1884 | + { | |
| 1885 | + "id": "mthreerecruitingportal", | |
| 1886 | + "name": "mthree", | |
| 1887 | + "url": "", | |
| 1888 | + "careers_url": "https://job-boards.greenhouse.io/mthreerecruitingportal", | |
| 1889 | + "sectors": [ | |
| 1890 | + "TI", | |
| 1891 | + "Placement" | |
| 1892 | + ], | |
| 1893 | + "connector": "greenhouse", | |
| 1894 | + "status": "actif", | |
| 1895 | + "region": "Montréal" | |
| 1896 | + }, | |
| 1897 | + { | |
| 1898 | + "id": "mxo", | |
| 1899 | + "name": "MXO", | |
| 1900 | + "url": "https://mxoconseil.com", | |
| 1901 | + "careers_url": "https://mxo.bamboohr.com/careers", | |
| 1902 | + "sectors": [ | |
| 1903 | + "manufacturier/commerce" | |
| 1904 | + ], | |
| 1905 | + "connector": "bamboohr", | |
| 1906 | + "status": "actif", | |
| 1907 | + "region": "" | |
| 1908 | + }, | |
| 1909 | + { | |
| 1910 | + "id": "national", | |
| 1911 | + "name": "NATIONAL", | |
| 1912 | + "url": "", | |
| 1913 | + "careers_url": "https://job-boards.greenhouse.io/national", | |
| 1914 | + "sectors": [ | |
| 1915 | + "Relations publiques" | |
| 1916 | + ], | |
| 1917 | + "connector": "greenhouse", | |
| 1918 | + "status": "actif", | |
| 1919 | + "region": "Montréal" | |
| 1920 | + }, | |
| 1921 | + { | |
| 1922 | + "id": "nexapp", | |
| 1923 | + "name": "Nexapp", | |
| 1924 | + "url": "", | |
| 1925 | + "careers_url": "https://nexapp.bamboohr.com/careers", | |
| 1926 | + "sectors": [ | |
| 1927 | + "TI", | |
| 1928 | + "Web" | |
| 1929 | + ], | |
| 1930 | + "connector": "bamboohr", | |
| 1931 | + "status": "actif", | |
| 1932 | + "region": "Québec" | |
| 1933 | + }, | |
| 1934 | + { | |
| 1935 | + "id": "no_saint", | |
| 1936 | + "name": "No Saint", | |
| 1937 | + "url": "", | |
| 1938 | + "careers_url": "https://jobs.ashbyhq.com/no-saint", | |
| 1939 | + "sectors": [ | |
| 1940 | + "Création" | |
| 1941 | + ], | |
| 1942 | + "connector": "ashby", | |
| 1943 | + "status": "actif", | |
| 1944 | + "region": "Montréal" | |
| 1945 | + }, | |
| 1946 | + { | |
| 1947 | + "id": "nomic", | |
| 1948 | + "name": "Nomic Bio", | |
| 1949 | + "url": "", | |
| 1950 | + "careers_url": "https://jobs.ashbyhq.com/nomic", | |
| 1951 | + "sectors": [ | |
| 1952 | + "Biotechnologie" | |
| 1953 | + ], | |
| 1954 | + "connector": "ashby", | |
| 1955 | + "status": "actif", | |
| 1956 | + "region": "Montréal" | |
| 1957 | + }, | |
| 1958 | + { | |
| 1959 | + "id": "nora_pharma", | |
| 1960 | + "name": "Nora Pharma", | |
| 1961 | + "url": "", | |
| 1962 | + "careers_url": "https://nora-pharma.breezy.hr", | |
| 1963 | + "sectors": [ | |
| 1964 | + "Pharmaceutique" | |
| 1965 | + ], | |
| 1966 | + "connector": "breezy", | |
| 1967 | + "status": "actif", | |
| 1968 | + "region": "Laval, Montréal, Granby" | |
| 1969 | + }, | |
| 1970 | + { | |
| 1971 | + "id": "nortera", | |
| 1972 | + "name": "Nortera", | |
| 1973 | + "url": "https://norterafoods.com", | |
| 1974 | + "careers_url": "https://recruiting.ultipro.ca/NOR5100NOFD/JobBoard/e3ce2e8a-b8fc-42c9-97cf-ea17f4d5dd1d/", | |
| 1975 | + "connector": "ultipro", | |
| 1976 | + "sectors": [ | |
| 1977 | + "Agroalimentaire", | |
| 1978 | + "Manufacturier" | |
| 1979 | + ], | |
| 1980 | + "region": "Montérégie, Brossard", | |
| 1981 | + "status": "actif" | |
| 1982 | + }, | |
| 1983 | + { | |
| 1984 | + "id": "northwestrubber", | |
| 1985 | + "name": "North West Rubber", | |
| 1986 | + "url": "", | |
| 1987 | + "careers_url": "https://northwestrubber.bamboohr.com/careers", | |
| 1988 | + "sectors": [ | |
| 1989 | + "Manufacture" | |
| 1990 | + ], | |
| 1991 | + "connector": "bamboohr", | |
| 1992 | + "status": "actif", | |
| 1993 | + "region": "Sherbrooke" | |
| 1994 | + }, | |
| 1995 | + { | |
| 1996 | + "id": "novipro", | |
| 1997 | + "name": "NOVIPRO", | |
| 1998 | + "url": "", | |
| 1999 | + "careers_url": "https://novipro.breezy.hr", | |
| 2000 | + "sectors": [ | |
| 2001 | + "TI" | |
| 2002 | + ], | |
| 2003 | + "connector": "breezy", | |
| 2004 | + "status": "actif", | |
| 2005 | + "region": "Montréal, Longueuil" | |
| 2006 | + }, | |
| 2007 | + { | |
| 2008 | + "id": "nuovophotography", | |
| 2009 | + "name": "Nuovo Photography", | |
| 2010 | + "url": "", | |
| 2011 | + "careers_url": "https://apply.workable.com/nuovophotography", | |
| 2012 | + "sectors": [ | |
| 2013 | + "Photographie" | |
| 2014 | + ], | |
| 2015 | + "connector": "workable", | |
| 2016 | + "status": "actif", | |
| 2017 | + "region": "Montréal" | |
| 2018 | + }, | |
| 2019 | + { | |
| 2020 | + "id": "omni_hotels_gestion", | |
| 2021 | + "name": "Omni Hôtel Mont-Royal", | |
| 2022 | + "url": "https://www.omnihotels.com/fr/hotels/montreal-mont-royal", | |
| 2023 | + "careers_url": "https://externalmanager-omnihotels.icims.com/jobs/search?ss=1", | |
| 2024 | + "sectors": [ | |
| 2025 | + "Hôtellerie", | |
| 2026 | + "Gestion" | |
| 2027 | + ], | |
| 2028 | + "connector": "icims", | |
| 2029 | + "status": "actif", | |
| 2030 | + "region": "Montréal" | |
| 2031 | + }, | |
| 2032 | + { | |
| 2033 | + "id": "omni_hotels_horaire", | |
| 2034 | + "name": "Omni Hôtel Mont-Royal", | |
| 2035 | + "url": "https://www.omnihotels.com/fr/hotels/montreal-mont-royal", | |
| 2036 | + "careers_url": "https://externalhourly-omnihotels.icims.com/jobs/search?ss=1", | |
| 2037 | + "sectors": [ | |
| 2038 | + "Hôtellerie", | |
| 2039 | + "Restauration" | |
| 2040 | + ], | |
| 2041 | + "connector": "icims", | |
| 2042 | + "status": "actif", | |
| 2043 | + "region": "Montréal" | |
| 2044 | + }, | |
| 2045 | + { | |
| 2046 | + "id": "onrunning", | |
| 2047 | + "name": "On Running", | |
| 2048 | + "url": "", | |
| 2049 | + "careers_url": "https://job-boards.greenhouse.io/onrunning", | |
| 2050 | + "sectors": [ | |
| 2051 | + "Commerce de détail", | |
| 2052 | + "Sport" | |
| 2053 | + ], | |
| 2054 | + "connector": "greenhouse", | |
| 2055 | + "status": "actif", | |
| 2056 | + "region": "Montréal" | |
| 2057 | + }, | |
| 2058 | + { | |
| 2059 | + "id": "opalrt", | |
| 2060 | + "name": "OPAL-RT Technologies", | |
| 2061 | + "url": "", | |
| 2062 | + "careers_url": "https://opalrt.bamboohr.com/careers", | |
| 2063 | + "sectors": [ | |
| 2064 | + "TI", | |
| 2065 | + "Ingénierie" | |
| 2066 | + ], | |
| 2067 | + "connector": "bamboohr", | |
| 2068 | + "status": "actif", | |
| 2069 | + "region": "Montréal" | |
| 2070 | + }, | |
| 2071 | + { | |
| 2072 | + "id": "osedea", | |
| 2073 | + "name": "OSEDEA", | |
| 2074 | + "url": "", | |
| 2075 | + "careers_url": "https://jobs.lever.co/osedea", | |
| 2076 | + "sectors": [ | |
| 2077 | + "TI", | |
| 2078 | + "Web" | |
| 2079 | + ], | |
| 2080 | + "connector": "lever", | |
| 2081 | + "status": "actif", | |
| 2082 | + "region": "Montréal" | |
| 2083 | + }, | |
| 2084 | + { | |
| 2085 | + "id": "osgoode_properties", | |
| 2086 | + "name": "Osgoode Properties", | |
| 2087 | + "url": "https://www.osgoodeproperties.com", | |
| 2088 | + "careers_url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=c6a2e782-c971-4a6d-9a63-1365f5ce7d21&ccId=19000101_000001&lang=fr_CA", | |
| 2089 | + "connector": "adp", | |
| 2090 | + "sectors": [ | |
| 2091 | + "Immobilier" | |
| 2092 | + ], | |
| 2093 | + "region": "Gatineau", | |
| 2094 | + "status": "actif" | |
| 2095 | + }, | |
| 2096 | + { | |
| 2097 | + "id": "ott", | |
| 2098 | + "name": "OTT Financial", | |
| 2099 | + "url": "", | |
| 2100 | + "careers_url": "https://ott.bamboohr.com/careers", | |
| 2101 | + "sectors": [ | |
| 2102 | + "Finance" | |
| 2103 | + ], | |
| 2104 | + "connector": "bamboohr", | |
| 2105 | + "status": "actif", | |
| 2106 | + "region": "Montréal" | |
| 2107 | + }, | |
| 2108 | + { | |
| 2109 | + "id": "peoplecanfly", | |
| 2110 | + "name": "People Can Fly", | |
| 2111 | + "url": "", | |
| 2112 | + "careers_url": "https://jobs.smartrecruiters.com/company/PeopleCanFly", | |
| 2113 | + "sectors": [ | |
| 2114 | + "Jeux vidéo" | |
| 2115 | + ], | |
| 2116 | + "connector": "smartrecruiters", | |
| 2117 | + "status": "actif", | |
| 2118 | + "region": "Montréal" | |
| 2119 | + }, | |
| 2120 | + { | |
| 2121 | + "id": "petalmd", | |
| 2122 | + "name": "Petal", | |
| 2123 | + "url": "", | |
| 2124 | + "careers_url": "https://petalmd.recruitee.com", | |
| 2125 | + "sectors": [ | |
| 2126 | + "TI", | |
| 2127 | + "Santé" | |
| 2128 | + ], | |
| 2129 | + "connector": "recruitee", | |
| 2130 | + "status": "actif", | |
| 2131 | + "region": "Montréal, Québec" | |
| 2132 | + }, | |
| 2133 | + { | |
| 2134 | + "id": "pfizer", | |
| 2135 | + "name": "Pfizer Canada", | |
| 2136 | + "url": "", | |
| 2137 | + "careers_url": "https://pfizer.wd1.myworkdayjobs.com/PfizerCareers", | |
| 2138 | + "sectors": [ | |
| 2139 | + "Pharmaceutique" | |
| 2140 | + ], | |
| 2141 | + "connector": "workday", | |
| 2142 | + "status": "actif", | |
| 2143 | + "region": "Kirkland" | |
| 2144 | + }, | |
| 2145 | + { | |
| 2146 | + "id": "playmind", | |
| 2147 | + "name": "Playmind", | |
| 2148 | + "url": "", | |
| 2149 | + "careers_url": "https://jobs.smartrecruiters.com/company/playmind", | |
| 2150 | + "sectors": [ | |
| 2151 | + "Jeux vidéo" | |
| 2152 | + ], | |
| 2153 | + "connector": "smartrecruiters", | |
| 2154 | + "status": "actif", | |
| 2155 | + "region": "Montréal" | |
| 2156 | + }, | |
| 2157 | + { | |
| 2158 | + "id": "plusgrade", | |
| 2159 | + "name": "Plusgrade", | |
| 2160 | + "url": "https://plusgrade.com", | |
| 2161 | + "careers_url": "https://plusgrade.wd10.myworkdayjobs.com/Plusgrade_External_Site", | |
| 2162 | + "sectors": [], | |
| 2163 | + "connector": "workday", | |
| 2164 | + "status": "actif", | |
| 2165 | + "region": "Montréal" | |
| 2166 | + }, | |
| 2167 | + { | |
| 2168 | + "id": "poka", | |
| 2169 | + "name": "Poka", | |
| 2170 | + "url": "https://www.poka.io", | |
| 2171 | + "careers_url": "https://job-boards.greenhouse.io/poka", | |
| 2172 | + "sectors": [ | |
| 2173 | + "TI", | |
| 2174 | + "SaaS manufacturier" | |
| 2175 | + ], | |
| 2176 | + "connector": "greenhouse", | |
| 2177 | + "status": "actif", | |
| 2178 | + "region": "Québec" | |
| 2179 | + }, | |
| 2180 | + { | |
| 2181 | + "id": "portagecybertech", | |
| 2182 | + "name": "Portage CyberTech", | |
| 2183 | + "url": "", | |
| 2184 | + "careers_url": "https://portagecybertech.bamboohr.com/careers", | |
| 2185 | + "sectors": [ | |
| 2186 | + "TI", | |
| 2187 | + "Cybersécurité" | |
| 2188 | + ], | |
| 2189 | + "connector": "bamboohr", | |
| 2190 | + "status": "actif", | |
| 2191 | + "region": "Gatineau, Montréal" | |
| 2192 | + }, | |
| 2193 | + { | |
| 2194 | + "id": "potloc", | |
| 2195 | + "name": "Potloc", | |
| 2196 | + "url": "https://www.potloc.com", | |
| 2197 | + "careers_url": "https://jobs.lever.co/Potloc", | |
| 2198 | + "sectors": [ | |
| 2199 | + "TI", | |
| 2200 | + "Études de marché" | |
| 2201 | + ], | |
| 2202 | + "connector": "lever", | |
| 2203 | + "status": "actif", | |
| 2204 | + "region": "Montréal" | |
| 2205 | + }, | |
| 2206 | + { | |
| 2207 | + "id": "pouletrouge", | |
| 2208 | + "name": "Poulet Rouge", | |
| 2209 | + "url": "https://poulet-rouge.ca", | |
| 2210 | + "careers_url": "https://pouletrouge.bamboohr.com/careers", | |
| 2211 | + "sectors": [ | |
| 2212 | + "restauration" | |
| 2213 | + ], | |
| 2214 | + "connector": "bamboohr", | |
| 2215 | + "status": "actif", | |
| 2216 | + "region": "Montréal" | |
| 2217 | + }, | |
| 2218 | + { | |
| 2219 | + "id": "produits_kruger", | |
| 2220 | + "name": "Produits Kruger", | |
| 2221 | + "url": "https://www.produitskruger.ca", | |
| 2222 | + "careers_url": "https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=KRUGER2&cws=78", | |
| 2223 | + "connector": "taleo_tbe", | |
| 2224 | + "sectors": [ | |
| 2225 | + "Manufacturier", | |
| 2226 | + "Biens de consommation" | |
| 2227 | + ], | |
| 2228 | + "region": "Gatineau, Crabtree", | |
| 2229 | + "status": "actif" | |
| 2230 | + }, | |
| 2231 | + { | |
| 2232 | + "id": "promutuel", | |
| 2233 | + "name": "Promutuel Assurance", | |
| 2234 | + "url": "https://promutuelassurance.ca", | |
| 2235 | + "careers_url": "https://promutuel.wd3.myworkdayjobs.com/promutuel_carrieres", | |
| 2236 | + "sectors": [], | |
| 2237 | + "connector": "workday", | |
| 2238 | + "status": "actif", | |
| 2239 | + "region": "Québec" | |
| 2240 | + }, | |
| 2241 | + { | |
| 2242 | + "id": "qsl", | |
| 2243 | + "name": "QSL", | |
| 2244 | + "url": "https://qsl.com", | |
| 2245 | + "careers_url": "https://jobs.smartrecruiters.com/company/qsl", | |
| 2246 | + "sectors": [], | |
| 2247 | + "connector": "smartrecruiters", | |
| 2248 | + "status": "actif", | |
| 2249 | + "region": "Québec" | |
| 2250 | + }, | |
| 2251 | + { | |
| 2252 | + "id": "rcgt", | |
| 2253 | + "name": "Raymond Chabot Grant Thornton", | |
| 2254 | + "url": "https://rcgt.com", | |
| 2255 | + "careers_url": "https://rcgt.wd3.myworkdayjobs.com/External", | |
| 2256 | + "sectors": [], | |
| 2257 | + "connector": "workday", | |
| 2258 | + "status": "actif", | |
| 2259 | + "region": "Montréal" | |
| 2260 | + }, | |
| 2261 | + { | |
| 2262 | + "id": "reitmanscanadalteltd", | |
| 2263 | + "name": "Reitmans", | |
| 2264 | + "url": "", | |
| 2265 | + "careers_url": "https://jobs.smartrecruiters.com/company/ReitmansCanadaLteLtd", | |
| 2266 | + "sectors": [ | |
| 2267 | + "Commerce de détail", | |
| 2268 | + "Mode" | |
| 2269 | + ], | |
| 2270 | + "connector": "smartrecruiters", | |
| 2271 | + "status": "actif", | |
| 2272 | + "region": "Montréal, Québec, Laval" | |
| 2273 | + }, | |
| 2274 | + { | |
| 2275 | + "id": "reseau_mieux_etre", | |
| 2276 | + "name": "Réseau Mieux-Être", | |
| 2277 | + "url": "", | |
| 2278 | + "careers_url": "https://reseau-mieux-etre.breezy.hr", | |
| 2279 | + "sectors": [ | |
| 2280 | + "Santé" | |
| 2281 | + ], | |
| 2282 | + "connector": "breezy", | |
| 2283 | + "status": "actif", | |
| 2284 | + "region": "Montréal" | |
| 2285 | + }, | |
| 2286 | + { | |
| 2287 | + "id": "rethinkcanada", | |
| 2288 | + "name": "Rethink", | |
| 2289 | + "url": "", | |
| 2290 | + "careers_url": "https://rethinkcanada.bamboohr.com/careers", | |
| 2291 | + "sectors": [ | |
| 2292 | + "Publicité" | |
| 2293 | + ], | |
| 2294 | + "connector": "bamboohr", | |
| 2295 | + "status": "actif", | |
| 2296 | + "region": "Montréal" | |
| 2297 | + }, | |
| 2298 | + { | |
| 2299 | + "id": "riotinto", | |
| 2300 | + "name": "Rio Tinto", | |
| 2301 | + "url": "", | |
| 2302 | + "careers_url": "https://riotinto.wd3.myworkdayjobs.com/riotinto_careers", | |
| 2303 | + "sectors": [ | |
| 2304 | + "Mines" | |
| 2305 | + ], | |
| 2306 | + "connector": "workday", | |
| 2307 | + "status": "actif", | |
| 2308 | + "region": "Saguenay, Montréal" | |
| 2309 | + }, | |
| 2310 | + { | |
| 2311 | + "id": "robotiq", | |
| 2312 | + "name": "Robotiq", | |
| 2313 | + "url": "", | |
| 2314 | + "careers_url": "https://robotiq.bamboohr.com/careers", | |
| 2315 | + "sectors": [ | |
| 2316 | + "Robotique", | |
| 2317 | + "Manufacture" | |
| 2318 | + ], | |
| 2319 | + "connector": "bamboohr", | |
| 2320 | + "status": "actif", | |
| 2321 | + "region": "Lévis" | |
| 2322 | + }, | |
| 2323 | + { | |
| 2324 | + "id": "rodeofx", | |
| 2325 | + "name": "Rodeo FX", | |
| 2326 | + "url": "", | |
| 2327 | + "careers_url": "https://jobs.smartrecruiters.com/company/RodeoFX", | |
| 2328 | + "sectors": [ | |
| 2329 | + "Effets visuels", | |
| 2330 | + "Création" | |
| 2331 | + ], | |
| 2332 | + "connector": "smartrecruiters", | |
| 2333 | + "status": "actif", | |
| 2334 | + "region": "Montréal, Québec" | |
| 2335 | + }, | |
| 2336 | + { | |
| 2337 | + "id": "rtc_quebec", | |
| 2338 | + "name": "Réseau de transport de la Capitale", | |
| 2339 | + "url": "https://www.rtcquebec.ca", | |
| 2340 | + "careers_url": "https://rtc.njoyn.com/CGI/xweb/xweb.asp?clid=23009&page=joblisting&lang=2", | |
| 2341 | + "sectors": [ | |
| 2342 | + "Transport collectif", | |
| 2343 | + "Secteur public" | |
| 2344 | + ], | |
| 2345 | + "connector": "njoyn", | |
| 2346 | + "status": "actif", | |
| 2347 | + "region": "Québec" | |
| 2348 | + }, | |
| 2349 | + { | |
| 2350 | + "id": "samsara", | |
| 2351 | + "name": "Samsara", | |
| 2352 | + "url": "", | |
| 2353 | + "careers_url": "https://job-boards.greenhouse.io/samsara", | |
| 2354 | + "sectors": [ | |
| 2355 | + "TI", | |
| 2356 | + "IoT" | |
| 2357 | + ], | |
| 2358 | + "connector": "greenhouse", | |
| 2359 | + "status": "actif", | |
| 2360 | + "region": "Montréal" | |
| 2361 | + }, | |
| 2362 | + { | |
| 2363 | + "id": "sante_montreal", | |
| 2364 | + "name": "Santé Québec — Montréal", | |
| 2365 | + "url": "https://santemontreal.ca", | |
| 2366 | + "careers_url": "https://emplois.santemontreal.qc.ca/CL3/xweb/xweb.asp?clid=54327&page=joblisting&lang=2", | |
| 2367 | + "sectors": [ | |
| 2368 | + "Santé", | |
| 2369 | + "Services sociaux", | |
| 2370 | + "Secteur public" | |
| 2371 | + ], | |
| 2372 | + "connector": "njoyn", | |
| 2373 | + "status": "actif", | |
| 2374 | + "region": "Montréal" | |
| 2375 | + }, | |
| 2376 | + { | |
| 2377 | + "id": "sante_quebec", | |
| 2378 | + "name": "Santé Québec", | |
| 2379 | + "url": "https://sante.quebec", | |
| 2380 | + "careers_url": "https://emplois.sante.quebec", | |
| 2381 | + "sectors": [ | |
| 2382 | + "Santé", | |
| 2383 | + "Secteur public", | |
| 2384 | + "Administration" | |
| 2385 | + ], | |
| 2386 | + "connector": "digitalrecruiters", | |
| 2387 | + "status": "actif", | |
| 2388 | + "region": "Montréal, Québec" | |
| 2389 | + }, | |
| 2390 | + { | |
| 2391 | + "id": "saputo", | |
| 2392 | + "name": "Saputo", | |
| 2393 | + "url": "https://www.saputo.com", | |
| 2394 | + "careers_url": "https://saputo.wd5.myworkdayjobs.com/Saputo_External_Careers", | |
| 2395 | + "sectors": [ | |
| 2396 | + "Agroalimentaire", | |
| 2397 | + "Production" | |
| 2398 | + ], | |
| 2399 | + "connector": "workday", | |
| 2400 | + "status": "actif", | |
| 2401 | + "region": "Montréal / province" | |
| 2402 | + }, | |
| 2403 | + { | |
| 2404 | + "id": "scalia", | |
| 2405 | + "name": "Propriétés Scalia", | |
| 2406 | + "url": "", | |
| 2407 | + "careers_url": "https://scalia.bamboohr.com/careers", | |
| 2408 | + "sectors": [ | |
| 2409 | + "Immobilier" | |
| 2410 | + ], | |
| 2411 | + "connector": "bamboohr", | |
| 2412 | + "status": "actif", | |
| 2413 | + "region": "Montréal, Anjou" | |
| 2414 | + }, | |
| 2415 | + { | |
| 2416 | + "id": "scottsmiraclegro", | |
| 2417 | + "name": "Scotts Canada (Fafard)", | |
| 2418 | + "url": "https://scottsmiraclegro.com", | |
| 2419 | + "careers_url": "https://scottsmiraclegro.wd5.myworkdayjobs.com/SMGExternal", | |
| 2420 | + "sectors": [ | |
| 2421 | + "manufacturier/commerce" | |
| 2422 | + ], | |
| 2423 | + "connector": "workday", | |
| 2424 | + "status": "actif", | |
| 2425 | + "region": "" | |
| 2426 | + }, | |
| 2427 | + { | |
| 2428 | + "id": "sepaq", | |
| 2429 | + "name": "Sépaq", | |
| 2430 | + "url": "https://www.sepaq.com", | |
| 2431 | + "careers_url": "https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=SEPAQ&cws=37", | |
| 2432 | + "connector": "taleo_tbe", | |
| 2433 | + "sectors": [ | |
| 2434 | + "Tourisme", | |
| 2435 | + "Plein air", | |
| 2436 | + "Secteur public" | |
| 2437 | + ], | |
| 2438 | + "region": "Québec (province)", | |
| 2439 | + "status": "actif" | |
| 2440 | + }, | |
| 2441 | + { | |
| 2442 | + "id": "servicenow", | |
| 2443 | + "name": "ServiceNow", | |
| 2444 | + "url": "", | |
| 2445 | + "careers_url": "https://jobs.smartrecruiters.com/company/ServiceNow", | |
| 2446 | + "sectors": [ | |
| 2447 | + "TI", | |
| 2448 | + "SaaS" | |
| 2449 | + ], | |
| 2450 | + "connector": "smartrecruiters", | |
| 2451 | + "status": "actif", | |
| 2452 | + "region": "Montréal" | |
| 2453 | + }, | |
| 2454 | + { | |
| 2455 | + "id": "siainnovationsinc", | |
| 2456 | + "name": "SIA Innovations", | |
| 2457 | + "url": "", | |
| 2458 | + "careers_url": "https://job-boards.greenhouse.io/siainnovationsinc", | |
| 2459 | + "sectors": [ | |
| 2460 | + "TI" | |
| 2461 | + ], | |
| 2462 | + "connector": "greenhouse", | |
| 2463 | + "status": "actif", | |
| 2464 | + "region": "Montréal" | |
| 2465 | + }, | |
| 2466 | + { | |
| 2467 | + "id": "sideinc", | |
| 2468 | + "name": "Side (PTW)", | |
| 2469 | + "url": "", | |
| 2470 | + "careers_url": "https://apply.workable.com/sideinc", | |
| 2471 | + "sectors": [ | |
| 2472 | + "Jeux vidéo" | |
| 2473 | + ], | |
| 2474 | + "connector": "workable", | |
| 2475 | + "status": "actif", | |
| 2476 | + "region": "Montréal, Québec" | |
| 2477 | + }, | |
| 2478 | + { | |
| 2479 | + "id": "sidlee", | |
| 2480 | + "name": "Sid Lee", | |
| 2481 | + "url": "", | |
| 2482 | + "careers_url": "https://job-boards.greenhouse.io/sidlee", | |
| 2483 | + "sectors": [ | |
| 2484 | + "Marketing", | |
| 2485 | + "Création" | |
| 2486 | + ], | |
| 2487 | + "connector": "greenhouse", | |
| 2488 | + "status": "actif", | |
| 2489 | + "region": "Montréal" | |
| 2490 | + }, | |
| 2491 | + { | |
| 2492 | + "id": "sleeman", | |
| 2493 | + "name": "Brasseries Sleeman (Unibroue)", | |
| 2494 | + "url": "https://unibroue.com", | |
| 2495 | + "careers_url": "https://sleeman.wd3.myworkdayjobs.com/SBL", | |
| 2496 | + "sectors": [ | |
| 2497 | + "manufacturier/commerce" | |
| 2498 | + ], | |
| 2499 | + "connector": "workday", | |
| 2500 | + "status": "actif", | |
| 2501 | + "region": "" | |
| 2502 | + }, | |
| 2503 | + { | |
| 2504 | + "id": "sogeclair", | |
| 2505 | + "name": "SOGECLAIR", | |
| 2506 | + "url": "", | |
| 2507 | + "careers_url": "https://apply.workable.com/sogeclair", | |
| 2508 | + "sectors": [ | |
| 2509 | + "Aéronautique", | |
| 2510 | + "Ingénierie" | |
| 2511 | + ], | |
| 2512 | + "connector": "workable", | |
| 2513 | + "status": "actif", | |
| 2514 | + "region": "Montréal, Mirabel, Laval" | |
| 2515 | + }, | |
| 2516 | + { | |
| 2517 | + "id": "sparkgrid", | |
| 2518 | + "name": "Sparkgrid", | |
| 2519 | + "url": "", | |
| 2520 | + "careers_url": "https://jobs.smartrecruiters.com/company/Sparkgrid", | |
| 2521 | + "sectors": [ | |
| 2522 | + "TI" | |
| 2523 | + ], | |
| 2524 | + "connector": "smartrecruiters", | |
| 2525 | + "status": "actif", | |
| 2526 | + "region": "Montréal" | |
| 2527 | + }, | |
| 2528 | + { | |
| 2529 | + "id": "spiria", | |
| 2530 | + "name": "Spiria", | |
| 2531 | + "url": "", | |
| 2532 | + "careers_url": "https://jobs.lever.co/spiria", | |
| 2533 | + "sectors": [ | |
| 2534 | + "TI" | |
| 2535 | + ], | |
| 2536 | + "connector": "lever", | |
| 2537 | + "status": "actif", | |
| 2538 | + "region": "Montréal, Gatineau" | |
| 2539 | + }, | |
| 2540 | + { | |
| 2541 | + "id": "spreedly", | |
| 2542 | + "name": "Spreedly", | |
| 2543 | + "url": "", | |
| 2544 | + "careers_url": "https://jobs.lever.co/spreedly", | |
| 2545 | + "sectors": [ | |
| 2546 | + "TI", | |
| 2547 | + "Fintech" | |
| 2548 | + ], | |
| 2549 | + "connector": "lever", | |
| 2550 | + "status": "actif", | |
| 2551 | + "region": "Montréal" | |
| 2552 | + }, | |
| 2553 | + { | |
| 2554 | + "id": "squeezestudio", | |
| 2555 | + "name": "Squeeze Studio Animation", | |
| 2556 | + "url": "", | |
| 2557 | + "careers_url": "https://squeezestudio.recruitee.com", | |
| 2558 | + "sectors": [ | |
| 2559 | + "Animation", | |
| 2560 | + "Création" | |
| 2561 | + ], | |
| 2562 | + "connector": "recruitee", | |
| 2563 | + "status": "actif", | |
| 2564 | + "region": "Montréal, Québec" | |
| 2565 | + }, | |
| 2566 | + { | |
| 2567 | + "id": "stelpro", | |
| 2568 | + "name": "Stelpro", | |
| 2569 | + "url": "", | |
| 2570 | + "careers_url": "https://jobs.smartrecruiters.com/company/stelpro", | |
| 2571 | + "sectors": [ | |
| 2572 | + "Production" | |
| 2573 | + ], | |
| 2574 | + "connector": "smartrecruiters", | |
| 2575 | + "status": "actif", | |
| 2576 | + "region": "Saint-Bruno-de-Montarville" | |
| 2577 | + }, | |
| 2578 | + { | |
| 2579 | + "id": "stl_laval", | |
| 2580 | + "name": "Société de transport de Laval", | |
| 2581 | + "url": "https://www.stlaval.ca", | |
| 2582 | + "careers_url": "https://lavaltransit.njoyn.com/CL2/xweb/xweb.asp?clid=60406&page=joblisting&lang=2", | |
| 2583 | + "sectors": [ | |
| 2584 | + "Transport collectif", | |
| 2585 | + "Secteur public" | |
| 2586 | + ], | |
| 2587 | + "connector": "njoyn", | |
| 2588 | + "status": "actif", | |
| 2589 | + "region": "Laval" | |
| 2590 | + }, | |
| 2591 | + { | |
| 2592 | + "id": "suncor", | |
| 2593 | + "name": "Suncor Énergie", | |
| 2594 | + "url": "https://suncor.com", | |
| 2595 | + "careers_url": "https://suncor.wd1.myworkdayjobs.com/Suncor_External", | |
| 2596 | + "sectors": [], | |
| 2597 | + "connector": "workday", | |
| 2598 | + "status": "actif", | |
| 2599 | + "region": "Montréal" | |
| 2600 | + }, | |
| 2601 | + { | |
| 2602 | + "id": "sunlife", | |
| 2603 | + "name": "Sun Life", | |
| 2604 | + "url": "", | |
| 2605 | + "careers_url": "https://sunlife.wd3.myworkdayjobs.com/Experienced-Jobs", | |
| 2606 | + "sectors": [ | |
| 2607 | + "Assurance", | |
| 2608 | + "Finance" | |
| 2609 | + ], | |
| 2610 | + "connector": "workday", | |
| 2611 | + "status": "actif", | |
| 2612 | + "region": "Montréal, Québec" | |
| 2613 | + }, | |
| 2614 | + { | |
| 2615 | + "id": "surmesur", | |
| 2616 | + "name": "Surmesur", | |
| 2617 | + "url": "", | |
| 2618 | + "careers_url": "https://surmesur.bamboohr.com/careers", | |
| 2619 | + "sectors": [ | |
| 2620 | + "Mode", | |
| 2621 | + "Commerce de détail" | |
| 2622 | + ], | |
| 2623 | + "connector": "bamboohr", | |
| 2624 | + "status": "actif", | |
| 2625 | + "region": "Québec, Laval" | |
| 2626 | + }, | |
| 2627 | + { | |
| 2628 | + "id": "sweat_pants_agency", | |
| 2629 | + "name": "Sweat Pants Agency", | |
| 2630 | + "url": "", | |
| 2631 | + "careers_url": "https://apply.workable.com/sweat-pants-agency", | |
| 2632 | + "sectors": [ | |
| 2633 | + "Marketing" | |
| 2634 | + ], | |
| 2635 | + "connector": "workable", | |
| 2636 | + "status": "actif", | |
| 2637 | + "region": "Montréal, Laval, Québec" | |
| 2638 | + }, | |
| 2639 | + { | |
| 2640 | + "id": "talan", | |
| 2641 | + "name": "Talan", | |
| 2642 | + "url": "", | |
| 2643 | + "careers_url": "https://jobs.smartrecruiters.com/company/Talan", | |
| 2644 | + "sectors": [ | |
| 2645 | + "TI", | |
| 2646 | + "Conseil" | |
| 2647 | + ], | |
| 2648 | + "connector": "smartrecruiters", | |
| 2649 | + "status": "actif", | |
| 2650 | + "region": "Montréal" | |
| 2651 | + }, | |
| 2652 | + { | |
| 2653 | + "id": "talsom", | |
| 2654 | + "name": "Talsom", | |
| 2655 | + "url": "", | |
| 2656 | + "careers_url": "https://jobs.smartrecruiters.com/company/talsom", | |
| 2657 | + "sectors": [ | |
| 2658 | + "TI" | |
| 2659 | + ], | |
| 2660 | + "connector": "smartrecruiters", | |
| 2661 | + "status": "actif", | |
| 2662 | + "region": "Montréal" | |
| 2663 | + }, | |
| 2664 | + { | |
| 2665 | + "id": "tandemlaunch", | |
| 2666 | + "name": "TandemLaunch", | |
| 2667 | + "url": "https://www.tandemlaunch.com", | |
| 2668 | + "careers_url": "https://boards.greenhouse.io/tandemlaunch", | |
| 2669 | + "sectors": [ | |
| 2670 | + "TI", | |
| 2671 | + "Deep tech" | |
| 2672 | + ], | |
| 2673 | + "connector": "greenhouse", | |
| 2674 | + "status": "actif", | |
| 2675 | + "region": "Montréal" | |
| 2676 | + }, | |
| 2677 | + { | |
| 2678 | + "id": "td", | |
| 2679 | + "name": "Groupe Banque TD", | |
| 2680 | + "url": "", | |
| 2681 | + "careers_url": "https://td.wd3.myworkdayjobs.com/TD_Bank_Careers", | |
| 2682 | + "sectors": [ | |
| 2683 | + "Finance" | |
| 2684 | + ], | |
| 2685 | + "connector": "workday", | |
| 2686 | + "status": "actif", | |
| 2687 | + "region": "Montréal, Québec" | |
| 2688 | + }, | |
| 2689 | + { | |
| 2690 | + "id": "techo_bloc", | |
| 2691 | + "name": "Techo-Bloc", | |
| 2692 | + "url": "", | |
| 2693 | + "careers_url": "https://jobs.smartrecruiters.com/company/techo-bloc", | |
| 2694 | + "sectors": [ | |
| 2695 | + "Manufacture", | |
| 2696 | + "Aménagement" | |
| 2697 | + ], | |
| 2698 | + "connector": "smartrecruiters", | |
| 2699 | + "status": "actif", | |
| 2700 | + "region": "Chambly, Saint-Hubert" | |
| 2701 | + }, | |
| 2702 | + { | |
| 2703 | + "id": "tecsys", | |
| 2704 | + "name": "Tecsys", | |
| 2705 | + "url": "", | |
| 2706 | + "careers_url": "https://apply.workable.com/tecsys", | |
| 2707 | + "sectors": [ | |
| 2708 | + "TI", | |
| 2709 | + "Logistique" | |
| 2710 | + ], | |
| 2711 | + "connector": "workable", | |
| 2712 | + "status": "actif", | |
| 2713 | + "region": "Montréal" | |
| 2714 | + }, | |
| 2715 | + { | |
| 2716 | + "id": "tehora", | |
| 2717 | + "name": "TEHORA", | |
| 2718 | + "url": "", | |
| 2719 | + "careers_url": "https://apply.workable.com/tehora", | |
| 2720 | + "sectors": [ | |
| 2721 | + "Ingénierie", | |
| 2722 | + "TI", | |
| 2723 | + "Conseil" | |
| 2724 | + ], | |
| 2725 | + "connector": "workable", | |
| 2726 | + "status": "actif", | |
| 2727 | + "region": "Montréal, Québec, Gatineau" | |
| 2728 | + }, | |
| 2729 | + { | |
| 2730 | + "id": "tetrix", | |
| 2731 | + "name": "Tetrix", | |
| 2732 | + "url": "", | |
| 2733 | + "careers_url": "https://jobs.ashbyhq.com/tetrix", | |
| 2734 | + "sectors": [ | |
| 2735 | + "TI" | |
| 2736 | + ], | |
| 2737 | + "connector": "ashby", | |
| 2738 | + "status": "actif", | |
| 2739 | + "region": "Montréal" | |
| 2740 | + }, | |
| 2741 | + { | |
| 2742 | + "id": "toonboom", | |
| 2743 | + "name": "Toon Boom Animation", | |
| 2744 | + "url": "", | |
| 2745 | + "careers_url": "https://toonboom.bamboohr.com/careers", | |
| 2746 | + "sectors": [ | |
| 2747 | + "Animation", | |
| 2748 | + "TI" | |
| 2749 | + ], | |
| 2750 | + "connector": "bamboohr", | |
| 2751 | + "status": "actif", | |
| 2752 | + "region": "Montréal" | |
| 2753 | + }, | |
| 2754 | + { | |
| 2755 | + "id": "transatat1", | |
| 2756 | + "name": "Transat A.T.", | |
| 2757 | + "url": "", | |
| 2758 | + "careers_url": "https://jobs.smartrecruiters.com/company/TransatAT1", | |
| 2759 | + "sectors": [ | |
| 2760 | + "Voyage", | |
| 2761 | + "Aérien" | |
| 2762 | + ], | |
| 2763 | + "connector": "smartrecruiters", | |
| 2764 | + "status": "actif", | |
| 2765 | + "region": "Montréal" | |
| 2766 | + }, | |
| 2767 | + { | |
| 2768 | + "id": "triotech", | |
| 2769 | + "name": "Triotech", | |
| 2770 | + "url": "", | |
| 2771 | + "careers_url": "https://triotech.bamboohr.com/careers", | |
| 2772 | + "sectors": [ | |
| 2773 | + "Divertissement", | |
| 2774 | + "Manufacture" | |
| 2775 | + ], | |
| 2776 | + "connector": "bamboohr", | |
| 2777 | + "status": "actif", | |
| 2778 | + "region": "Joliette, Montréal" | |
| 2779 | + }, | |
| 2780 | + { | |
| 2781 | + "id": "trois_brasseurs", | |
| 2782 | + "name": "3 Brasseurs Canada", | |
| 2783 | + "url": "", | |
| 2784 | + "careers_url": "https://3brasseurs.breezy.hr", | |
| 2785 | + "sectors": [ | |
| 2786 | + "Restauration" | |
| 2787 | + ], | |
| 2788 | + "connector": "breezy", | |
| 2789 | + "status": "actif", | |
| 2790 | + "region": "Montréal, Laval, Brossard" | |
| 2791 | + }, | |
| 2792 | + { | |
| 2793 | + "id": "tsmg", | |
| 2794 | + "name": "TSMG", | |
| 2795 | + "url": "", | |
| 2796 | + "careers_url": "https://jobs.lever.co/tsmg", | |
| 2797 | + "sectors": [ | |
| 2798 | + "Placement", | |
| 2799 | + "Télécoms" | |
| 2800 | + ], | |
| 2801 | + "connector": "lever", | |
| 2802 | + "status": "actif", | |
| 2803 | + "region": "Montréal, Québec" | |
| 2804 | + }, | |
| 2805 | + { | |
| 2806 | + "id": "ubisoft", | |
| 2807 | + "name": "Ubisoft", | |
| 2808 | + "url": "https://www.ubisoft.com", | |
| 2809 | + "careers_url": "https://jobs.smartrecruiters.com/company/Ubisoft2", | |
| 2810 | + "sectors": [ | |
| 2811 | + "Jeux vidéo", | |
| 2812 | + "TI", | |
| 2813 | + "Création" | |
| 2814 | + ], | |
| 2815 | + "connector": "smartrecruiters", | |
| 2816 | + "status": "actif", | |
| 2817 | + "region": "Montréal / Québec / Sherbrooke" | |
| 2818 | + }, | |
| 2819 | + { | |
| 2820 | + "id": "unit8", | |
| 2821 | + "name": "Unit8", | |
| 2822 | + "url": "", | |
| 2823 | + "careers_url": "https://apply.workable.com/unit8", | |
| 2824 | + "sectors": [ | |
| 2825 | + "TI", | |
| 2826 | + "Données" | |
| 2827 | + ], | |
| 2828 | + "connector": "workable", | |
| 2829 | + "status": "actif", | |
| 2830 | + "region": "Montréal" | |
| 2831 | + }, | |
| 2832 | + { | |
| 2833 | + "id": "usmobile", | |
| 2834 | + "name": "US Mobile", | |
| 2835 | + "url": "", | |
| 2836 | + "careers_url": "https://jobs.lever.co/USMobile", | |
| 2837 | + "sectors": [ | |
| 2838 | + "Télécoms" | |
| 2839 | + ], | |
| 2840 | + "connector": "lever", | |
| 2841 | + "status": "actif", | |
| 2842 | + "region": "Montréal" | |
| 2843 | + }, | |
| 2844 | + { | |
| 2845 | + "id": "vaco", | |
| 2846 | + "name": "Vaco", | |
| 2847 | + "url": "", | |
| 2848 | + "careers_url": "https://job-boards.greenhouse.io/vaco", | |
| 2849 | + "sectors": [ | |
| 2850 | + "Placement", | |
| 2851 | + "Conseil" | |
| 2852 | + ], | |
| 2853 | + "connector": "greenhouse", | |
| 2854 | + "status": "actif", | |
| 2855 | + "region": "Montréal" | |
| 2856 | + }, | |
| 2857 | + { | |
| 2858 | + "id": "valsoft_corp", | |
| 2859 | + "name": "Valsoft", | |
| 2860 | + "url": "", | |
| 2861 | + "careers_url": "https://apply.workable.com/valsoft-corp", | |
| 2862 | + "sectors": [ | |
| 2863 | + "TI", | |
| 2864 | + "Logiciel" | |
| 2865 | + ], | |
| 2866 | + "connector": "workable", | |
| 2867 | + "status": "actif", | |
| 2868 | + "region": "Montréal" | |
| 2869 | + }, | |
| 2870 | + { | |
| 2871 | + "id": "valtech", | |
| 2872 | + "name": "Valtech", | |
| 2873 | + "url": "", | |
| 2874 | + "careers_url": "https://job-boards.greenhouse.io/valtech", | |
| 2875 | + "sectors": [ | |
| 2876 | + "TI" | |
| 2877 | + ], | |
| 2878 | + "connector": "greenhouse", | |
| 2879 | + "status": "actif", | |
| 2880 | + "region": "Montréal" | |
| 2881 | + }, | |
| 2882 | + { | |
| 2883 | + "id": "vaporus_inc", | |
| 2884 | + "name": "Vaporus", | |
| 2885 | + "url": "", | |
| 2886 | + "careers_url": "https://vaporus-inc.breezy.hr", | |
| 2887 | + "sectors": [ | |
| 2888 | + "Commerce de détail" | |
| 2889 | + ], | |
| 2890 | + "connector": "breezy", | |
| 2891 | + "status": "actif", | |
| 2892 | + "region": "Montréal" | |
| 2893 | + }, | |
| 2894 | + { | |
| 2895 | + "id": "vasco", | |
| 2896 | + "name": "Vasco", | |
| 2897 | + "url": "", | |
| 2898 | + "careers_url": "https://jobs.ashbyhq.com/vasco", | |
| 2899 | + "sectors": [ | |
| 2900 | + "TI" | |
| 2901 | + ], | |
| 2902 | + "connector": "ashby", | |
| 2903 | + "status": "actif", | |
| 2904 | + "region": "Montréal" | |
| 2905 | + }, | |
| 2906 | + { | |
| 2907 | + "id": "venturemedia", | |
| 2908 | + "name": "Venture Media", | |
| 2909 | + "url": "", | |
| 2910 | + "careers_url": "https://jobs.smartrecruiters.com/company/VentureMedia", | |
| 2911 | + "sectors": [ | |
| 2912 | + "Médias" | |
| 2913 | + ], | |
| 2914 | + "connector": "smartrecruiters", | |
| 2915 | + "status": "actif", | |
| 2916 | + "region": "Montréal" | |
| 2917 | + }, | |
| 2918 | + { | |
| 2919 | + "id": "vicpark", | |
| 2920 | + "name": "Victoria Park Medispa", | |
| 2921 | + "url": "", | |
| 2922 | + "careers_url": "https://vicpark.bamboohr.com/careers", | |
| 2923 | + "sectors": [ | |
| 2924 | + "Santé", | |
| 2925 | + "Esthétique" | |
| 2926 | + ], | |
| 2927 | + "connector": "bamboohr", | |
| 2928 | + "status": "actif", | |
| 2929 | + "region": "Montréal, Gatineau, Granby" | |
| 2930 | + }, | |
| 2931 | + { | |
| 2932 | + "id": "videotron", | |
| 2933 | + "name": "Vidéotron", | |
| 2934 | + "url": "https://videotron.com", | |
| 2935 | + "careers_url": "https://jobs.smartrecruiters.com/company/videotron", | |
| 2936 | + "sectors": [], | |
| 2937 | + "connector": "smartrecruiters", | |
| 2938 | + "status": "actif", | |
| 2939 | + "region": "Montréal" | |
| 2940 | + }, | |
| 2941 | + { | |
| 2942 | + "id": "ville_gatineau", | |
| 2943 | + "name": "Ville de Gatineau", | |
| 2944 | + "url": "https://www.gatineau.ca", | |
| 2945 | + "careers_url": "https://gatineau.njoyn.com/CL2/xweb/xweb.asp?clid=27082&page=joblisting&lang=2", | |
| 2946 | + "sectors": [ | |
| 2947 | + "Municipal", | |
| 2948 | + "Secteur public" | |
| 2949 | + ], | |
| 2950 | + "connector": "njoyn", | |
| 2951 | + "status": "actif", | |
| 2952 | + "region": "Gatineau" | |
| 2953 | + }, | |
| 2954 | + { | |
| 2955 | + "id": "ville_terrebonne", | |
| 2956 | + "name": "Ville de Terrebonne", | |
| 2957 | + "url": "https://www.ville.terrebonne.qc.ca", | |
| 2958 | + "careers_url": "https://clients.njoyn.com/cl4/xweb/xweb.asp?clid=71764&page=joblisting&lang=2", | |
| 2959 | + "sectors": [ | |
| 2960 | + "Municipal", | |
| 2961 | + "Secteur public" | |
| 2962 | + ], | |
| 2963 | + "connector": "njoyn", | |
| 2964 | + "status": "actif", | |
| 2965 | + "region": "Terrebonne" | |
| 2966 | + }, | |
| 2967 | + { | |
| 2968 | + "id": "vmlcanadaen", | |
| 2969 | + "name": "VML Canada", | |
| 2970 | + "url": "", | |
| 2971 | + "careers_url": "https://job-boards.greenhouse.io/vmlcanadaen", | |
| 2972 | + "sectors": [ | |
| 2973 | + "Publicité" | |
| 2974 | + ], | |
| 2975 | + "connector": "greenhouse", | |
| 2976 | + "status": "actif", | |
| 2977 | + "region": "Montréal" | |
| 2978 | + }, | |
| 2979 | + { | |
| 2980 | + "id": "vo2_group", | |
| 2981 | + "name": "VO2 Group", | |
| 2982 | + "url": "", | |
| 2983 | + "careers_url": "https://jobs.lever.co/vo2-group", | |
| 2984 | + "sectors": [ | |
| 2985 | + "TI", | |
| 2986 | + "Conseil" | |
| 2987 | + ], | |
| 2988 | + "connector": "lever", | |
| 2989 | + "status": "actif", | |
| 2990 | + "region": "Montréal" | |
| 2991 | + }, | |
| 2992 | + { | |
| 2993 | + "id": "vooban", | |
| 2994 | + "name": "Vooban", | |
| 2995 | + "url": "", | |
| 2996 | + "careers_url": "https://job-boards.greenhouse.io/vooban", | |
| 2997 | + "sectors": [ | |
| 2998 | + "TI" | |
| 2999 | + ], | |
| 3000 | + "connector": "greenhouse", | |
| 3001 | + "status": "actif", | |
| 3002 | + "region": "Québec" | |
| 3003 | + }, | |
| 3004 | + { | |
| 3005 | + "id": "vosker", | |
| 3006 | + "name": "Vosker", | |
| 3007 | + "url": "", | |
| 3008 | + "careers_url": "https://jobs.smartrecruiters.com/company/vosker", | |
| 3009 | + "sectors": [ | |
| 3010 | + "TI", | |
| 3011 | + "Production" | |
| 3012 | + ], | |
| 3013 | + "connector": "smartrecruiters", | |
| 3014 | + "status": "actif", | |
| 3015 | + "region": "Victoriaville" | |
| 3016 | + }, | |
| 3017 | + { | |
| 3018 | + "id": "voxdata", | |
| 3019 | + "name": "VOXDATA", | |
| 3020 | + "url": "", | |
| 3021 | + "careers_url": "https://voxdata.breezy.hr", | |
| 3022 | + "sectors": [ | |
| 3023 | + "Centre d'appels" | |
| 3024 | + ], | |
| 3025 | + "connector": "breezy", | |
| 3026 | + "status": "actif", | |
| 3027 | + "region": "Montréal" | |
| 3028 | + }, | |
| 3029 | + { | |
| 3030 | + "id": "walmart", | |
| 3031 | + "name": "Walmart Canada", | |
| 3032 | + "url": "https://walmart.ca", | |
| 3033 | + "careers_url": "https://walmart.wd504.myworkdayjobs.com/WalmartExternal", | |
| 3034 | + "sectors": [], | |
| 3035 | + "connector": "workday", | |
| 3036 | + "status": "actif", | |
| 3037 | + "region": "Montréal" | |
| 3038 | + }, | |
| 3039 | + { | |
| 3040 | + "id": "xplornet", | |
| 3041 | + "name": "Xplornet", | |
| 3042 | + "url": "", | |
| 3043 | + "careers_url": "https://jobs.smartrecruiters.com/company/XPLORNET", | |
| 3044 | + "sectors": [ | |
| 3045 | + "Télécoms" | |
| 3046 | + ], | |
| 3047 | + "connector": "smartrecruiters", | |
| 3048 | + "status": "actif", | |
| 3049 | + "region": "Montréal" | |
| 3050 | + }, | |
| 3051 | + { | |
| 3052 | + "id": "xsolla", | |
| 3053 | + "name": "Xsolla", | |
| 3054 | + "url": "", | |
| 3055 | + "careers_url": "https://jobs.lever.co/xsolla", | |
| 3056 | + "sectors": [ | |
| 3057 | + "TI", | |
| 3058 | + "Jeux vidéo" | |
| 3059 | + ], | |
| 3060 | + "connector": "lever", | |
| 3061 | + "status": "actif", | |
| 3062 | + "region": "Montréal" | |
| 3063 | + }, | |
| 3064 | + { | |
| 3065 | + "id": "youset", | |
| 3066 | + "name": "YouSet", | |
| 3067 | + "url": "", | |
| 3068 | + "careers_url": "https://youset.breezy.hr", | |
| 3069 | + "sectors": [ | |
| 3070 | + "Assurance", | |
| 3071 | + "TI" | |
| 3072 | + ], | |
| 3073 | + "connector": "breezy", | |
| 3074 | + "status": "actif", | |
| 3075 | + "region": "Montréal" | |
| 3076 | + }, | |
| 3077 | + { | |
| 3078 | + "id": "ziptrekeco", | |
| 3079 | + "name": "Ziptrek Tremblant", | |
| 3080 | + "url": "https://tremblant.ziptrek.com", | |
| 3081 | + "careers_url": "https://ziptrekeco.bamboohr.com/careers", | |
| 3082 | + "sectors": [ | |
| 3083 | + "manufacturier/commerce" | |
| 3084 | + ], | |
| 3085 | + "connector": "bamboohr", | |
| 3086 | + "status": "actif", | |
| 3087 | + "region": "" | |
| 3088 | + } | |
| 3089 | + ] | |
| 2785 | 3090 | } |
modified
docs/CONFORMITE.md
+54 −3
@@ -6,14 +6,15 @@ Contact : contact@spboucher.ai | ||
| 6 | 6 | Fichier : docs/CONFORMITE.md |
| 7 | 7 | Rôle : Registre de conformité des sources de données — base d'accès, |
| 8 | 8 | attribution, lien de candidature, données personnelles |
| 9 | −Créé : 2026-08-18 Modifié : 2026-08-18 | |
| 9 | +Créé : 2026-08-18 Modifié : 2026-08-19 | |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
| 12 | 12 | |
| 13 | 13 | # Job·Ka — Registre de conformité des sources |
| 14 | 14 | |
| 15 | −> **Date de vérification : 2026-08-18** (vérifié dans le code, la base live et | |
| 16 | −> le frontend). Détail par source : [`docs/connecteurs/INDEX.md`](connecteurs/INDEX.md). | |
| 15 | +> **Dates de vérification : 2026-08-18 (socle) et 2026-08-19 (phase 3 — | |
| 16 | +> nouvelles sources)**, vérifié dans le code, la base live et le frontend. | |
| 17 | +> Détail par source : [`docs/connecteurs/INDEX.md`](connecteurs/INDEX.md). | |
| 17 | 18 | |
| 18 | 19 | ## Principes vérifiés (2026-08-18) |
| 19 | 20 | |
@@ -42,11 +43,61 @@ Créé : 2026-08-18 Modifié : 2026-08-18 | ||
| 42 | 43 | | **Portail — Espresso-Jobs** (`espresso_jobs`) | 1 | Pages publiques + **JSON-LD schema.org** (ItemList + JobPosting). robots.txt respecté, budgets par sync. | Lien vers l'offre originale sur le portail ; pas de badge « directe » ; dédup direct-prioritaire | Aucune | 2026-08-18 | |
| 43 | 44 | | **Dépôt direct employeurs** (`depot-direct`) | 1 canal | Soumission **volontaire** par l'employeur (`POST /api/employeurs/offres`), stockée inactive jusqu'à **modération manuelle** ; pot de miel anti-robots. | Lien fourni par l'employeur lui-même | Courriel d'affaires de contact seulement (fourni volontairement) | 2026-08-18 | |
| 44 | 45 | |
| 46 | +## Nouvelles familles et sources — phase 3 (2026-08-19) | |
| 47 | + | |
| 48 | +| Famille / source | Sources | Base d'accès (robots/CGU lus le 2026-08-19) | Fréquence & politesse | Décision | | |
| 49 | +|---|---|---|---|---| | |
| 50 | +| **Taleo Business Edition** (`taleo_tbe` — Sépaq, exo, HEC ×2, Kruger, Produits Kruger) | 6 | **Flux RSS public** `…/ats/servlet/Rss?org=&cws=` (publié par l'ATS pour la diffusion) + JSON-LD schema.org/JobPosting des pages `requisition.jsp` (données destinées aux moteurs). robots.txt tbe.taleo.net : pas d'interdiction des chemins carrières publics. | 1 req/s, budget détail 60/cycle (cache BD) | Connecté — offres publiques, lien direct employeur | | |
| 51 | +| **WordPress + WP Job Manager** (`wpjobmanager` — plateforme **carrieresante.gouv.qc.ca** de Santé Québec : CHU de Québec, CHUM, CISSS AT / Chaudière-Appalaches / Laval, + viensvivretespassions.ca Outaouais) | 6 | **Flux RSS `job_feed` natif de WP Job Manager** (contenu complet publié pour syndication) + JSON-LD JobPosting des pages poste. Sites publics du gouvernement du Québec destinés à la diffusion des offres. | 1 req/s, 1 requête liste/cycle + détails budgetés | Connecté | | |
| 52 | +| **Workland / Atlas — réseau** (`atlas_workland`, ~80 employeurs QC : CSS scolaires, cégeps, établissements Santé Québec, STQ, UQTR, INRS…) | 1 connecteur réseau | **API JSON publique du frontal** (`jobs-prod.workland.com/api/v1/job/published-external` + `default-profiles`) — celle que la SPA publique atlas.workland.com consomme sans authentification ; offres « publiées à l'externe » uniquement. | **2 requêtes par cycle** pour tout le réseau (politesse maximale) | Connecté — remplace les grattages unitaires (cssdm/uqam/cssvt) | | |
| 53 | +| **SuccessFactors CSB** — ajouts (`hydroquebec`, `deloitte`) | +2 | Sitemap RSS public du site carrières officiel (comme bombardier/cascades/domtar) | 1 req/s, budget détail | Connecté | | |
| 54 | +| **UKG Pro Recruiting** — instance canadienne (`fruitdor`, `nortera` sur recruiting.ultipro.**ca**) | +2 | API JSON publique du frontal (`LoadSearchResults`), famille existante paramétrée pour l'hôte canadien | 0,8 req/s | Connecté | | |
| 55 | +| **Njoyn** — ajout (`cgi`) + pagination générale | +1 | Babillard public ; domaine `cgi.njoyn.com` derrière Radware → **Scrapfly** (pages strictement publiques, précédent njoyn documenté). Pagination = rejeu du **formulaire de recherche public** (`Inp_ItemsPerPage`/`pn`). | 6 pages liste + **12 détails max/cycle** (frugalité Scrapfly) ; filtre Québec sur le babillard mondial | Connecté | | |
| 56 | +| **iCIMS** — ajout (`mackenzie`) | +1 | Portail iCIMS public (famille existante) | 1 req/s | Connecté | | |
| 57 | +| **ADP WFN** — ajouts (`cultures_genv`, `bento_sushi`, `osgoode_properties`) | +3 | API JSON publique du centre de carrières (famille existante) | 1 req/s | Connecté | | |
| 58 | +| **Cegid Digital Recruiters** — ajout (`cssdd`) | +1 | Sitemap + JSON-LD (famille existante) | 0,8 req/s | Connecté | | |
| 59 | +| **Site maison Lassonde** (`lassonde`, réparation) | 1 | Pages publiques rendues serveur de lassonde.com/fr/emplois (l'ADP WFN de Lassonde ne sert plus que les postes américains) | 1 req/s, budget détail 40 | Reconnecté | | |
| 60 | + | |
| 61 | +> **Base légale d'usage des API ATS publiques** : chaque famille consomme le | |
| 62 | +> point d'accès que l'employeur publie lui-même (flux RSS/sitemap destiné aux | |
| 63 | +> moteurs, ou API JSON servie sans authentification au navigateur de tout | |
| 64 | +> visiteur de sa page carrières). Job·Ka ne rediffuse que des **données | |
| 65 | +> publiques d'offres d'emploi**, avec lien direct vers la source et sans | |
| 66 | +> capter de candidature. | |
| 67 | + | |
| 68 | +### Guichet-Emplois / Job Bank — flux officiel (volet D, documenté 2026-08-19) | |
| 69 | + | |
| 70 | +- L'ancienne page libre-service « Data feeds / Flux de données » de Job Bank | |
| 71 | + (jobbank.gc.ca/datafeeds, guichetemplois.gc.ca/flux-de-donnees) **n'existe | |
| 72 | + plus** (404 vérifié 2026-08-19) ; aucun jeu « offres actives » sur | |
| 73 | + ouvert.canada.ca. | |
| 74 | +- **Démarche pour un accès officiel** (non entamée — exige une identité | |
| 75 | + humaine/organisationnelle) : formulaire « Aide et soutien » | |
| 76 | + `https://www.guichetemplois.gc.ca/aidesoutien` → demande écrite d'accès au | |
| 77 | + **flux de données pour diffuseurs partenaires**, en décrivant Job·Ka | |
| 78 | + (agrégateur QC, lien direct vers l'offre originale, aucune candidature | |
| 79 | + captée). Historiquement, ce programme exige la signature d'une **entente de | |
| 80 | + diffusion** avec EDSC (délai : quelques semaines). | |
| 81 | +- En attendant : **scraping poli maintenu** (Crawl-delay 5 s de robots.txt | |
| 82 | + respecté, fenêtre bornée, retries espacés 25 s) — inchangé. | |
| 83 | + | |
| 45 | 84 | ## Sources écartées |
| 46 | 85 | |
| 47 | 86 | | Source | Raison | |
| 48 | 87 | |---|---| |
| 49 | 88 | | **Québec Emploi** (quebecemploi.gouv.qc.ca) | Accès derrière **authentification clicSÉQUR** — pas de flux public prévu pour la diffusion ; écarté (2026-08-18). | |
| 89 | +| **Canada Vie** (career5.successfactors.eu / careers.canadalife.com) | Portail SuccessFactors **héritage** (career5, session requise) + site AEM sans sitemap d'offres ; aucun flux public simple (2026-08-19). | | |
| 90 | +| **Groupe Dynamite** (careers.groupedynamite.com/gdi) | Portail iCIMS nouvelle génération rendu par JS ; le babillard iframe hérité (`frcareers-groupedynamite.icims.com`) est **vide** (2026-08-19). | | |
| 91 | +| **Jack Astor's / SIR Corp** (careersen-sircorp.icims.com) | Babillard fonctionnel mais **0 offre au Québec** (recherches lieu et mot-clé, 2026-08-19). | | |
| 92 | +| **Méchant Bœuf** (mechantboeuf.com) | Plus aucun babillard UKG visible sur le site (détection 2026-08-18 périmée). | | |
| 93 | +| **Université TÉLUQ** (phh01 TBE org=TELUQ) | Tenant Taleo Business Edition **fermé** (« Come Back Soon », 2026-08-19). | | |
| 94 | +| **Valero — raffinerie Jean-Gaulin** (valero.taleo.net) | Portail Taleo joignable mais **0 offre** (totalCount=0, 2026-08-19) — confirme le retrait antérieur du connecteur. | | |
| 95 | +| **Produits forestiers Résolu** (pfresolu.com) | Domaine carrières disparu ; employeur intégré à **Domtar** (déjà connecté via jobs.domtar.com) après la fusion. | | |
| 96 | +| **Power Corporation (directe)** | Page carrières 404 ; le groupe recrute via ses filiales (Mackenzie **connectée**). | | |
| 97 | +| **Deloitte via Taleo (dttit)** | Détection périmée (section Grèce) — remplacée par le site SuccessFactors `careers.deloitte.ca` (**connecté**). | | |
| 98 | +| **TTC Global** (`ttcglobal`, retiré) | Board Greenhouse actif mais plus aucune offre au Québec (2 offres : Dallas, Londres) — connecteur retiré (2026-08-19). | | |
| 99 | +| **CGI via site cgi.com** | Le moteur carrières de cgi.com est propriétaire (JS) — on passe par son babillard **Njoyn** public (connecté ci-dessus). | | |
| 100 | +| **STL, RTC, Ville de Terrebonne, CIUSSS Est-de-l'Île, CAPREIT, MSI, Agnico Eagle, Cascades, Domtar, Bell Textron, HEC (détections)** | Entrées `detected-other-ats.jsonl` **déjà connectées** avant la phase 3 — détections périmées, aucun doublon créé. | | |
| 50 | 101 | |
| 51 | 102 | ## Rappels d'exploitation |
| 52 | 103 | |
modified
docs/connecteurs/INDEX.md
+48 −22
@@ -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-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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-08-19 03:39 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-08-19 05:40 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 | −**217 employeurs directs** connectés via **17 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **10728 offres actives** (7916 directes, 2812 portails ; 19 masquées comme doublons inter-sources, soit 10709 visibles). 239 fiches. | |
| 17 | +**240 employeurs directs** connectés via **20 plateformes ATS** + **3 portails agrégateurs** + le canal de **dépôt direct** — **14102 offres actives** (11238 directes, 2864 portails ; 91 masquées comme doublons inter-sources, soit 14011 visibles). 265 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 | |
@@ -22,50 +22,64 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 22 | 22 | |
| 23 | 23 | | Plateforme | Employeurs | Actives | Salaire | GPS | |
| 24 | 24 | |---|---|---|---|---| |
| 25 | −| [`workday`](ats-workday.md) | 41 | 3571 | 60 % | 84 % | | |
| 26 | −| [`successfactors`](ats-successfactors.md) | 3 | 1053 | 7 % | 100 % | | |
| 25 | +| [`workday`](ats-workday.md) | 41 | 3570 | 60 % | 84 % | | |
| 26 | +| [`workland`](ats-workland.md) | 1 | 1238 | 36 % | 100 % | | |
| 27 | +| [`successfactors`](ats-successfactors.md) | 5 | 1224 | 18 % | 86 % | | |
| 28 | +| [`njoyn`](ats-njoyn.md) | 6 | 956 | 81 % | 6 % | | |
| 27 | 29 | | [`smartrecruiters`](ats-smartrecruiters.md) | 28 | 949 | 16 % | 100 % | |
| 30 | +| [`wpjobmanager`](ats-wpjobmanager.md) | 8 | 842 | 8 % | 0 % | | |
| 28 | 31 | | [`workable`](ats-workable.md) | 19 | 649 | 4 % | 100 % | |
| 29 | 32 | | [`lever`](ats-lever.md) | 19 | 454 | 21 % | 97 % | |
| 30 | 33 | | [`bamboohr`](ats-bamboohr.md) | 31 | 227 | 13 % | 100 % | |
| 31 | 34 | | [`ashby`](ats-ashby.md) | 11 | 213 | 12 % | 75 % | |
| 32 | −| [`greenhouse`](ats-greenhouse.md) | 20 | 192 | 11 % | 100 % | | |
| 35 | +| [`greenhouse`](ats-greenhouse.md) | 19 | 192 | 11 % | 100 % | | |
| 36 | +| [`taleo_tbe`](ats-taleo_tbe.md) | 6 | 143 | 38 % | 0 % | | |
| 33 | 37 | | [`breezy`](ats-breezy.md) | 14 | 135 | 58 % | 98 % | |
| 34 | 38 | | [`recruitee`](ats-recruitee.md) | 11 | 130 | 9 % | 98 % | |
| 35 | −| [`njoyn`](ats-njoyn.md) | 5 | 117 | 74 % | 43 % | | |
| 36 | 39 | | [`taleo`](ats-taleo.md) | 4 | 71 | 0 % | 100 % | |
| 37 | −| [`icims`](ats-icims.md) | 5 | 57 | 37 % | 95 % | | |
| 38 | −| [`digitalrecruiters`](ats-digitalrecruiters.md) | 1 | 41 | 98 % | 68 % | | |
| 39 | −| [`workland`](ats-workland.md) | 1 | 23 | 0 % | 100 % | | |
| 40 | −| [`ultipro`](ats-ultipro.md) | 1 | 22 | 91 % | 100 % | | |
| 41 | −| [`adp`](ats-adp.md) | 3 | 12 | 75 % | 100 % | | |
| 40 | +| [`digitalrecruiters`](ats-digitalrecruiters.md) | 2 | 68 | 90 % | 41 % | | |
| 41 | +| [`icims`](ats-icims.md) | 6 | 60 | 40 % | 90 % | | |
| 42 | +| [`ultipro`](ats-ultipro.md) | 3 | 58 | 60 % | 38 % | | |
| 43 | +| [`custom`](ats-custom.md) | 1 | 31 | 0 % | 0 % | | |
| 44 | +| [`adp`](ats-adp.md) | 5 | 28 | 71 % | 43 % | | |
| 42 | 45 | |
| 43 | 46 | ## Portails agrégateurs & dépôt |
| 44 | 47 | |
| 45 | 48 | | Source | Actives | Salaire | Dernier sync | |
| 46 | 49 | |---|---|---|---| |
| 47 | −| [Guichet-Emplois (Canada)](guichet_emplois.md) | 566 | 99 % | 2026-08-19 01:54 | | |
| 48 | −| [Jobillico](jobillico.md) | 1937 | 38 % | 2026-08-19 02:02 | | |
| 49 | −| [Espresso-Jobs](espresso_jobs.md) | 309 | 23 % | 2026-08-19 01:46 | | |
| 50 | +| [Espresso-Jobs](espresso_jobs.md) | 309 | 23 % | 2026-08-19 03:55 | | |
| 51 | +| [Guichet-Emplois (Canada)](guichet_emplois.md) | 502 | 99 % | 2026-08-19 04:02 | | |
| 52 | +| [Jobillico](jobillico.md) | 2053 | 37 % | 2026-08-19 04:10 | | |
| 50 | 53 | | [Dépôt direct employeurs](depot-direct.md) | 0 (0 en modération) | — | au fil de l'eau | |
| 51 | 54 | |
| 52 | 55 | ## Employeurs directs (par volume d'offres actives) |
| 53 | 56 | |
| 54 | 57 | | Employeur | ATS | Actives | Salaire | GPS | Dernier sync OK | |
| 55 | 58 | |---|---|---|---|---|---| |
| 59 | +| [Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…)](atlas_workland.md) | [`workland`](ats-workland.md) | 1238 | 36 % | 100 % | ✅ | | |
| 56 | 60 | | [Couche-Tard / Circle K](circlek.md) | [`workday`](ats-workday.md) | 1012 | 61 % | 63 % | ✅ | |
| 57 | −| [Walmart Canada](walmart.md) | [`workday`](ats-workday.md) | 980 | 93 % | 91 % | ✅ | | |
| 61 | +| [Walmart Canada](walmart.md) | [`workday`](ats-workday.md) | 979 | 93 % | 91 % | ✅ | | |
| 58 | 62 | | [Bombardier](bombardier.md) | [`successfactors`](ats-successfactors.md) | 847 | 0 % | 100 % | ✅ | |
| 63 | +| [Santé Québec — Montréal](sante_montreal.md) | [`njoyn`](ats-njoyn.md) | 762 | 97 % | 8 % | ✅ | | |
| 59 | 64 | | [TEHORA](tehora.md) | [`workable`](ats-workable.md) | 346 | 0 % | 100 % | ✅ | |
| 60 | 65 | | [Go RH](gorh.md) | [`lever`](ats-lever.md) | 266 | 18 % | 98 % | ✅ | |
| 61 | 66 | | [Mouvement Desjardins](desjardins.md) | [`workday`](ats-workday.md) | 241 | 2 % | 94 % | ✅ | |
| 62 | 67 | | [CIMA+](cima2.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 221 | 0 % | 100 % | ✅ | |
| 63 | 68 | | [Université McGill](mcgill.md) | [`workday`](ats-workday.md) | 193 | 70 % | 100 % | ✅ | |
| 69 | +| [CISSS de Laval](cisss_laval.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 149 | 1 % | 0 % | ✅ | | |
| 70 | +| [CISSS de l'Abitibi-Témiscamingue](cisss_abitibi.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 141 | 0 % | 0 % | ✅ | | |
| 64 | 71 | | [Reitmans](reitmanscanadalteltd.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 138 | 22 % | 100 % | ✅ | |
| 72 | +| [CISSS des Laurentides](cisss_laurentides.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 130 | 12 % | 0 % | ✅ | | |
| 73 | +| [CGI](cgi.md) | [`njoyn`](ats-njoyn.md) | 127 | 0 % | 0 % | ✅ | | |
| 74 | +| [CISSS de Lanaudière](cisss_lanaudiere.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 124 | 4 % | 0 % | ✅ | | |
| 65 | 75 | | [Ubisoft](ubisoft.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 123 | 0 % | 100 % | ✅ | |
| 76 | +| [CISSS de Chaudière-Appalaches](cisss_chaudiere_appalaches.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 112 | 8 % | 0 % | ✅ | | |
| 66 | 77 | | [BMO Groupe financier](bmo.md) | [`workday`](ats-workday.md) | 106 | 88 % | 79 % | ✅ | |
| 67 | 78 | | [Domtar](domtar.md) | [`successfactors`](ats-successfactors.md) | 106 | 0 % | 99 % | ✅ | |
| 79 | +| [Deloitte Canada](deloitte.md) | [`successfactors`](ats-successfactors.md) | 105 | 96 % | 0 % | ✅ | | |
| 80 | +| [CISSS de l'Outaouais](cisss_outaouais.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 101 | 31 % | 0 % | ✅ | | |
| 68 | 81 | | [Cascades](cascades.md) | [`successfactors`](ats-successfactors.md) | 100 | 77 % | 100 % | ✅ | |
| 82 | +| [Sépaq](sepaq.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 99 | 55 % | 0 % | ✅ | | |
| 69 | 83 | | [Genetec](genetec_inc.md) | [`workable`](ats-workable.md) | 80 | 0 % | 100 % | ✅ | |
| 70 | 84 | | [Vidéotron](videotron.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 80 | 14 % | 100 % | ✅ | |
| 71 | 85 | | [MaintainX](maintainx.md) | [`ashby`](ats-ashby.md) | 78 | 6 % | 83 % | ✅ | |
@@ -73,15 +87,16 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 73 | 87 | | [Airbus Canada](airbus.md) | [`workday`](ats-workday.md) | 75 | 1 % | 100 % | ✅ | |
| 74 | 88 | | [Groupe Banque TD](td.md) | [`workday`](ats-workday.md) | 69 | 99 % | 100 % | ✅ | |
| 75 | 89 | | [EMCO](emcocorporation.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 67 | 48 % | 100 % | ✅ | |
| 90 | +| [Hydro-Québec](hydroquebec.md) | [`successfactors`](ats-successfactors.md) | 66 | 61 % | 0 % | ✅ | | |
| 76 | 91 | | [Autodesk](autodesk.md) | [`workday`](ats-workday.md) | 65 | 91 % | 48 % | ✅ | |
| 77 | 92 | | [Banque CIBC](cibc.md) | [`workday`](ats-workday.md) | 65 | 0 % | 100 % | ✅ | |
| 78 | 93 | | [Groupe Canam](groupecanam.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 65 | 66 % | 98 % | ✅ | |
| 94 | +| [CHU de Québec — Université Laval](chu_quebec.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 60 | 10 % | 0 % | ✅ | | |
| 79 | 95 | | [ANCIA Personnel](anciapersonnelinc.md) | [`recruitee`](ats-recruitee.md) | 59 | 10 % | 100 % | ✅ | |
| 80 | 96 | | [Lightspeed Commerce](lightspeedhq.md) | [`ashby`](ats-ashby.md) | 56 | 7 % | 98 % | ✅ | |
| 81 | 97 | | [CAE](cae.md) | [`workday`](ats-workday.md) | 55 | 7 % | 93 % | ✅ | |
| 82 | 98 | | [Manuvie](manulife.md) | [`workday`](ats-workday.md) | 51 | 90 % | 75 % | ✅ | |
| 83 | 99 | | [Cogeco](cogeco.md) | [`workday`](ats-workday.md) | 50 | 18 % | 56 % | ✅ | |
| 84 | −| [Santé Québec — Montréal](sante_montreal.md) | [`njoyn`](ats-njoyn.md) | 50 | 100 % | 100 % | ✅ | | |
| 85 | 100 | | [Beneva](beneva.md) | [`workday`](ats-workday.md) | 48 | 2 % | 100 % | ✅ | |
| 86 | 101 | | [Cohere](cohere.md) | [`ashby`](ats-ashby.md) | 46 | 17 % | 37 % | ✅ | |
| 87 | 102 | | [Investissements PSP](investpsp.md) | [`workday`](ats-workday.md) | 43 | 5 % | 100 % | ✅ | |
@@ -96,17 +111,21 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 96 | 111 | | [Valsoft](valsoft_corp.md) | [`workable`](ats-workable.md) | 37 | 11 % | 100 % | ✅ | |
| 97 | 112 | | [Transat A.T.](transatat1.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 36 | 6 % | 100 % | ✅ | |
| 98 | 113 | | [Side (PTW)](sideinc.md) | [`workable`](ats-workable.md) | 33 | 0 % | 100 % | ✅ | |
| 114 | +| [Industries Lassonde](lassonde.md) | [`custom`](ats-custom.md) | 31 | 0 % | 0 % | ✅ | | |
| 99 | 115 | | [Brand Momentum](brandmomentum.md) | [`breezy`](ats-breezy.md) | 30 | 70 % | 100 % | ✅ | |
| 100 | 116 | | [Service alimentaire Gordon](gfs.md) | [`workday`](ats-workday.md) | 30 | 73 % | 100 % | ✅ | |
| 101 | 117 | | [Altasciences](altasciences.md) | [`workday`](ats-workday.md) | 29 | 0 % | 100 % | ✅ | |
| 102 | 118 | | [CDPQ — Caisse de dépôt et placement du Québec](cdpq.md) | [`workday`](ats-workday.md) | 28 | 0 % | 100 % | ✅ | |
| 119 | +| [CSS des Découvreurs](cssdd.md) | [`digitalrecruiters`](ats-digitalrecruiters.md) | 27 | 78 % | 0 % | ✅ | | |
| 103 | 120 | | [EXFO](exfo.md) | [`workday`](ats-workday.md) | 27 | 0 % | 100 % | ✅ | |
| 104 | 121 | | [Scotts Canada (Fafard)](scottsmiraclegro.md) | [`workday`](ats-workday.md) | 27 | 4 % | 100 % | ✅ | |
| 105 | 122 | | [Tecsys](tecsys.md) | [`workable`](ats-workable.md) | 27 | 0 % | 100 % | ✅ | |
| 123 | +| [CHUM](chum.md) | [`wpjobmanager`](ats-wpjobmanager.md) | 25 | 0 % | 0 % | ✅ | | |
| 124 | +| [exo (transport métropolitain)](exo.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 25 | 0 % | 0 % | ✅ | | |
| 106 | 125 | | [AppDirect](appdirect.md) | [`greenhouse`](ats-greenhouse.md) | 24 | 25 % | 100 % | ✅ | |
| 107 | −| [Saputo](saputo.md) | [`workday`](ats-workday.md) | 24 | 79 % | 100 % | ❌ | | |
| 126 | +| [Nortera](nortera.md) | [`ultipro`](ats-ultipro.md) | 24 | 62 % | 0 % | ✅ | | |
| 127 | +| [Saputo](saputo.md) | [`workday`](ats-workday.md) | 24 | 75 % | 100 % | ✅ | | |
| 108 | 128 | | [Broccolini](broccolini.md) | [`bamboohr`](ats-bamboohr.md) | 23 | 0 % | 100 % | ✅ | |
| 109 | −| [Centre de services scolaire de Montréal](cssdm.md) | [`workland`](ats-workland.md) | 23 | 0 % | 100 % | ✅ | | |
| 110 | 129 | | [CIUSSS de l'Est-de-l'Île-de-Montréal](ciusss_est_montreal.md) | [`taleo`](ats-taleo.md) | 23 | 0 % | 100 % | ✅ | |
| 111 | 130 | | [Intact Corporation financière](intactfc.md) | [`workday`](ats-workday.md) | 23 | 0 % | 100 % | ✅ | |
| 112 | 131 | | [MEDFAR Solutions Cliniques](medfar.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 23 | 0 % | 100 % | ✅ | |
@@ -147,6 +166,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 147 | 166 | | [Sid Lee](sidlee.md) | [`greenhouse`](ats-greenhouse.md) | 13 | 0 % | 100 % | ✅ | |
| 148 | 167 | | [Talan](talan.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 13 | 0 % | 100 % | ✅ | |
| 149 | 168 | | [Victoria Park Medispa](vicpark.md) | [`bamboohr`](ats-bamboohr.md) | 13 | 0 % | 100 % | ✅ | |
| 169 | +| [Fruit d'Or](fruitdor.md) | [`ultipro`](ats-ultipro.md) | 12 | 0 % | 0 % | ✅ | | |
| 150 | 170 | | [GSK](gsk.md) | [`workday`](ats-workday.md) | 12 | 0 % | 83 % | ✅ | |
| 151 | 171 | | [Investissement Québec](investquebec.md) | [`workday`](ats-workday.md) | 12 | 8 % | 100 % | ✅ | |
| 152 | 172 | | [Logisco](logisco.md) | [`bamboohr`](ats-bamboohr.md) | 12 | 42 % | 100 % | ✅ | |
@@ -162,10 +182,13 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 162 | 182 | | [People Can Fly](peoplecanfly.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 10 | 0 % | 100 % | ✅ | |
| 163 | 183 | | [ADI - Albert Davidson Industries](adi_albert_davidson_industries.md) | [`breezy`](ats-breezy.md) | 9 | 100 % | 100 % | ✅ | |
| 164 | 184 | | [AlayaCare](alayacare.md) | [`greenhouse`](ats-greenhouse.md) | 9 | 0 % | 100 % | ✅ | |
| 185 | +| [Bento Sushi](bento_sushi.md) | [`adp`](ats-adp.md) | 9 | 89 % | 0 % | ✅ | | |
| 165 | 186 | | [Canadian Tire](canadiantirecorporation.md) | [`workday`](ats-workday.md) | 9 | 56 % | 100 % | ✅ | |
| 166 | 187 | | [EDF Renouvelables Canada](edf_renouvelables.md) | [`icims`](ats-icims.md) | 9 | 78 % | 67 % | ✅ | |
| 167 | 188 | | [Eminent Valet](eminent_valet.md) | [`workable`](ats-workable.md) | 9 | 100 % | 100 % | ✅ | |
| 168 | 189 | | [Framestore](framestore.md) | [`recruitee`](ats-recruitee.md) | 9 | 0 % | 100 % | ✅ | |
| 190 | +| [HEC Montréal](hec_montreal.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 9 | 0 % | 0 % | ✅ | | |
| 191 | +| [HEC Montréal — corps professoral](hec_montreal_profs.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 9 | 0 % | 0 % | ✅ | | |
| 169 | 192 | | [J'Excelle](jexcelleinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 9 | 0 % | 100 % | ✅ | |
| 170 | 193 | | [JG Rive-Sud (GFS)](jgrivesud.md) | [`workday`](ats-workday.md) | 9 | 67 % | 100 % | ✅ | |
| 171 | 194 | | [Nora Pharma](nora_pharma.md) | [`breezy`](ats-breezy.md) | 9 | 100 % | 89 % | ✅ | |
@@ -179,14 +202,15 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 179 | 202 | | [LIDD Consultants](lidd.md) | [`workable`](ats-workable.md) | 8 | 0 % | 100 % | ✅ | |
| 180 | 203 | | [Mila — Institut québécois d'IA](mila_2.md) | [`workable`](ats-workable.md) | 8 | 0 % | 100 % | ✅ | |
| 181 | 204 | | [Nuovo Photography](nuovophotography.md) | [`workable`](ats-workable.md) | 8 | 25 % | 100 % | ✅ | |
| 182 | −| [Omni Hôtel Mont-Royal](omni_hotels_horaire.md) | [`icims`](ats-icims.md) | 8 | 88 % | 100 % | ✅ | | |
| 183 | 205 | | [Omni Hôtel Mont-Royal](omni_hotels_gestion.md) | [`icims`](ats-icims.md) | 8 | 88 % | 100 % | ✅ | |
| 206 | +| [Omni Hôtel Mont-Royal](omni_hotels_horaire.md) | [`icims`](ats-icims.md) | 8 | 88 % | 100 % | ✅ | | |
| 184 | 207 | | [Sun Life](sunlife.md) | [`workday`](ats-workday.md) | 8 | 0 % | 100 % | ✅ | |
| 185 | 208 | | [AJ Walter Aviation](ajwalter.md) | [`recruitee`](ats-recruitee.md) | 7 | 0 % | 100 % | ✅ | |
| 186 | 209 | | [Luqia (INO)](ino_ca.md) | [`breezy`](ats-breezy.md) | 7 | 0 % | 100 % | ✅ | |
| 187 | 210 | | [Petal](petalmd.md) | [`recruitee`](ats-recruitee.md) | 7 | 14 % | 100 % | ✅ | |
| 188 | 211 | | [Robotiq](robotiq.md) | [`bamboohr`](ats-bamboohr.md) | 7 | 0 % | 100 % | ✅ | |
| 189 | 212 | | [Church & Dwight Canada](churchdwight.md) | [`workday`](ats-workday.md) | 6 | 0 % | 100 % | ✅ | |
| 213 | +| [Cultures Gen V](cultures_genv.md) | [`adp`](ats-adp.md) | 6 | 33 % | 0 % | ✅ | | |
| 190 | 214 | | [EQ Bank](eqbank.md) | [`lever`](ats-lever.md) | 6 | 50 % | 50 % | ✅ | |
| 191 | 215 | | [Hopper](hopper.md) | [`ashby`](ats-ashby.md) | 6 | 0 % | 67 % | ✅ | |
| 192 | 216 | | [Mattel (Mega Bloks)](mattelinc.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 6 | 0 % | 100 % | ✅ | |
@@ -233,6 +257,7 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 233 | 257 | | [Gearbox Studio Québec](gearboxquebec.md) | [`greenhouse`](ats-greenhouse.md) | 3 | 0 % | 100 % | ✅ | |
| 234 | 258 | | [Mistplay](mistplay.md) | [`lever`](ats-lever.md) | 3 | 33 % | 100 % | ✅ | |
| 235 | 259 | | [No Saint](no_saint.md) | [`ashby`](ats-ashby.md) | 3 | 0 % | 100 % | ✅ | |
| 260 | +| [Placements Mackenzie (Power/IGM)](mackenzie.md) | [`icims`](ats-icims.md) | 3 | 100 % | 0 % | ✅ | | |
| 236 | 261 | | [Rethink](rethinkcanada.md) | [`bamboohr`](ats-bamboohr.md) | 3 | 0 % | 100 % | ✅ | |
| 237 | 262 | | [Squeeze Studio Animation](squeezestudio.md) | [`recruitee`](ats-recruitee.md) | 3 | 0 % | 67 % | ✅ | |
| 238 | 263 | | [Suncor Énergie](suncor.md) | [`workday`](ats-workday.md) | 3 | 0 % | 100 % | ✅ | |
@@ -261,15 +286,16 @@ Conformité : voir [`docs/CONFORMITE.md`](../CONFORMITE.md). Chaque offre conser | ||
| 261 | 286 | | [GoLogic](gologic.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | |
| 262 | 287 | | [Industrious](industrious.md) | [`ashby`](ats-ashby.md) | 1 | 0 % | 100 % | ✅ | |
| 263 | 288 | | [NATIONAL](national.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 0 % | 100 % | ✅ | |
| 289 | +| [Osgoode Properties](osgoode_properties.md) | [`adp`](ats-adp.md) | 1 | 100 % | 0 % | ✅ | | |
| 264 | 290 | | [Poulet Rouge](pouletrouge.md) | [`bamboohr`](ats-bamboohr.md) | 1 | 0 % | 100 % | ✅ | |
| 291 | +| [Produits Kruger](produits_kruger.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 1 | 0 % | 0 % | ✅ | | |
| 265 | 292 | | [Samsara](samsara.md) | [`greenhouse`](ats-greenhouse.md) | 1 | 100 % | 100 % | ✅ | |
| 266 | 293 | | [Sparkgrid](sparkgrid.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | |
| 267 | 294 | | [Stelpro](stelpro.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | |
| 268 | 295 | | [Talsom](talsom.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | |
| 269 | 296 | | [Xplornet](xplornet.md) | [`smartrecruiters`](ats-smartrecruiters.md) | 1 | 0 % | 100 % | ✅ | |
| 270 | 297 | | [YouSet](youset.md) | [`breezy`](ats-breezy.md) | 1 | 0 % | 100 % | ✅ | |
| 271 | −| [Industries Lassonde](lassonde.md) | [`adp`](ats-adp.md) | 0 | — | — | ✅ | | |
| 272 | −| [TTC Global](ttcglobal.md) | [`greenhouse`](ats-greenhouse.md) | 0 | — | — | ✅ | | |
| 298 | +| [Kruger](kruger.md) | [`taleo_tbe`](ats-taleo_tbe.md) | 0 | — | — | ✅ | | |
| 273 | 299 | |
| 274 | 300 | ## Régénérer cette documentation |
| 275 | 301 | |
modified
docs/connecteurs/adeleexpressfr.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/adeleexpressfr.md |
| 7 | 7 | Rôle : Fiche connecteur — Adèle Express (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Professionnel de ménage - Pour entretien ménager à domicile | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 3/5 actives (60 %) |
modified
docs/connecteurs/adi_albert_davidson_industries.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/adi_albert_davidson_industries.md |
| 7 | 7 | Rôle : Fiche connecteur — ADI - Albert Davidson Industries (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Assistant Production Director* — Pointe-Claire · $28 – $34 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 9/9 actives (100 %) |
modified
docs/connecteurs/agnico_eagle.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/agnico_eagle.md |
| 7 | 7 | Rôle : Fiche connecteur — Agnico Eagle Mines (employeur direct, ATS taleo) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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-08-19 03:39 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 **20 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 42 | +Complétude mesurée sur les **20 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | 43 | |
| 44 | 44 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 45 | 45 | |---|---|---| |
@@ -80,7 +80,7 @@ Exemple réel : *Coordonnateur ressources humaines – processus et projets* — | ||
| 80 | 80 | |
| 81 | 81 | ## Volumétrie & complétude live |
| 82 | 82 | |
| 83 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 83 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 84 | 84 | |
| 85 | 85 | - **Offres en base** : 20 (dont **20 actives**, 0 masquées comme doublons `dup_of`) |
| 86 | 86 | - **Salaire** : 0/20 actives (0 %) |
modified
docs/connecteurs/agropur.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/agropur.md |
| 7 | 7 | Rôle : Fiche connecteur — Agropur (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **75 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **75 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,7 +79,7 @@ Exemple réel : *Manager, Commercial Transformation and Process Optimization* | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 75 (dont **75 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 70/75 actives (93 %) |
modified
docs/connecteurs/airbus.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/airbus.md |
| 7 | 7 | Rôle : Fiche connecteur — Airbus Canada (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **75 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **75 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,7 +79,7 @@ Exemple réel : *Conseiller.ère recrutement/Recruitment Advisor* — Montréal | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 75 (dont **75 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 1/75 actives (1 %) |
modified
docs/connecteurs/ajwalter.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ajwalter.md |
| 7 | 7 | Rôle : Fiche connecteur — AJ Walter Aviation (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **7 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **7 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Analyste, Soutien à la production - Production Support Analyst | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 7 (dont **7 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/7 actives (0 %) |
modified
docs/connecteurs/alayacare.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/alayacare.md |
| 7 | 7 | Rôle : Fiche connecteur — AlayaCare (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Manager, Software Development* — Montréal · ∅ · parue le | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 10 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/9 actives (0 %) |
modified
docs/connecteurs/alcoa.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/alcoa.md |
| 7 | 7 | Rôle : Fiche connecteur — Alcoa Canada (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **15 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **15 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,7 +79,7 @@ Exemple réel : *Assistant(e) opérateur ou opératrice* — Baie-Comeau · Sala | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 16 (dont **15 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 2/15 actives (13 %) |
modified
docs/connecteurs/alimentiv_2.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/alimentiv_2.md |
| 7 | 7 | Rôle : Fiche connecteur — Alimentiv (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Statistician* — ∅ · ∅ · parue le 2026-07-28. | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 2/2 actives (100 %) |
modified
docs/connecteurs/alphanumeric_systems.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/alphanumeric_systems.md |
| 7 | 7 | Rôle : Fiche connecteur — Alphanumeric Systems (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Bilingual Customer Service Specialist for Pharmaceuticals/Healt | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 5/5 actives (100 %) |
modified
docs/connecteurs/altasciences.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/altasciences.md |
| 7 | 7 | Rôle : Fiche connecteur — Altasciences (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **29 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **29 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,7 +79,7 @@ Exemple réel : *Medical Equipment and Systems Specialist* — Montréal · ∅ | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 29 (dont **29 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/29 actives (0 %) |
modified
docs/connecteurs/amilia.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/amilia.md |
| 7 | 7 | Rôle : Fiche connecteur — Amilia (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Coordonnateur.trice, Talent & Culture (contrat de 12 mois)* — | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/1 actives (0 %) |
modified
docs/connecteurs/anciapersonnelinc.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/anciapersonnelinc.md |
| 7 | 7 | Rôle : Fiche connecteur — ANCIA Personnel (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **59 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **59 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Approvisionneur(euse) de pièces* — Saint-Eustache · Salaire | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 60 (dont **59 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 6/59 actives (10 %) |
modified
docs/connecteurs/appdirect.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/appdirect.md |
| 7 | 7 | Rôle : Fiche connecteur — AppDirect (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **24 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **24 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Développeur/Développeuse Logiciel Senior - PHP* — Montréal | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 24 (dont **24 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 6/24 actives (25 %) |
modified
docs/connecteurs/astucemedia.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/astucemedia.md |
| 7 | 7 | Rôle : Fiche connecteur — Astucemedia (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,7 +77,7 @@ Exemple réel : *Lead Front & Back-End Developer* — Montréal · ∅ · parue | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/5 actives (0 %) |
modified
docs/connecteurs/atecna_montreal.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/atecna_montreal.md |
| 7 | 7 | Rôle : Fiche connecteur — Atecna (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *UI-UX Designer Senior* — Montréal · ∅ · parue le 2026-07 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/1 actives (0 %) |
added
docs/connecteurs/atlas_workland.md
+102 −0
@@ -0,0 +1,102 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/atlas_workland.md | |
| 7 | +Rôle : Fiche connecteur — Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…) (employeur direct, ATS workland) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…) (`atlas_workland`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`workland`](ats-workland.md) · Statut registre : actif · Connecteur : `jobka/connectors/atlas_workland.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…)](https://www.workland.com) | |
| 20 | +- **Page carrières** : https://atlas.workland.com | |
| 21 | +- **Secteurs** : Éducation, Santé, Secteur public, Multi-employeurs | |
| 22 | +- **Région** : Québec (province) | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-workland.md`](ats-workland.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Throttle** : 1.0 s entre requêtes. | |
| 29 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 30 | + | |
| 31 | +## Champs → schéma | |
| 32 | + | |
| 33 | +Complétude mesurée sur les **1238 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 34 | + | |
| 35 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 36 | +|---|---|---| | |
| 37 | +| `title` — Titre | titre du poste | 100 % | | |
| 38 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 39 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 40 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 41 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 42 | +| `region` — Région | région administrative | 99 % | | |
| 43 | +| `address` — Adresse | adresse du lieu de travail | 0 % | | |
| 44 | +| `postal_code` — Code postal | code postal si publié | 82 % | | |
| 45 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 82 % | | |
| 46 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 71 % | | |
| 47 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 36 % | | |
| 48 | +| `salary_label` — Libellé salaire | texte salarial original | 36 % | | |
| 49 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 50 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 51 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 52 | +| `date_deadline` — Date limite | date limite pour postuler | 100 % | | |
| 53 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 80 % | | |
| 54 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 55 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 56 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 57 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | | |
| 58 | + | |
| 59 | +Exemple réel : *Acheteuse ou acheteur* — Sorel-Tracy · : 26,18 $/heure Max · parue le 2026-08-18. | |
| 60 | + | |
| 61 | +## Fréquence & budgets | |
| 62 | + | |
| 63 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 64 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 65 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 66 | + | |
| 67 | +## Volumétrie & complétude live | |
| 68 | + | |
| 69 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 70 | + | |
| 71 | +- **Offres en base** : 1238 (dont **1238 actives**, 13 masquées comme doublons `dup_of`) | |
| 72 | +- **Salaire** : 441/1238 actives (36 %) | |
| 73 | +- **GPS** : 1238/1238 actives (100 %) | |
| 74 | +- **Mode** : 1014/1238 actives (82 %) | |
| 75 | +- **Parution** : 1238/1238 actives (100 %) | |
| 76 | +- **Dernier sync** : 2026-08-19 04:45 — trouvées 1238, +1238, ~0, -0 | |
| 77 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 78 | + | |
| 79 | +## Erreurs & dépannage | |
| 80 | + | |
| 81 | +Aucune erreur dans `sync_log` pour cette source. | |
| 82 | + | |
| 83 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync atlas_workland` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='atlas_workland' ORDER BY ts DESC LIMIT 5;"` | |
| 84 | +- 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`. | |
| 85 | + | |
| 86 | +## Licence / conformité | |
| 87 | + | |
| 88 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…) » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 89 | + | |
| 90 | +## Historique | |
| 91 | + | |
| 92 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 93 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 94 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 95 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 96 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 97 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 98 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 99 | + | |
| 100 | +Commits touchant `jobka/connectors/atlas_workland.py` : | |
| 101 | + | |
| 102 | +- `86b0d0b` 2026-08-19 Famille Workland réécrite sur l'API JSON publique du frontal Atlas (jobs-prod published-external + default-profiles) : descriptions complètes fr/en, lieux géocodés, dates, mode de travail — 2 requêtes par cycle pour TOUT le réseau. Nouveau connecteur réseau atlas_workland (~80 employeurs QC : CSS scolaires, cégeps, CIUSSS Ouest-de-l'Île, Santé Québec Côte-Nord, ICM, STQ, UQTR, INRS… ; 1 238 offres QC). Connecteur cssdm retiré (couvert par le réseau), fixture remplacée par atlas_workland (sous-ensemble rejouable). Corrige la limite « workland description 0 % ». | |
modified
docs/connecteurs/ats-adp.md
+8 −6
@@ -4,15 +4,15 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-adp.md |
| 7 | −Rôle : Fiche plateforme ATS adp — mécanique partagée + tableau des 3 tenants | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche plateforme ATS adp — mécanique partagée + tableau des 5 tenants | |
| 8 | +Généré : 2026-08-19 05:40 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 `adp` |
| 14 | 14 | |
| 15 | −**3 employeurs connectés** via cette plateforme — **12 offres actives**. Module partagé : `jobka/connectors/adp.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**5 employeurs connectés** via cette plateforme — **28 offres actives**. Module partagé : `jobka/connectors/adp.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -40,9 +40,11 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 40 | 40 | |
| 41 | 41 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 42 | 42 | |---|---|---|---|---|---|---| |
| 43 | −| [Mitsubishi HC Capital Canada](mitsubishi_hc_capital.md) | 6 | 50 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 44 | −| [MSI Gestion immobilière](msi_gestion.md) | 6 | 100 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 45 | −| [Industries Lassonde](lassonde.md) | 0 | — | — | — | 2026-08-19 02:02 | ✅ | | |
| 43 | +| [Bento Sushi](bento_sushi.md) | 9 | 89 % | 0 % | 0 % | 2026-08-19 04:49 | ✅ | | |
| 44 | +| [Cultures Gen V](cultures_genv.md) | 6 | 33 % | 0 % | 0 % | 2026-08-19 04:49 | ✅ | | |
| 45 | +| [Mitsubishi HC Capital Canada](mitsubishi_hc_capital.md) | 6 | 50 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 46 | +| [MSI Gestion immobilière](msi_gestion.md) | 6 | 100 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 47 | +| [Osgoode Properties](osgoode_properties.md) | 1 | 100 % | 0 % | 0 % | 2026-08-19 04:49 | ✅ | | |
| 46 | 48 | |
| 47 | 49 | ## Licence / conformité |
| 48 | 50 | |
modified
docs/connecteurs/ats-ashby.md
+12 −12
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-ashby.md |
| 7 | 7 | Rôle : Fiche plateforme ATS ashby — mécanique partagée + tableau des 11 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -40,17 +40,17 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 40 | 40 | |
| 41 | 41 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 42 | 42 | |---|---|---|---|---|---|---| |
| 43 | −| [MaintainX](maintainx.md) | 78 | 6 % | 83 % | 100 % | 2026-08-19 02:02 | ✅ | | |
| 44 | −| [Lightspeed Commerce](lightspeedhq.md) | 56 | 7 % | 98 % | 100 % | 2026-08-19 02:02 | ✅ | | |
| 45 | −| [Cohere](cohere.md) | 46 | 17 % | 37 % | 100 % | 2026-08-19 01:42 | ✅ | | |
| 46 | −| [Tetrix](tetrix.md) | 9 | 100 % | 11 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 47 | −| [Hopper](hopper.md) | 6 | 0 % | 67 % | 100 % | 2026-08-19 01:54 | ✅ | | |
| 48 | −| [Mistral AI](mistral_ai.md) | 5 | 0 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 49 | −| [Nomic Bio](nomic.md) | 4 | 0 % | 75 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 50 | −| [Fuse Energy](fuse.md) | 3 | 0 % | 100 % | 0 % | 2026-08-19 01:47 | ✅ | | |
| 51 | −| [No Saint](no_saint.md) | 3 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 52 | −| [Vasco](vasco.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 53 | −| [Industrious](industrious.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 01:55 | ✅ | | |
| 43 | +| [MaintainX](maintainx.md) | 78 | 6 % | 83 % | 100 % | 2026-08-19 04:10 | ✅ | | |
| 44 | +| [Lightspeed Commerce](lightspeedhq.md) | 56 | 7 % | 98 % | 100 % | 2026-08-19 04:10 | ✅ | | |
| 45 | +| [Cohere](cohere.md) | 46 | 17 % | 37 % | 100 % | 2026-08-19 03:52 | ✅ | | |
| 46 | +| [Tetrix](tetrix.md) | 9 | 100 % | 11 % | 100 % | 2026-08-19 04:24 | ✅ | | |
| 47 | +| [Hopper](hopper.md) | 6 | 0 % | 67 % | 100 % | 2026-08-19 04:02 | ✅ | | |
| 48 | +| [Mistral AI](mistral_ai.md) | 5 | 0 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 49 | +| [Nomic Bio](nomic.md) | 4 | 0 % | 75 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 50 | +| [Fuse Energy](fuse.md) | 3 | 0 % | 100 % | 0 % | 2026-08-19 03:56 | ✅ | | |
| 51 | +| [No Saint](no_saint.md) | 3 | 0 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 52 | +| [Vasco](vasco.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 04:25 | ✅ | | |
| 53 | +| [Industrious](industrious.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 04:03 | ✅ | | |
| 54 | 54 | |
| 55 | 55 | ## Licence / conformité |
| 56 | 56 | |
modified
docs/connecteurs/ats-bamboohr.md
+30 −30
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-bamboohr.md |
| 7 | 7 | Rôle : Fiche plateforme ATS bamboohr — mécanique partagée + tableau des 31 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -43,37 +43,37 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 43 | 43 | |
| 44 | 44 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 45 | 45 | |---|---|---|---|---|---|---| |
| 46 | −| [Broccolini](broccolini.md) | 23 | 0 % | 100 % | 100 % | 2026-08-19 01:31 | ✅ | | |
| 47 | −| [dcbel](dcbel.md) | 20 | 0 % | 100 % | 100 % | 2026-08-19 01:42 | ✅ | | |
| 48 | −| [Explorance](explorance.md) | 18 | 0 % | 100 % | 100 % | 2026-08-19 01:47 | ✅ | | |
| 49 | −| [Produits Labelink](labelink.md) | 17 | 0 % | 100 % | 100 % | 2026-08-19 02:02 | ✅ | | |
| 50 | −| [Victoria Park Medispa](vicpark.md) | 13 | 0 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 51 | −| [OPAL-RT Technologies](opalrt.md) | 13 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 52 | −| [Logisco](logisco.md) | 12 | 42 % | 100 % | 100 % | 2026-08-19 02:02 | ✅ | | |
| 53 | −| [KPI Digital](kpidigital.md) | 11 | 0 % | 100 % | 100 % | 2026-08-19 02:02 | ✅ | | |
| 46 | +| [Broccolini](broccolini.md) | 23 | 0 % | 100 % | 100 % | 2026-08-19 03:41 | ✅ | | |
| 47 | +| [dcbel](dcbel.md) | 20 | 0 % | 100 % | 100 % | 2026-08-19 03:52 | ✅ | | |
| 48 | +| [Explorance](explorance.md) | 18 | 0 % | 100 % | 100 % | 2026-08-19 03:56 | ✅ | | |
| 49 | +| [Produits Labelink](labelink.md) | 17 | 0 % | 100 % | 100 % | 2026-08-19 04:10 | ✅ | | |
| 50 | +| [OPAL-RT Technologies](opalrt.md) | 13 | 0 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 51 | +| [Victoria Park Medispa](vicpark.md) | 13 | 0 % | 100 % | 100 % | 2026-08-19 04:25 | ✅ | | |
| 52 | +| [Logisco](logisco.md) | 12 | 42 % | 100 % | 100 % | 2026-08-19 04:10 | ✅ | | |
| 53 | +| [KPI Digital](kpidigital.md) | 11 | 0 % | 100 % | 100 % | 2026-08-19 04:10 | ✅ | | |
| 54 | 54 | | [Big Bang](bigbang.md) | 8 | 25 % | 100 % | 100 % | 2026-08-19 03:39 | ✅ | |
| 55 | −| [Devimco Appartements](devimco.md) | 8 | 12 % | 100 % | 100 % | 2026-08-19 01:46 | ✅ | | |
| 56 | −| [Robotiq](robotiq.md) | 7 | 0 % | 100 % | 100 % | 2026-08-19 02:12 | ✅ | | |
| 57 | −| [Triotech](triotech.md) | 6 | 17 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 58 | −| [North West Rubber](northwestrubber.md) | 6 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 59 | −| [Nexapp](nexapp.md) | 6 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 60 | −| [Portage CyberTech](portagecybertech.md) | 6 | 17 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 61 | −| [Toon Boom Animation](toonboom.md) | 6 | 0 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 62 | −| [MXO](mxo.md) | 6 | 83 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 63 | −| [Propriétés Scalia](scalia.md) | 5 | 20 % | 100 % | 100 % | 2026-08-19 02:13 | ✅ | | |
| 64 | −| [Surmesur](surmesur.md) | 5 | 80 % | 100 % | 100 % | 2026-08-19 02:15 | ✅ | | |
| 65 | −| [EOS Aircraft](eosaircraftinc.md) | 4 | 0 % | 100 % | 100 % | 2026-08-19 01:46 | ✅ | | |
| 66 | −| [Mitacs](mitacs.md) | 4 | 100 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 67 | −| [Korem](korem.md) | 4 | 0 % | 100 % | 100 % | 2026-08-19 02:02 | ✅ | | |
| 68 | −| [Rethink](rethinkcanada.md) | 3 | 0 % | 100 % | 100 % | 2026-08-19 02:11 | ✅ | | |
| 69 | −| [EVLO (Hydro-Québec)](evlo.md) | 3 | 0 % | 100 % | 100 % | 2026-08-19 01:46 | ✅ | | |
| 55 | +| [Devimco Appartements](devimco.md) | 8 | 12 % | 100 % | 100 % | 2026-08-19 03:55 | ✅ | | |
| 56 | +| [Robotiq](robotiq.md) | 7 | 0 % | 100 % | 100 % | 2026-08-19 04:17 | ✅ | | |
| 57 | +| [MXO](mxo.md) | 6 | 83 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 58 | +| [Nexapp](nexapp.md) | 6 | 0 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 59 | +| [North West Rubber](northwestrubber.md) | 6 | 0 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 60 | +| [Portage CyberTech](portagecybertech.md) | 6 | 17 % | 100 % | 100 % | 2026-08-19 04:16 | ✅ | | |
| 61 | +| [Toon Boom Animation](toonboom.md) | 6 | 0 % | 100 % | 100 % | 2026-08-19 04:24 | ✅ | | |
| 62 | +| [Triotech](triotech.md) | 6 | 17 % | 100 % | 100 % | 2026-08-19 04:24 | ✅ | | |
| 63 | +| [Propriétés Scalia](scalia.md) | 5 | 20 % | 100 % | 100 % | 2026-08-19 04:18 | ✅ | | |
| 64 | +| [Surmesur](surmesur.md) | 5 | 80 % | 100 % | 100 % | 2026-08-19 04:19 | ✅ | | |
| 65 | +| [EOS Aircraft](eosaircraftinc.md) | 4 | 0 % | 100 % | 100 % | 2026-08-19 03:55 | ✅ | | |
| 66 | +| [Korem](korem.md) | 4 | 0 % | 100 % | 100 % | 2026-08-19 04:10 | ✅ | | |
| 67 | +| [Mitacs](mitacs.md) | 4 | 100 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 68 | +| [EVLO (Hydro-Québec)](evlo.md) | 3 | 0 % | 100 % | 100 % | 2026-08-19 03:55 | ✅ | | |
| 69 | +| [Rethink](rethinkcanada.md) | 3 | 0 % | 100 % | 100 % | 2026-08-19 04:16 | ✅ | | |
| 70 | 70 | | [Groupe BC2](bc2.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 03:38 | ✅ | |
| 71 | −| [OTT Financial](ott.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 72 | −| [Aliments Ouimet-Cordon Bleu inc.](cordonbleu.md) | 2 | 50 % | 100 % | 100 % | 2026-08-19 01:42 | ✅ | | |
| 73 | −| [Fenêtres Concept](fenetresconcept.md) | 2 | 100 % | 100 % | 100 % | 2026-08-19 01:47 | ✅ | | |
| 74 | −| [Flare (cybersécurité)](flare.md) | 2 | 50 % | 100 % | 100 % | 2026-08-19 01:47 | ✅ | | |
| 75 | −| [Ziptrek Tremblant](ziptrekeco.md) | 2 | 100 % | 100 % | 100 % | 2026-08-19 02:30 | ✅ | | |
| 76 | −| [Poulet Rouge](pouletrouge.md) | 1 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 71 | +| [Aliments Ouimet-Cordon Bleu inc.](cordonbleu.md) | 2 | 50 % | 100 % | 100 % | 2026-08-19 03:52 | ✅ | | |
| 72 | +| [Fenêtres Concept](fenetresconcept.md) | 2 | 100 % | 100 % | 100 % | 2026-08-19 03:56 | ✅ | | |
| 73 | +| [Flare (cybersécurité)](flare.md) | 2 | 50 % | 100 % | 100 % | 2026-08-19 03:56 | ✅ | | |
| 74 | +| [OTT Financial](ott.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 75 | +| [Ziptrek Tremblant](ziptrekeco.md) | 2 | 100 % | 100 % | 100 % | 2026-08-19 04:35 | ✅ | | |
| 76 | +| [Poulet Rouge](pouletrouge.md) | 1 | 0 % | 100 % | 100 % | 2026-08-19 04:16 | ✅ | | |
| 77 | 77 | |
| 78 | 78 | ## Licence / conformité |
| 79 | 79 | |
modified
docs/connecteurs/ats-breezy.md
+13 −13
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-breezy.md |
| 7 | 7 | Rôle : Fiche plateforme ATS breezy — mécanique partagée + tableau des 14 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -37,20 +37,20 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 37 | 37 | |
| 38 | 38 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 39 | 39 | |---|---|---|---|---|---|---| |
| 40 | −| [Brand Momentum](brandmomentum.md) | 30 | 70 % | 100 % | 0 % | 2026-08-19 01:31 | ✅ | | |
| 41 | −| [NOVIPRO](novipro.md) | 17 | 0 % | 100 % | 24 % | 2026-08-19 02:10 | ✅ | | |
| 42 | −| [Réseau Mieux-Être](reseau_mieux_etre.md) | 15 | 0 % | 100 % | 13 % | 2026-08-19 02:11 | ✅ | | |
| 43 | −| [MicroHabitat](microhabitat.md) | 13 | 100 % | 100 % | 38 % | 2026-08-19 02:10 | ✅ | | |
| 44 | −| [3 Brasseurs Canada](trois_brasseurs.md) | 11 | 73 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 45 | −| [EQ3](eq3_ltd.md) | 10 | 60 % | 100 % | 0 % | 2026-08-19 01:46 | ✅ | | |
| 46 | −| [Nora Pharma](nora_pharma.md) | 9 | 100 % | 89 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 40 | +| [Brand Momentum](brandmomentum.md) | 30 | 70 % | 100 % | 0 % | 2026-08-19 03:41 | ✅ | | |
| 41 | +| [NOVIPRO](novipro.md) | 17 | 0 % | 100 % | 24 % | 2026-08-19 04:15 | ✅ | | |
| 42 | +| [Réseau Mieux-Être](reseau_mieux_etre.md) | 15 | 0 % | 100 % | 13 % | 2026-08-19 04:16 | ✅ | | |
| 43 | +| [MicroHabitat](microhabitat.md) | 13 | 100 % | 100 % | 38 % | 2026-08-19 04:15 | ✅ | | |
| 44 | +| [3 Brasseurs Canada](trois_brasseurs.md) | 11 | 73 % | 100 % | 100 % | 2026-08-19 04:24 | ✅ | | |
| 45 | +| [EQ3](eq3_ltd.md) | 10 | 60 % | 100 % | 0 % | 2026-08-19 03:55 | ✅ | | |
| 47 | 46 | | [ADI - Albert Davidson Industries](adi_albert_davidson_industries.md) | 9 | 100 % | 100 % | 11 % | 2026-08-19 03:31 | ✅ | |
| 48 | −| [Luqia (INO)](ino_ca.md) | 7 | 0 % | 100 % | 0 % | 2026-08-19 01:55 | ✅ | | |
| 47 | +| [Nora Pharma](nora_pharma.md) | 9 | 100 % | 89 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 48 | +| [Luqia (INO)](ino_ca.md) | 7 | 0 % | 100 % | 0 % | 2026-08-19 04:03 | ✅ | | |
| 49 | 49 | | [Alphanumeric Systems](alphanumeric_systems.md) | 5 | 100 % | 100 % | 40 % | 2026-08-19 03:36 | ✅ | |
| 50 | −| [VOXDATA](voxdata.md) | 5 | 100 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 51 | −| [Vaporus](vaporus_inc.md) | 2 | 100 % | 50 % | 0 % | 2026-08-19 02:20 | ✅ | | |
| 52 | −| [YouSet](youset.md) | 1 | 0 % | 100 % | 100 % | 2026-08-19 02:30 | ✅ | | |
| 53 | −| [Canada Global Recruitment](canada_global.md) | 1 | 0 % | 0 % | 0 % | 2026-08-19 01:31 | ✅ | | |
| 50 | +| [VOXDATA](voxdata.md) | 5 | 100 % | 100 % | 100 % | 2026-08-19 04:25 | ✅ | | |
| 51 | +| [Vaporus](vaporus_inc.md) | 2 | 100 % | 50 % | 0 % | 2026-08-19 04:25 | ✅ | | |
| 52 | +| [Canada Global Recruitment](canada_global.md) | 1 | 0 % | 0 % | 0 % | 2026-08-19 03:42 | ✅ | | |
| 53 | +| [YouSet](youset.md) | 1 | 0 % | 100 % | 100 % | 2026-08-19 04:35 | ✅ | | |
| 54 | 54 | |
| 55 | 55 | ## Licence / conformité |
| 56 | 56 | |
added
docs/connecteurs/ats-custom.md
+45 −0
@@ -0,0 +1,45 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/ats-custom.md | |
| 7 | +Rôle : Fiche plateforme ATS custom — mécanique partagée + tableau des 1 tenants | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Plateforme ATS `custom` | |
| 14 | + | |
| 15 | +**1 employeurs connectés** via cette plateforme — **31 offres actives**. Module partagé : `jobka/connectors/custom.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | + | |
| 17 | +## Description & mécanique | |
| 18 | + | |
| 19 | +*(module sans docstring)* | |
| 20 | + | |
| 21 | +## Accès | |
| 22 | + | |
| 23 | +- **Pagination** : flux unique (une requête liste) | |
| 24 | +- **Backend** : GET/POST direct `requests` (throttlé, User-Agent `JobKaBot/1.0` identifié) | |
| 25 | +- **Auth** : aucune — API/pages publiques du site carrières. | |
| 26 | + | |
| 27 | +## Tenants connectés | |
| 28 | + | |
| 29 | +| Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | | |
| 30 | +|---|---|---|---|---|---|---| | |
| 31 | +| [Industries Lassonde](lassonde.md) | 31 | 0 % | 0 % | 0 % | 2026-08-19 04:49 | ✅ | | |
| 32 | + | |
| 33 | +## Licence / conformité | |
| 34 | + | |
| 35 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez l'employeur » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 36 | + | |
| 37 | +## Historique | |
| 38 | + | |
| 39 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 40 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 41 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 42 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 43 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 44 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 45 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
modified
docs/connecteurs/ats-digitalrecruiters.md
+5 −4
@@ -4,15 +4,15 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-digitalrecruiters.md |
| 7 | −Rôle : Fiche plateforme ATS digitalrecruiters — mécanique partagée + tableau des 1 tenants | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche plateforme ATS digitalrecruiters — mécanique partagée + tableau des 2 tenants | |
| 8 | +Généré : 2026-08-19 05:40 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 `digitalrecruiters` |
| 14 | 14 | |
| 15 | −**1 employeurs connectés** via cette plateforme — **41 offres actives**. Module partagé : `jobka/connectors/digitalrecruiters.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**2 employeurs connectés** via cette plateforme — **68 offres actives**. Module partagé : `jobka/connectors/digitalrecruiters.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -36,7 +36,8 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 38 | 38 | |---|---|---|---|---|---|---| |
| 39 | −| [Santé Québec](sante_quebec.md) | 41 | 98 % | 68 % | 0 % | 2026-08-19 02:13 | ✅ | | |
| 39 | +| [Santé Québec](sante_quebec.md) | 41 | 98 % | 68 % | 0 % | 2026-08-19 04:17 | ✅ | | |
| 40 | +| [CSS des Découvreurs](cssdd.md) | 27 | 78 % | 0 % | 0 % | 2026-08-19 05:09 | ✅ | | |
| 40 | 41 | |
| 41 | 42 | ## Licence / conformité |
| 42 | 43 | |
modified
docs/connecteurs/ats-greenhouse.md
+20 −21
@@ -4,15 +4,15 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-greenhouse.md |
| 7 | −Rôle : Fiche plateforme ATS greenhouse — mécanique partagée + tableau des 20 tenants | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche plateforme ATS greenhouse — mécanique partagée + tableau des 19 tenants | |
| 8 | +Généré : 2026-08-19 05:40 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 `greenhouse` |
| 14 | 14 | |
| 15 | −**20 employeurs connectés** via cette plateforme — **192 offres actives**. Module partagé : `jobka/connectors/greenhouse.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**19 employeurs connectés** via cette plateforme — **192 offres actives**. Module partagé : `jobka/connectors/greenhouse.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -37,26 +37,25 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 37 | 37 | |
| 38 | 38 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 39 | 39 | |---|---|---|---|---|---|---| |
| 40 | −| [Levio](levio.md) | 42 | 0 % | 100 % | 0 % | 2026-08-19 02:02 | ✅ | | |
| 40 | +| [Levio](levio.md) | 42 | 0 % | 100 % | 0 % | 2026-08-19 04:10 | ✅ | | |
| 41 | 41 | | [AppDirect](appdirect.md) | 24 | 25 % | 100 % | 0 % | 2026-08-19 03:36 | ✅ | |
| 42 | −| [mthree](mthreerecruitingportal.md) | 22 | 0 % | 100 % | 23 % | 2026-08-19 02:10 | ✅ | | |
| 43 | −| [Vooban](vooban.md) | 18 | 0 % | 100 % | 0 % | 2026-08-19 02:20 | ✅ | | |
| 44 | −| [Valtech](valtech.md) | 15 | 13 % | 100 % | 0 % | 2026-08-19 02:20 | ✅ | | |
| 45 | −| [Sid Lee](sidlee.md) | 13 | 0 % | 100 % | 0 % | 2026-08-19 02:14 | ✅ | | |
| 46 | −| [SIA Innovations](siainnovationsinc.md) | 9 | 44 % | 100 % | 78 % | 2026-08-19 02:14 | ✅ | | |
| 42 | +| [mthree](mthreerecruitingportal.md) | 22 | 0 % | 100 % | 23 % | 2026-08-19 04:15 | ✅ | | |
| 43 | +| [Vooban](vooban.md) | 18 | 0 % | 100 % | 0 % | 2026-08-19 04:25 | ✅ | | |
| 44 | +| [Valtech](valtech.md) | 15 | 13 % | 100 % | 0 % | 2026-08-19 04:25 | ✅ | | |
| 45 | +| [Sid Lee](sidlee.md) | 13 | 0 % | 100 % | 0 % | 2026-08-19 04:18 | ✅ | | |
| 47 | 46 | | [AlayaCare](alayacare.md) | 9 | 0 % | 100 % | 0 % | 2026-08-19 03:36 | ✅ | |
| 48 | −| [GURUS Solutions](gurussolutions.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 01:54 | ✅ | | |
| 49 | −| [Poka](poka.md) | 5 | 0 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 50 | −| [TandemLaunch](tandemlaunch.md) | 5 | 0 % | 100 % | 0 % | 2026-08-19 02:15 | ✅ | | |
| 51 | −| [Lush Cosmétiques](lush.md) | 5 | 100 % | 100 % | 0 % | 2026-08-19 02:02 | ✅ | | |
| 52 | −| [Broadsign](broadsign.md) | 4 | 0 % | 100 % | 100 % | 2026-08-19 01:31 | ✅ | | |
| 53 | −| [Vaco](vaco.md) | 4 | 75 % | 100 % | 0 % | 2026-08-19 02:20 | ✅ | | |
| 54 | −| [Gearbox Studio Québec](gearboxquebec.md) | 3 | 0 % | 100 % | 0 % | 2026-08-19 01:47 | ✅ | | |
| 55 | −| [On Running](onrunning.md) | 2 | 0 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 56 | −| [VML Canada](vmlcanadaen.md) | 2 | 50 % | 100 % | 0 % | 2026-08-19 02:20 | ✅ | | |
| 57 | −| [NATIONAL](national.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 58 | −| [Samsara](samsara.md) | 1 | 100 % | 100 % | 100 % | 2026-08-19 02:13 | ✅ | | |
| 59 | −| [TTC Global](ttcglobal.md) | 0 | — | — | — | 2026-08-19 02:20 | ✅ | | |
| 47 | +| [SIA Innovations](siainnovationsinc.md) | 9 | 44 % | 100 % | 78 % | 2026-08-19 04:18 | ✅ | | |
| 48 | +| [GURUS Solutions](gurussolutions.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 04:02 | ✅ | | |
| 49 | +| [Lush Cosmétiques](lush.md) | 5 | 100 % | 100 % | 0 % | 2026-08-19 04:10 | ✅ | | |
| 50 | +| [Poka](poka.md) | 5 | 0 % | 100 % | 0 % | 2026-08-19 04:16 | ✅ | | |
| 51 | +| [TandemLaunch](tandemlaunch.md) | 5 | 0 % | 100 % | 0 % | 2026-08-19 04:19 | ✅ | | |
| 52 | +| [Broadsign](broadsign.md) | 4 | 0 % | 100 % | 100 % | 2026-08-19 03:41 | ✅ | | |
| 53 | +| [Vaco](vaco.md) | 4 | 75 % | 100 % | 0 % | 2026-08-19 04:24 | ✅ | | |
| 54 | +| [Gearbox Studio Québec](gearboxquebec.md) | 3 | 0 % | 100 % | 0 % | 2026-08-19 03:56 | ✅ | | |
| 55 | +| [On Running](onrunning.md) | 2 | 0 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 56 | +| [VML Canada](vmlcanadaen.md) | 2 | 50 % | 100 % | 0 % | 2026-08-19 04:25 | ✅ | | |
| 57 | +| [NATIONAL](national.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 58 | +| [Samsara](samsara.md) | 1 | 100 % | 100 % | 100 % | 2026-08-19 04:17 | ✅ | | |
| 60 | 59 | |
| 61 | 60 | ## Licence / conformité |
| 62 | 61 | |
modified
docs/connecteurs/ats-icims.md
+9 −8
@@ -4,15 +4,15 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-icims.md |
| 7 | −Rôle : Fiche plateforme ATS icims — mécanique partagée + tableau des 5 tenants | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche plateforme ATS icims — mécanique partagée + tableau des 6 tenants | |
| 8 | +Généré : 2026-08-19 05:40 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 `icims` |
| 14 | 14 | |
| 15 | −**5 employeurs connectés** via cette plateforme — **57 offres actives**. Module partagé : `jobka/connectors/icims.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**6 employeurs connectés** via cette plateforme — **60 offres actives**. Module partagé : `jobka/connectors/icims.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -39,11 +39,12 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 39 | 39 | |
| 40 | 40 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 41 | 41 | |---|---|---|---|---|---|---| |
| 42 | −| [McCarthy Tétrault](mccarthy_tetrault.md) | 22 | 0 % | 100 % | 9 % | 2026-08-19 02:05 | ✅ | | |
| 43 | −| [CAPREIT](capreit.md) | 10 | 0 % | 100 % | 0 % | 2026-08-19 01:31 | ✅ | | |
| 44 | −| [EDF Renouvelables Canada](edf_renouvelables.md) | 9 | 78 % | 67 % | 67 % | 2026-08-19 01:46 | ✅ | | |
| 45 | −| [Omni Hôtel Mont-Royal](omni_hotels_horaire.md) | 8 | 88 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 46 | −| [Omni Hôtel Mont-Royal](omni_hotels_gestion.md) | 8 | 88 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 42 | +| [McCarthy Tétrault](mccarthy_tetrault.md) | 22 | 0 % | 100 % | 9 % | 2026-08-19 04:11 | ✅ | | |
| 43 | +| [CAPREIT](capreit.md) | 10 | 0 % | 100 % | 0 % | 2026-08-19 03:42 | ✅ | | |
| 44 | +| [EDF Renouvelables Canada](edf_renouvelables.md) | 9 | 78 % | 67 % | 67 % | 2026-08-19 03:55 | ✅ | | |
| 45 | +| [Omni Hôtel Mont-Royal](omni_hotels_gestion.md) | 8 | 88 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 46 | +| [Omni Hôtel Mont-Royal](omni_hotels_horaire.md) | 8 | 88 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 47 | +| [Placements Mackenzie (Power/IGM)](mackenzie.md) | 3 | 100 % | 0 % | 0 % | 2026-08-19 04:49 | ✅ | | |
| 47 | 48 | |
| 48 | 49 | ## Licence / conformité |
| 49 | 50 | |
modified
docs/connecteurs/ats-lever.md
+17 −17
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-lever.md |
| 7 | 7 | Rôle : Fiche plateforme ATS lever — mécanique partagée + tableau des 19 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -37,25 +37,25 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 37 | 37 | |
| 38 | 38 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 39 | 39 | |---|---|---|---|---|---|---| |
| 40 | −| [Go RH](gorh.md) | 266 | 18 % | 98 % | 98 % | 2026-08-19 01:48 | ✅ | | |
| 40 | +| [Go RH](gorh.md) | 266 | 18 % | 98 % | 98 % | 2026-08-19 03:56 | ✅ | | |
| 41 | 41 | | [Behaviour Interactif](bhvr.md) | 39 | 0 % | 100 % | 100 % | 2026-08-19 03:39 | ✅ | |
| 42 | −| [Cirque du Soleil](cirquedusoleil.md) | 22 | 0 % | 86 % | 100 % | 2026-08-19 01:41 | ✅ | | |
| 43 | −| [Xsolla](xsolla.md) | 21 | 95 % | 95 % | 100 % | 2026-08-19 02:30 | ✅ | | |
| 44 | −| [OSEDEA](osedea.md) | 18 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 45 | −| [VO2 Group](vo2_group.md) | 17 | 6 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 46 | −| [Spiria](spiria.md) | 12 | 58 % | 100 % | 100 % | 2026-08-19 02:14 | ✅ | | |
| 47 | −| [TSMG](tsmg.md) | 11 | 0 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 48 | −| [Mirego](mirego.md) | 11 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 49 | −| [EQ Bank](eqbank.md) | 6 | 50 % | 50 % | 100 % | 2026-08-19 01:46 | ✅ | | |
| 50 | −| [US Mobile](usmobile.md) | 6 | 100 % | 100 % | 100 % | 2026-08-19 02:20 | ✅ | | |
| 51 | −| [Distro](distro.md) | 5 | 100 % | 100 % | 100 % | 2026-08-19 01:46 | ✅ | | |
| 42 | +| [Cirque du Soleil](cirquedusoleil.md) | 22 | 0 % | 86 % | 100 % | 2026-08-19 03:51 | ✅ | | |
| 43 | +| [Xsolla](xsolla.md) | 21 | 95 % | 95 % | 100 % | 2026-08-19 04:35 | ✅ | | |
| 44 | +| [OSEDEA](osedea.md) | 18 | 0 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 45 | +| [VO2 Group](vo2_group.md) | 17 | 6 % | 100 % | 100 % | 2026-08-19 04:25 | ✅ | | |
| 46 | +| [Spiria](spiria.md) | 12 | 58 % | 100 % | 100 % | 2026-08-19 04:18 | ✅ | | |
| 47 | +| [Mirego](mirego.md) | 11 | 0 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 48 | +| [TSMG](tsmg.md) | 11 | 0 % | 100 % | 100 % | 2026-08-19 04:24 | ✅ | | |
| 49 | +| [EQ Bank](eqbank.md) | 6 | 50 % | 50 % | 100 % | 2026-08-19 03:55 | ✅ | | |
| 50 | +| [US Mobile](usmobile.md) | 6 | 100 % | 100 % | 100 % | 2026-08-19 04:24 | ✅ | | |
| 52 | 51 | | [Aviya Aerospace Systems](aviyatech.md) | 5 | 0 % | 100 % | 100 % | 2026-08-19 03:37 | ✅ | |
| 53 | −| [Mistplay](mistplay.md) | 3 | 33 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 54 | −| [DiliTrust](dilitrust.md) | 3 | 0 % | 100 % | 100 % | 2026-08-19 01:46 | ✅ | | |
| 55 | −| [Dulcedo Management](dulcedo.md) | 3 | 33 % | 67 % | 100 % | 2026-08-19 01:46 | ✅ | | |
| 56 | −| [Potloc](potloc.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 57 | −| [Spreedly](spreedly.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 02:14 | ✅ | | |
| 52 | +| [Distro](distro.md) | 5 | 100 % | 100 % | 100 % | 2026-08-19 03:55 | ✅ | | |
| 53 | +| [DiliTrust](dilitrust.md) | 3 | 0 % | 100 % | 100 % | 2026-08-19 03:55 | ✅ | | |
| 54 | +| [Dulcedo Management](dulcedo.md) | 3 | 33 % | 67 % | 100 % | 2026-08-19 03:55 | ✅ | | |
| 55 | +| [Mistplay](mistplay.md) | 3 | 33 % | 100 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 58 | 56 | | [Alimentiv](alimentiv_2.md) | 2 | 100 % | 50 % | 100 % | 2026-08-19 03:36 | ✅ | |
| 57 | +| [Potloc](potloc.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 04:16 | ✅ | | |
| 58 | +| [Spreedly](spreedly.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 04:18 | ✅ | | |
| 59 | 59 | |
| 60 | 60 | ## Licence / conformité |
| 61 | 61 | |
modified
docs/connecteurs/ats-njoyn.md
+10 −8
@@ -4,15 +4,15 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-njoyn.md |
| 7 | −Rôle : Fiche plateforme ATS njoyn — mécanique partagée + tableau des 5 tenants | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche plateforme ATS njoyn — mécanique partagée + tableau des 6 tenants | |
| 8 | +Généré : 2026-08-19 05:40 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 `njoyn` |
| 14 | 14 | |
| 15 | −**5 employeurs connectés** via cette plateforme — **117 offres actives**. Module partagé : `jobka/connectors/njoyn.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**6 employeurs connectés** via cette plateforme — **956 offres actives**. Module partagé : `jobka/connectors/njoyn.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -42,11 +42,12 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 42 | 42 | |
| 43 | 43 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 44 | 44 | |---|---|---|---|---|---|---| |
| 45 | −| [Santé Québec — Montréal](sante_montreal.md) | 50 | 100 % | 100 % | 2 % | 2026-08-19 02:13 | ✅ | | |
| 46 | −| [Réseau de transport de la Capitale](rtc_quebec.md) | 18 | 0 % | 0 % | 0 % | 2026-08-19 02:13 | ✅ | | |
| 47 | −| [Ville de Gatineau](ville_gatineau.md) | 17 | 94 % | 0 % | 0 % | 2026-08-19 02:20 | ✅ | | |
| 48 | −| [Ville de Terrebonne](ville_terrebonne.md) | 16 | 94 % | 0 % | 0 % | 2026-08-19 02:20 | ✅ | | |
| 49 | −| [Société de transport de Laval](stl_laval.md) | 16 | 31 % | 0 % | 0 % | 2026-08-19 02:14 | ✅ | | |
| 45 | +| [Santé Québec — Montréal](sante_montreal.md) | 762 | 97 % | 8 % | 1 % | 2026-08-19 05:30 | ✅ | | |
| 46 | +| [CGI](cgi.md) | 127 | 0 % | 0 % | 0 % | 2026-08-19 05:11 | ✅ | | |
| 47 | +| [Réseau de transport de la Capitale](rtc_quebec.md) | 18 | 0 % | 0 % | 0 % | 2026-08-19 04:17 | ✅ | | |
| 48 | +| [Ville de Gatineau](ville_gatineau.md) | 17 | 94 % | 0 % | 0 % | 2026-08-19 04:25 | ✅ | | |
| 49 | +| [Société de transport de Laval](stl_laval.md) | 16 | 31 % | 0 % | 0 % | 2026-08-19 04:18 | ✅ | | |
| 50 | +| [Ville de Terrebonne](ville_terrebonne.md) | 16 | 94 % | 0 % | 0 % | 2026-08-19 04:25 | ✅ | | |
| 50 | 51 | |
| 51 | 52 | ## Licence / conformité |
| 52 | 53 | |
@@ -66,5 +67,6 @@ Certains domaines de cette plateforme sont servis derrière un gestionnaire anti | ||
| 66 | 67 | |
| 67 | 68 | Commits touchant `jobka/connectors/njoyn.py` : |
| 68 | 69 | |
| 70 | +- `86b0d0b` 2026-08-19 Famille Workland réécrite sur l'API JSON publique du frontal Atlas (jobs-prod published-external + default-profiles) : descriptions complètes fr/en, lieux géocodés, dates, mode de travail — 2 requêtes par cycle pour TOUT le réseau. Nouveau connecteur réseau atlas_workland (~80 employeurs QC : CSS scolaires, cégeps, CIUSSS Ouest-de-l'Île, Santé Québec Côte-Nord, ICM, STQ, UQTR, INRS… ; 1 238 offres QC). Connecteur cssdm retiré (couvert par le réseau), fixture remplacée par atlas_workland (sous-ensemble rejouable). Corrige la limite « workland description 0 % ». | |
| 69 | 71 | - `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) |
| 70 | 72 | - `4917d57` 2026-08-18 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics et grands employeurs QC |
modified
docs/connecteurs/ats-recruitee.md
+7 −7
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-recruitee.md |
| 7 | 7 | Rôle : Fiche plateforme ATS recruitee — mécanique partagée + tableau des 11 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,14 +39,14 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 39 | 39 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 40 | 40 | |---|---|---|---|---|---|---| |
| 41 | 41 | | [ANCIA Personnel](anciapersonnelinc.md) | 59 | 10 % | 100 % | 100 % | 2026-08-19 03:36 | ✅ | |
| 42 | −| [Huawei Canada](huaweicanada.md) | 18 | 0 % | 100 % | 100 % | 2026-08-19 01:54 | ✅ | | |
| 43 | −| [LG2](lg2.md) | 14 | 7 % | 100 % | 100 % | 2026-08-19 02:02 | ✅ | | |
| 44 | −| [Framestore](framestore.md) | 9 | 0 % | 100 % | 100 % | 2026-08-19 01:47 | ✅ | | |
| 45 | −| [Petal](petalmd.md) | 7 | 14 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 42 | +| [Huawei Canada](huaweicanada.md) | 18 | 0 % | 100 % | 100 % | 2026-08-19 04:02 | ✅ | | |
| 43 | +| [LG2](lg2.md) | 14 | 7 % | 100 % | 100 % | 2026-08-19 04:10 | ✅ | | |
| 44 | +| [Framestore](framestore.md) | 9 | 0 % | 100 % | 100 % | 2026-08-19 03:56 | ✅ | | |
| 46 | 45 | | [AJ Walter Aviation](ajwalter.md) | 7 | 0 % | 100 % | 100 % | 2026-08-19 03:36 | ✅ | |
| 46 | +| [Petal](petalmd.md) | 7 | 14 % | 100 % | 100 % | 2026-08-19 04:16 | ✅ | | |
| 47 | 47 | | [Adèle Express](adeleexpressfr.md) | 5 | 60 % | 100 % | 100 % | 2026-08-19 03:31 | ✅ | |
| 48 | −| [Médialo](medialo.md) | 5 | 0 % | 80 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 49 | −| [Squeeze Studio Animation](squeezestudio.md) | 3 | 0 % | 67 % | 100 % | 2026-08-19 02:14 | ✅ | | |
| 48 | +| [Médialo](medialo.md) | 5 | 0 % | 80 % | 100 % | 2026-08-19 04:15 | ✅ | | |
| 49 | +| [Squeeze Studio Animation](squeezestudio.md) | 3 | 0 % | 67 % | 100 % | 2026-08-19 04:18 | ✅ | | |
| 50 | 50 | | [BIXI Montréal](biximontreal.md) | 2 | 50 % | 100 % | 100 % | 2026-08-19 03:39 | ✅ | |
| 51 | 51 | | [Amilia](amilia.md) | 1 | 0 % | 0 % | 100 % | 2026-08-19 03:36 | ✅ | |
| 52 | 52 | |
modified
docs/connecteurs/ats-smartrecruiters.md
+28 −28
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-smartrecruiters.md |
| 7 | 7 | Rôle : Fiche plateforme ATS smartrecruiters — mécanique partagée + tableau des 28 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -41,34 +41,34 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 41 | 41 | |
| 42 | 42 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 43 | 43 | |---|---|---|---|---|---|---| |
| 44 | −| [CIMA+](cima2.md) | 221 | 0 % | 100 % | 84 % | 2026-08-19 01:33 | ✅ | | |
| 45 | −| [Reitmans](reitmanscanadalteltd.md) | 138 | 22 % | 100 % | 29 % | 2026-08-19 02:11 | ✅ | | |
| 46 | −| [Ubisoft](ubisoft.md) | 123 | 0 % | 100 % | 2 % | 2026-08-19 02:20 | ✅ | | |
| 47 | −| [Vidéotron](videotron.md) | 80 | 14 % | 100 % | 40 % | 2026-08-19 02:20 | ✅ | | |
| 48 | −| [EMCO](emcocorporation.md) | 67 | 48 % | 100 % | 22 % | 2026-08-19 01:46 | ✅ | | |
| 49 | −| [Groupe Canam](groupecanam.md) | 65 | 66 % | 98 % | 26 % | 2026-08-19 01:48 | ✅ | | |
| 50 | −| [Techo-Bloc](techo_bloc.md) | 40 | 50 % | 100 % | 20 % | 2026-08-19 02:20 | ✅ | | |
| 51 | −| [QSL](qsl.md) | 37 | 38 % | 100 % | 0 % | 2026-08-19 02:11 | ✅ | | |
| 52 | −| [Transat A.T.](transatat1.md) | 36 | 6 % | 100 % | 56 % | 2026-08-19 02:20 | ✅ | | |
| 53 | −| [MEDFAR Solutions Cliniques](medfar.md) | 23 | 0 % | 100 % | 96 % | 2026-08-19 02:10 | ✅ | | |
| 54 | −| [Rodeo FX](rodeofx.md) | 20 | 0 % | 100 % | 10 % | 2026-08-19 02:12 | ✅ | | |
| 55 | −| [Vosker](vosker.md) | 19 | 0 % | 100 % | 89 % | 2026-08-19 02:20 | ✅ | | |
| 56 | −| [Gameloft](gameloft.md) | 14 | 0 % | 100 % | 71 % | 2026-08-19 01:47 | ✅ | | |
| 57 | −| [Talan](talan.md) | 13 | 0 % | 100 % | 85 % | 2026-08-19 02:15 | ✅ | | |
| 58 | −| [People Can Fly](peoplecanfly.md) | 10 | 0 % | 100 % | 100 % | 2026-08-19 02:10 | ✅ | | |
| 59 | −| [J'Excelle](jexcelleinc.md) | 9 | 0 % | 100 % | 11 % | 2026-08-19 01:56 | ✅ | | |
| 60 | −| [CF Montréal](cfmontreal.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 01:32 | ✅ | | |
| 61 | −| [Mattel (Mega Bloks)](mattelinc.md) | 6 | 0 % | 100 % | 17 % | 2026-08-19 02:04 | ✅ | | |
| 44 | +| [CIMA+](cima2.md) | 221 | 0 % | 100 % | 84 % | 2026-08-19 03:44 | ✅ | | |
| 45 | +| [Reitmans](reitmanscanadalteltd.md) | 138 | 22 % | 100 % | 29 % | 2026-08-19 04:16 | ✅ | | |
| 46 | +| [Ubisoft](ubisoft.md) | 123 | 0 % | 100 % | 2 % | 2026-08-19 04:24 | ✅ | | |
| 47 | +| [Vidéotron](videotron.md) | 80 | 14 % | 100 % | 40 % | 2026-08-19 04:25 | ✅ | | |
| 48 | +| [EMCO](emcocorporation.md) | 67 | 48 % | 100 % | 22 % | 2026-08-19 03:55 | ✅ | | |
| 49 | +| [Groupe Canam](groupecanam.md) | 65 | 66 % | 98 % | 26 % | 2026-08-19 03:56 | ✅ | | |
| 50 | +| [Techo-Bloc](techo_bloc.md) | 40 | 50 % | 100 % | 20 % | 2026-08-19 04:24 | ✅ | | |
| 51 | +| [QSL](qsl.md) | 37 | 38 % | 100 % | 0 % | 2026-08-19 04:16 | ✅ | | |
| 52 | +| [Transat A.T.](transatat1.md) | 36 | 6 % | 100 % | 56 % | 2026-08-19 04:24 | ✅ | | |
| 53 | +| [MEDFAR Solutions Cliniques](medfar.md) | 23 | 0 % | 100 % | 96 % | 2026-08-19 04:15 | ✅ | | |
| 54 | +| [Rodeo FX](rodeofx.md) | 20 | 0 % | 100 % | 10 % | 2026-08-19 04:17 | ✅ | | |
| 55 | +| [Vosker](vosker.md) | 19 | 0 % | 100 % | 89 % | 2026-08-19 04:25 | ✅ | | |
| 56 | +| [Gameloft](gameloft.md) | 14 | 0 % | 100 % | 71 % | 2026-08-19 03:56 | ✅ | | |
| 57 | +| [Talan](talan.md) | 13 | 0 % | 100 % | 85 % | 2026-08-19 04:19 | ✅ | | |
| 58 | +| [People Can Fly](peoplecanfly.md) | 10 | 0 % | 100 % | 100 % | 2026-08-19 04:16 | ✅ | | |
| 59 | +| [J'Excelle](jexcelleinc.md) | 9 | 0 % | 100 % | 11 % | 2026-08-19 04:04 | ✅ | | |
| 60 | +| [CF Montréal](cfmontreal.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 03:42 | ✅ | | |
| 61 | +| [Mattel (Mega Bloks)](mattelinc.md) | 6 | 0 % | 100 % | 17 % | 2026-08-19 04:11 | ✅ | | |
| 62 | 62 | | [Astucemedia](astucemedia.md) | 5 | 0 % | 100 % | 40 % | 2026-08-19 03:36 | ✅ | |
| 63 | −| [HoYoverse](hoyoverse.md) | 4 | 0 % | 100 % | 100 % | 2026-08-19 01:54 | ✅ | | |
| 64 | −| [ServiceNow](servicenow.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 02:14 | ✅ | | |
| 65 | −| [Venture Media](venturemedia.md) | 2 | 100 % | 100 % | 50 % | 2026-08-19 02:20 | ✅ | | |
| 66 | −| [Playmind](playmind.md) | 2 | 0 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 67 | −| [Sparkgrid](sparkgrid.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 02:14 | ✅ | | |
| 68 | −| [Xplornet](xplornet.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 02:30 | ✅ | | |
| 69 | −| [GoLogic](gologic.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 01:48 | ✅ | | |
| 70 | −| [Stelpro](stelpro.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 02:14 | ✅ | | |
| 71 | −| [Talsom](talsom.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 02:15 | ✅ | | |
| 63 | +| [HoYoverse](hoyoverse.md) | 4 | 0 % | 100 % | 100 % | 2026-08-19 04:02 | ✅ | | |
| 64 | +| [Playmind](playmind.md) | 2 | 0 % | 100 % | 0 % | 2026-08-19 04:16 | ✅ | | |
| 65 | +| [ServiceNow](servicenow.md) | 2 | 0 % | 100 % | 100 % | 2026-08-19 04:18 | ✅ | | |
| 66 | +| [Venture Media](venturemedia.md) | 2 | 100 % | 100 % | 50 % | 2026-08-19 04:25 | ✅ | | |
| 67 | +| [GoLogic](gologic.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 03:56 | ✅ | | |
| 68 | +| [Sparkgrid](sparkgrid.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 04:18 | ✅ | | |
| 69 | +| [Stelpro](stelpro.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 04:18 | ✅ | | |
| 70 | +| [Talsom](talsom.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 04:19 | ✅ | | |
| 71 | +| [Xplornet](xplornet.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 04:35 | ✅ | | |
| 72 | 72 | |
| 73 | 73 | ## Licence / conformité |
| 74 | 74 | |
modified
docs/connecteurs/ats-successfactors.md
+8 −6
@@ -4,15 +4,15 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-successfactors.md |
| 7 | −Rôle : Fiche plateforme ATS successfactors — mécanique partagée + tableau des 3 tenants | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche plateforme ATS successfactors — mécanique partagée + tableau des 5 tenants | |
| 8 | +Généré : 2026-08-19 05:40 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 `successfactors` |
| 14 | 14 | |
| 15 | −**3 employeurs connectés** via cette plateforme — **1053 offres actives**. Module partagé : `jobka/connectors/successfactors.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**5 employeurs connectés** via cette plateforme — **1224 offres actives**. Module partagé : `jobka/connectors/successfactors.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -38,9 +38,11 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 38 | 38 | |
| 39 | 39 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 40 | 40 | |---|---|---|---|---|---|---| |
| 41 | −| [Bombardier](bombardier.md) | 847 | 0 % | 100 % | 88 % | 2026-08-19 01:31 | ✅ | | |
| 42 | −| [Domtar](domtar.md) | 106 | 0 % | 99 % | 0 % | 2026-08-19 01:46 | ✅ | | |
| 43 | −| [Cascades](cascades.md) | 100 | 77 % | 100 % | 12 % | 2026-08-19 01:31 | ✅ | | |
| 41 | +| [Bombardier](bombardier.md) | 847 | 0 % | 100 % | 88 % | 2026-08-19 03:41 | ✅ | | |
| 42 | +| [Domtar](domtar.md) | 106 | 0 % | 99 % | 0 % | 2026-08-19 03:55 | ✅ | | |
| 43 | +| [Deloitte Canada](deloitte.md) | 105 | 96 % | 0 % | 98 % | 2026-08-19 04:48 | ✅ | | |
| 44 | +| [Cascades](cascades.md) | 100 | 77 % | 100 % | 12 % | 2026-08-19 03:42 | ✅ | | |
| 45 | +| [Hydro-Québec](hydroquebec.md) | 66 | 61 % | 0 % | 0 % | 2026-08-19 04:48 | ✅ | | |
| 44 | 46 | |
| 45 | 47 | ## Licence / conformité |
| 46 | 48 | |
modified
docs/connecteurs/ats-taleo.md
+2 −2
@@ -5,7 +5,7 @@ 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 4 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -45,7 +45,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 45 | 45 | |
| 46 | 46 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 47 | 47 | |---|---|---|---|---|---|---| |
| 48 | −| [CIUSSS de l'Est-de-l'Île-de-Montréal](ciusss_est_montreal.md) | 23 | 0 % | 100 % | 0 % | 2026-08-19 01:41 | ✅ | | |
| 48 | +| [CIUSSS de l'Est-de-l'Île-de-Montréal](ciusss_est_montreal.md) | 23 | 0 % | 100 % | 0 % | 2026-08-19 03:51 | ✅ | | |
| 49 | 49 | | [Agnico Eagle Mines](agnico_eagle.md) | 20 | 0 % | 100 % | 0 % | 2026-08-19 03:31 | ✅ | |
| 50 | 50 | | [Bell Textron Canada](bell_textron.md) | 15 | 0 % | 100 % | 0 % | 2026-08-19 03:38 | ✅ | |
| 51 | 51 | | [Bayshore HealthCare](bayshore.md) | 13 | 0 % | 100 % | 0 % | 2026-08-19 03:38 | ✅ | |
added
docs/connecteurs/ats-taleo_tbe.md
+72 −0
@@ -0,0 +1,72 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/ats-taleo_tbe.md | |
| 7 | +Rôle : Fiche plateforme ATS taleo_tbe — mécanique partagée + tableau des 6 tenants | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Plateforme ATS `taleo_tbe` | |
| 14 | + | |
| 15 | +**6 employeurs connectés** via cette plateforme — **143 offres actives**. Module partagé : `jobka/connectors/taleo_tbe.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | + | |
| 17 | +## Description & mécanique | |
| 18 | + | |
| 19 | +> Plateforme Oracle Taleo Business Edition (tbe.taleo.net). | |
| 20 | +> | |
| 21 | +> À ne pas confondre avec Taleo Enterprise (careersection, jobka.connectors.taleo) : | |
| 22 | +> TBE est l'édition PME/parapublic (Sépaq, exo, HEC, Kruger…). | |
| 23 | +> | |
| 24 | +> - liste : GET https://<HOST>.tbe.taleo.net/<INST>/ats/servlet/Rss | |
| 25 | +> ?org=<ORG>&cws=<CWS> | |
| 26 | +> -> RSS 2.0 : <item> title / link (requisition.jsp?…&rid=NNN) / | |
| 27 | +> description (texte résumé, sans lieu ni date) | |
| 28 | +> - détail : GET .../ats/careers/requisition.jsp?org=&cws=&rid= | |
| 29 | +> -> JSON-LD schema.org/JobPosting complet (description HTML, lieu, | |
| 30 | +> datePosted, validThrough, employmentType) — cache BD + budget. | |
| 31 | +> | |
| 32 | +> Le lieu n'apparaissant que dans le détail, le filtre Québec est appliqué | |
| 33 | +> après lecture du JSON-LD ; tant que le détail d'une offre n'a pas été visité | |
| 34 | +> (budget épuisé), l'offre d'un connecteur `quebec_only` est différée au cycle | |
| 35 | +> suivant plutôt que publiée sans lieu vérifié. | |
| 36 | + | |
| 37 | +## Accès | |
| 38 | + | |
| 39 | +- **Pagination** : flux unique (une requête liste) | |
| 40 | +- **Backend** : GET/POST direct `requests` (throttlé, User-Agent `JobKaBot/1.0` identifié) | |
| 41 | +- **Auth** : aucune — API/pages publiques du site carrières. | |
| 42 | +- **Throttle** : 1.0 s entre requêtes. | |
| 43 | +- **Budgets (env)** : `JOBKA_TBE_DETAIL_LIMIT` (défaut `60`) | |
| 44 | + | |
| 45 | +## Tenants connectés | |
| 46 | + | |
| 47 | +| Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | | |
| 48 | +|---|---|---|---|---|---|---| | |
| 49 | +| [Sépaq](sepaq.md) | 99 | 55 % | 0 % | 4 % | 2026-08-19 04:46 | ✅ | | |
| 50 | +| [exo (transport métropolitain)](exo.md) | 25 | 0 % | 0 % | 100 % | 2026-08-19 04:48 | ✅ | | |
| 51 | +| [HEC Montréal](hec_montreal.md) | 9 | 0 % | 0 % | 0 % | 2026-08-19 04:48 | ✅ | | |
| 52 | +| [HEC Montréal — corps professoral](hec_montreal_profs.md) | 9 | 0 % | 0 % | 0 % | 2026-08-19 04:48 | ✅ | | |
| 53 | +| [Produits Kruger](produits_kruger.md) | 1 | 0 % | 0 % | 0 % | 2026-08-19 04:48 | ✅ | | |
| 54 | +| [Kruger](kruger.md) | 0 | — | — | — | 2026-08-19 04:47 | ✅ | | |
| 55 | + | |
| 56 | +## Licence / conformité | |
| 57 | + | |
| 58 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez l'employeur » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 59 | + | |
| 60 | +## Historique | |
| 61 | + | |
| 62 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 63 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 64 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 65 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 66 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 67 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 68 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 69 | + | |
| 70 | +Commits touchant `jobka/connectors/taleo_tbe.py` : | |
| 71 | + | |
| 72 | +- `89f9713` 2026-08-19 Nouvelle famille ATS Taleo Business Edition (taleo_tbe) : flux RSS public + JSON-LD des pages requisition (lieu, dates, description complète), filtre Québec différé tant que le détail n'est pas visité. Connecteurs : Sépaq (99), Kruger (corporatif, filtre QC), Produits Kruger, exo (25), HEC Montréal personnel (9) + corps professoral (9). Fixture sepaq (121 requêtes rejouables). TÉLUQ écarté (tenant TBE fermé). | |
modified
docs/connecteurs/ats-ultipro.md
+7 −4
@@ -4,15 +4,15 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-ultipro.md |
| 7 | −Rôle : Fiche plateforme ATS ultipro — mécanique partagée + tableau des 1 tenants | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche plateforme ATS ultipro — mécanique partagée + tableau des 3 tenants | |
| 8 | +Généré : 2026-08-19 05:40 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 `ultipro` |
| 14 | 14 | |
| 15 | −**1 employeurs connectés** via cette plateforme — **22 offres actives**. Module partagé : `jobka/connectors/ultipro.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**3 employeurs connectés** via cette plateforme — **58 offres actives**. Module partagé : `jobka/connectors/ultipro.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -40,7 +40,9 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 40 | 40 | |
| 41 | 41 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 42 | 42 | |---|---|---|---|---|---|---| |
| 43 | −| [Messer Canada](messer_canada.md) | 22 | 91 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 43 | +| [Nortera](nortera.md) | 24 | 62 % | 0 % | 4 % | 2026-08-19 04:49 | ✅ | | |
| 44 | +| [Messer Canada](messer_canada.md) | 22 | 91 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 45 | +| [Fruit d'Or](fruitdor.md) | 12 | 0 % | 0 % | 0 % | 2026-08-19 04:48 | ✅ | | |
| 44 | 46 | |
| 45 | 47 | ## Licence / conformité |
| 46 | 48 | |
@@ -58,4 +60,5 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 58 | 60 | |
| 59 | 61 | Commits touchant `jobka/connectors/ultipro.py` : |
| 60 | 62 | |
| 63 | +- `86b0d0b` 2026-08-19 Famille Workland réécrite sur l'API JSON publique du frontal Atlas (jobs-prod published-external + default-profiles) : descriptions complètes fr/en, lieux géocodés, dates, mode de travail — 2 requêtes par cycle pour TOUT le réseau. Nouveau connecteur réseau atlas_workland (~80 employeurs QC : CSS scolaires, cégeps, CIUSSS Ouest-de-l'Île, Santé Québec Côte-Nord, ICM, STQ, UQTR, INRS… ; 1 238 offres QC). Connecteur cssdm retiré (couvert par le réseau), fixture remplacée par atlas_workland (sous-ensemble rejouable). Corrige la limite « workland description 0 % ». | |
| 61 | 64 | - `4917d57` 2026-08-18 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics et grands employeurs QC |
modified
docs/connecteurs/ats-workable.md
+18 −18
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-workable.md |
| 7 | 7 | Rôle : Fiche plateforme ATS workable — mécanique partagée + tableau des 19 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,25 +39,25 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 39 | 39 | |
| 40 | 40 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 41 | 41 | |---|---|---|---|---|---|---| |
| 42 | −| [TEHORA](tehora.md) | 346 | 0 % | 100 % | 32 % | 2026-08-19 02:20 | ✅ | | |
| 43 | −| [Genetec](genetec_inc.md) | 80 | 0 % | 100 % | 18 % | 2026-08-19 01:47 | ✅ | | |
| 44 | −| [SOGECLAIR](sogeclair.md) | 43 | 2 % | 100 % | 2 % | 2026-08-19 02:14 | ✅ | | |
| 45 | −| [Valsoft](valsoft_corp.md) | 37 | 11 % | 100 % | 16 % | 2026-08-19 02:20 | ✅ | | |
| 46 | −| [Side (PTW)](sideinc.md) | 33 | 0 % | 100 % | 21 % | 2026-08-19 02:14 | ✅ | | |
| 47 | −| [Tecsys](tecsys.md) | 27 | 0 % | 100 % | 93 % | 2026-08-19 02:20 | ✅ | | |
| 48 | −| [Evolving Web](evolving_web.md) | 14 | 0 % | 100 % | 14 % | 2026-08-19 01:46 | ✅ | | |
| 49 | −| [Lamour](lamour.md) | 11 | 0 % | 100 % | 0 % | 2026-08-19 02:02 | ✅ | | |
| 50 | −| [Eminent Valet](eminent_valet.md) | 9 | 100 % | 100 % | 0 % | 2026-08-19 01:46 | ✅ | | |
| 51 | −| [Botpress](botpress.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 01:31 | ✅ | | |
| 52 | −| [LIDD Consultants](lidd.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 02:02 | ✅ | | |
| 53 | −| [Nuovo Photography](nuovophotography.md) | 8 | 25 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 54 | −| [Mila — Institut québécois d'IA](mila_2.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 55 | −| [Sweat Pants Agency](sweat_pants_agency.md) | 6 | 50 % | 100 % | 100 % | 2026-08-19 02:15 | ✅ | | |
| 56 | −| [Flinks](flinks.md) | 3 | 100 % | 100 % | 100 % | 2026-08-19 01:47 | ✅ | | |
| 57 | −| [Unit8](unit8.md) | 3 | 0 % | 100 % | 67 % | 2026-08-19 02:20 | ✅ | | |
| 42 | +| [TEHORA](tehora.md) | 346 | 0 % | 100 % | 32 % | 2026-08-19 04:24 | ✅ | | |
| 43 | +| [Genetec](genetec_inc.md) | 80 | 0 % | 100 % | 18 % | 2026-08-19 03:56 | ✅ | | |
| 44 | +| [SOGECLAIR](sogeclair.md) | 43 | 2 % | 100 % | 2 % | 2026-08-19 04:18 | ✅ | | |
| 45 | +| [Valsoft](valsoft_corp.md) | 37 | 11 % | 100 % | 16 % | 2026-08-19 04:25 | ✅ | | |
| 46 | +| [Side (PTW)](sideinc.md) | 33 | 0 % | 100 % | 21 % | 2026-08-19 04:18 | ✅ | | |
| 47 | +| [Tecsys](tecsys.md) | 27 | 0 % | 100 % | 93 % | 2026-08-19 04:24 | ✅ | | |
| 48 | +| [Evolving Web](evolving_web.md) | 14 | 0 % | 100 % | 14 % | 2026-08-19 03:55 | ✅ | | |
| 49 | +| [Lamour](lamour.md) | 11 | 0 % | 100 % | 0 % | 2026-08-19 04:10 | ✅ | | |
| 50 | +| [Eminent Valet](eminent_valet.md) | 9 | 100 % | 100 % | 0 % | 2026-08-19 03:55 | ✅ | | |
| 51 | +| [Botpress](botpress.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 03:41 | ✅ | | |
| 52 | +| [LIDD Consultants](lidd.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 04:10 | ✅ | | |
| 53 | +| [Mila — Institut québécois d'IA](mila_2.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 54 | +| [Nuovo Photography](nuovophotography.md) | 8 | 25 % | 100 % | 0 % | 2026-08-19 04:15 | ✅ | | |
| 55 | +| [Sweat Pants Agency](sweat_pants_agency.md) | 6 | 50 % | 100 % | 100 % | 2026-08-19 04:19 | ✅ | | |
| 58 | 56 | | [Bardel Entertainment](bardel_entertainment.md) | 3 | 100 % | 100 % | 0 % | 2026-08-19 03:37 | ✅ | |
| 57 | +| [Flinks](flinks.md) | 3 | 100 % | 100 % | 100 % | 2026-08-19 03:56 | ✅ | | |
| 58 | +| [Unit8](unit8.md) | 3 | 0 % | 100 % | 67 % | 2026-08-19 04:24 | ✅ | | |
| 59 | 59 | | [Atecna](atecna_montreal.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 03:36 | ✅ | |
| 60 | −| [Charger Logistics](charger_logistics_inc.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 01:32 | ✅ | | |
| 60 | +| [Charger Logistics](charger_logistics_inc.md) | 1 | 0 % | 100 % | 0 % | 2026-08-19 03:42 | ✅ | | |
| 61 | 61 | |
| 62 | 62 | ## Licence / conformité |
| 63 | 63 | |
modified
docs/connecteurs/ats-workday.md
+36 −36
@@ -5,14 +5,14 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-workday.md |
| 7 | 7 | Rôle : Fiche plateforme ATS workday — mécanique partagée + tableau des 41 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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 `workday` |
| 14 | 14 | |
| 15 | −**41 employeurs connectés** via cette plateforme — **3571 offres actives**. Module partagé : `jobka/connectors/workday.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**41 employeurs connectés** via cette plateforme — **3570 offres actives**. Module partagé : `jobka/connectors/workday.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
@@ -44,47 +44,47 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 44 | 44 | |
| 45 | 45 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 46 | 46 | |---|---|---|---|---|---|---| |
| 47 | −| [Couche-Tard / Circle K](circlek.md) | 1012 | 61 % | 63 % | 0 % | 2026-08-19 01:40 | ✅ | | |
| 48 | −| [Walmart Canada](walmart.md) | 980 | 93 % | 91 % | 0 % | 2026-08-19 02:30 | ✅ | | |
| 49 | −| [Mouvement Desjardins](desjardins.md) | 241 | 2 % | 94 % | 21 % | 2026-08-19 01:46 | ✅ | | |
| 50 | −| [Université McGill](mcgill.md) | 193 | 70 % | 100 % | 0 % | 2026-08-19 02:09 | ✅ | | |
| 51 | −| [BMO Groupe financier](bmo.md) | 106 | 88 % | 79 % | 17 % | 2026-08-19 01:30 | ✅ | | |
| 47 | +| [Couche-Tard / Circle K](circlek.md) | 1012 | 61 % | 63 % | 0 % | 2026-08-19 03:51 | ✅ | | |
| 48 | +| [Walmart Canada](walmart.md) | 979 | 93 % | 91 % | 0 % | 2026-08-19 04:35 | ✅ | | |
| 49 | +| [Mouvement Desjardins](desjardins.md) | 241 | 2 % | 94 % | 21 % | 2026-08-19 03:55 | ✅ | | |
| 50 | +| [Université McGill](mcgill.md) | 193 | 70 % | 100 % | 0 % | 2026-08-19 04:14 | ✅ | | |
| 51 | +| [BMO Groupe financier](bmo.md) | 106 | 88 % | 79 % | 17 % | 2026-08-19 03:41 | ✅ | | |
| 52 | 52 | | [Agropur](agropur.md) | 75 | 93 % | 99 % | 0 % | 2026-08-19 03:32 | ✅ | |
| 53 | 53 | | [Airbus Canada](airbus.md) | 75 | 1 % | 100 % | 0 % | 2026-08-19 03:36 | ✅ | |
| 54 | −| [Groupe Banque TD](td.md) | 69 | 99 % | 100 % | 99 % | 2026-08-19 02:20 | ✅ | | |
| 55 | −| [Banque CIBC](cibc.md) | 65 | 0 % | 100 % | 3 % | 2026-08-19 01:33 | ✅ | | |
| 54 | +| [Groupe Banque TD](td.md) | 69 | 99 % | 100 % | 99 % | 2026-08-19 04:24 | ✅ | | |
| 56 | 55 | | [Autodesk](autodesk.md) | 65 | 91 % | 48 % | 20 % | 2026-08-19 03:37 | ✅ | |
| 57 | −| [CAE](cae.md) | 55 | 7 % | 93 % | 0 % | 2026-08-19 01:31 | ✅ | | |
| 58 | −| [Manuvie](manulife.md) | 51 | 90 % | 75 % | 29 % | 2026-08-19 02:04 | ✅ | | |
| 59 | −| [Cogeco](cogeco.md) | 50 | 18 % | 56 % | 4 % | 2026-08-19 01:42 | ✅ | | |
| 56 | +| [Banque CIBC](cibc.md) | 65 | 0 % | 100 % | 3 % | 2026-08-19 03:44 | ✅ | | |
| 57 | +| [CAE](cae.md) | 55 | 7 % | 93 % | 0 % | 2026-08-19 03:42 | ✅ | | |
| 58 | +| [Manuvie](manulife.md) | 51 | 90 % | 75 % | 29 % | 2026-08-19 04:11 | ✅ | | |
| 59 | +| [Cogeco](cogeco.md) | 50 | 18 % | 56 % | 4 % | 2026-08-19 03:52 | ✅ | | |
| 60 | 60 | | [Beneva](beneva.md) | 48 | 2 % | 100 % | 2 % | 2026-08-19 03:39 | ✅ | |
| 61 | −| [McKesson Canada](mckesson.md) | 43 | 84 % | 86 % | 93 % | 2026-08-19 02:10 | ✅ | | |
| 62 | −| [Investissements PSP](investpsp.md) | 43 | 5 % | 100 % | 0 % | 2026-08-19 01:56 | ✅ | | |
| 63 | −| [Promutuel Assurance](promutuel.md) | 37 | 0 % | 100 % | 16 % | 2026-08-19 02:11 | ✅ | | |
| 64 | −| [Service alimentaire Gordon](gfs.md) | 30 | 73 % | 100 % | 0 % | 2026-08-19 01:48 | ✅ | | |
| 61 | +| [Investissements PSP](investpsp.md) | 43 | 5 % | 100 % | 0 % | 2026-08-19 04:04 | ✅ | | |
| 62 | +| [McKesson Canada](mckesson.md) | 43 | 84 % | 86 % | 93 % | 2026-08-19 04:15 | ✅ | | |
| 63 | +| [Promutuel Assurance](promutuel.md) | 37 | 0 % | 100 % | 16 % | 2026-08-19 04:16 | ✅ | | |
| 64 | +| [Service alimentaire Gordon](gfs.md) | 30 | 73 % | 100 % | 0 % | 2026-08-19 03:56 | ✅ | | |
| 65 | 65 | | [Altasciences](altasciences.md) | 29 | 0 % | 100 % | 97 % | 2026-08-19 03:36 | ✅ | |
| 66 | −| [CDPQ — Caisse de dépôt et placement du Québec](cdpq.md) | 28 | 0 % | 100 % | 0 % | 2026-08-19 01:32 | ✅ | | |
| 67 | −| [EXFO](exfo.md) | 27 | 0 % | 100 % | 56 % | 2026-08-19 01:47 | ✅ | | |
| 68 | −| [Scotts Canada (Fafard)](scottsmiraclegro.md) | 27 | 4 % | 100 % | 0 % | 2026-08-19 02:14 | ✅ | | |
| 69 | −| [Saputo](saputo.md) | 24 | 79 % | 100 % | 0 % | 2026-08-19 02:13 | ❌ | | |
| 70 | −| [Intact Corporation financière](intactfc.md) | 23 | 0 % | 100 % | 0 % | 2026-08-19 01:55 | ✅ | | |
| 71 | −| [Rio Tinto](riotinto.md) | 23 | 0 % | 100 % | 4 % | 2026-08-19 02:12 | ✅ | | |
| 72 | −| [CAA-Québec](caaquebec.md) | 19 | 21 % | 100 % | 0 % | 2026-08-19 01:31 | ✅ | | |
| 73 | −| [iA Groupe financier](ia_groupe.md) | 17 | 100 % | 100 % | 6 % | 2026-08-19 01:55 | ✅ | | |
| 66 | +| [CDPQ — Caisse de dépôt et placement du Québec](cdpq.md) | 28 | 0 % | 100 % | 0 % | 2026-08-19 03:42 | ✅ | | |
| 67 | +| [EXFO](exfo.md) | 27 | 0 % | 100 % | 56 % | 2026-08-19 03:56 | ✅ | | |
| 68 | +| [Scotts Canada (Fafard)](scottsmiraclegro.md) | 27 | 4 % | 100 % | 0 % | 2026-08-19 04:18 | ✅ | | |
| 69 | +| [Saputo](saputo.md) | 24 | 75 % | 100 % | 100 % | 2026-08-19 04:18 | ✅ | | |
| 70 | +| [Intact Corporation financière](intactfc.md) | 23 | 0 % | 100 % | 0 % | 2026-08-19 04:03 | ✅ | | |
| 71 | +| [Rio Tinto](riotinto.md) | 23 | 0 % | 100 % | 4 % | 2026-08-19 04:17 | ✅ | | |
| 72 | +| [CAA-Québec](caaquebec.md) | 19 | 21 % | 100 % | 0 % | 2026-08-19 03:41 | ✅ | | |
| 73 | +| [iA Groupe financier](ia_groupe.md) | 17 | 100 % | 100 % | 6 % | 2026-08-19 04:03 | ✅ | | |
| 74 | 74 | | [BDC](bdc.md) | 16 | 0 % | 100 % | 0 % | 2026-08-19 03:38 | ✅ | |
| 75 | 75 | | [Alcoa Canada](alcoa.md) | 15 | 13 % | 40 % | 0 % | 2026-08-19 03:36 | ✅ | |
| 76 | −| [GSK](gsk.md) | 12 | 0 % | 83 % | 0 % | 2026-08-19 01:48 | ✅ | | |
| 77 | −| [Investissement Québec](investquebec.md) | 12 | 8 % | 100 % | 0 % | 2026-08-19 01:56 | ✅ | | |
| 78 | −| [Fonds de solidarité FTQ](fondsftq.md) | 10 | 0 % | 100 % | 100 % | 2026-08-19 01:47 | ✅ | | |
| 79 | −| [Canadian Tire](canadiantirecorporation.md) | 9 | 56 % | 100 % | 0 % | 2026-08-19 01:31 | ✅ | | |
| 80 | −| [JG Rive-Sud (GFS)](jgrivesud.md) | 9 | 67 % | 100 % | 0 % | 2026-08-19 01:57 | ✅ | | |
| 81 | −| [Sun Life](sunlife.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 02:15 | ✅ | | |
| 82 | −| [Church & Dwight Canada](churchdwight.md) | 6 | 0 % | 100 % | 0 % | 2026-08-19 01:32 | ✅ | | |
| 83 | −| [Raymond Chabot Grant Thornton](rcgt.md) | 5 | 0 % | 100 % | 20 % | 2026-08-19 02:11 | ✅ | | |
| 84 | −| [Pfizer Canada](pfizer.md) | 4 | 100 % | 0 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 85 | −| [Plusgrade](plusgrade.md) | 4 | 0 % | 100 % | 0 % | 2026-08-19 02:10 | ✅ | | |
| 86 | −| [Suncor Énergie](suncor.md) | 3 | 0 % | 100 % | 0 % | 2026-08-19 02:14 | ✅ | | |
| 87 | −| [Brasseries Sleeman (Unibroue)](sleeman.md) | 3 | 33 % | 100 % | 0 % | 2026-08-19 02:14 | ✅ | | |
| 76 | +| [GSK](gsk.md) | 12 | 0 % | 83 % | 0 % | 2026-08-19 03:56 | ✅ | | |
| 77 | +| [Investissement Québec](investquebec.md) | 12 | 8 % | 100 % | 0 % | 2026-08-19 04:04 | ✅ | | |
| 78 | +| [Fonds de solidarité FTQ](fondsftq.md) | 10 | 0 % | 100 % | 100 % | 2026-08-19 03:56 | ✅ | | |
| 79 | +| [Canadian Tire](canadiantirecorporation.md) | 9 | 56 % | 100 % | 0 % | 2026-08-19 03:42 | ✅ | | |
| 80 | +| [JG Rive-Sud (GFS)](jgrivesud.md) | 9 | 67 % | 100 % | 0 % | 2026-08-19 04:04 | ✅ | | |
| 81 | +| [Sun Life](sunlife.md) | 8 | 0 % | 100 % | 0 % | 2026-08-19 04:19 | ✅ | | |
| 82 | +| [Church & Dwight Canada](churchdwight.md) | 6 | 0 % | 100 % | 0 % | 2026-08-19 03:42 | ✅ | | |
| 83 | +| [Raymond Chabot Grant Thornton](rcgt.md) | 5 | 0 % | 100 % | 20 % | 2026-08-19 04:16 | ✅ | | |
| 84 | +| [Pfizer Canada](pfizer.md) | 4 | 100 % | 0 % | 0 % | 2026-08-19 04:16 | ✅ | | |
| 85 | +| [Plusgrade](plusgrade.md) | 4 | 0 % | 100 % | 0 % | 2026-08-19 04:16 | ✅ | | |
| 86 | +| [Brasseries Sleeman (Unibroue)](sleeman.md) | 3 | 33 % | 100 % | 0 % | 2026-08-19 04:18 | ✅ | | |
| 87 | +| [Suncor Énergie](suncor.md) | 3 | 0 % | 100 % | 0 % | 2026-08-19 04:19 | ✅ | | |
| 88 | 88 | |
| 89 | 89 | ## Licence / conformité |
| 90 | 90 | |
modified
docs/connecteurs/ats-workland.md
+25 −9
@@ -5,28 +5,43 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ats-workland.md |
| 7 | 7 | Rôle : Fiche plateforme ATS workland — mécanique partagée + tableau des 1 tenants |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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 `workland` |
| 14 | 14 | |
| 15 | −**1 employeurs connectés** via cette plateforme — **23 offres actives**. Module partagé : `jobka/connectors/workland.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 15 | +**1 employeurs connectés** via cette plateforme — **1238 offres actives**. Module partagé : `jobka/connectors/workland.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | 16 | |
| 17 | 17 | ## Description & mécanique |
| 18 | 18 | |
| 19 | 19 | > Plateforme Workland (atlas.workland.com). |
| 20 | 20 | > |
| 21 | −> Les pages atlas.workland.com sont une SPA Angular sans données côté serveur | |
| 22 | −> (le bloc JSON-LD reste vide même après rendu) : on s'appuie donc sur la page | |
| 23 | −> carrières de l'employeur (LIST_URL), rendue côté serveur, qui liste les liens | |
| 24 | −> https://atlas.workland.com/work/<id>/<slug> — typiquement dans un tableau | |
| 25 | −> « titre | date limite | lien » (ex. CSSDM). Le titre et la date limite | |
| 26 | −> proviennent de la ligne du tableau ; à défaut, du slug. | |
| 21 | +> Réécriture 2026-08-19 : l'ancienne version grattait les pages carrières des | |
| 22 | +> employeurs (liens atlas rendus serveur) et n'avait AUCUNE description (la SPA | |
| 23 | +> Atlas n'expose rien côté serveur). L'API publique du frontal fait tout en | |
| 24 | +> deux requêtes : | |
| 25 | +> | |
| 26 | +> - offres : POST https://jobs-prod.workland.com/api/v1/job/published-external | |
| 27 | +> body {"load_with": ["locations"], "account_ids": [...]?} | |
| 28 | +> -> liste complète (traductions fr/en avec description HTML | |
| 29 | +> entière, lieux géocodés avec ville/région/lat-lng, dates de | |
| 30 | +> publication et d'expiration, mode de travail) ; | |
| 31 | +> - noms : POST https://user-accounts-prod.workland.com/api/v1/accounts/ | |
| 32 | +> default-profiles body {"account_ids": [...]} | |
| 33 | +> -> nom et slug d'employeur par compte. | |
| 34 | +> | |
| 35 | +> Sans filtre `account_ids`, l'API renvoie tout le réseau Atlas (~1 600 offres, | |
| 36 | +> dont ~1 240 au Québec : CSS scolaires, cégeps, CIUSSS/CISSS, STQ, UQTR…) — | |
| 37 | +> c'est ce que fait le connecteur réseau `atlas_workland`. Une sous-classe | |
| 38 | +> peut cibler un employeur précis via ACCOUNT_IDS ou SLUG. | |
| 27 | 39 | |
| 28 | 40 | ## Accès |
| 29 | 41 | |
| 42 | +- **Endpoint** (`_JOBS_API`) : `https://jobs-prod.workland.com/api/v1/job/published-external` | |
| 43 | +- **Endpoint** (`_PROFILES_API`) : `https://user-accounts-prod.workland.com/api/v1/accounts/default-profiles` | |
| 44 | +- **Endpoint** (`_BY_SLUG_API`) : `https://user-accounts-prod.workland.com/api/v1/accounts/profiles/by-slug/{slug}` | |
| 30 | 45 | - **Pagination** : flux unique (une requête liste) |
| 31 | 46 | - **Backend** : GET/POST direct `requests` (throttlé, User-Agent `JobKaBot/1.0` identifié) |
| 32 | 47 | - **Auth** : aucune — API/pages publiques du site carrières. |
@@ -36,7 +51,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 51 | |
| 37 | 52 | | Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | |
| 38 | 53 | |---|---|---|---|---|---|---| |
| 39 | −| [Centre de services scolaire de Montréal](cssdm.md) | 23 | 0 % | 100 % | 0 % | 2026-08-19 01:42 | ✅ | | |
| 54 | +| [Réseau Atlas Workland (~80 employeurs QC : CSS, cégeps, Santé Québec, STQ, UQTR…)](atlas_workland.md) | 1238 | 36 % | 100 % | 82 % | 2026-08-19 04:45 | ✅ | | |
| 40 | 55 | |
| 41 | 56 | ## Licence / conformité |
| 42 | 57 | |
@@ -54,4 +69,5 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 54 | 69 | |
| 55 | 70 | Commits touchant `jobka/connectors/workland.py` : |
| 56 | 71 | |
| 72 | +- `86b0d0b` 2026-08-19 Famille Workland réécrite sur l'API JSON publique du frontal Atlas (jobs-prod published-external + default-profiles) : descriptions complètes fr/en, lieux géocodés, dates, mode de travail — 2 requêtes par cycle pour TOUT le réseau. Nouveau connecteur réseau atlas_workland (~80 employeurs QC : CSS scolaires, cégeps, CIUSSS Ouest-de-l'Île, Santé Québec Côte-Nord, ICM, STQ, UQTR, INRS… ; 1 238 offres QC). Connecteur cssdm retiré (couvert par le réseau), fixture remplacée par atlas_workland (sous-ensemble rejouable). Corrige la limite « workland description 0 % ». | |
| 57 | 73 | - `4917d57` 2026-08-18 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics et grands employeurs QC |
added
docs/connecteurs/ats-wpjobmanager.md
+66 −0
@@ -0,0 +1,66 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/ats-wpjobmanager.md | |
| 7 | +Rôle : Fiche plateforme ATS wpjobmanager — mécanique partagée + tableau des 8 tenants | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Plateforme ATS `wpjobmanager` | |
| 14 | + | |
| 15 | +**8 employeurs connectés** via cette plateforme — **842 offres actives**. Module partagé : `jobka/connectors/wpjobmanager.py` ; un employeur = une sous-classe d'environ 10 lignes. | |
| 16 | + | |
| 17 | +## Description & mécanique | |
| 18 | + | |
| 19 | +> Plateforme WordPress / WP Job Manager. | |
| 20 | +> | |
| 21 | +> - liste : GET <BASE>/?feed=job_feed&posts_per_page=500 | |
| 22 | +> -> RSS : <item> title / link (/poste/<slug>/) / pubDate / | |
| 23 | +> guid (?post_type=job_listing&p=<id>) / content:encoded (HTML | |
| 24 | +> complet de l'offre) — tout en une requête. | |
| 25 | +> - détail : la page /poste/<slug>/ embarque un JSON-LD schema.org/JobPosting | |
| 26 | +> (validThrough, jobLocation, employmentType) — cache BD + budget, | |
| 27 | +> uniquement pour compléter lieu et date limite. | |
| 28 | + | |
| 29 | +## Accès | |
| 30 | + | |
| 31 | +- **Pagination** : flux unique (une requête liste) | |
| 32 | +- **Backend** : GET/POST direct `requests` (throttlé, User-Agent `JobKaBot/1.0` identifié) | |
| 33 | +- **Auth** : aucune — API/pages publiques du site carrières. | |
| 34 | +- **Throttle** : 1.0 s entre requêtes. | |
| 35 | +- **Budgets (env)** : `JOBKA_WPJM_DETAIL_LIMIT` (défaut `60`) | |
| 36 | + | |
| 37 | +## Tenants connectés | |
| 38 | + | |
| 39 | +| Employeur | Actives | Salaire | GPS | Mode | Dernier sync | OK | | |
| 40 | +|---|---|---|---|---|---|---| | |
| 41 | +| [CISSS de Laval](cisss_laval.md) | 149 | 1 % | 0 % | 0 % | 2026-08-19 05:05 | ✅ | | |
| 42 | +| [CISSS de l'Abitibi-Témiscamingue](cisss_abitibi.md) | 141 | 0 % | 0 % | 0 % | 2026-08-19 04:55 | ✅ | | |
| 43 | +| [CISSS des Laurentides](cisss_laurentides.md) | 130 | 12 % | 0 % | 1 % | 2026-08-19 05:39 | ✅ | | |
| 44 | +| [CISSS de Lanaudière](cisss_lanaudiere.md) | 124 | 4 % | 0 % | 0 % | 2026-08-19 05:35 | ✅ | | |
| 45 | +| [CISSS de Chaudière-Appalaches](cisss_chaudiere_appalaches.md) | 112 | 8 % | 0 % | 0 % | 2026-08-19 04:59 | ✅ | | |
| 46 | +| [CISSS de l'Outaouais](cisss_outaouais.md) | 101 | 31 % | 0 % | 0 % | 2026-08-19 05:09 | ✅ | | |
| 47 | +| [CHU de Québec — Université Laval](chu_quebec.md) | 60 | 10 % | 0 % | 0 % | 2026-08-19 04:51 | ✅ | | |
| 48 | +| [CHUM](chum.md) | 25 | 0 % | 0 % | 0 % | 2026-08-19 04:52 | ✅ | | |
| 49 | + | |
| 50 | +## Licence / conformité | |
| 51 | + | |
| 52 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez l'employeur » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 53 | + | |
| 54 | +## Historique | |
| 55 | + | |
| 56 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 57 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 58 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 59 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 60 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 61 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 62 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 63 | + | |
| 64 | +Commits touchant `jobka/connectors/wpjobmanager.py` : | |
| 65 | + | |
| 66 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
modified
docs/connecteurs/autodesk.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/autodesk.md |
| 7 | 7 | Rôle : Fiche connecteur — Autodesk (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **65 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **65 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,7 +79,7 @@ Exemple réel : *AI Builder, Principal Product Manager* — ∅ · For Canada ba | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 68 (dont **65 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 59/65 actives (91 %) |
modified
docs/connecteurs/aviyatech.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/aviyatech.md |
| 7 | 7 | Rôle : Fiche connecteur — Aviya Aerospace Systems (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Computer Engineer-Talent Pool Longueuil* — Québec · ∅ · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/5 actives (0 %) |
modified
docs/connecteurs/bardel_entertainment.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bardel_entertainment.md |
| 7 | 7 | Rôle : Fiche connecteur — Bardel Entertainment (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Artiste d’éclairage/ Lighting Artist (Featurette)* — Montr | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 3/3 actives (100 %) |
modified
docs/connecteurs/bayshore.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bayshore.md |
| 7 | 7 | Rôle : Fiche connecteur — Bayshore HealthCare (employeur direct, ATS taleo) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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-08-19 03:39 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 **13 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 42 | +Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | 43 | |
| 44 | 44 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 45 | 45 | |---|---|---| |
@@ -80,7 +80,7 @@ Exemple réel : *Gestionnaire de programme - Program Manager* — Montréal · | ||
| 80 | 80 | |
| 81 | 81 | ## Volumétrie & complétude live |
| 82 | 82 | |
| 83 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 83 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 84 | 84 | |
| 85 | 85 | - **Offres en base** : 13 (dont **13 actives**, 0 masquées comme doublons `dup_of`) |
| 86 | 86 | - **Salaire** : 0/13 actives (0 %) |
modified
docs/connecteurs/bc2.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bc2.md |
| 7 | 7 | Rôle : Fiche connecteur — Groupe BC2 (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,7 +77,7 @@ Exemple réel : *DIRECTEUR(TRICE) DE PROJET \| URBANISME, DÉVELOPPEMENT IMMOBIL | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/2 actives (0 %) |
modified
docs/connecteurs/bdc.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bdc.md |
| 7 | 7 | Rôle : Fiche connecteur — BDC (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **16 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **16 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,7 +79,7 @@ Exemple réel : *SPECIALIST, FINANCIAL REPORTING* — Montréal · ∅ · parue | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 18 (dont **16 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/16 actives (0 %) |
modified
docs/connecteurs/bell_textron.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bell_textron.md |
| 7 | 7 | Rôle : Fiche connecteur — Bell Textron Canada (employeur direct, ATS taleo) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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-08-19 03:39 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 **15 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 42 | +Complétude mesurée sur les **15 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | 43 | |
| 44 | 44 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 45 | 45 | |---|---|---| |
@@ -80,7 +80,7 @@ Exemple réel : *Analyste en conformité commerce internationale /Trade Complian | ||
| 80 | 80 | |
| 81 | 81 | ## Volumétrie & complétude live |
| 82 | 82 | |
| 83 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 83 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 84 | 84 | |
| 85 | 85 | - **Offres en base** : 15 (dont **15 actives**, 0 masquées comme doublons `dup_of`) |
| 86 | 86 | - **Salaire** : 0/15 actives (0 %) |
modified
docs/connecteurs/beneva.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/beneva.md |
| 7 | 7 | Rôle : Fiche connecteur — Beneva (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **48 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **48 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,7 +79,7 @@ Exemple réel : *Agent service à la clientèle* — Québec · Salaire débutan | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 49 (dont **48 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 1/48 actives (2 %) |
added
docs/connecteurs/bento_sushi.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/bento_sushi.md | |
| 7 | +Rôle : Fiche connecteur — Bento Sushi (employeur direct, ATS adp) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Bento Sushi (`bento_sushi`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`adp`](ats-adp.md) · Statut registre : actif · Connecteur : `jobka/connectors/bento_sushi.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Bento Sushi](https://www.bentosushi.com) | |
| 20 | +- **Page carrières** : https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=d0dfb14c-f365-4599-b39b-0fdccb3d1160&ccId=19000101_000001&lang=fr_CA | |
| 21 | +- **Secteurs** : Restauration | |
| 22 | +- **Région** : Québec (province) | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-adp.md`](ats-adp.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `CCID` | `19000101_000001` | | |
| 33 | +| `CID` | `d0dfb14c-f365-4599-b39b-0fdccb3d1160` | | |
| 34 | +| `EMPLOYER` | `Bento Sushi` | | |
| 35 | +| `LANG` | `fr_CA` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 52 | +| `postal_code` — Code postal | code postal si publié | 100 % | | |
| 53 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 54 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 100 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 89 % | | |
| 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) | 0 % | | |
| 59 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 60 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 61 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 11 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Membres de l'équipe de service alimentaire* — Québec · ∅ · parue le 2026-08-14. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_ADP_DETAIL_LIMIT` | `80` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 8/9 actives (89 %) | |
| 86 | +- **GPS** : 0/9 actives (0 %) | |
| 87 | +- **Mode** : 0/9 actives (0 %) | |
| 88 | +- **Parution** : 9/9 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:49 — trouvées 9, +9, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync bento_sushi` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='bento_sushi' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Bento Sushi » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/bento_sushi.py` : | |
| 114 | + | |
| 115 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/bhvr.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bhvr.md |
| 7 | 7 | Rôle : Fiche connecteur — Behaviour Interactif (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **39 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **39 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Release Manager - Dead By Daylight \| Responsable du Déploieme | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 39 (dont **39 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/39 actives (0 %) |
modified
docs/connecteurs/bigbang.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bigbang.md |
| 7 | 7 | Rôle : Fiche connecteur — Big Bang (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,7 +77,7 @@ Exemple réel : *Client Solutions Manager* — Montréal · CAD 38.46 per hour | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 2/8 actives (25 %) |
modified
docs/connecteurs/biximontreal.md
+3 −3
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/biximontreal.md |
| 7 | 7 | Rôle : Fiche connecteur — BIXI Montréal (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,7 +72,7 @@ Exemple réel : *Technicien(ne) – Service réseau* — Montréal · • Un sal | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/2 actives (50 %) |
modified
docs/connecteurs/bmo.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bmo.md |
| 7 | 7 | Rôle : Fiche connecteur — BMO Groupe financier (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **106 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **106 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **106 offres actives** de la source (base live, 202 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 79 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Director, Equipment Finance* — Montréal · $69,000.00 - $129,000.00 · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Director, Equipment Finance* — Montréal · $69,000.00 - $129,000.00 · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Director, Equipment Finance* — Montréal · $69,000.00 - $129 | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 108 (dont **106 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 93/106 actives (88 %) |
| 86 | 86 | - **GPS** : 84/106 actives (79 %) |
| 87 | 87 | - **Mode** : 18/106 actives (17 %) |
| 88 | 88 | - **Parution** : 106/106 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:30 — trouvées 106, +0, ~0, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:41 — trouvées 106, +0, ~96, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 27 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/bombardier.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/bombardier.md |
| 7 | 7 | Rôle : Fiche connecteur — Bombardier (employeur direct, ATS successfactors) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **847 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **847 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Analyst Sr, Quality Assurance Product Safety Management* — Do | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 853 (dont **847 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/847 actives (0 %) |
| 84 | 84 | - **GPS** : 847/847 actives (100 %) |
| 85 | 85 | - **Mode** : 742/847 actives (88 %) |
| 86 | 86 | - **Parution** : 847/847 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 847, +0, ~172, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:41 — trouvées 847, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 15 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/botpress.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/botpress.md |
| 7 | 7 | Rôle : Fiche connecteur — Botpress (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Développeur(euse) croissance - GTM* — Québec · ∅ · paru | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/8 actives (0 %) |
| 79 | 79 | - **GPS** : 8/8 actives (100 %) |
| 80 | 80 | - **Mode** : 0/8 actives (0 %) |
| 81 | 81 | - **Parution** : 8/8 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 10, +0, ~4, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 26 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:41 — trouvées 10, +0, ~4, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 27 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/brandmomentum.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/brandmomentum.md |
| 7 | 7 | Rôle : Fiche connecteur — Brand Momentum (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **30 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **30 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Représentant(e) des ventes – Roadshow* — Laval · $22+ / h | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 30 (dont **30 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 21/30 actives (70 %) |
| 79 | 79 | - **GPS** : 30/30 actives (100 %) |
| 80 | 80 | - **Mode** : 0/30 actives (0 %) |
| 81 | 81 | - **Parution** : 30/30 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 30, +0, ~0, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 27 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:41 — trouvées 30, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 28 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/broadsign.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/broadsign.md |
| 7 | 7 | Rôle : Fiche connecteur — Broadsign (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Sales Director, Platform Sales - North America* — Montréal | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 4 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/4 actives (0 %) |
| 79 | 79 | - **GPS** : 4/4 actives (100 %) |
| 80 | 80 | - **Mode** : 4/4 actives (100 %) |
| 81 | 81 | - **Parution** : 4/4 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 4, +0, ~0, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 26 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:41 — trouvées 4, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 27 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/broccolini.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/broccolini.md |
| 7 | 7 | Rôle : Fiche connecteur — Broccolini (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Concepteur(trice) en architecture \| Architectural Designer* | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 23 (dont **23 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/23 actives (0 %) |
| 84 | 84 | - **GPS** : 23/23 actives (100 %) |
| 85 | 85 | - **Mode** : 23/23 actives (100 %) |
| 86 | 86 | - **Parution** : 23/23 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 23, +0, ~0, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:41 — trouvées 23, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 15 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/caaquebec.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/caaquebec.md |
| 7 | 7 | Rôle : Fiche connecteur — CAA-Québec (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **19 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **19 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **19 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Représentant(e) en assurance voyage (Certifié(e) AMF)* — Montréal · Salaire à partir de 24.96$/heure · parue le 2026-08-14. | |
| 67 | +Exemple réel : *Représentant(e) en assurance voyage (Certifié(e) AMF)* — Montréal · Salaire à partir de 24.96$/heure · parue le 2026-08-13. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Représentant(e) en assurance voyage (Certifié(e) AMF)* — Mo | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 19 (dont **19 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 4/19 actives (21 %) |
| 86 | 86 | - **GPS** : 19/19 actives (100 %) |
| 87 | 87 | - **Mode** : 0/19 actives (0 %) |
| 88 | 88 | - **Parution** : 19/19 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 19, +0, ~0, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:41 — trouvées 19, +0, ~8, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 15 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/cae.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cae.md |
| 7 | 7 | Rôle : Fiche connecteur — CAE (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **55 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **55 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **55 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 93 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Director, Business Development, D&S Canada* — ∅ · $184,600 - $234,600 · parue le 2026-08-14. | |
| 67 | +Exemple réel : *Director, Business Development, D&S Canada* — ∅ · $184,600 - $234,600 · parue le 2026-08-13. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Director, Business Development, D&S Canada* — ∅ · $184,600 | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 56 (dont **55 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 4/55 actives (7 %) |
| 86 | 86 | - **GPS** : 51/55 actives (93 %) |
| 87 | 87 | - **Mode** : 0/55 actives (0 %) |
| 88 | 88 | - **Parution** : 55/55 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 55, +0, ~0, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 29 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 55, +0, ~27, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 30 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/canada_global.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/canada_global.md |
| 7 | 7 | Rôle : Fiche connecteur — Canada Global Recruitment (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *General labor* — Montreal - QC · ∅ · parue le 2026-06-27. | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/1 actives (0 %) |
| 79 | 79 | - **GPS** : 0/1 actives (0 %) |
| 80 | 80 | - **Mode** : 0/1 actives (0 %) |
| 81 | 81 | - **Parution** : 1/1 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 1, +0, ~0, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 26 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 1, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 27 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/canadiantirecorporation.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/canadiantirecorporation.md |
| 7 | 7 | Rôle : Fiche connecteur — Canadian Tire (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **9 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Assistant Manager* — Lévis · Our typical hiring range is between $34,800 and $43,500. Salary decisions are also depende… · parue le 2026-07-28. | |
| 67 | +Exemple réel : *Assistant Manager* — Lévis · Our typical hiring range is between $34,800 and $43,500. Salary decisions are also depende… · parue le 2026-07-27. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Assistant Manager* — Lévis · Our typical hiring range is be | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 5/9 actives (56 %) |
| 86 | 86 | - **GPS** : 9/9 actives (100 %) |
| 87 | 87 | - **Mode** : 0/9 actives (0 %) |
| 88 | 88 | - **Parution** : 9/9 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 9, +0, ~0, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 9, +0, ~3, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 15 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/capreit.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/capreit.md |
| 7 | 7 | Rôle : Fiche connecteur — CAPREIT (employeur direct, ATS icims) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **10 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **10 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Operations Manager 1* — Montréal · ∅ · parue le 2026-07- | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 10 (dont **10 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/10 actives (0 %) |
| 84 | 84 | - **GPS** : 10/10 actives (100 %) |
| 85 | 85 | - **Mode** : 0/10 actives (0 %) |
| 86 | 86 | - **Parution** : 10/10 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 10, +0, ~10, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 10, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/cascades.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cascades.md |
| 7 | 7 | Rôle : Fiche connecteur — Cascades (employeur direct, ATS successfactors) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **100 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **100 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Électrotechnicien de nuit* — Granby · Salaire horaire de 43 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 101 (dont **100 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 77/100 actives (77 %) |
| 84 | 84 | - **GPS** : 100/100 actives (100 %) |
| 85 | 85 | - **Mode** : 12/100 actives (12 %) |
| 86 | 86 | - **Parution** : 0/100 actives (0 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:31 — trouvées 100, +0, ~100, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 100, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 15 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/cdpq.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cdpq.md |
| 7 | 7 | Rôle : Fiche connecteur — CDPQ — Caisse de dépôt et placement du Québec (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **28 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **28 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **28 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Analyste, Divulgation financière – Comptabilité** — Montréal · ∅ · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Analyste, Divulgation financière – Comptabilité** — Montréal · ∅ · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Analyste, Divulgation financière – Comptabilité** — Montr | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 28 (dont **28 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/28 actives (0 %) |
| 86 | 86 | - **GPS** : 28/28 actives (100 %) |
| 87 | 87 | - **Mode** : 0/28 actives (0 %) |
| 88 | 88 | - **Parution** : 28/28 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:32 — trouvées 28, +0, ~28, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 28, +0, ~20, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/cfmontreal.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cfmontreal.md |
| 7 | 7 | Rôle : Fiche connecteur — CF Montréal (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Chef(e) de projets et production marketing - TEMPORAIRE / Marke | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/8 actives (0 %) |
| 84 | 84 | - **GPS** : 8/8 actives (100 %) |
| 85 | 85 | - **Mode** : 0/8 actives (0 %) |
| 86 | 86 | - **Parution** : 8/8 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:32 — trouvées 8, +0, ~8, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 8, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
added
docs/connecteurs/cgi.md
+119 −0
@@ -0,0 +1,119 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cgi.md | |
| 7 | +Rôle : Fiche connecteur — CGI (employeur direct, ATS njoyn) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CGI (`cgi`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`njoyn`](ats-njoyn.md) · Statut registre : actif · Connecteur : `jobka/connectors/cgi.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CGI](https://www.cgi.com) | |
| 20 | +- **Page carrières** : https://cgi.njoyn.com/CORP/xweb/xweb.asp?clid=21001&page=joblisting&lang=2 | |
| 21 | +- **Secteurs** : TI, Services-conseils | |
| 22 | +- **Région** : Montréal, Québec | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-njoyn.md`](ats-njoyn.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://cgi.njoyn.com` | | |
| 33 | +| `CL` | `CORP` | | |
| 34 | +| `CLID` | `21001` | | |
| 35 | +| `EMPLOYER` | `CGI` | | |
| 36 | +| `LANG` | `2` | | |
| 37 | +| `USE_SCRAPFLY` | `True` | | |
| 38 | +- **Throttle** : 1.2 s entre requêtes. | |
| 39 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 40 | + | |
| 41 | +## Champs → schéma | |
| 42 | + | |
| 43 | +Complétude mesurée sur les **127 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 44 | + | |
| 45 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 46 | +|---|---|---| | |
| 47 | +| `title` — Titre | titre du poste | 100 % | | |
| 48 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 49 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 50 | +| `description` — Description | texte complet (HTML nettoyé) | 9 % | | |
| 51 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 52 | +| `region` — Région | région administrative | 100 % | | |
| 53 | +| `address` — Adresse | adresse du lieu de travail | 0 % | | |
| 54 | +| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 55 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 56 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 8 % | | |
| 57 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 0 % | | |
| 58 | +| `salary_label` — Libellé salaire | texte salarial original | 0 % | | |
| 59 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 60 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 61 | +| `date_posted` — Date de parution | ISO 8601 | 0 % | | |
| 62 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 63 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 66 % | | |
| 64 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 0 % | | |
| 65 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 66 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 67 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 68 | + | |
| 69 | +Exemple réel : *Conseiller en architecture de solution Infrastructure Cloud AWS* — Québec · ∅ · parue le ∅. | |
| 70 | + | |
| 71 | +## Fréquence & budgets | |
| 72 | + | |
| 73 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 74 | +- **Throttle** : 1.2 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 75 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 76 | + | |
| 77 | +| Variable | Défaut | | |
| 78 | +|---|---| | |
| 79 | +| `JOBKA_NJOYN_DETAIL_LIMIT` | `40` | | |
| 80 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 81 | + | |
| 82 | +## Volumétrie & complétude live | |
| 83 | + | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 85 | + | |
| 86 | +- **Offres en base** : 127 (dont **127 actives**, 0 masquées comme doublons `dup_of`) | |
| 87 | +- **Salaire** : 0/127 actives (0 %) | |
| 88 | +- **GPS** : 0/127 actives (0 %) | |
| 89 | +- **Mode** : 0/127 actives (0 %) | |
| 90 | +- **Parution** : 0/127 actives (0 %) | |
| 91 | +- **Dernier sync** : 2026-08-19 05:11 — trouvées 127, +127, ~0, -0 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 93 | + | |
| 94 | +## Erreurs & dépannage | |
| 95 | + | |
| 96 | +Aucune erreur dans `sync_log` pour cette source. | |
| 97 | + | |
| 98 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cgi` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cgi' ORDER BY ts DESC LIMIT 5;"` | |
| 99 | +- 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`. | |
| 100 | + | |
| 101 | +## Licence / conformité | |
| 102 | + | |
| 103 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CGI » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 104 | + | |
| 105 | +Certains domaines de cette plateforme sont servis derrière un gestionnaire anti-bot : la lecture passe alors par Scrapfly, toujours sur des pages strictement publiques, au même rythme throttlé. | |
| 106 | + | |
| 107 | +## Historique | |
| 108 | + | |
| 109 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 110 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 111 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 112 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 113 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 114 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 115 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 116 | + | |
| 117 | +Commits touchant `jobka/connectors/cgi.py` : | |
| 118 | + | |
| 119 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/charger_logistics_inc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/charger_logistics_inc.md |
| 7 | 7 | Rôle : Fiche connecteur — Charger Logistics (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Security Guard (Trucking Yard)* — Québec · ∅ · parue le | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/1 actives (0 %) |
| 79 | 79 | - **GPS** : 1/1 actives (100 %) |
| 80 | 80 | - **Mode** : 0/1 actives (0 %) |
| 81 | 81 | - **Parution** : 1/1 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:32 — trouvées 1, +0, ~1, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 1, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
added
docs/connecteurs/chu_quebec.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/chu_quebec.md | |
| 7 | +Rôle : Fiche connecteur — CHU de Québec — Université Laval (employeur direct, ATS wpjobmanager) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CHU de Québec — Université Laval (`chu_quebec`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`wpjobmanager`](ats-wpjobmanager.md) · Statut registre : actif · Connecteur : `jobka/connectors/chu_quebec.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CHU de Québec — Université Laval](https://www.chudequebec.ca) | |
| 20 | +- **Page carrières** : https://chudequebec.carrieresante.gouv.qc.ca | |
| 21 | +- **Secteurs** : Santé, Secteur public | |
| 22 | +- **Région** : Québec | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-wpjobmanager.md`](ats-wpjobmanager.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://chudequebec.carrieresante.gouv.qc.ca` | | |
| 33 | +| `DEFAULT_CITY` | `Québec` | | |
| 34 | +| `EMPLOYER` | `CHU de Québec — Université Laval` | | |
| 35 | +| `PER_PAGE` | `500` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **60 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 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 / … | 57 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 10 % | | |
| 56 | +| `salary_label` — Libellé salaire | texte salarial original | 10 % | | |
| 57 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 2 % | | |
| 58 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 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é, …) | 85 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Conseiller.ère cadre – Partenaire d’affaires – Concours 2026-49* — Québec · Selon les normes applicables au personnel d’encadrement du réseau de la santé et des servi… · parue le 2026-08-19. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_WPJM_DETAIL_LIMIT` | `60` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 60 (dont **60 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 6/60 actives (10 %) | |
| 86 | +- **GPS** : 0/60 actives (0 %) | |
| 87 | +- **Mode** : 0/60 actives (0 %) | |
| 88 | +- **Parution** : 60/60 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:51 — trouvées 60, +60, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync chu_quebec` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='chu_quebec' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CHU de Québec — Université Laval » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/chu_quebec.py` : | |
| 114 | + | |
| 115 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
added
docs/connecteurs/chum.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/chum.md | |
| 7 | +Rôle : Fiche connecteur — CHUM (employeur direct, ATS wpjobmanager) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CHUM (`chum`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`wpjobmanager`](ats-wpjobmanager.md) · Statut registre : actif · Connecteur : `jobka/connectors/chum.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CHUM](https://www.chumontreal.qc.ca) | |
| 20 | +- **Page carrières** : https://chum.carrieresante.gouv.qc.ca | |
| 21 | +- **Secteurs** : Santé, Secteur public | |
| 22 | +- **Région** : Montréal | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-wpjobmanager.md`](ats-wpjobmanager.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://chum.carrieresante.gouv.qc.ca` | | |
| 33 | +| `DEFAULT_CITY` | `Montréal` | | |
| 34 | +| `EMPLOYER` | `CHUM` | | |
| 35 | +| `PER_PAGE` | `500` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **25 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 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 / … | 12 % | | |
| 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) | 4 % | | |
| 58 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 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é, …) | 96 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Chef de service – Chef de service Systèmes d’information et gestion de projets* — Montréal · ∅ · parue le 2026-08-17. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_WPJM_DETAIL_LIMIT` | `60` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 25 (dont **25 actives**, 24 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 0/25 actives (0 %) | |
| 86 | +- **GPS** : 0/25 actives (0 %) | |
| 87 | +- **Mode** : 0/25 actives (0 %) | |
| 88 | +- **Parution** : 25/25 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:52 — trouvées 25, +25, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync chum` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='chum' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CHUM » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/chum.py` : | |
| 114 | + | |
| 115 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
modified
docs/connecteurs/churchdwight.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/churchdwight.md |
| 7 | 7 | Rôle : Fiche connecteur — Church & Dwight Canada (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **6 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Electromécanicien(ne)* — Montréal · ∅ · parue le 2026-08-13. | |
| 67 | +Exemple réel : *Electromécanicien(ne)* — Montréal · ∅ · parue le 2026-08-12. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Electromécanicien(ne)* — Montréal · ∅ · parue le 2026-0 | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/6 actives (0 %) |
| 86 | 86 | - **GPS** : 6/6 actives (100 %) |
| 87 | 87 | - **Mode** : 0/6 actives (0 %) |
| 88 | 88 | - **Parution** : 6/6 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:32 — trouvées 6, +0, ~6, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:42 — trouvées 6, +0, ~2, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/cibc.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cibc.md |
| 7 | 7 | Rôle : Fiche connecteur — Banque CIBC (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **65 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **65 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **65 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Relationship Manager, Commercial Banking-Bilingual* — Rouyn-Noranda · ∅ · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Relationship Manager, Commercial Banking-Bilingual* — Rouyn-Noranda · ∅ · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Relationship Manager, Commercial Banking-Bilingual* — Rouyn-N | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 69 (dont **65 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/65 actives (0 %) |
| 86 | 86 | - **GPS** : 65/65 actives (100 %) |
| 87 | 87 | - **Mode** : 2/65 actives (3 %) |
| 88 | 88 | - **Parution** : 65/65 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:33 — trouvées 65, +0, ~65, -2 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:44 — trouvées 65, +0, ~61, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/cima2.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cima2.md |
| 7 | 7 | Rôle : Fiche connecteur — CIMA+ (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **221 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **221 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Technicienne ou technicien, inspection de structures de téléc | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 231 (dont **221 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/221 actives (0 %) |
| 84 | 84 | - **GPS** : 221/221 actives (100 %) |
| 85 | 85 | - **Mode** : 185/221 actives (84 %) |
| 86 | 86 | - **Parution** : 221/221 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:33 — trouvées 221, +0, ~221, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:44 — trouvées 221, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/circlek.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/circlek.md |
| 7 | 7 | Rôle : Fiche connecteur — Couche-Tard / Circle K (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **1012 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **1012 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **1012 offres actives** de la source (base live, 20 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 30 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 63 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Préposé(e) au service à la clientèle de nuit -ACT* — Québec · Salaire (nuit) : 20,10$ /h (Incluant prime*) · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Assistant-Gérant* — Sherbrooke · Salaire de jour : $17.75 (prime incluse**) · parue le 2026-08-19. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Préposé(e) au service à la clientèle de nuit -ACT* — Qué | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 1039 (dont **1012 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 616/1012 actives (61 %) |
| 86 | 86 | - **GPS** : 642/1012 actives (63 %) |
| 87 | 87 | - **Mode** : 2/1012 actives (0 %) |
| 88 | 88 | - **Parution** : 1012/1012 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:40 — trouvées 1012, +1, ~1011, -2 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:51 — trouvées 1012, +0, ~432, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/cirquedusoleil.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cirquedusoleil.md |
| 7 | 7 | Rôle : Fiche connecteur — Cirque du Soleil (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **22 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **22 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Vice-président(e), Marketing – Spectacles internationaux et | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 22 (dont **22 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/22 actives (0 %) |
| 79 | 79 | - **GPS** : 19/22 actives (86 %) |
| 80 | 80 | - **Mode** : 22/22 actives (100 %) |
| 81 | 81 | - **Parution** : 22/22 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:41 — trouvées 22, +0, ~22, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:51 — trouvées 22, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
added
docs/connecteurs/cisss_abitibi.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cisss_abitibi.md | |
| 7 | +Rôle : Fiche connecteur — CISSS de l'Abitibi-Témiscamingue (employeur direct, ATS wpjobmanager) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CISSS de l'Abitibi-Témiscamingue (`cisss_abitibi`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`wpjobmanager`](ats-wpjobmanager.md) · Statut registre : actif · Connecteur : `jobka/connectors/cisss_abitibi.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CISSS de l'Abitibi-Témiscamingue](https://www.cisss-at.gouv.qc.ca) | |
| 20 | +- **Page carrières** : https://cisssat.carrieresante.gouv.qc.ca | |
| 21 | +- **Secteurs** : Santé, Secteur public | |
| 22 | +- **Région** : Abitibi-Témiscamingue | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-wpjobmanager.md`](ats-wpjobmanager.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://cisssat.carrieresante.gouv.qc.ca` | | |
| 33 | +| `DEFAULT_CITY` | `Rouyn-Noranda` | | |
| 34 | +| `EMPLOYER` | `CISSS de l'Abitibi-Témiscamingue` | | |
| 35 | +| `PER_PAGE` | `500` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **141 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 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 / … | 23 % | | |
| 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) | 0 % | | |
| 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é, …) | 92 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Chef de service de l’unité multiclientèle et continuum mère-enfant MRC Témiscamingue* — Rouyn-Noranda · ∅ · parue le 2026-08-18. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_WPJM_DETAIL_LIMIT` | `60` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 141 (dont **141 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 0/141 actives (0 %) | |
| 86 | +- **GPS** : 0/141 actives (0 %) | |
| 87 | +- **Mode** : 0/141 actives (0 %) | |
| 88 | +- **Parution** : 141/141 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:55 — trouvées 141, +141, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cisss_abitibi` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cisss_abitibi' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CISSS de l'Abitibi-Témiscamingue » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/cisss_abitibi.py` : | |
| 114 | + | |
| 115 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
added
docs/connecteurs/cisss_chaudiere_appalaches.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cisss_chaudiere_appalaches.md | |
| 7 | +Rôle : Fiche connecteur — CISSS de Chaudière-Appalaches (employeur direct, ATS wpjobmanager) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CISSS de Chaudière-Appalaches (`cisss_chaudiere_appalaches`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`wpjobmanager`](ats-wpjobmanager.md) · Statut registre : actif · Connecteur : `jobka/connectors/cisss_chaudiere_appalaches.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CISSS de Chaudière-Appalaches](https://www.cisssca.com) | |
| 20 | +- **Page carrières** : https://cisssca.carrieresante.gouv.qc.ca | |
| 21 | +- **Secteurs** : Santé, Secteur public | |
| 22 | +- **Région** : Chaudière-Appalaches | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-wpjobmanager.md`](ats-wpjobmanager.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://cisssca.carrieresante.gouv.qc.ca` | | |
| 33 | +| `DEFAULT_CITY` | `Lévis` | | |
| 34 | +| `EMPLOYER` | `CISSS de Chaudière-Appalaches` | | |
| 35 | +| `PER_PAGE` | `500` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **112 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 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 / … | 38 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 8 % | | |
| 56 | +| `salary_label` — Libellé salaire | texte salarial original | 8 % | | |
| 57 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 2 % | | |
| 58 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Directeur médical Optilab et Chef du département clinique de médecine de laboratoire* — Lévis · Classe G (275 102$ annuel) · parue le 2026-08-12. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_WPJM_DETAIL_LIMIT` | `60` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 112 (dont **112 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 9/112 actives (8 %) | |
| 86 | +- **GPS** : 0/112 actives (0 %) | |
| 87 | +- **Mode** : 0/112 actives (0 %) | |
| 88 | +- **Parution** : 112/112 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:59 — trouvées 112, +112, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cisss_chaudiere_appalaches` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cisss_chaudiere_appalaches' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CISSS de Chaudière-Appalaches » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/cisss_chaudiere_appalaches.py` : | |
| 114 | + | |
| 115 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
added
docs/connecteurs/cisss_lanaudiere.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cisss_lanaudiere.md | |
| 7 | +Rôle : Fiche connecteur — CISSS de Lanaudière (employeur direct, ATS wpjobmanager) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CISSS de Lanaudière (`cisss_lanaudiere`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`wpjobmanager`](ats-wpjobmanager.md) · Statut registre : actif · Connecteur : `jobka/connectors/cisss_lanaudiere.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CISSS de Lanaudière](https://www.cisss-lanaudiere.gouv.qc.ca) | |
| 20 | +- **Page carrières** : https://lanaudiere.carrieresante.gouv.qc.ca | |
| 21 | +- **Secteurs** : Santé, Secteur public | |
| 22 | +- **Région** : Lanaudière | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-wpjobmanager.md`](ats-wpjobmanager.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://lanaudiere.carrieresante.gouv.qc.ca` | | |
| 33 | +| `DEFAULT_CITY` | `Joliette` | | |
| 34 | +| `EMPLOYER` | `CISSS de Lanaudière` | | |
| 35 | +| `PER_PAGE` | `500` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **124 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 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 / … | 55 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 4 % | | |
| 56 | +| `salary_label` — Libellé salaire | texte salarial original | 4 % | | |
| 57 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 58 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 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é, …) | 73 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *CHEF DE L’ADMINISTRATION DES PROGRAMMES MILIEUX FAVORABLES À LA SANTÉ ET DÉVELOPPEMENT DES…* — Joliette · Minimum de la classe : 96 770 $ annuel · parue le 2026-08-17. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_WPJM_DETAIL_LIMIT` | `60` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 124 (dont **124 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 5/124 actives (4 %) | |
| 86 | +- **GPS** : 0/124 actives (0 %) | |
| 87 | +- **Mode** : 0/124 actives (0 %) | |
| 88 | +- **Parution** : 124/124 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 05:35 — trouvées 124, +124, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cisss_lanaudiere` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cisss_lanaudiere' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CISSS de Lanaudière » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/cisss_lanaudiere.py` : | |
| 114 | + | |
| 115 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
added
docs/connecteurs/cisss_laurentides.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cisss_laurentides.md | |
| 7 | +Rôle : Fiche connecteur — CISSS des Laurentides (employeur direct, ATS wpjobmanager) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CISSS des Laurentides (`cisss_laurentides`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`wpjobmanager`](ats-wpjobmanager.md) · Statut registre : actif · Connecteur : `jobka/connectors/cisss_laurentides.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CISSS des Laurentides](https://www.santelaurentides.gouv.qc.ca) | |
| 20 | +- **Page carrières** : https://laurentides.carrieresante.gouv.qc.ca | |
| 21 | +- **Secteurs** : Santé, Secteur public | |
| 22 | +- **Région** : Laurentides | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-wpjobmanager.md`](ats-wpjobmanager.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://laurentides.carrieresante.gouv.qc.ca` | | |
| 33 | +| `DEFAULT_CITY` | `Saint-Jérôme` | | |
| 34 | +| `EMPLOYER` | `CISSS des Laurentides` | | |
| 35 | +| `PER_PAGE` | `500` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **130 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 52 | +| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 53 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 1 % | | |
| 54 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 23 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 12 % | | |
| 56 | +| `salary_label` — Libellé salaire | texte salarial original | 12 % | | |
| 57 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 58 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 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é, …) | 70 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Bourse psychothérapie volet professionnel* — Saint-Jérôme · 30 000$ (formation prescrite de 900 heures et moins · parue le 2026-08-18. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_WPJM_DETAIL_LIMIT` | `60` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 130 (dont **130 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 15/130 actives (12 %) | |
| 86 | +- **GPS** : 0/130 actives (0 %) | |
| 87 | +- **Mode** : 1/130 actives (1 %) | |
| 88 | +- **Parution** : 130/130 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 05:39 — trouvées 130, +130, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cisss_laurentides` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cisss_laurentides' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CISSS des Laurentides » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/cisss_laurentides.py` : | |
| 114 | + | |
| 115 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
added
docs/connecteurs/cisss_laval.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cisss_laval.md | |
| 7 | +Rôle : Fiche connecteur — CISSS de Laval (employeur direct, ATS wpjobmanager) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CISSS de Laval (`cisss_laval`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`wpjobmanager`](ats-wpjobmanager.md) · Statut registre : actif · Connecteur : `jobka/connectors/cisss_laval.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CISSS de Laval](https://www.lavalensante.com) | |
| 20 | +- **Page carrières** : https://cissslaval.carrieresante.gouv.qc.ca | |
| 21 | +- **Secteurs** : Santé, Secteur public | |
| 22 | +- **Région** : Laval | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-wpjobmanager.md`](ats-wpjobmanager.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://cissslaval.carrieresante.gouv.qc.ca` | | |
| 33 | +| `DEFAULT_CITY` | `Laval` | | |
| 34 | +| `EMPLOYER` | `CISSS de Laval` | | |
| 35 | +| `PER_PAGE` | `500` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **149 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 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 / … | 10 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 1 % | | |
| 56 | +| `salary_label` — Libellé salaire | texte salarial original | 1 % | | |
| 57 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 46 % | | |
| 58 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 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é, …) | 89 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *CHEF DE SERVICE DE LA PERMANENCE \| DPDI-TSA-DP \| REQ26-5489* — Laval · 91 837$ à 119 388$ · parue le 2026-08-14. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_WPJM_DETAIL_LIMIT` | `60` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 149 (dont **149 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 1/149 actives (1 %) | |
| 86 | +- **GPS** : 0/149 actives (0 %) | |
| 87 | +- **Mode** : 0/149 actives (0 %) | |
| 88 | +- **Parution** : 149/149 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 05:05 — trouvées 149, +149, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cisss_laval` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cisss_laval' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CISSS de Laval » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/cisss_laval.py` : | |
| 114 | + | |
| 115 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
added
docs/connecteurs/cisss_outaouais.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cisss_outaouais.md | |
| 7 | +Rôle : Fiche connecteur — CISSS de l'Outaouais (employeur direct, ATS wpjobmanager) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CISSS de l'Outaouais (`cisss_outaouais`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`wpjobmanager`](ats-wpjobmanager.md) · Statut registre : actif · Connecteur : `jobka/connectors/cisss_outaouais.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CISSS de l'Outaouais](https://cisss-outaouais.gouv.qc.ca) | |
| 20 | +- **Page carrières** : https://viensvivretespassions.ca | |
| 21 | +- **Secteurs** : Santé, Secteur public | |
| 22 | +- **Région** : Outaouais | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-wpjobmanager.md`](ats-wpjobmanager.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://viensvivretespassions.ca` | | |
| 33 | +| `DEFAULT_CITY` | `Gatineau` | | |
| 34 | +| `EMPLOYER` | `CISSS de l'Outaouais` | | |
| 35 | +| `PER_PAGE` | `500` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **101 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 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 / … | 8 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 31 % | | |
| 56 | +| `salary_label` — Libellé salaire | texte salarial original | 31 % | | |
| 57 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 58 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 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é, …) | 84 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *INTÉRIM – Chef de service du bénévolat et de la satisfaction à la clientèle (DTPQ)* — Gatineau · Minimum : 91 837 $ · parue le 2026-08-12. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_WPJM_DETAIL_LIMIT` | `60` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 101 (dont **101 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 31/101 actives (31 %) | |
| 86 | +- **GPS** : 0/101 actives (0 %) | |
| 87 | +- **Mode** : 0/101 actives (0 %) | |
| 88 | +- **Parution** : 101/101 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 05:09 — trouvées 101, +101, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cisss_outaouais` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cisss_outaouais' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CISSS de l'Outaouais » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/cisss_outaouais.py` : | |
| 114 | + | |
| 115 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
modified
docs/connecteurs/ciusss_est_montreal.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ciusss_est_montreal.md |
| 7 | 7 | Rôle : Fiche connecteur — CIUSSS de l'Est-de-l'Île-de-Montréal (employeur direct, ATS taleo) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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-08-19 03:39 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 **23 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 42 | +Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | 43 | |
| 44 | 44 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 45 | 45 | |---|---|---| |
@@ -80,15 +80,15 @@ Exemple réel : *Chef de service - aide à domicile - secteur Pointe-Aux-Tremble | ||
| 80 | 80 | |
| 81 | 81 | ## Volumétrie & complétude live |
| 82 | 82 | |
| 83 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 83 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 84 | 84 | |
| 85 | −- **Offres en base** : 23 (dont **23 actives**, 1 masquées comme doublons `dup_of`) | |
| 85 | +- **Offres en base** : 23 (dont **23 actives**, 14 masquées comme doublons `dup_of`) | |
| 86 | 86 | - **Salaire** : 0/23 actives (0 %) |
| 87 | 87 | - **GPS** : 23/23 actives (100 %) |
| 88 | 88 | - **Mode** : 0/23 actives (0 %) |
| 89 | 89 | - **Parution** : 23/23 actives (100 %) |
| 90 | −- **Dernier sync** : 2026-08-19 01:41 — trouvées 23, +0, ~23, -0 | |
| 91 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 90 | +- **Dernier sync** : 2026-08-19 03:51 — trouvées 23, +0, ~0, -0 | |
| 91 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 92 | 92 | |
| 93 | 93 | ## Erreurs & dépannage |
| 94 | 94 | |
modified
docs/connecteurs/cogeco.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cogeco.md |
| 7 | 7 | Rôle : Fiche connecteur — Cogeco (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **50 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **50 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **50 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 56 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Technician, Customer and Network Facing* — Grasonville · For candidates whose primary place of work will be in Maryland, the expected salary range … · parue le 2026-08-13. | |
| 67 | +Exemple réel : *Technician, Customer and Network Facing* — Grasonville · For candidates whose primary place of work will be in Maryland, the expected salary range … · parue le 2026-08-12. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Technician, Customer and Network Facing* — Grasonville · For | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 50 (dont **50 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 9/50 actives (18 %) |
| 86 | 86 | - **GPS** : 28/50 actives (56 %) |
| 87 | 87 | - **Mode** : 2/50 actives (4 %) |
| 88 | 88 | - **Parution** : 50/50 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:42 — trouvées 50, +0, ~50, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:52 — trouvées 50, +0, ~25, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/cohere.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cohere.md |
| 7 | 7 | Rôle : Fiche connecteur — Cohere (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **46 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **46 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Member of Technical Staff, Multilingual* — ∅ · - For candi | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 46 (dont **46 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 8/46 actives (17 %) |
| 79 | 79 | - **GPS** : 17/46 actives (37 %) |
| 80 | 80 | - **Mode** : 46/46 actives (100 %) |
| 81 | 81 | - **Parution** : 46/46 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:42 — trouvées 46, +0, ~0, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 26 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:52 — trouvées 46, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 27 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/cordonbleu.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/cordonbleu.md |
| 7 | 7 | Rôle : Fiche connecteur — Aliments Ouimet-Cordon Bleu inc. (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Électromécanicien Licence C - Jusqu'à 45$/hr* — Montréal | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 1/2 actives (50 %) |
| 84 | 84 | - **GPS** : 2/2 actives (100 %) |
| 85 | 85 | - **Mode** : 2/2 actives (100 %) |
| 86 | 86 | - **Parution** : 2/2 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:42 — trouvées 2, +0, ~2, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:52 — trouvées 2, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
added
docs/connecteurs/cssdd.md
+114 −0
@@ -0,0 +1,114 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cssdd.md | |
| 7 | +Rôle : Fiche connecteur — CSS des Découvreurs (employeur direct, ATS digitalrecruiters) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# CSS des Découvreurs (`cssdd`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`digitalrecruiters`](ats-digitalrecruiters.md) · Statut registre : actif · Connecteur : `jobka/connectors/cssdd.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [CSS des Découvreurs](https://www.cssdd.gouv.qc.ca) | |
| 20 | +- **Page carrières** : https://emplois.cssdd.gouv.qc.ca | |
| 21 | +- **Secteurs** : Éducation, Secteur public | |
| 22 | +- **Région** : Québec | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-digitalrecruiters.md`](ats-digitalrecruiters.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://emplois.cssdd.gouv.qc.ca` | | |
| 33 | +| `EMPLOYER` | `Centre de services scolaire des Découvreurs` | | |
| 34 | +| `LOCALE` | `fr_CA` | | |
| 35 | +- **Throttle** : 0.8 s entre requêtes. | |
| 36 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 37 | + | |
| 38 | +## Champs → schéma | |
| 39 | + | |
| 40 | +Complétude mesurée sur les **27 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 41 | + | |
| 42 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 43 | +|---|---|---| | |
| 44 | +| `title` — Titre | titre du poste | 100 % | | |
| 45 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 46 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 47 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 48 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 49 | +| `region` — Région | région administrative | 100 % | | |
| 50 | +| `address` — Adresse | adresse du lieu de travail | 100 % | | |
| 51 | +| `postal_code` — Code postal | code postal si publié | 100 % | | |
| 52 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 53 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 78 % | | |
| 54 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 78 % | | |
| 55 | +| `salary_label` — Libellé salaire | texte salarial original | 7 % | | |
| 56 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 15 % | | |
| 57 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 58 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 59 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 60 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 89 % | | |
| 61 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 62 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 100 % | | |
| 63 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 64 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 65 | + | |
| 66 | +Exemple réel : *Technicien(ne) en bâtiment - Mécanique du bâtiment spécialisé en contrôles* — Québec · Salaire de 27,91 $ à 38,91 $ de l’heure · parue le 2026-06-11. | |
| 67 | + | |
| 68 | +## Fréquence & budgets | |
| 69 | + | |
| 70 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 71 | +- **Throttle** : 0.8 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 72 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 73 | + | |
| 74 | +| Variable | Défaut | | |
| 75 | +|---|---| | |
| 76 | +| `JOBKA_DR_DETAIL_LIMIT` | `120` | | |
| 77 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 78 | + | |
| 79 | +## Volumétrie & complétude live | |
| 80 | + | |
| 81 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 82 | + | |
| 83 | +- **Offres en base** : 27 (dont **27 actives**, 0 masquées comme doublons `dup_of`) | |
| 84 | +- **Salaire** : 21/27 actives (78 %) | |
| 85 | +- **GPS** : 0/27 actives (0 %) | |
| 86 | +- **Mode** : 0/27 actives (0 %) | |
| 87 | +- **Parution** : 27/27 actives (100 %) | |
| 88 | +- **Dernier sync** : 2026-08-19 05:09 — trouvées 27, +27, ~0, -0 | |
| 89 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 90 | + | |
| 91 | +## Erreurs & dépannage | |
| 92 | + | |
| 93 | +Aucune erreur dans `sync_log` pour cette source. | |
| 94 | + | |
| 95 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cssdd` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cssdd' ORDER BY ts DESC LIMIT 5;"` | |
| 96 | +- 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`. | |
| 97 | + | |
| 98 | +## Licence / conformité | |
| 99 | + | |
| 100 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez CSS des Découvreurs » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 101 | + | |
| 102 | +## Historique | |
| 103 | + | |
| 104 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 105 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 106 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 107 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 108 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 109 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 110 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 111 | + | |
| 112 | +Commits touchant `jobka/connectors/cssdd.py` : | |
| 113 | + | |
| 114 | +- `5f13718` 2026-08-19 Nouvelle famille wpjobmanager (WordPress + WP Job Manager) : flux job_feed (contenu complet en une requête) + JSON-LD des pages poste (date limite, lieu). Ouvre la plateforme carrieresante.gouv.qc.ca de Santé Québec (un site par établissement, en déploiement) : CHU de Québec (60), CHUM (25), CISSS Abitibi-Témiscamingue (141), Chaudière-Appalaches (112), Laval (149), Lanaudière (124), Laurentides (130) + CISSS de l'Outaouais via viensvivretespassions.ca (101). Fixture chum. + connecteur cssdd (CSS des Découvreurs, famille DigitalRecruiters existante). | |
added
docs/connecteurs/cultures_genv.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/cultures_genv.md | |
| 7 | +Rôle : Fiche connecteur — Cultures Gen V (employeur direct, ATS adp) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Cultures Gen V (`cultures_genv`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`adp`](ats-adp.md) · Statut registre : actif · Connecteur : `jobka/connectors/cultures_genv.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Cultures Gen V](https://gen-v.com) | |
| 20 | +- **Page carrières** : https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=8b346731-d189-4cf2-a14c-9e48d38befde&ccId=36427051_2&lang=fr_CA | |
| 21 | +- **Secteurs** : Agroalimentaire, Serriculture | |
| 22 | +- **Région** : Montérégie | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-adp.md`](ats-adp.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `CCID` | `36427051_2` | | |
| 33 | +| `CID` | `8b346731-d189-4cf2-a14c-9e48d38befde` | | |
| 34 | +| `EMPLOYER` | `Cultures Gen V` | | |
| 35 | +| `LANG` | `fr_CA` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 52 | +| `postal_code` — Code postal | code postal si publié | 100 % | | |
| 53 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 54 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 33 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 33 % | | |
| 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) | 0 % | | |
| 59 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 60 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 61 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 67 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Acheteur* — Mirabel · ∅ · parue le 2026-08-18. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_ADP_DETAIL_LIMIT` | `80` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 2/6 actives (33 %) | |
| 86 | +- **GPS** : 0/6 actives (0 %) | |
| 87 | +- **Mode** : 0/6 actives (0 %) | |
| 88 | +- **Parution** : 6/6 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:49 — trouvées 6, +6, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync cultures_genv` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cultures_genv' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Cultures Gen V » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/cultures_genv.py` : | |
| 114 | + | |
| 115 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/dcbel.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/dcbel.md |
| 7 | 7 | Rôle : Fiche connecteur — dcbel (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **20 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **20 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Production supervisor* — Montréal · ∅ · parue le 2026-08 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 20 (dont **20 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/20 actives (0 %) |
| 84 | 84 | - **GPS** : 20/20 actives (100 %) |
| 85 | 85 | - **Mode** : 20/20 actives (100 %) |
| 86 | 86 | - **Parution** : 20/20 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:42 — trouvées 20, +0, ~20, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:52 — trouvées 20, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
added
docs/connecteurs/deloitte.md
+113 −0
@@ -0,0 +1,113 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/deloitte.md | |
| 7 | +Rôle : Fiche connecteur — Deloitte Canada (employeur direct, ATS successfactors) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Deloitte Canada (`deloitte`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`successfactors`](ats-successfactors.md) · Statut registre : actif · Connecteur : `jobka/connectors/deloitte.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Deloitte Canada](https://www.deloitte.com/ca) | |
| 20 | +- **Page carrières** : https://careers.deloitte.ca | |
| 21 | +- **Secteurs** : Services-conseils, Comptabilité, TI | |
| 22 | +- **Région** : Montréal, Québec | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-successfactors.md`](ats-successfactors.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://careers.deloitte.ca` | | |
| 33 | +| `EMPLOYER` | `Deloitte Canada` | | |
| 34 | +- **Throttle** : 1.0 s entre requêtes. | |
| 35 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 36 | + | |
| 37 | +## Champs → schéma | |
| 38 | + | |
| 39 | +Complétude mesurée sur les **105 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | + | |
| 41 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 42 | +|---|---|---| | |
| 43 | +| `title` — Titre | titre du poste | 100 % | | |
| 44 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 45 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 46 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 47 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 48 | +| `region` — Région | région administrative | 100 % | | |
| 49 | +| `address` — Adresse | adresse du lieu de travail | 0 % | | |
| 50 | +| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 51 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 98 % | | |
| 52 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 96 % | | |
| 53 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 96 % | | |
| 54 | +| `salary_label` — Libellé salaire | texte salarial original | 96 % | | |
| 55 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 56 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 57 | +| `date_posted` — Date de parution | ISO 8601 | 0 % | | |
| 58 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 59 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 93 % | | |
| 60 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 61 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 62 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 63 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 64 | + | |
| 65 | +Exemple réel : *Consultant(e) sénior, Gestion de contenu OpenText* — Montréal · L’échelle salariale pour ce poste est de 80,000 $ à 138,000 $ · parue le ∅. | |
| 66 | + | |
| 67 | +## Fréquence & budgets | |
| 68 | + | |
| 69 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 70 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 71 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 72 | + | |
| 73 | +| Variable | Défaut | | |
| 74 | +|---|---| | |
| 75 | +| `JOBKA_SF_DETAIL_LIMIT` | `150` | | |
| 76 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 77 | + | |
| 78 | +## Volumétrie & complétude live | |
| 79 | + | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | + | |
| 82 | +- **Offres en base** : 105 (dont **105 actives**, 0 masquées comme doublons `dup_of`) | |
| 83 | +- **Salaire** : 101/105 actives (96 %) | |
| 84 | +- **GPS** : 0/105 actives (0 %) | |
| 85 | +- **Mode** : 103/105 actives (98 %) | |
| 86 | +- **Parution** : 0/105 actives (0 %) | |
| 87 | +- **Dernier sync** : 2026-08-19 04:48 — trouvées 105, +105, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 89 | + | |
| 90 | +## Erreurs & dépannage | |
| 91 | + | |
| 92 | +Aucune erreur dans `sync_log` pour cette source. | |
| 93 | + | |
| 94 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync deloitte` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='deloitte' ORDER BY ts DESC LIMIT 5;"` | |
| 95 | +- 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`. | |
| 96 | + | |
| 97 | +## Licence / conformité | |
| 98 | + | |
| 99 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Deloitte Canada » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 100 | + | |
| 101 | +## Historique | |
| 102 | + | |
| 103 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 104 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 105 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 106 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 107 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 108 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 109 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 110 | + | |
| 111 | +Commits touchant `jobka/connectors/deloitte.py` : | |
| 112 | + | |
| 113 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/depot-direct.md
+2 −2
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/depot-direct.md |
| 7 | 7 | Rôle : Fiche du canal de dépôt direct employeurs |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Volumétrie & complétude live |
| 38 | 38 | |
| 39 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 39 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 40 | 40 | |
| 41 | 41 | - **Offres en base** : 0 (dont **0 actives**, 0 masquées comme doublons `dup_of`) |
| 42 | 42 | - **Salaire** : 0/0 actives (—) |
modified
docs/connecteurs/desjardins.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/desjardins.md |
| 7 | 7 | Rôle : Fiche connecteur — Mouvement Desjardins (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **241 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **241 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **241 offres actives** de la source (base live, 202 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 94 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Advisor, Banking and Credit Services, Customer Relations Center* — Montréal · A competitive wage starting at $26,41/hour, adjusted based on relevant experience · parue le 2026-08-05. | |
| 67 | +Exemple réel : *Advisor, Banking and Credit Services, Customer Relations Center* — Montréal · A competitive wage starting at $26,41/hour, adjusted based on relevant experience · parue le 2026-08-04. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Advisor, Banking and Credit Services, Customer Relations Center | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 260 (dont **241 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 4/241 actives (2 %) |
| 86 | 86 | - **GPS** : 226/241 actives (94 %) |
| 87 | 87 | - **Mode** : 50/241 actives (21 %) |
| 88 | 88 | - **Parution** : 241/241 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 241, +0, ~241, -7 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 29 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 241, +0, ~172, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 30 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/devimco.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/devimco.md |
| 7 | 7 | Rôle : Fiche connecteur — Devimco Appartements (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Superviseur(e) à la maintenance* — Québec · Salaire: 75 00 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 1/8 actives (12 %) |
| 84 | 84 | - **GPS** : 8/8 actives (100 %) |
| 85 | 85 | - **Mode** : 8/8 actives (100 %) |
| 86 | 86 | - **Parution** : 8/8 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 8, +0, ~8, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 8, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/dilitrust.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/dilitrust.md |
| 7 | 7 | Rôle : Fiche connecteur — DiliTrust (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Account Manager* — Montréal · ∅ · parue le 2026-06-04. | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/3 actives (0 %) |
| 79 | 79 | - **GPS** : 3/3 actives (100 %) |
| 80 | 80 | - **Mode** : 3/3 actives (100 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 3, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/distro.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/distro.md |
| 7 | 7 | Rôle : Fiche connecteur — Distro (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Conversion Consultant* — Québec · ∅ · parue le 2026-06-0 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 5/5 actives (100 %) |
| 79 | 79 | - **GPS** : 5/5 actives (100 %) |
| 80 | 80 | - **Mode** : 5/5 actives (100 %) |
| 81 | 81 | - **Parution** : 5/5 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 5, +0, ~5, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 5, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/domtar.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/domtar.md |
| 7 | 7 | Rôle : Fiche connecteur — Domtar (employeur direct, ATS successfactors) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **106 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **106 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Sales Manager, Quebec Region* — Lachine · ∅ · parue le | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 107 (dont **106 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/106 actives (0 %) |
| 84 | 84 | - **GPS** : 105/106 actives (99 %) |
| 85 | 85 | - **Mode** : 0/106 actives (0 %) |
| 86 | 86 | - **Parution** : 0/106 actives (0 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 106, +0, ~106, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 106, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/dulcedo.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/dulcedo.md |
| 7 | 7 | Rôle : Fiche connecteur — Dulcedo Management (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Senior Manager, Strategic Partnerships & New Business* — Mont | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 4 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/3 actives (33 %) |
| 79 | 79 | - **GPS** : 2/3 actives (67 %) |
| 80 | 80 | - **Mode** : 3/3 actives (100 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 3, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/edf_renouvelables.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/edf_renouvelables.md |
| 7 | 7 | Rôle : Fiche connecteur — EDF Renouvelables Canada (employeur direct, ATS icims) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Ingénieur.e électrique sénior [Hybride]* — Montréal · É | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 7/9 actives (78 %) |
| 84 | 84 | - **GPS** : 6/9 actives (67 %) |
| 85 | 85 | - **Mode** : 6/9 actives (67 %) |
| 86 | 86 | - **Parution** : 9/9 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 9, +0, ~9, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 9, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/emcocorporation.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/emcocorporation.md |
| 7 | 7 | Rôle : Fiche connecteur — EMCO (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **67 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **67 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Gestionnaire Junior en Distribution / Strategic Development Tra | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 67 (dont **67 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 32/67 actives (48 %) |
| 84 | 84 | - **GPS** : 67/67 actives (100 %) |
| 85 | 85 | - **Mode** : 15/67 actives (22 %) |
| 86 | 86 | - **Parution** : 67/67 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 67, +0, ~67, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 67, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/eminent_valet.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/eminent_valet.md |
| 7 | 7 | Rôle : Fiche connecteur — Eminent Valet (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Valet & Butler \| Voiturier et Majordome (On-call, Sur appel)* | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 9/9 actives (100 %) |
| 79 | 79 | - **GPS** : 9/9 actives (100 %) |
| 80 | 80 | - **Mode** : 0/9 actives (0 %) |
| 81 | 81 | - **Parution** : 9/9 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 9, +0, ~9, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 9, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/eosaircraftinc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/eosaircraftinc.md |
| 7 | 7 | Rôle : Fiche connecteur — EOS Aircraft (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Ingénieur principal – Systèmes de gestion de batterie (BMS) | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 4 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/4 actives (0 %) |
| 84 | 84 | - **GPS** : 4/4 actives (100 %) |
| 85 | 85 | - **Mode** : 4/4 actives (100 %) |
| 86 | 86 | - **Parution** : 4/4 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 4, +0, ~4, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 4, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/eq3_ltd.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/eq3_ltd.md |
| 7 | 7 | Rôle : Fiche connecteur — EQ3 (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **10 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **10 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Consultant(e) en design - À temps plein* — Brossard · Nos c | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 10 (dont **10 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 6/10 actives (60 %) |
| 79 | 79 | - **GPS** : 10/10 actives (100 %) |
| 80 | 80 | - **Mode** : 0/10 actives (0 %) |
| 81 | 81 | - **Parution** : 10/10 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 10, +0, ~10, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 10, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/eqbank.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/eqbank.md |
| 7 | 7 | Rôle : Fiche connecteur — EQ Bank (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Directeur régional adjoint, Origination commerciale (CFG)/Asso | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 3/6 actives (50 %) |
| 79 | 79 | - **GPS** : 3/6 actives (50 %) |
| 80 | 80 | - **Mode** : 6/6 actives (100 %) |
| 81 | 81 | - **Parution** : 6/6 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 6, +0, ~6, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 6, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/espresso_jobs.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/espresso_jobs.md |
| 7 | 7 | Rôle : Fiche connecteur — portail agrégateur Espresso-Jobs |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -35,7 +35,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 35 | 35 | |
| 36 | 36 | ## Champs → schéma |
| 37 | 37 | |
| 38 | −Complétude mesurée sur les **309 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 38 | +Complétude mesurée sur les **309 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 39 | 39 | |
| 40 | 40 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 41 | 41 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Bilingual Customer Service Representative* — Montréal · Thi | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | −- **Offres en base** : 309 (dont **309 actives**, 10 masquées comme doublons `dup_of`) | |
| 82 | +- **Offres en base** : 309 (dont **309 actives**, 13 masquées comme doublons `dup_of`) | |
| 83 | 83 | - **Salaire** : 70/309 actives (23 %) |
| 84 | 84 | - **GPS** : 292/309 actives (94 %) |
| 85 | 85 | - **Mode** : 39/309 actives (13 %) |
| 86 | 86 | - **Parution** : 309/309 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 309, +0, ~309, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 309, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/evlo.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/evlo.md |
| 7 | 7 | Rôle : Fiche connecteur — EVLO (Hydro-Québec) (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Ingénieur en automatisation* — Québec · ∅ · parue le 20 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/3 actives (0 %) |
| 84 | 84 | - **GPS** : 3/3 actives (100 %) |
| 85 | 85 | - **Mode** : 3/3 actives (100 %) |
| 86 | 86 | - **Parution** : 3/3 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 3, +0, ~3, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 3, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/evolving_web.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/evolving_web.md |
| 7 | 7 | Rôle : Fiche connecteur — Evolving Web (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **14 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **14 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Technical Content and Proposal Writer* — Montréal · ∅ · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 14 (dont **14 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/14 actives (0 %) |
| 79 | 79 | - **GPS** : 14/14 actives (100 %) |
| 80 | 80 | - **Mode** : 2/14 actives (14 %) |
| 81 | 81 | - **Parution** : 14/14 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:46 — trouvées 14, +0, ~14, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:55 — trouvées 14, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/exfo.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/exfo.md |
| 7 | 7 | Rôle : Fiche connecteur — EXFO (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **27 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **27 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **27 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Specialiste controle des offres* — Québec · ∅ · parue le 2026-08-17. | |
| 67 | +Exemple réel : *Specialiste controle des offres* — Québec · ∅ · parue le 2026-08-16. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Specialiste controle des offres* — Québec · ∅ · parue le | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 27 (dont **27 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/27 actives (0 %) |
| 86 | 86 | - **GPS** : 27/27 actives (100 %) |
| 87 | 87 | - **Mode** : 15/27 actives (56 %) |
| 88 | 88 | - **Parution** : 27/27 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 27, +0, ~27, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 27, +0, ~17, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
added
docs/connecteurs/exo.md
+116 −0
@@ -0,0 +1,116 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/exo.md | |
| 7 | +Rôle : Fiche connecteur — exo (transport métropolitain) (employeur direct, ATS taleo_tbe) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# exo (transport métropolitain) (`exo`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`taleo_tbe`](ats-taleo_tbe.md) · Statut registre : actif · Connecteur : `jobka/connectors/exo_transport.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [exo (transport métropolitain)](https://exo.quebec) | |
| 20 | +- **Page carrières** : https://phh.tbe.taleo.net/phh04/ats/careers/v2/jobSearch?org=AMT&cws=39 | |
| 21 | +- **Secteurs** : Transport, Secteur public | |
| 22 | +- **Région** : Montréal | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-taleo_tbe.md`](ats-taleo_tbe.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `CWS` | `39` | | |
| 33 | +| `EMPLOYER` | `exo` | | |
| 34 | +| `HOST` | `phh` | | |
| 35 | +| `INST` | `phh04` | | |
| 36 | +| `ORG` | `AMT` | | |
| 37 | +- **Throttle** : 1.0 s entre requêtes. | |
| 38 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 39 | + | |
| 40 | +## Champs → schéma | |
| 41 | + | |
| 42 | +Complétude mesurée sur les **25 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | + | |
| 44 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 45 | +|---|---|---| | |
| 46 | +| `title` — Titre | titre du poste | 100 % | | |
| 47 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 48 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 49 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 50 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 51 | +| `region` — Région | région administrative | 100 % | | |
| 52 | +| `address` — Adresse | adresse du lieu de travail | 96 % | | |
| 53 | +| `postal_code` — Code postal | code postal si publié | 96 % | | |
| 54 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 100 % | | |
| 55 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 96 % | | |
| 56 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 0 % | | |
| 57 | +| `salary_label` — Libellé salaire | texte salarial original | 0 % | | |
| 58 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 59 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 60 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 61 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 62 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 100 % | | |
| 63 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 64 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 65 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 66 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 67 | + | |
| 68 | +Exemple réel : *Chargé(e) de projets* — Montréal - Siège social · ∅ · parue le 2026-08-13. | |
| 69 | + | |
| 70 | +## Fréquence & budgets | |
| 71 | + | |
| 72 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 73 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 74 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 75 | + | |
| 76 | +| Variable | Défaut | | |
| 77 | +|---|---| | |
| 78 | +| `JOBKA_TBE_DETAIL_LIMIT` | `60` | | |
| 79 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 80 | + | |
| 81 | +## Volumétrie & complétude live | |
| 82 | + | |
| 83 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 84 | + | |
| 85 | +- **Offres en base** : 25 (dont **25 actives**, 0 masquées comme doublons `dup_of`) | |
| 86 | +- **Salaire** : 0/25 actives (0 %) | |
| 87 | +- **GPS** : 0/25 actives (0 %) | |
| 88 | +- **Mode** : 25/25 actives (100 %) | |
| 89 | +- **Parution** : 25/25 actives (100 %) | |
| 90 | +- **Dernier sync** : 2026-08-19 04:48 — trouvées 25, +25, ~0, -0 | |
| 91 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 92 | + | |
| 93 | +## Erreurs & dépannage | |
| 94 | + | |
| 95 | +Aucune erreur dans `sync_log` pour cette source. | |
| 96 | + | |
| 97 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync exo` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='exo' ORDER BY ts DESC LIMIT 5;"` | |
| 98 | +- 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`. | |
| 99 | + | |
| 100 | +## Licence / conformité | |
| 101 | + | |
| 102 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez exo (transport métropolitain) » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 103 | + | |
| 104 | +## Historique | |
| 105 | + | |
| 106 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 107 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 108 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 109 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 110 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 111 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 112 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 113 | + | |
| 114 | +Commits touchant `jobka/connectors/exo_transport.py` : | |
| 115 | + | |
| 116 | +- `89f9713` 2026-08-19 Nouvelle famille ATS Taleo Business Edition (taleo_tbe) : flux RSS public + JSON-LD des pages requisition (lieu, dates, description complète), filtre Québec différé tant que le détail n'est pas visité. Connecteurs : Sépaq (99), Kruger (corporatif, filtre QC), Produits Kruger, exo (25), HEC Montréal personnel (9) + corps professoral (9). Fixture sepaq (121 requêtes rejouables). TÉLUQ écarté (tenant TBE fermé). | |
modified
docs/connecteurs/explorance.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/explorance.md |
| 7 | 7 | Rôle : Fiche connecteur — Explorance (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Coordonnateur(trice) des services de bureau et de la réception | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 18 (dont **18 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/18 actives (0 %) |
| 84 | 84 | - **GPS** : 18/18 actives (100 %) |
| 85 | 85 | - **Mode** : 18/18 actives (100 %) |
| 86 | 86 | - **Parution** : 18/18 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 18, +0, ~18, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 18, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/fenetresconcept.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/fenetresconcept.md |
| 7 | 7 | Rôle : Fiche connecteur — Fenêtres Concept (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Commis à la réception de marchandise* — Québec · à parti | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 2/2 actives (100 %) |
| 84 | 84 | - **GPS** : 2/2 actives (100 %) |
| 85 | 85 | - **Mode** : 2/2 actives (100 %) |
| 86 | 86 | - **Parution** : 2/2 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 2, +0, ~2, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 2, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/flare.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/flare.md |
| 7 | 7 | Rôle : Fiche connecteur — Flare (cybersécurité) (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Chef·effe d'équipe en développement logiciel, Plateforme Age | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 1/2 actives (50 %) |
| 84 | 84 | - **GPS** : 2/2 actives (100 %) |
| 85 | 85 | - **Mode** : 2/2 actives (100 %) |
| 86 | 86 | - **Parution** : 2/2 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 2, +0, ~2, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 2, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/flinks.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/flinks.md |
| 7 | 7 | Rôle : Fiche connecteur — Flinks (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Senior Full-Stack Developer* — Montréal · For experienced a | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 3/3 actives (100 %) |
| 79 | 79 | - **GPS** : 3/3 actives (100 %) |
| 80 | 80 | - **Mode** : 3/3 actives (100 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 3, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/fondsftq.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/fondsftq.md |
| 7 | 7 | Rôle : Fiche connecteur — Fonds de solidarité FTQ (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **10 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **10 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **10 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Expert(e) sénior(e) en gestion des identités et des accès (GIA/IAM)* — Montréal · ∅ · parue le 2026-08-15. | |
| 67 | +Exemple réel : *Expert(e) sénior(e) en gestion des identités et des accès (GIA/IAM)* — Montréal · ∅ · parue le 2026-08-14. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Expert(e) sénior(e) en gestion des identités et des accès (G | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 10 (dont **10 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/10 actives (0 %) |
| 86 | 86 | - **GPS** : 10/10 actives (100 %) |
| 87 | 87 | - **Mode** : 10/10 actives (100 %) |
| 88 | 88 | - **Parution** : 10/10 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 10, +0, ~10, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 10, +0, ~7, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/framestore.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/framestore.md |
| 7 | 7 | Rôle : Fiche connecteur — Framestore (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Directeur·trice technique des éclairages \| Lighting TD* — | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/9 actives (0 %) |
| 79 | 79 | - **GPS** : 9/9 actives (100 %) |
| 80 | 80 | - **Mode** : 9/9 actives (100 %) |
| 81 | 81 | - **Parution** : 9/9 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 9, +0, ~9, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 9, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
added
docs/connecteurs/fruitdor.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/fruitdor.md | |
| 7 | +Rôle : Fiche connecteur — Fruit d'Or (employeur direct, ATS ultipro) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Fruit d'Or (`fruitdor`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`ultipro`](ats-ultipro.md) · Statut registre : actif · Connecteur : `jobka/connectors/fruitdor.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Fruit d'Or](https://fruitdor.ca) | |
| 20 | +- **Page carrières** : https://recruiting.ultipro.ca/FRU5100FRUIT/JobBoard/91103632-8052-480e-a5b0-a6028d640577/ | |
| 21 | +- **Secteurs** : Agroalimentaire, Manufacturier | |
| 22 | +- **Région** : Centre-du-Québec | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-ultipro.md`](ats-ultipro.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BOARD` | `91103632-8052-480e-a5b0-a6028d640577` | | |
| 33 | +| `EMPLOYER` | `Fruit d'Or` | | |
| 34 | +| `HOST` | `recruiting.ultipro.ca` | | |
| 35 | +| `ORG` | `FRU5100FRUIT` | | |
| 36 | +- **Throttle** : 0.8 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **12 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 52 | +| `postal_code` — Code postal | code postal si publié | 100 % | | |
| 53 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 54 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 100 % | | |
| 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) | 0 % | | |
| 59 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 60 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 61 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 67 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Conseiller(ère) Ressources humaines* — Plessisville · ∅ · parue le 2026-08-17. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 0.8 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_ULTIPRO_DETAIL_LIMIT` | `80` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 12 (dont **12 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 0/12 actives (0 %) | |
| 86 | +- **GPS** : 0/12 actives (0 %) | |
| 87 | +- **Mode** : 0/12 actives (0 %) | |
| 88 | +- **Parution** : 12/12 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:48 — trouvées 12, +12, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync fruitdor` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='fruitdor' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Fruit d'Or » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/fruitdor.py` : | |
| 114 | + | |
| 115 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/fuse.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/fuse.md |
| 7 | 7 | Rôle : Fiche connecteur — Fuse Energy (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -62,7 +62,7 @@ Complétude mesurée sur les **3 offres actives** de la source (base live, 2026- | ||
| 62 | 62 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 63 | 63 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 64 | 64 | |
| 65 | −Exemple réel : *Internship - Montreal* — Montréal · ∅ · parue le 2025-05-26. | |
| 65 | +Exemple réel : *Internship* — Montréal · ∅ · parue le 2025-05-26. | |
| 66 | 66 | |
| 67 | 67 | ## Fréquence & budgets |
| 68 | 68 | |
@@ -72,15 +72,15 @@ Exemple réel : *Internship - Montreal* — Montréal · ∅ · parue le 2025-05 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/3 actives (0 %) |
| 79 | 79 | - **GPS** : 3/3 actives (100 %) |
| 80 | 80 | - **Mode** : 0/3 actives (0 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 3, +0, ~3, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/gameloft.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/gameloft.md |
| 7 | 7 | Rôle : Fiche connecteur — Gameloft (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **14 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **14 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *[Dungeons & Dragons PC-Console] Concepteur Narratif Senior - Se | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 15 (dont **14 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/14 actives (0 %) |
| 84 | 84 | - **GPS** : 14/14 actives (100 %) |
| 85 | 85 | - **Mode** : 10/14 actives (71 %) |
| 86 | 86 | - **Parution** : 14/14 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 14, +0, ~14, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 14, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/gearboxquebec.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/gearboxquebec.md |
| 7 | 7 | Rôle : Fiche connecteur — Gearbox Studio Québec (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Directeur·rice du design / Design Director* — Montréal · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/3 actives (0 %) |
| 79 | 79 | - **GPS** : 3/3 actives (100 %) |
| 80 | 80 | - **Mode** : 0/3 actives (0 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 3, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/genetec_inc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/genetec_inc.md |
| 7 | 7 | Rôle : Fiche connecteur — Genetec (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **80 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **80 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *(STAGE) Coordonnateur(trice) ressources humaines / Human Resour | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 80 (dont **80 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/80 actives (0 %) |
| 79 | 79 | - **GPS** : 80/80 actives (100 %) |
| 80 | 80 | - **Mode** : 14/80 actives (18 %) |
| 81 | 81 | - **Parution** : 80/80 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:47 — trouvées 82, +0, ~82, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 82, +0, ~4, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/gfs.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/gfs.md |
| 7 | 7 | Rôle : Fiche connecteur — Service alimentaire Gordon (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **30 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **30 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **30 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Aide Livreur - Soir* — Québec · Taux horaire de 23,16$/h · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Aide Livreur - Soir* — Québec · Taux horaire de 23,16$/h · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Aide Livreur - Soir* — Québec · Taux horaire de 23,16$/h · | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 31 (dont **30 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 22/30 actives (73 %) |
| 86 | 86 | - **GPS** : 30/30 actives (100 %) |
| 87 | 87 | - **Mode** : 0/30 actives (0 %) |
| 88 | 88 | - **Parution** : 30/30 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:48 — trouvées 30, +0, ~30, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 30, +0, ~29, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/gologic.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/gologic.md |
| 7 | 7 | Rôle : Fiche connecteur — GoLogic (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Poste Java* — Montréal · ∅ · parue le 2021-11-16. | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/1 actives (0 %) |
| 84 | 84 | - **GPS** : 1/1 actives (100 %) |
| 85 | 85 | - **Mode** : 0/1 actives (0 %) |
| 86 | 86 | - **Parution** : 1/1 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:48 — trouvées 1, +0, ~1, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 1, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/gorh.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/gorh.md |
| 7 | 7 | Rôle : Fiche connecteur — Go RH (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **266 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **266 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Chef d'équipe de production avec volet contrôle qualité* — | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 266 (dont **266 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 49/266 actives (18 %) |
| 79 | 79 | - **GPS** : 260/266 actives (98 %) |
| 80 | 80 | - **Mode** : 262/266 actives (98 %) |
| 81 | 81 | - **Parution** : 266/266 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:48 — trouvées 266, +0, ~266, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 266, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/groupecanam.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/groupecanam.md |
| 7 | 7 | Rôle : Fiche connecteur — Groupe Canam (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **65 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **65 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Soudeur(euse)* — Saint-Gédéon-de-Beauce · On t’offre un | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 67 (dont **65 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 43/65 actives (66 %) |
| 84 | 84 | - **GPS** : 64/65 actives (98 %) |
| 85 | 85 | - **Mode** : 17/65 actives (26 %) |
| 86 | 86 | - **Parution** : 65/65 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:48 — trouvées 65, +0, ~65, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 65, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/gsk.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/gsk.md |
| 7 | 7 | Rôle : Fiche connecteur — GSK (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **12 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **12 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **12 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 83 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Chef de territoire en Estrie/Sherbrooke (12mois)* — Québec · ∅ · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Chef de territoire en Estrie/Sherbrooke (12mois)* — Québec · ∅ · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Chef de territoire en Estrie/Sherbrooke (12mois)* — Québec | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 12 (dont **12 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/12 actives (0 %) |
| 86 | 86 | - **GPS** : 10/12 actives (83 %) |
| 87 | 87 | - **Mode** : 0/12 actives (0 %) |
| 88 | 88 | - **Parution** : 12/12 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:48 — trouvées 12, +0, ~12, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 89 | +- **Dernier sync** : 2026-08-19 03:56 — trouvées 12, +0, ~3, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/guichet_emplois.md
+14 −14
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/guichet_emplois.md |
| 7 | 7 | Rôle : Fiche connecteur — portail agrégateur Guichet-Emplois (Canada) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,14 +39,14 @@ Généré : 2026-08-19 03:39 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 **566 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 42 | +Complétude mesurée sur les **502 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | 43 | |
| 44 | 44 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 45 | 45 | |---|---|---| |
| 46 | 46 | | `title` — Titre | titre du poste | 100 % | |
| 47 | 47 | | `employer` — Employeur | nom de l'entreprise | 100 % | |
| 48 | 48 | | `url` — URL | lien direct vers l'offre originale | 100 % | |
| 49 | −| `description` — Description | texte complet (HTML nettoyé) | 70 % | | |
| 49 | +| `description` — Description | texte complet (HTML nettoyé) | 88 % | | |
| 50 | 50 | | `city` — Ville | municipalité normalisée | 100 % | |
| 51 | 51 | | `region` — Région | région administrative | 100 % | |
| 52 | 52 | | `address` — Adresse | adresse du lieu de travail | 0 % | |
@@ -55,12 +55,12 @@ Complétude mesurée sur les **566 offres actives** de la source (base live, 202 | ||
| 55 | 55 | | `employment_type` — Type | temps_plein / temps_partiel / … | 1 % | |
| 56 | 56 | | `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 99 % | |
| 57 | 57 | | `salary_label` — Libellé salaire | texte salarial original | 100 % | |
| 58 | −| `benefits` — Avantages | avantages sociaux publiés (JSON) | 3 % | | |
| 58 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 4 % | | |
| 59 | 59 | | `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | |
| 60 | 60 | | `date_posted` — Date de parution | ISO 8601 | 100 % | |
| 61 | 61 | | `date_deadline` — Date limite | date limite pour postuler | 0 % | |
| 62 | −| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 69 % | | |
| 63 | −| `language` — Langue | fr / en / bilingue (source ou heuristique) | 70 % | | |
| 62 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 72 % | | |
| 63 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 88 % | | |
| 64 | 64 | | `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | |
| 65 | 65 | | `apply_url` — Candidature | lien de candidature directe | 0 % | |
| 66 | 66 | | `gps` — GPS | lat/lng (géocodage sans invention) | 99 % | |
@@ -82,15 +82,15 @@ Exemple réel : *commis à l'accueil* — Montréal · 50 000,00 $ par année · | ||
| 82 | 82 | |
| 83 | 83 | ## Volumétrie & complétude live |
| 84 | 84 | |
| 85 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 85 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 86 | 86 | |
| 87 | −- **Offres en base** : 719 (dont **566 actives**, 0 masquées comme doublons `dup_of`) | |
| 88 | −- **Salaire** : 562/566 actives (99 %) | |
| 89 | −- **GPS** : 561/566 actives (99 %) | |
| 90 | −- **Mode** : 0/566 actives (0 %) | |
| 91 | −- **Parution** : 566/566 actives (100 %) | |
| 92 | −- **Dernier sync** : 2026-08-19 01:54 — trouvées 487, +90, ~397, -26 | |
| 93 | −- **Syncs enregistrés** (`sync_log`) : 16 | |
| 87 | +- **Offres en base** : 721 (dont **502 actives**, 0 masquées comme doublons `dup_of`) | |
| 88 | +- **Salaire** : 498/502 actives (99 %) | |
| 89 | +- **GPS** : 497/502 actives (99 %) | |
| 90 | +- **Mode** : 0/502 actives (0 %) | |
| 91 | +- **Parution** : 502/502 actives (100 %) | |
| 92 | +- **Dernier sync** : 2026-08-19 04:02 — trouvées 483, +2, ~55, -66 | |
| 93 | +- **Syncs enregistrés** (`sync_log`) : 17 | |
| 94 | 94 | |
| 95 | 95 | ## Erreurs & dépannage |
| 96 | 96 | |
modified
docs/connecteurs/gurussolutions.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/gurussolutions.md |
| 7 | 7 | Rôle : Fiche connecteur — GURUS Solutions (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Cloud Developer - Product DevOps* — Montréal · ∅ · parue | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/8 actives (0 %) |
| 79 | 79 | - **GPS** : 8/8 actives (100 %) |
| 80 | 80 | - **Mode** : 0/8 actives (0 %) |
| 81 | 81 | - **Parution** : 8/8 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:54 — trouvées 8, +0, ~8, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:02 — trouvées 8, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
added
docs/connecteurs/hec_montreal.md
+117 −0
@@ -0,0 +1,117 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/hec_montreal.md | |
| 7 | +Rôle : Fiche connecteur — HEC Montréal (employeur direct, ATS taleo_tbe) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# HEC Montréal (`hec_montreal`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`taleo_tbe`](ats-taleo_tbe.md) · Statut registre : actif · Connecteur : `jobka/connectors/hec_montreal.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [HEC Montréal](https://www.hec.ca) | |
| 20 | +- **Page carrières** : https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=NYQEDG&cws=40 | |
| 21 | +- **Secteurs** : Éducation, Administration | |
| 22 | +- **Région** : Montréal | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-taleo_tbe.md`](ats-taleo_tbe.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `CWS` | `40` | | |
| 33 | +| `EMPLOYER` | `HEC Montréal` | | |
| 34 | +| `FORCE_CITY` | `Montréal` | | |
| 35 | +| `HOST` | `tre` | | |
| 36 | +| `INST` | `tre01` | | |
| 37 | +| `ORG` | `NYQEDG` | | |
| 38 | +- **Throttle** : 1.0 s entre requêtes. | |
| 39 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 40 | + | |
| 41 | +## Champs → schéma | |
| 42 | + | |
| 43 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 44 | + | |
| 45 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 46 | +|---|---|---| | |
| 47 | +| `title` — Titre | titre du poste | 100 % | | |
| 48 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 49 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 50 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 51 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 52 | +| `region` — Région | région administrative | 100 % | | |
| 53 | +| `address` — Adresse | adresse du lieu de travail | 0 % | | |
| 54 | +| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 55 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 56 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 100 % | | |
| 57 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 0 % | | |
| 58 | +| `salary_label` — Libellé salaire | texte salarial original | 0 % | | |
| 59 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 60 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 61 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 62 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 63 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 67 % | | |
| 64 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 65 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 66 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 67 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 68 | + | |
| 69 | +Exemple réel : *Chargée de projets ou chargé de projets - Campagne Vision 2036* — Montréal · ∅ · parue le 2026-08-11. | |
| 70 | + | |
| 71 | +## Fréquence & budgets | |
| 72 | + | |
| 73 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 74 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 75 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 76 | + | |
| 77 | +| Variable | Défaut | | |
| 78 | +|---|---| | |
| 79 | +| `JOBKA_TBE_DETAIL_LIMIT` | `60` | | |
| 80 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 81 | + | |
| 82 | +## Volumétrie & complétude live | |
| 83 | + | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 85 | + | |
| 86 | +- **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) | |
| 87 | +- **Salaire** : 0/9 actives (0 %) | |
| 88 | +- **GPS** : 0/9 actives (0 %) | |
| 89 | +- **Mode** : 0/9 actives (0 %) | |
| 90 | +- **Parution** : 9/9 actives (100 %) | |
| 91 | +- **Dernier sync** : 2026-08-19 04:48 — trouvées 9, +9, ~0, -0 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 93 | + | |
| 94 | +## Erreurs & dépannage | |
| 95 | + | |
| 96 | +Aucune erreur dans `sync_log` pour cette source. | |
| 97 | + | |
| 98 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync hec_montreal` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='hec_montreal' ORDER BY ts DESC LIMIT 5;"` | |
| 99 | +- 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`. | |
| 100 | + | |
| 101 | +## Licence / conformité | |
| 102 | + | |
| 103 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez HEC Montréal » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 104 | + | |
| 105 | +## Historique | |
| 106 | + | |
| 107 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 108 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 109 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 110 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 111 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 112 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 113 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 114 | + | |
| 115 | +Commits touchant `jobka/connectors/hec_montreal.py` : | |
| 116 | + | |
| 117 | +- `89f9713` 2026-08-19 Nouvelle famille ATS Taleo Business Edition (taleo_tbe) : flux RSS public + JSON-LD des pages requisition (lieu, dates, description complète), filtre Québec différé tant que le détail n'est pas visité. Connecteurs : Sépaq (99), Kruger (corporatif, filtre QC), Produits Kruger, exo (25), HEC Montréal personnel (9) + corps professoral (9). Fixture sepaq (121 requêtes rejouables). TÉLUQ écarté (tenant TBE fermé). | |
renamed
docs/connecteurs/cssdm.md → docs/connecteurs/hec_montreal_profs.md
+39 −31
@@ -3,48 +3,51 @@ | ||
| 3 | 3 | Job·Ka — Groupe KA |
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | −Fichier : docs/connecteurs/cssdm.md | |
| 7 | −Rôle : Fiche connecteur — Centre de services scolaire de Montréal (employeur direct, ATS workland) | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 6 | +Fichier : docs/connecteurs/hec_montreal_profs.md | |
| 7 | +Rôle : Fiche connecteur — HEC Montréal — corps professoral (employeur direct, ATS taleo_tbe) | |
| 8 | +Généré : 2026-08-19 05:40 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 | −# Centre de services scolaire de Montréal (`cssdm`) | |
| 13 | +# HEC Montréal — corps professoral (`hec_montreal_profs`) | |
| 14 | 14 | |
| 15 | −**Employeur direct** · Plateforme ATS : [`workland`](ats-workland.md) · Statut registre : actif · Connecteur : `jobka/connectors/cssdm.py` | |
| 15 | +**Employeur direct** · Plateforme ATS : [`taleo_tbe`](ats-taleo_tbe.md) · Statut registre : actif · Connecteur : `jobka/connectors/hec_montreal_profs.py` | |
| 16 | 16 | |
| 17 | 17 | ## Description |
| 18 | 18 | |
| 19 | −- **Site** : [Centre de services scolaire de Montréal](https://www.cssdm.gouv.qc.ca) | |
| 20 | −- **Page carrières** : https://www.cssdm.gouv.qc.ca/travailler-cssdm/offres-emploi/ | |
| 21 | −- **Secteurs** : Éducation, Secteur public | |
| 19 | +- **Site** : [HEC Montréal — corps professoral](https://www.hec.ca) | |
| 20 | +- **Page carrières** : https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=NYQEDG&cws=41 | |
| 21 | +- **Secteurs** : Éducation, Recherche | |
| 22 | 22 | - **Région** : Montréal |
| 23 | 23 | - Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. |
| 24 | 24 | |
| 25 | 25 | ## Accès |
| 26 | 26 | |
| 27 | −- **Mécanique** : voir la fiche plateforme [`ats-workland.md`](ats-workland.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-taleo_tbe.md`](ats-taleo_tbe.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | 28 | - **Identifiants du tenant** (attributs du connecteur) : |
| 29 | 29 | |
| 30 | 30 | | Attribut | Valeur | |
| 31 | 31 | |---|---| |
| 32 | −| `DEFAULT_CITY` | `Montréal` | | |
| 33 | −| `EMPLOYER` | `Centre de services scolaire de Montréal` | | |
| 34 | −| `LIST_URL` | `https://www.cssdm.gouv.qc.ca/travailler-cssdm/offres-emploi/` | | |
| 32 | +| `CWS` | `41` | | |
| 33 | +| `EMPLOYER` | `HEC Montréal` | | |
| 34 | +| `FORCE_CITY` | `Montréal` | | |
| 35 | +| `HOST` | `tre` | | |
| 36 | +| `INST` | `tre01` | | |
| 37 | +| `ORG` | `NYQEDG` | | |
| 35 | 38 | - **Throttle** : 1.0 s entre requêtes. |
| 36 | 39 | - **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). |
| 37 | 40 | |
| 38 | 41 | ## Champs → schéma |
| 39 | 42 | |
| 40 | −Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 43 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 41 | 44 | |
| 42 | 45 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 43 | 46 | |---|---|---| |
| 44 | 47 | | `title` — Titre | titre du poste | 100 % | |
| 45 | 48 | | `employer` — Employeur | nom de l'entreprise | 100 % | |
| 46 | 49 | | `url` — URL | lien direct vers l'offre originale | 100 % | |
| 47 | −| `description` — Description | texte complet (HTML nettoyé) | 0 % | | |
| 50 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 48 | 51 | | `city` — Ville | municipalité normalisée | 100 % | |
| 49 | 52 | | `region` — Région | région administrative | 100 % | |
| 50 | 53 | | `address` — Adresse | adresse du lieu de travail | 0 % | |
@@ -56,43 +59,48 @@ Complétude mesurée sur les **23 offres actives** de la source (base live, 2026 | ||
| 56 | 59 | | `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | |
| 57 | 60 | | `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | |
| 58 | 61 | | `date_posted` — Date de parution | ISO 8601 | 0 % | |
| 59 | −| `date_deadline` — Date limite | date limite pour postuler | 100 % | | |
| 60 | −| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 74 % | | |
| 61 | −| `language` — Langue | fr / en / bilingue (source ou heuristique) | 0 % | | |
| 62 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 63 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 67 % | | |
| 64 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 62 | 65 | | `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | |
| 63 | 66 | | `apply_url` — Candidature | lien de candidature directe | 0 % | |
| 64 | −| `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | | |
| 67 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 65 | 68 | |
| 66 | −Exemple réel : *Enseignantes et enseignants au préscolaire et primaire* — Montréal · ∅ · parue le ∅. | |
| 69 | +Exemple réel : *Agente ou Agent – sollicitation donateurs* — Montréal · ∅ · parue le ∅. | |
| 67 | 70 | |
| 68 | 71 | ## Fréquence & budgets |
| 69 | 72 | |
| 70 | 73 | - **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. |
| 71 | 74 | - **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). |
| 75 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 76 | + | |
| 77 | +| Variable | Défaut | | |
| 78 | +|---|---| | |
| 79 | +| `JOBKA_TBE_DETAIL_LIMIT` | `60` | | |
| 72 | 80 | - Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. |
| 73 | 81 | |
| 74 | 82 | ## Volumétrie & complétude live |
| 75 | 83 | |
| 76 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 77 | 85 | |
| 78 | −- **Offres en base** : 23 (dont **23 actives**, 0 masquées comme doublons `dup_of`) | |
| 79 | −- **Salaire** : 0/23 actives (0 %) | |
| 80 | −- **GPS** : 23/23 actives (100 %) | |
| 81 | −- **Mode** : 0/23 actives (0 %) | |
| 82 | −- **Parution** : 0/23 actives (0 %) | |
| 83 | −- **Dernier sync** : 2026-08-19 01:42 — trouvées 23, +0, ~23, -0 | |
| 84 | −- **Syncs enregistrés** (`sync_log`) : 16 | |
| 86 | +- **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) | |
| 87 | +- **Salaire** : 0/9 actives (0 %) | |
| 88 | +- **GPS** : 0/9 actives (0 %) | |
| 89 | +- **Mode** : 0/9 actives (0 %) | |
| 90 | +- **Parution** : 0/9 actives (0 %) | |
| 91 | +- **Dernier sync** : 2026-08-19 04:48 — trouvées 9, +9, ~0, -0 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 85 | 93 | |
| 86 | 94 | ## Erreurs & dépannage |
| 87 | 95 | |
| 88 | 96 | Aucune erreur dans `sync_log` pour cette source. |
| 89 | 97 | |
| 90 | −- Rejouer un sync isolé : `.venv/bin/python run.py sync cssdm` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='cssdm' ORDER BY ts DESC LIMIT 5;"` | |
| 98 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync hec_montreal_profs` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='hec_montreal_profs' ORDER BY ts DESC LIMIT 5;"` | |
| 91 | 99 | - 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`. |
| 92 | 100 | |
| 93 | 101 | ## Licence / conformité |
| 94 | 102 | |
| 95 | −**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Centre de services scolaire de Montréal » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 103 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez HEC Montréal — corps professoral » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 96 | 104 | |
| 97 | 105 | ## Historique |
| 98 | 106 | |
@@ -104,6 +112,6 @@ Aucune erreur dans `sync_log` pour cette source. | ||
| 104 | 112 | - `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; |
| 105 | 113 | - `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). |
| 106 | 114 | |
| 107 | −Commits touchant `jobka/connectors/cssdm.py` : | |
| 115 | +Commits touchant `jobka/connectors/hec_montreal_profs.py` : | |
| 108 | 116 | |
| 109 | −- `4917d57` 2026-08-18 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics et grands employeurs QC | |
| 117 | +- `89f9713` 2026-08-19 Nouvelle famille ATS Taleo Business Edition (taleo_tbe) : flux RSS public + JSON-LD des pages requisition (lieu, dates, description complète), filtre Québec différé tant que le détail n'est pas visité. Connecteurs : Sépaq (99), Kruger (corporatif, filtre QC), Produits Kruger, exo (25), HEC Montréal personnel (9) + corps professoral (9). Fixture sepaq (121 requêtes rejouables). TÉLUQ écarté (tenant TBE fermé). | |
modified
docs/connecteurs/hopper.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/hopper.md |
| 7 | 7 | Rôle : Fiche connecteur — Hopper (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Directeur ou directrice principal(e) de produit, IA conversatio | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/6 actives (0 %) |
| 79 | 79 | - **GPS** : 4/6 actives (67 %) |
| 80 | 80 | - **Mode** : 6/6 actives (100 %) |
| 81 | 81 | - **Parution** : 6/6 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:54 — trouvées 6, +0, ~6, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:02 — trouvées 6, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/hoyoverse.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/hoyoverse.md |
| 7 | 7 | Rôle : Fiche connecteur — HoYoverse (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Senior Combat Designer [CA]* — Montréal · ∅ · parue le 2 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 4 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/4 actives (0 %) |
| 84 | 84 | - **GPS** : 4/4 actives (100 %) |
| 85 | 85 | - **Mode** : 4/4 actives (100 %) |
| 86 | 86 | - **Parution** : 4/4 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:54 — trouvées 4, +0, ~4, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:02 — trouvées 4, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/huaweicanada.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/huaweicanada.md |
| 7 | 7 | Rôle : Fiche connecteur — Huawei Canada (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Department Assistant* — Montréal · ∅ · parue le 2026-07- | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 18 (dont **18 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/18 actives (0 %) |
| 79 | 79 | - **GPS** : 18/18 actives (100 %) |
| 80 | 80 | - **Mode** : 18/18 actives (100 %) |
| 81 | 81 | - **Parution** : 18/18 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:54 — trouvées 18, +0, ~18, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:02 — trouvées 18, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
added
docs/connecteurs/hydroquebec.md
+113 −0
@@ -0,0 +1,113 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/hydroquebec.md | |
| 7 | +Rôle : Fiche connecteur — Hydro-Québec (employeur direct, ATS successfactors) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Hydro-Québec (`hydroquebec`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`successfactors`](ats-successfactors.md) · Statut registre : actif · Connecteur : `jobka/connectors/hydroquebec.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Hydro-Québec](https://www.hydroquebec.com) | |
| 20 | +- **Page carrières** : https://emploi.hydroquebec.com | |
| 21 | +- **Secteurs** : Énergie, Génie, TI, Secteur public | |
| 22 | +- **Région** : Montréal, Québec (province) | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-successfactors.md`](ats-successfactors.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BASE` | `https://emploi.hydroquebec.com` | | |
| 33 | +| `EMPLOYER` | `Hydro-Québec` | | |
| 34 | +- **Throttle** : 1.0 s entre requêtes. | |
| 35 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 36 | + | |
| 37 | +## Champs → schéma | |
| 38 | + | |
| 39 | +Complétude mesurée sur les **66 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | + | |
| 41 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 42 | +|---|---|---| | |
| 43 | +| `title` — Titre | titre du poste | 100 % | | |
| 44 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 45 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 46 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 47 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 48 | +| `region` — Région | région administrative | 77 % | | |
| 49 | +| `address` — Adresse | adresse du lieu de travail | 0 % | | |
| 50 | +| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 51 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 52 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 100 % | | |
| 53 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 61 % | | |
| 54 | +| `salary_label` — Libellé salaire | texte salarial original | 61 % | | |
| 55 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 56 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 57 | +| `date_posted` — Date de parution | ISO 8601 | 0 % | | |
| 58 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 59 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 45 % | | |
| 60 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 61 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 62 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 63 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 64 | + | |
| 65 | +Exemple réel : *Développeur II - Analytique et IA* — Montréal · 81 112,20 $ à 135 187,00 $ · parue le ∅. | |
| 66 | + | |
| 67 | +## Fréquence & budgets | |
| 68 | + | |
| 69 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 70 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 71 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 72 | + | |
| 73 | +| Variable | Défaut | | |
| 74 | +|---|---| | |
| 75 | +| `JOBKA_SF_DETAIL_LIMIT` | `150` | | |
| 76 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 77 | + | |
| 78 | +## Volumétrie & complétude live | |
| 79 | + | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | + | |
| 82 | +- **Offres en base** : 66 (dont **66 actives**, 0 masquées comme doublons `dup_of`) | |
| 83 | +- **Salaire** : 40/66 actives (61 %) | |
| 84 | +- **GPS** : 0/66 actives (0 %) | |
| 85 | +- **Mode** : 0/66 actives (0 %) | |
| 86 | +- **Parution** : 0/66 actives (0 %) | |
| 87 | +- **Dernier sync** : 2026-08-19 04:48 — trouvées 66, +66, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 89 | + | |
| 90 | +## Erreurs & dépannage | |
| 91 | + | |
| 92 | +Aucune erreur dans `sync_log` pour cette source. | |
| 93 | + | |
| 94 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync hydroquebec` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='hydroquebec' ORDER BY ts DESC LIMIT 5;"` | |
| 95 | +- 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`. | |
| 96 | + | |
| 97 | +## Licence / conformité | |
| 98 | + | |
| 99 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Hydro-Québec » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 100 | + | |
| 101 | +## Historique | |
| 102 | + | |
| 103 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 104 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 105 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 106 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 107 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 108 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 109 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 110 | + | |
| 111 | +Commits touchant `jobka/connectors/hydroquebec.py` : | |
| 112 | + | |
| 113 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/ia_groupe.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ia_groupe.md |
| 7 | 7 | Rôle : Fiche connecteur — iA Groupe financier (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **17 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **17 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Agency Support Agent (Saint-Laurent, Montréal)* — Québec · With over $200 billion in assets and half a billion invested in technological innovation, … · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Agency Support Agent (Saint-Laurent, Montréal)* — Québec · With over $200 billion in assets and half a billion invested in technological innovation, … · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Agency Support Agent (Saint-Laurent, Montréal)* — Québec · | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 17 (dont **17 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 17/17 actives (100 %) |
| 86 | 86 | - **GPS** : 17/17 actives (100 %) |
| 87 | 87 | - **Mode** : 1/17 actives (6 %) |
| 88 | 88 | - **Parution** : 17/17 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:55 — trouvées 17, +0, ~17, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 27 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:03 — trouvées 17, +0, ~17, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 28 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/industrious.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/industrious.md |
| 7 | 7 | Rôle : Fiche connecteur — Industrious (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Tech Lead, DevOps Engineer* — Montréal · ∅ · parue le 20 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/1 actives (0 %) |
| 79 | 79 | - **GPS** : 1/1 actives (100 %) |
| 80 | 80 | - **Mode** : 0/1 actives (0 %) |
| 81 | 81 | - **Parution** : 1/1 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:55 — trouvées 1, +0, ~1, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:03 — trouvées 1, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/ino_ca.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ino_ca.md |
| 7 | 7 | Rôle : Fiche connecteur — Luqia (INO) (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **7 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **7 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Technicien.ne fabrication– systèmes optiques* — Québec · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 7 (dont **7 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/7 actives (0 %) |
| 79 | 79 | - **GPS** : 7/7 actives (100 %) |
| 80 | 80 | - **Mode** : 0/7 actives (0 %) |
| 81 | 81 | - **Parution** : 7/7 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 01:55 — trouvées 7, +0, ~7, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:03 — trouvées 7, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/intactfc.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/intactfc.md |
| 7 | 7 | Rôle : Fiche connecteur — Intact Corporation financière (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **23 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **23 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Préposé aux véhicules (valet) - Centre de service de Dorval* — Québec · ∅ · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Préposé aux véhicules (valet) - Centre de service de Dorval* — Québec · ∅ · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Préposé aux véhicules (valet) - Centre de service de Dorval* | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 24 (dont **23 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/23 actives (0 %) |
| 86 | 86 | - **GPS** : 23/23 actives (100 %) |
| 87 | 87 | - **Mode** : 0/23 actives (0 %) |
| 88 | 88 | - **Parution** : 23/23 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:55 — trouvées 23, +0, ~23, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:03 — trouvées 23, +0, ~20, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/investpsp.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/investpsp.md |
| 7 | 7 | Rôle : Fiche connecteur — Investissements PSP (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **43 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **43 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **43 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Analyst, Alternative Investments* — Montréal · Global Alpha - Alpha Alternatives is a CAD$19B AUM business with a mandate to deliver unco… · parue le 2026-08-18. | |
| 67 | +Exemple réel : *Analyst, Alternative Investments* — Montréal · Global Alpha - Alpha Alternatives is a CAD$19B AUM business with a mandate to deliver unco… · parue le 2026-08-17. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Analyst, Alternative Investments* — Montréal · Global Alpha | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 44 (dont **43 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 2/43 actives (5 %) |
| 86 | 86 | - **GPS** : 43/43 actives (100 %) |
| 87 | 87 | - **Mode** : 0/43 actives (0 %) |
| 88 | 88 | - **Parution** : 43/43 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:56 — trouvées 43, +0, ~43, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:04 — trouvées 43, +0, ~16, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/investquebec.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/investquebec.md |
| 7 | 7 | Rôle : Fiche connecteur — Investissement Québec (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **12 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **12 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **12 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Stagiaire, Directeur de comptes, Réseau régional (Québec, Ste-Marie ou St-Georges)* — Québec · Salaire : 20,87 $ à 30,93 $ de l’heure selon le niveau de scolarité · parue le 2026-07-29. | |
| 67 | +Exemple réel : *Stagiaire, Directeur de comptes, Réseau régional (Québec, Ste-Marie ou St-Georges)* — Québec · Salaire : 20,87 $ à 30,93 $ de l’heure selon le niveau de scolarité · parue le 2026-07-28. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Stagiaire, Directeur de comptes, Réseau régional (Québec, St | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 13 (dont **12 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 1/12 actives (8 %) |
| 86 | 86 | - **GPS** : 12/12 actives (100 %) |
| 87 | 87 | - **Mode** : 0/12 actives (0 %) |
| 88 | 88 | - **Parution** : 12/12 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:56 — trouvées 12, +0, ~12, -1 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:04 — trouvées 12, +0, ~10, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/jexcelleinc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/jexcelleinc.md |
| 7 | 7 | Rôle : Fiche connecteur — J'Excelle (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Orthopédagogue ou Enseignant à Trois-Rivières* — Trois-Riv | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/9 actives (0 %) |
| 84 | 84 | - **GPS** : 9/9 actives (100 %) |
| 85 | 85 | - **Mode** : 1/9 actives (11 %) |
| 86 | 86 | - **Parution** : 9/9 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 01:56 — trouvées 9, +0, ~9, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:04 — trouvées 9, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/jgrivesud.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/jgrivesud.md |
| 7 | 7 | Rôle : Fiche connecteur — JG Rive-Sud (GFS) (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **9 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Commis entrepôt au mixte -Soir* — Québec · Commis Mixte (Préparation / Tri) - Nuit, Permanent - Chambly : 17,77 $/h + Prime · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Commis entrepôt au mixte -Soir* — Québec · Commis Mixte (Préparation / Tri) - Nuit, Permanent - Chambly : 17,77 $/h + Prime · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Commis entrepôt au mixte -Soir* — Québec · Commis Mixte (P | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 10 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 6/9 actives (67 %) |
| 86 | 86 | - **GPS** : 9/9 actives (100 %) |
| 87 | 87 | - **Mode** : 0/9 actives (0 %) |
| 88 | 88 | - **Parution** : 9/9 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 01:57 — trouvées 9, +0, ~9, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:04 — trouvées 9, +0, ~7, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/jobillico.md
+16 −16
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/jobillico.md |
| 7 | 7 | Rôle : Fiche connecteur — portail agrégateur Jobillico |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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-08-19 03:39 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 **1937 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 42 | +Complétude mesurée sur les **2053 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | 43 | |
| 44 | 44 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 45 | 45 | |---|---|---| |
@@ -49,19 +49,19 @@ Complétude mesurée sur les **1937 offres actives** de la source (base live, 20 | ||
| 49 | 49 | | `description` — Description | texte complet (HTML nettoyé) | 100 % | |
| 50 | 50 | | `city` — Ville | municipalité normalisée | 100 % | |
| 51 | 51 | | `region` — Région | région administrative | 99 % | |
| 52 | −| `address` — Adresse | adresse du lieu de travail | 60 % | | |
| 52 | +| `address` — Adresse | adresse du lieu de travail | 61 % | | |
| 53 | 53 | | `postal_code` — Code postal | code postal si publié | 60 % | |
| 54 | 54 | | `work_mode` — Mode | presentiel / hybride / teletravail | 2 % | |
| 55 | −| `employment_type` — Type | temps_plein / temps_partiel / … | 26 % | | |
| 56 | −| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 38 % | | |
| 55 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 27 % | | |
| 56 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 37 % | | |
| 57 | 57 | | `salary_label` — Libellé salaire | texte salarial original | 4 % | |
| 58 | −| `benefits` — Avantages | avantages sociaux publiés (JSON) | 5 % | | |
| 59 | −| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 6 % | | |
| 58 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 4 % | | |
| 59 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 9 % | | |
| 60 | 60 | | `date_posted` — Date de parution | ISO 8601 | 100 % | |
| 61 | 61 | | `date_deadline` — Date limite | date limite pour postuler | 100 % | |
| 62 | 62 | | `category` — Catégorie | taxonomie interne (TI, Santé, …) | 83 % | |
| 63 | 63 | | `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | |
| 64 | −| `company_logo` — Logo employeur | URL du logo si exposé par la source | 10 % | | |
| 64 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 16 % | | |
| 65 | 65 | | `apply_url` — Candidature | lien de candidature directe | 0 % | |
| 66 | 66 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 67 | 67 | |
@@ -81,15 +81,15 @@ Exemple réel : *Porteur(euse)s aux funérailles* — Montréal · Rémunératio | ||
| 81 | 81 | |
| 82 | 82 | ## Volumétrie & complétude live |
| 83 | 83 | |
| 84 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 85 | 85 | |
| 86 | −- **Offres en base** : 2214 (dont **1937 actives**, 0 masquées comme doublons `dup_of`) | |
| 87 | −- **Salaire** : 733/1937 actives (38 %) | |
| 88 | −- **GPS** : 1937/1937 actives (100 %) | |
| 89 | −- **Mode** : 40/1937 actives (2 %) | |
| 90 | −- **Parution** : 1937/1937 actives (100 %) | |
| 91 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 212, +139, ~73, -0 | |
| 92 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 86 | +- **Offres en base** : 2280 (dont **2053 actives**, 13 masquées comme doublons `dup_of`) | |
| 87 | +- **Salaire** : 769/2053 actives (37 %) | |
| 88 | +- **GPS** : 2053/2053 actives (100 %) | |
| 89 | +- **Mode** : 42/2053 actives (2 %) | |
| 90 | +- **Parution** : 2053/2053 actives (100 %) | |
| 91 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 396, +66, ~118, -1 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 93 | 93 | |
| 94 | 94 | ## Erreurs & dépannage |
| 95 | 95 | |
modified
docs/connecteurs/korem.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/korem.md |
| 7 | 7 | Rôle : Fiche connecteur — Korem (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Contrôleur·euse de projet (PCO)* — Québec · ∅ · parue | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 4 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/4 actives (0 %) |
| 84 | 84 | - **GPS** : 4/4 actives (100 %) |
| 85 | 85 | - **Mode** : 4/4 actives (100 %) |
| 86 | 86 | - **Parution** : 4/4 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 4, +0, ~4, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 4, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/kpidigital.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/kpidigital.md |
| 7 | 7 | Rôle : Fiche connecteur — KPI Digital (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Senior Manager-Consulting/ Gestionnaire senior – consultant(e | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 11 (dont **11 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/11 actives (0 %) |
| 84 | 84 | - **GPS** : 11/11 actives (100 %) |
| 85 | 85 | - **Mode** : 11/11 actives (100 %) |
| 86 | 86 | - **Parution** : 11/11 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 11, +0, ~11, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 11, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
renamed
docs/connecteurs/ttcglobal.md → docs/connecteurs/kruger.md
+28 −20
@@ -3,34 +3,37 @@ | ||
| 3 | 3 | Job·Ka — Groupe KA |
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | −Fichier : docs/connecteurs/ttcglobal.md | |
| 7 | −Rôle : Fiche connecteur — TTC Global (employeur direct, ATS greenhouse) | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 6 | +Fichier : docs/connecteurs/kruger.md | |
| 7 | +Rôle : Fiche connecteur — Kruger (employeur direct, ATS taleo_tbe) | |
| 8 | +Généré : 2026-08-19 05:40 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 | −# TTC Global (`ttcglobal`) | |
| 13 | +# Kruger (`kruger`) | |
| 14 | 14 | |
| 15 | −**Employeur direct** · Plateforme ATS : [`greenhouse`](ats-greenhouse.md) · Statut registre : actif · Connecteur : `jobka/connectors/ttcglobal.py` | |
| 15 | +**Employeur direct** · Plateforme ATS : [`taleo_tbe`](ats-taleo_tbe.md) · Statut registre : actif · Connecteur : `jobka/connectors/kruger.py` | |
| 16 | 16 | |
| 17 | 17 | ## Description |
| 18 | 18 | |
| 19 | −- **Site** : [TTC Global]() | |
| 20 | −- **Page carrières** : https://job-boards.greenhouse.io/ttcglobal | |
| 21 | −- **Secteurs** : TI, Conseil | |
| 22 | −- **Région** : Montréal | |
| 19 | +- **Site** : [Kruger](https://www.kruger.com) | |
| 20 | +- **Page carrières** : https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=KRUGER2&cws=76 | |
| 21 | +- **Secteurs** : Pâtes et papiers, Manufacturier | |
| 22 | +- **Région** : Montréal, Trois-Rivières | |
| 23 | 23 | - Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. |
| 24 | 24 | |
| 25 | 25 | ## Accès |
| 26 | 26 | |
| 27 | −- **Mécanique** : voir la fiche plateforme [`ats-greenhouse.md`](ats-greenhouse.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-taleo_tbe.md`](ats-taleo_tbe.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | 28 | - **Identifiants du tenant** (attributs du connecteur) : |
| 29 | 29 | |
| 30 | 30 | | Attribut | Valeur | |
| 31 | 31 | |---|---| |
| 32 | −| `BOARD` | `ttcglobal` | | |
| 33 | −| `EMPLOYER` | `TTC Global` | | |
| 32 | +| `CWS` | `76` | | |
| 33 | +| `EMPLOYER` | `Kruger` | | |
| 34 | +| `HOST` | `tre` | | |
| 35 | +| `INST` | `tre01` | | |
| 36 | +| `ORG` | `KRUGER2` | | |
| 34 | 37 | - **Throttle** : 1.0 s entre requêtes. |
| 35 | 38 | - **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). |
| 36 | 39 | |
@@ -42,30 +45,35 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 42 | 45 | |
| 43 | 46 | - **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. |
| 44 | 47 | - **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). |
| 48 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 49 | + | |
| 50 | +| Variable | Défaut | | |
| 51 | +|---|---| | |
| 52 | +| `JOBKA_TBE_DETAIL_LIMIT` | `60` | | |
| 45 | 53 | - Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. |
| 46 | 54 | |
| 47 | 55 | ## Volumétrie & complétude live |
| 48 | 56 | |
| 49 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 57 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 50 | 58 | |
| 51 | −- **Offres en base** : 3 (dont **0 actives**, 0 masquées comme doublons `dup_of`) | |
| 59 | +- **Offres en base** : 0 (dont **0 actives**, 0 masquées comme doublons `dup_of`) | |
| 52 | 60 | - **Salaire** : 0/0 actives (—) |
| 53 | 61 | - **GPS** : 0/0 actives (—) |
| 54 | 62 | - **Mode** : 0/0 actives (—) |
| 55 | 63 | - **Parution** : 0/0 actives (—) |
| 56 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 0, +0, ~0, -0 | |
| 57 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 64 | +- **Dernier sync** : 2026-08-19 04:47 — trouvées 0, +0, ~0, -0 | |
| 65 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 58 | 66 | |
| 59 | 67 | ## Erreurs & dépannage |
| 60 | 68 | |
| 61 | 69 | Aucune erreur dans `sync_log` pour cette source. |
| 62 | 70 | |
| 63 | −- Rejouer un sync isolé : `.venv/bin/python run.py sync ttcglobal` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='ttcglobal' ORDER BY ts DESC LIMIT 5;"` | |
| 71 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync kruger` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='kruger' ORDER BY ts DESC LIMIT 5;"` | |
| 64 | 72 | - 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`. |
| 65 | 73 | |
| 66 | 74 | ## Licence / conformité |
| 67 | 75 | |
| 68 | −**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez TTC Global » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 76 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Kruger » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 69 | 77 | |
| 70 | 78 | ## Historique |
| 71 | 79 | |
@@ -77,6 +85,6 @@ Aucune erreur dans `sync_log` pour cette source. | ||
| 77 | 85 | - `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; |
| 78 | 86 | - `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). |
| 79 | 87 | |
| 80 | −Commits touchant `jobka/connectors/ttcglobal.py` : | |
| 88 | +Commits touchant `jobka/connectors/kruger.py` : | |
| 81 | 89 | |
| 82 | −- `4657429` 2026-08-17 Création massive : 135 connecteurs employeurs québécois sur 9 plateformes ATS | |
| 90 | +- `89f9713` 2026-08-19 Nouvelle famille ATS Taleo Business Edition (taleo_tbe) : flux RSS public + JSON-LD des pages requisition (lieu, dates, description complète), filtre Québec différé tant que le détail n'est pas visité. Connecteurs : Sépaq (99), Kruger (corporatif, filtre QC), Produits Kruger, exo (25), HEC Montréal personnel (9) + corps professoral (9). Fixture sepaq (121 requêtes rejouables). TÉLUQ écarté (tenant TBE fermé). | |
modified
docs/connecteurs/labelink.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/labelink.md |
| 7 | 7 | Rôle : Fiche connecteur — Produits Labelink (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Opérateur/trice de Presse - Imprimerie Soir* — Montréal · | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 17 (dont **17 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/17 actives (0 %) |
| 84 | 84 | - **GPS** : 17/17 actives (100 %) |
| 85 | 85 | - **Mode** : 17/17 actives (100 %) |
| 86 | 86 | - **Parution** : 17/17 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 17, +0, ~17, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 17, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/lamour.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/lamour.md |
| 7 | 7 | Rôle : Fiche connecteur — Lamour (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Comptable principal(e) / Senior Accountant* — Montréal · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 11 (dont **11 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/11 actives (0 %) |
| 79 | 79 | - **GPS** : 11/11 actives (100 %) |
| 80 | 80 | - **Mode** : 0/11 actives (0 %) |
| 81 | 81 | - **Parution** : 11/11 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 11, +0, ~11, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 11, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/lassonde.md
+42 −22
@@ -4,64 +4,83 @@ Job·Ka — Groupe KA | ||
| 4 | 4 | Auteur : Simon-Pierre Boucher |
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/lassonde.md |
| 7 | −Rôle : Fiche connecteur — Industries Lassonde (employeur direct, ATS adp) | |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 7 | +Rôle : Fiche connecteur — Industries Lassonde (employeur direct, ATS custom) | |
| 8 | +Généré : 2026-08-19 05:40 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 | # Industries Lassonde (`lassonde`) |
| 14 | 14 | |
| 15 | −**Employeur direct** · Plateforme ATS : [`adp`](ats-adp.md) · Statut registre : actif · Connecteur : `jobka/connectors/lassonde.py` | |
| 15 | +**Employeur direct** · Plateforme ATS : [`custom`](ats-custom.md) · Statut registre : actif · Connecteur : `jobka/connectors/lassonde.py` | |
| 16 | 16 | |
| 17 | 17 | ## Description |
| 18 | 18 | |
| 19 | 19 | - **Site** : [Industries Lassonde](https://www.lassonde.com) |
| 20 | −- **Page carrières** : https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=f96ce972-7721-4c7b-99ea-9a970ddc824a&ccId=19000101_000001&lang=fr_CA | |
| 20 | +- **Page carrières** : https://www.lassonde.com/fr/emplois/ | |
| 21 | 21 | - **Secteurs** : Agroalimentaire, Fabrication |
| 22 | 22 | - **Région** : Rougemont, Montréal |
| 23 | 23 | - Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. |
| 24 | 24 | |
| 25 | 25 | ## Accès |
| 26 | 26 | |
| 27 | −- **Mécanique** : voir la fiche plateforme [`ats-adp.md`](ats-adp.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-custom.md`](ats-custom.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | 28 | - **Identifiants du tenant** (attributs du connecteur) : |
| 29 | 29 | |
| 30 | 30 | | Attribut | Valeur | |
| 31 | 31 | |---|---| |
| 32 | −| `CCID` | `9200604444876_2` | | |
| 33 | −| `CID` | `f96ce972-7721-4c7b-99ea-9a970ddc824a` | | |
| 34 | 32 | | `EMPLOYER` | `Industries Lassonde` | |
| 35 | −| `LANG` | `fr_CA` | | |
| 33 | +| `LIST_URL` | `https://www.lassonde.com/fr/emplois/` | | |
| 36 | 34 | - **Throttle** : 1.0 s entre requêtes. |
| 37 | 35 | - **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). |
| 38 | 36 | |
| 39 | 37 | ## Champs → schéma |
| 40 | 38 | |
| 41 | −*Aucune offre active en base pour cette source.* | |
| 39 | +Complétude mesurée sur les **31 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | + | |
| 41 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 42 | +|---|---|---| | |
| 43 | +| `title` — Titre | titre du poste | 100 % | | |
| 44 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 45 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 46 | +| `description` — Description | texte complet (HTML nettoyé) | 0 % | | |
| 47 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 48 | +| `region` — Région | région administrative | 100 % | | |
| 49 | +| `address` — Adresse | adresse du lieu de travail | 0 % | | |
| 50 | +| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 51 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 52 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 0 % | | |
| 53 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 0 % | | |
| 54 | +| `salary_label` — Libellé salaire | texte salarial original | 0 % | | |
| 55 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 56 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 57 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 58 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 59 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 52 % | | |
| 60 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 0 % | | |
| 61 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 62 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 63 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 64 | + | |
| 65 | +Exemple réel : *Analyste en prix de revient* — Rougemont · ∅ · parue le 2026-08-17. | |
| 42 | 66 | |
| 43 | 67 | ## Fréquence & budgets |
| 44 | 68 | |
| 45 | 69 | - **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. |
| 46 | 70 | - **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). |
| 47 | −- **Budgets / plafonds (variables d'environnement)** : | |
| 48 | − | |
| 49 | −| Variable | Défaut | | |
| 50 | −|---|---| | |
| 51 | −| `JOBKA_ADP_DETAIL_LIMIT` | `80` | | |
| 52 | 71 | - Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. |
| 53 | 72 | |
| 54 | 73 | ## Volumétrie & complétude live |
| 55 | 74 | |
| 56 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 57 | 76 | |
| 58 | −- **Offres en base** : 0 (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-08-19 02:02 — trouvées 0, +0, ~0, -0 | |
| 64 | −- **Syncs enregistrés** (`sync_log`) : 15 | |
| 77 | +- **Offres en base** : 31 (dont **31 actives**, 0 masquées comme doublons `dup_of`) | |
| 78 | +- **Salaire** : 0/31 actives (0 %) | |
| 79 | +- **GPS** : 0/31 actives (0 %) | |
| 80 | +- **Mode** : 0/31 actives (0 %) | |
| 81 | +- **Parution** : 31/31 actives (100 %) | |
| 82 | +- **Dernier sync** : 2026-08-19 04:49 — trouvées 31, +31, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 17 | |
| 65 | 84 | |
| 66 | 85 | ## Erreurs & dépannage |
| 67 | 86 | |
@@ -86,4 +105,5 @@ Aucune erreur dans `sync_log` pour cette source. | ||
| 86 | 105 | |
| 87 | 106 | Commits touchant `jobka/connectors/lassonde.py` : |
| 88 | 107 | |
| 108 | +- `86b0d0b` 2026-08-19 Famille Workland réécrite sur l'API JSON publique du frontal Atlas (jobs-prod published-external + default-profiles) : descriptions complètes fr/en, lieux géocodés, dates, mode de travail — 2 requêtes par cycle pour TOUT le réseau. Nouveau connecteur réseau atlas_workland (~80 employeurs QC : CSS scolaires, cégeps, CIUSSS Ouest-de-l'Île, Santé Québec Côte-Nord, ICM, STQ, UQTR, INRS… ; 1 238 offres QC). Connecteur cssdm retiré (couvert par le réseau), fixture remplacée par atlas_workland (sous-ensemble rejouable). Corrige la limite « workland description 0 % ». | |
| 89 | 109 | - `4917d57` 2026-08-18 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics et grands employeurs QC |
modified
docs/connecteurs/levio.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/levio.md |
| 7 | 7 | Rôle : Fiche connecteur — Levio (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **42 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **42 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Conseiller.ère en analyse fonctionnelle IA* — Montréal · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 42 (dont **42 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/42 actives (0 %) |
| 79 | 79 | - **GPS** : 42/42 actives (100 %) |
| 80 | 80 | - **Mode** : 0/42 actives (0 %) |
| 81 | 81 | - **Parution** : 42/42 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 42, +0, ~42, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 42, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/lg2.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/lg2.md |
| 7 | 7 | Rôle : Fiche connecteur — LG2 (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **14 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **14 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Directeur·trice principal·e, Culture et talents* — Montréa | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 14 (dont **14 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/14 actives (7 %) |
| 79 | 79 | - **GPS** : 14/14 actives (100 %) |
| 80 | 80 | - **Mode** : 14/14 actives (100 %) |
| 81 | 81 | - **Parution** : 14/14 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 14, +0, ~14, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 14, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/lidd.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/lidd.md |
| 7 | 7 | Rôle : Fiche connecteur — LIDD Consultants (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Consultant WMS / WMS Consultant* — Montréal · ∅ · parue | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/8 actives (0 %) |
| 79 | 79 | - **GPS** : 8/8 actives (100 %) |
| 80 | 80 | - **Mode** : 0/8 actives (0 %) |
| 81 | 81 | - **Parution** : 8/8 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 8, +0, ~8, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 8, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/lightspeedhq.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/lightspeedhq.md |
| 7 | 7 | Rôle : Fiche connecteur — Lightspeed Commerce (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **56 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **56 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Principal Product Designer, Retail* — Montréal · $200K - $2 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 58 (dont **56 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 4/56 actives (7 %) |
| 79 | 79 | - **GPS** : 55/56 actives (98 %) |
| 80 | 80 | - **Mode** : 56/56 actives (100 %) |
| 81 | 81 | - **Parution** : 56/56 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 56, +0, ~56, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 56, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/logisco.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/logisco.md |
| 7 | 7 | Rôle : Fiche connecteur — Logisco (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **12 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **12 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Réceptionniste d'hôtel - temps partiel* — Québec · Salair | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 13 (dont **12 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 5/12 actives (42 %) |
| 84 | 84 | - **GPS** : 12/12 actives (100 %) |
| 85 | 85 | - **Mode** : 12/12 actives (100 %) |
| 86 | 86 | - **Parution** : 12/12 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 12, +0, ~12, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 12, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/lush.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/lush.md |
| 7 | 7 | Rôle : Fiche connecteur — Lush Cosmétiques (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Assistant Gerant - Galeries d'Anjou* — Montréal · Salaire: | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 5/5 actives (100 %) |
| 79 | 79 | - **GPS** : 5/5 actives (100 %) |
| 80 | 80 | - **Mode** : 0/5 actives (0 %) |
| 81 | 81 | - **Parution** : 5/5 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 5, +0, ~5, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 5, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
added
docs/connecteurs/mackenzie.md
+113 −0
@@ -0,0 +1,113 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/mackenzie.md | |
| 7 | +Rôle : Fiche connecteur — Placements Mackenzie (Power/IGM) (employeur direct, ATS icims) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Placements Mackenzie (Power/IGM) (`mackenzie`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`icims`](ats-icims.md) · Statut registre : actif · Connecteur : `jobka/connectors/mackenzie.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Placements Mackenzie (Power/IGM)](https://www.placementsmackenzie.com) | |
| 20 | +- **Page carrières** : https://careersfr-mackenzieinvestments.icims.com/jobs/search?ss=1 | |
| 21 | +- **Secteurs** : Finance | |
| 22 | +- **Région** : Montréal | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-icims.md`](ats-icims.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `EMPLOYER` | `Placements Mackenzie` | | |
| 33 | +| `SUB` | `careersfr-mackenzieinvestments` | | |
| 34 | +- **Throttle** : 1.0 s entre requêtes. | |
| 35 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 36 | + | |
| 37 | +## Champs → schéma | |
| 38 | + | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | + | |
| 41 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 42 | +|---|---|---| | |
| 43 | +| `title` — Titre | titre du poste | 100 % | | |
| 44 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 45 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 46 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 47 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 48 | +| `region` — Région | région administrative | 100 % | | |
| 49 | +| `address` — Adresse | adresse du lieu de travail | 100 % | | |
| 50 | +| `postal_code` — Code postal | code postal si publié | 100 % | | |
| 51 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 52 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 33 % | | |
| 53 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 100 % | | |
| 54 | +| `salary_label` — Libellé salaire | texte salarial original | 100 % | | |
| 55 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 56 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 57 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 58 | +| `date_deadline` — Date limite | date limite pour postuler | 100 % | | |
| 59 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 100 % | | |
| 60 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 61 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 62 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 63 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 64 | + | |
| 65 | +Exemple réel : *UNAVAILABLE* — Montréal · La fourchette de salaire de base annuelle prévue (au prorata pour la durée du poste) pour … · parue le 2026-08-17. | |
| 66 | + | |
| 67 | +## Fréquence & budgets | |
| 68 | + | |
| 69 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 70 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 71 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 72 | + | |
| 73 | +| Variable | Défaut | | |
| 74 | +|---|---| | |
| 75 | +| `JOBKA_ICIMS_DETAIL_LIMIT` | `150` | | |
| 76 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 77 | + | |
| 78 | +## Volumétrie & complétude live | |
| 79 | + | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | + | |
| 82 | +- **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) | |
| 83 | +- **Salaire** : 3/3 actives (100 %) | |
| 84 | +- **GPS** : 0/3 actives (0 %) | |
| 85 | +- **Mode** : 0/3 actives (0 %) | |
| 86 | +- **Parution** : 3/3 actives (100 %) | |
| 87 | +- **Dernier sync** : 2026-08-19 04:49 — trouvées 3, +3, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 89 | + | |
| 90 | +## Erreurs & dépannage | |
| 91 | + | |
| 92 | +Aucune erreur dans `sync_log` pour cette source. | |
| 93 | + | |
| 94 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync mackenzie` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='mackenzie' ORDER BY ts DESC LIMIT 5;"` | |
| 95 | +- 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`. | |
| 96 | + | |
| 97 | +## Licence / conformité | |
| 98 | + | |
| 99 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Placements Mackenzie (Power/IGM) » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 100 | + | |
| 101 | +## Historique | |
| 102 | + | |
| 103 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 104 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 105 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 106 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 107 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 108 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 109 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 110 | + | |
| 111 | +Commits touchant `jobka/connectors/mackenzie.py` : | |
| 112 | + | |
| 113 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/maintainx.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/maintainx.md |
| 7 | 7 | Rôle : Fiche connecteur — MaintainX (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **78 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **78 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Product Design Manager* — Montréal · We raised $150M in Ser | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 79 (dont **78 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 5/78 actives (6 %) |
| 79 | 79 | - **GPS** : 65/78 actives (83 %) |
| 80 | 80 | - **Mode** : 78/78 actives (100 %) |
| 81 | 81 | - **Parution** : 78/78 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:02 — trouvées 78, +0, ~78, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:10 — trouvées 78, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/manulife.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/manulife.md |
| 7 | 7 | Rôle : Fiche connecteur — Manuvie (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **51 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **51 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **51 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 75 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Bilingual Client Service Specialist – AdminAdvantage* — Montréal · $56,175.00 CAD - $93,625.00 CAD · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Bilingual Client Service Specialist – AdminAdvantage* — Montréal · $56,175.00 CAD - $93,625.00 CAD · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Bilingual Client Service Specialist – AdminAdvantage* — Mon | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 57 (dont **51 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 46/51 actives (90 %) |
| 86 | 86 | - **GPS** : 38/51 actives (75 %) |
| 87 | 87 | - **Mode** : 15/51 actives (29 %) |
| 88 | 88 | - **Parution** : 51/51 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:04 — trouvées 51, +0, ~51, -2 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:11 — trouvées 51, +0, ~48, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/mattelinc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mattelinc.md |
| 7 | 7 | Rôle : Fiche connecteur — Mattel (Mega Bloks) (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Gestionnaire, ingénierie de la qualité - Mattel Brick Shop* | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/6 actives (0 %) |
| 84 | 84 | - **GPS** : 6/6 actives (100 %) |
| 85 | 85 | - **Mode** : 1/6 actives (17 %) |
| 86 | 86 | - **Parution** : 6/6 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:04 — trouvées 6, +0, ~6, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:11 — trouvées 6, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/mccarthy_tetrault.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mccarthy_tetrault.md |
| 7 | 7 | Rôle : Fiche connecteur — McCarthy Tétrault (employeur direct, ATS icims) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **22 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **22 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Senior Paralegal, Business Law* — Québec · ∅ · parue le | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 22 (dont **22 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/22 actives (0 %) |
| 84 | 84 | - **GPS** : 22/22 actives (100 %) |
| 85 | 85 | - **Mode** : 2/22 actives (9 %) |
| 86 | 86 | - **Parution** : 22/22 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:05 — trouvées 22, +0, ~22, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:11 — trouvées 22, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/mcgill.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mcgill.md |
| 7 | 7 | Rôle : Fiche connecteur — Université McGill (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **193 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **193 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **193 offres actives** de la source (base live, 202 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Technical Specialist - Assistant Coach Rowing* — Montréal · (AMUSE C) $17.17 · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Technical Specialist - Assistant Coach Rowing* — Montréal · (AMUSE C) $17.17 · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Technical Specialist - Assistant Coach Rowing* — Montréal · | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 211 (dont **193 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 136/193 actives (70 %) |
| 86 | 86 | - **GPS** : 193/193 actives (100 %) |
| 87 | 87 | - **Mode** : 0/193 actives (0 %) |
| 88 | 88 | - **Parution** : 193/193 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:09 — trouvées 193, +0, ~193, -9 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:14 — trouvées 193, +0, ~165, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/mckesson.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mckesson.md |
| 7 | 7 | Rôle : Fiche connecteur — McKesson Canada (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **43 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **43 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **43 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 86 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Employee Care Knowledge & Content Specialist* — Montréal · $77,600 - $129,300 · parue le 2026-08-18. | |
| 67 | +Exemple réel : *Employee Care Knowledge & Content Specialist* — Montréal · $77,600 - $129,300 · parue le 2026-08-17. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Employee Care Knowledge & Content Specialist* — Montréal · | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 43 (dont **43 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 36/43 actives (84 %) |
| 86 | 86 | - **GPS** : 37/43 actives (86 %) |
| 87 | 87 | - **Mode** : 40/43 actives (93 %) |
| 88 | 88 | - **Parution** : 43/43 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 43, +0, ~43, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 43, +0, ~31, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/medfar.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/medfar.md |
| 7 | 7 | Rôle : Fiche connecteur — MEDFAR Solutions Cliniques (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Spécialiste soutien à la facturation* — Montréal · ∅ · | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 23 (dont **23 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/23 actives (0 %) |
| 84 | 84 | - **GPS** : 23/23 actives (100 %) |
| 85 | 85 | - **Mode** : 22/23 actives (96 %) |
| 86 | 86 | - **Parution** : 23/23 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 23, +0, ~23, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 23, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/medialo.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/medialo.md |
| 7 | 7 | Rôle : Fiche connecteur — Médialo (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Contrôleur-Contrôleuse* — Saint-Sauveur-des-Monts · ∅ · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/5 actives (0 %) |
| 79 | 79 | - **GPS** : 4/5 actives (80 %) |
| 80 | 80 | - **Mode** : 5/5 actives (100 %) |
| 81 | 81 | - **Parution** : 5/5 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 5, +0, ~5, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 5, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/messer_canada.md
+6 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/messer_canada.md |
| 7 | 7 | Rôle : Fiche connecteur — Messer Canada (employeur direct, ATS ultipro) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -31,13 +31,14 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 31 | 31 | |---|---| |
| 32 | 32 | | `BOARD` | `dbd63926-d756-486f-a254-b2a6ede1d26e` | |
| 33 | 33 | | `EMPLOYER` | `Messer Canada` | |
| 34 | +| `HOST` | `recruiting.ultipro.com` | | |
| 34 | 35 | | `ORG` | `MES1005MESR` | |
| 35 | 36 | - **Throttle** : 0.8 s entre requêtes. |
| 36 | 37 | - **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). |
| 37 | 38 | |
| 38 | 39 | ## Champs → schéma |
| 39 | 40 | |
| 40 | −Complétude mesurée sur les **22 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **22 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 41 | 42 | |
| 42 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 43 | 44 | |---|---|---| |
@@ -78,15 +79,15 @@ Exemple réel : *Chauffeur-Livreur (Prime À La Signature De $3000)* — Montré | ||
| 78 | 79 | |
| 79 | 80 | ## Volumétrie & complétude live |
| 80 | 81 | |
| 81 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 82 | 83 | |
| 83 | 84 | - **Offres en base** : 22 (dont **22 actives**, 0 masquées comme doublons `dup_of`) |
| 84 | 85 | - **Salaire** : 20/22 actives (91 %) |
| 85 | 86 | - **GPS** : 22/22 actives (100 %) |
| 86 | 87 | - **Mode** : 0/22 actives (0 %) |
| 87 | 88 | - **Parution** : 22/22 actives (100 %) |
| 88 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 22, +0, ~22, -0 | |
| 89 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 22, +0, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 15 | |
| 90 | 91 | |
| 91 | 92 | ## Erreurs & dépannage |
| 92 | 93 | |
modified
docs/connecteurs/microhabitat.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/microhabitat.md |
| 7 | 7 | Rôle : Fiche connecteur — MicroHabitat (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Coordonnateur·trice en agriculture urbaine - Urban Farming Coo | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 13 (dont **13 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 13/13 actives (100 %) |
| 79 | 79 | - **GPS** : 13/13 actives (100 %) |
| 80 | 80 | - **Mode** : 5/13 actives (38 %) |
| 81 | 81 | - **Parution** : 13/13 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 13, +0, ~13, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 13, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/mila_2.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mila_2.md |
| 7 | 7 | Rôle : Fiche connecteur — Mila — Institut québécois d'IA (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Coordonnateur.trice, Gouvernance de l’IA / Coordinator, AI Go | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/8 actives (0 %) |
| 79 | 79 | - **GPS** : 8/8 actives (100 %) |
| 80 | 80 | - **Mode** : 0/8 actives (0 %) |
| 81 | 81 | - **Parution** : 8/8 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 8, +0, ~8, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 8, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/mirego.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mirego.md |
| 7 | 7 | Rôle : Fiche connecteur — Mirego (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Chargé(e) de projets agiles* — Québec · ∅ · parue le 20 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 11 (dont **11 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/11 actives (0 %) |
| 79 | 79 | - **GPS** : 11/11 actives (100 %) |
| 80 | 80 | - **Mode** : 11/11 actives (100 %) |
| 81 | 81 | - **Parution** : 11/11 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 11, +0, ~11, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 11, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/mistplay.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mistplay.md |
| 7 | 7 | Rôle : Fiche connecteur — Mistplay (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Senior Motion Designer II* — Montréal · ∅ · parue le 202 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/3 actives (33 %) |
| 79 | 79 | - **GPS** : 3/3 actives (100 %) |
| 80 | 80 | - **Mode** : 3/3 actives (100 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 3, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/mistral_ai.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mistral_ai.md |
| 7 | 7 | Rôle : Fiche connecteur — Mistral AI (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Applied AI Engineer, CyberSecurity - Montreal* — Montréal · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/5 actives (0 %) |
| 79 | 79 | - **GPS** : 5/5 actives (100 %) |
| 80 | 80 | - **Mode** : 0/5 actives (0 %) |
| 81 | 81 | - **Parution** : 5/5 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 5, +0, ~5, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 5, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/mitacs.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mitacs.md |
| 7 | 7 | Rôle : Fiche connecteur — Mitacs (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Coordinateur ou coordinatrice bilingue des RH / Bilingual HR Co | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 4 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 4/4 actives (100 %) |
| 84 | 84 | - **GPS** : 4/4 actives (100 %) |
| 85 | 85 | - **Mode** : 4/4 actives (100 %) |
| 86 | 86 | - **Parution** : 4/4 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 4, +0, ~4, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 4, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/mitsubishi_hc_capital.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mitsubishi_hc_capital.md |
| 7 | 7 | Rôle : Fiche connecteur — Mitsubishi HC Capital Canada (employeur direct, ATS adp) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,15 +79,15 @@ Exemple réel : *Analyste de crédit* — Trois-Rivières · ∅ · parue le 202 | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 3/6 actives (50 %) |
| 86 | 86 | - **GPS** : 6/6 actives (100 %) |
| 87 | 87 | - **Mode** : 0/6 actives (0 %) |
| 88 | 88 | - **Parution** : 6/6 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 6, +0, ~6, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 6, +0, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/msi_gestion.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/msi_gestion.md |
| 7 | 7 | Rôle : Fiche connecteur — MSI Gestion immobilière (employeur direct, ATS adp) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,15 +79,15 @@ Exemple réel : *400-Technicien(ne) comptable* — Québec · Salaire : Selon la | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 6/6 actives (100 %) |
| 86 | 86 | - **GPS** : 6/6 actives (100 %) |
| 87 | 87 | - **Mode** : 0/6 actives (0 %) |
| 88 | 88 | - **Parution** : 6/6 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 6, +0, ~6, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 6, +0, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/mthreerecruitingportal.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mthreerecruitingportal.md |
| 7 | 7 | Rôle : Fiche connecteur — mthree (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **22 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **22 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *KYC Analyst* — Montréal · ∅ · parue le 2026-08-18. | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 22 (dont **22 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/22 actives (0 %) |
| 79 | 79 | - **GPS** : 22/22 actives (100 %) |
| 80 | 80 | - **Mode** : 5/22 actives (23 %) |
| 81 | 81 | - **Parution** : 22/22 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 22, +0, ~22, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 22, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/mxo.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/mxo.md |
| 7 | 7 | Rôle : Fiche connecteur — MXO (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Développeur·e Full Stack* — Québec · 70 080 $ - 105 120$ | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 7 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 5/6 actives (83 %) |
| 84 | 84 | - **GPS** : 6/6 actives (100 %) |
| 85 | 85 | - **Mode** : 6/6 actives (100 %) |
| 86 | 86 | - **Parution** : 6/6 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 6, +0, ~6, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 6, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/national.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/national.md |
| 7 | 7 | Rôle : Fiche connecteur — NATIONAL (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Conseiller(ère), Relations médias, positionnement corporatif | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/1 actives (0 %) |
| 79 | 79 | - **GPS** : 1/1 actives (100 %) |
| 80 | 80 | - **Mode** : 0/1 actives (0 %) |
| 81 | 81 | - **Parution** : 1/1 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 1, +0, ~1, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 1, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/nexapp.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/nexapp.md |
| 7 | 7 | Rôle : Fiche connecteur — Nexapp (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Designer de produit senior.e* — Québec · ∅ · parue le 20 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/6 actives (0 %) |
| 84 | 84 | - **GPS** : 6/6 actives (100 %) |
| 85 | 85 | - **Mode** : 6/6 actives (100 %) |
| 86 | 86 | - **Parution** : 6/6 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 6, +0, ~6, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 6, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/no_saint.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/no_saint.md |
| 7 | 7 | Rôle : Fiche connecteur — No Saint (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Office Manager* — Montréal · ∅ · parue le 2026-07-23. | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/3 actives (0 %) |
| 79 | 79 | - **GPS** : 3/3 actives (100 %) |
| 80 | 80 | - **Mode** : 3/3 actives (100 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 3, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/nomic.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/nomic.md |
| 7 | 7 | Rôle : Fiche connecteur — Nomic Bio (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Profiling Lab Operations Associate* — Montréal · ∅ · par | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 4 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/4 actives (0 %) |
| 79 | 79 | - **GPS** : 3/4 actives (75 %) |
| 80 | 80 | - **Mode** : 4/4 actives (100 %) |
| 81 | 81 | - **Parution** : 4/4 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 4, +0, ~4, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 4, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/nora_pharma.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/nora_pharma.md |
| 7 | 7 | Rôle : Fiche connecteur — Nora Pharma (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Technicien(ne) en pharmacie* — Granby · $35 – $40 / hour | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 9/9 actives (100 %) |
| 79 | 79 | - **GPS** : 8/9 actives (89 %) |
| 80 | 80 | - **Mode** : 0/9 actives (0 %) |
| 81 | 81 | - **Parution** : 9/9 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 9, +0, ~9, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 9, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
added
docs/connecteurs/nortera.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/nortera.md | |
| 7 | +Rôle : Fiche connecteur — Nortera (employeur direct, ATS ultipro) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Nortera (`nortera`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`ultipro`](ats-ultipro.md) · Statut registre : actif · Connecteur : `jobka/connectors/nortera.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Nortera](https://norterafoods.com) | |
| 20 | +- **Page carrières** : https://recruiting.ultipro.ca/NOR5100NOFD/JobBoard/e3ce2e8a-b8fc-42c9-97cf-ea17f4d5dd1d/ | |
| 21 | +- **Secteurs** : Agroalimentaire, Manufacturier | |
| 22 | +- **Région** : Montérégie, Brossard | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-ultipro.md`](ats-ultipro.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `BOARD` | `e3ce2e8a-b8fc-42c9-97cf-ea17f4d5dd1d` | | |
| 33 | +| `EMPLOYER` | `Nortera` | | |
| 34 | +| `HOST` | `recruiting.ultipro.ca` | | |
| 35 | +| `ORG` | `NOR5100NOFD` | | |
| 36 | +- **Throttle** : 0.8 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **24 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 52 | +| `postal_code` — Code postal | code postal si publié | 100 % | | |
| 53 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 4 % | | |
| 54 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 100 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 62 % | | |
| 56 | +| `salary_label` — Libellé salaire | texte salarial original | 62 % | | |
| 57 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 58 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 59 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 60 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 61 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 92 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Préposé au département de l’emballage de soir* — Bedford · Salaire de 21.21$ + 1,25$ prime de soir = 22,46$ · parue le 2026-08-14. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 0.8 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_ULTIPRO_DETAIL_LIMIT` | `80` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 24 (dont **24 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 15/24 actives (62 %) | |
| 86 | +- **GPS** : 0/24 actives (0 %) | |
| 87 | +- **Mode** : 1/24 actives (4 %) | |
| 88 | +- **Parution** : 24/24 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:49 — trouvées 24, +24, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync nortera` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='nortera' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Nortera » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/nortera.py` : | |
| 114 | + | |
| 115 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/northwestrubber.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/northwestrubber.md |
| 7 | 7 | Rôle : Fiche connecteur — North West Rubber (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Superviseur de production - Quart de soir* — Québec · À di | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/6 actives (0 %) |
| 84 | 84 | - **GPS** : 6/6 actives (100 %) |
| 85 | 85 | - **Mode** : 6/6 actives (100 %) |
| 86 | 86 | - **Parution** : 6/6 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 6, +0, ~6, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 6, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/novipro.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/novipro.md |
| 7 | 7 | Rôle : Fiche connecteur — NOVIPRO (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Architecte d'entreprise* — Québec · ∅ · parue le 2026-08 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 17 (dont **17 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/17 actives (0 %) |
| 79 | 79 | - **GPS** : 17/17 actives (100 %) |
| 80 | 80 | - **Mode** : 4/17 actives (24 %) |
| 81 | 81 | - **Parution** : 17/17 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 17, +0, ~17, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 17, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/nuovophotography.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/nuovophotography.md |
| 7 | 7 | Rôle : Fiche connecteur — Nuovo Photography (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Trade Show Brand Ambassador Montreal - CONTRACT* — Montréal | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 2/8 actives (25 %) |
| 79 | 79 | - **GPS** : 8/8 actives (100 %) |
| 80 | 80 | - **Mode** : 0/8 actives (0 %) |
| 81 | 81 | - **Parution** : 8/8 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 8, +0, ~8, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 8, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/omni_hotels_gestion.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/omni_hotels_gestion.md |
| 7 | 7 | Rôle : Fiche connecteur — Omni Hôtel Mont-Royal (employeur direct, ATS icims) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Chef tournant* — Montréal · Le salaire est de 35.59 $/heure | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 8 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 7/8 actives (88 %) |
| 84 | 84 | - **GPS** : 8/8 actives (100 %) |
| 85 | 85 | - **Mode** : 0/8 actives (0 %) |
| 86 | 86 | - **Parution** : 8/8 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 8, +0, ~8, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 8, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/omni_hotels_horaire.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/omni_hotels_horaire.md |
| 7 | 7 | Rôle : Fiche connecteur — Omni Hôtel Mont-Royal (employeur direct, ATS icims) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Chef tournant* — Montréal · Le salaire est de 35.59 $/heure | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 8 (dont **8 actives**, 8 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 7/8 actives (88 %) |
| 84 | 84 | - **GPS** : 8/8 actives (100 %) |
| 85 | 85 | - **Mode** : 0/8 actives (0 %) |
| 86 | 86 | - **Parution** : 8/8 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 8, +0, ~8, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 8, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/onrunning.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/onrunning.md |
| 7 | 7 | Rôle : Fiche connecteur — On Running (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Spécialiste – Représentant(e) Technique, Québec* — Montr | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/2 actives (0 %) |
| 79 | 79 | - **GPS** : 2/2 actives (100 %) |
| 80 | 80 | - **Mode** : 0/2 actives (0 %) |
| 81 | 81 | - **Parution** : 2/2 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 2, +0, ~2, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 2, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/opalrt.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/opalrt.md |
| 7 | 7 | Rôle : Fiche connecteur — OPAL-RT Technologies (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Analyste en Modélisation et Simulation Électrique / Electrica | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 14 (dont **13 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/13 actives (0 %) |
| 84 | 84 | - **GPS** : 13/13 actives (100 %) |
| 85 | 85 | - **Mode** : 13/13 actives (100 %) |
| 86 | 86 | - **Parution** : 13/13 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 13, +0, ~13, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 13, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/osedea.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/osedea.md |
| 7 | 7 | Rôle : Fiche connecteur — OSEDEA (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Designer de produits senior* — Montréal · ∅ · parue le 2 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 18 (dont **18 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/18 actives (0 %) |
| 79 | 79 | - **GPS** : 18/18 actives (100 %) |
| 80 | 80 | - **Mode** : 18/18 actives (100 %) |
| 81 | 81 | - **Parution** : 18/18 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 18, +0, ~18, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 18, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
added
docs/connecteurs/osgoode_properties.md
+115 −0
@@ -0,0 +1,115 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/osgoode_properties.md | |
| 7 | +Rôle : Fiche connecteur — Osgoode Properties (employeur direct, ATS adp) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Osgoode Properties (`osgoode_properties`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`adp`](ats-adp.md) · Statut registre : actif · Connecteur : `jobka/connectors/osgoode_properties.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Osgoode Properties](https://www.osgoodeproperties.com) | |
| 20 | +- **Page carrières** : https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=c6a2e782-c971-4a6d-9a63-1365f5ce7d21&ccId=19000101_000001&lang=fr_CA | |
| 21 | +- **Secteurs** : Immobilier | |
| 22 | +- **Région** : Gatineau | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-adp.md`](ats-adp.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `CCID` | `19000101_000001` | | |
| 33 | +| `CID` | `c6a2e782-c971-4a6d-9a63-1365f5ce7d21` | | |
| 34 | +| `EMPLOYER` | `Osgoode Properties` | | |
| 35 | +| `LANG` | `fr_CA` | | |
| 36 | +- **Throttle** : 1.0 s entre requêtes. | |
| 37 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 38 | + | |
| 39 | +## Champs → schéma | |
| 40 | + | |
| 41 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05: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 | 0 % | | |
| 52 | +| `postal_code` — Code postal | code postal si publié | 100 % | | |
| 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 | 100 % | | |
| 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) | 0 % | | |
| 59 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 60 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 61 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 0 % | | |
| 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) | 0 % | | |
| 66 | + | |
| 67 | +Exemple réel : *Site Administrator* — Gatineau · ∅ · parue le 2026-07-30. | |
| 68 | + | |
| 69 | +## Fréquence & budgets | |
| 70 | + | |
| 71 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 72 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 73 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 74 | + | |
| 75 | +| Variable | Défaut | | |
| 76 | +|---|---| | |
| 77 | +| `JOBKA_ADP_DETAIL_LIMIT` | `80` | | |
| 78 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 79 | + | |
| 80 | +## Volumétrie & complétude live | |
| 81 | + | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | + | |
| 84 | +- **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 1/1 actives (100 %) | |
| 86 | +- **GPS** : 0/1 actives (0 %) | |
| 87 | +- **Mode** : 0/1 actives (0 %) | |
| 88 | +- **Parution** : 1/1 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:49 — trouvées 1, +1, ~0, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 91 | + | |
| 92 | +## Erreurs & dépannage | |
| 93 | + | |
| 94 | +Aucune erreur dans `sync_log` pour cette source. | |
| 95 | + | |
| 96 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync osgoode_properties` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='osgoode_properties' ORDER BY ts DESC LIMIT 5;"` | |
| 97 | +- 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`. | |
| 98 | + | |
| 99 | +## Licence / conformité | |
| 100 | + | |
| 101 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Osgoode Properties » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 102 | + | |
| 103 | +## Historique | |
| 104 | + | |
| 105 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 106 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 107 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 108 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 109 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 110 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 111 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 112 | + | |
| 113 | +Commits touchant `jobka/connectors/osgoode_properties.py` : | |
| 114 | + | |
| 115 | +- `0298197` 2026-08-19 Vague A (detected-other-ats) — nouveaux employeurs sur familles existantes : Hydro-Québec (SuccessFactors CSB emploi.hydroquebec.com, 66 offres) ; Deloitte Canada (CSB careers.deloitte.ca, 105 offres QC — remplace la détection Taleo périmée) ; CGI (Njoyn corporatif via Scrapfly, babillard mondial de ~2 900 postes filtré Québec, budgets frugaux) ; Fruit d'Or (12) et Nortera (24 QC) sur UKG Pro recruiting.ultipro.ca ; Placements Mackenzie/groupe Power (iCIMS FR, 3 QC) ; Cultures Gen V (6), Bento Sushi (9 QC), Osgoode Properties (1) sur ADP WFN. Retrait ttcglobal (plus d'offre QC : 2 offres Dallas/Londres). Écartés avec raisons (docs/CONFORMITE.md) : Canada Vie, Groupe Dynamite, Jack Astor's/SIR, Méchant Bœuf, Valero (0 offre), Résolu (fusion Domtar), Power Corp directe. | |
modified
docs/connecteurs/ott.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ott.md |
| 7 | 7 | Rôle : Fiche connecteur — OTT Financial (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Account Manager (Mandarin) - Montreal* — Montréal · ∅ · | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/2 actives (0 %) |
| 84 | 84 | - **GPS** : 2/2 actives (100 %) |
| 85 | 85 | - **Mode** : 2/2 actives (100 %) |
| 86 | 86 | - **Parution** : 2/2 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 2, +0, ~2, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:15 — trouvées 2, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/peoplecanfly.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/peoplecanfly.md |
| 7 | 7 | Rôle : Fiche connecteur — People Can Fly (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **10 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **10 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Artiste de niveau senior/Senior Level Artist - Remote, Canada* | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 12 (dont **10 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/10 actives (0 %) |
| 84 | 84 | - **GPS** : 10/10 actives (100 %) |
| 85 | 85 | - **Mode** : 10/10 actives (100 %) |
| 86 | 86 | - **Parution** : 10/10 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 10, +0, ~10, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 10, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/petalmd.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/petalmd.md |
| 7 | 7 | Rôle : Fiche connecteur — Petal (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **7 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **7 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Directeur -trice, Systèmes et Architecture Go-to-Market (GTM)* | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 7 (dont **7 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/7 actives (14 %) |
| 79 | 79 | - **GPS** : 7/7 actives (100 %) |
| 80 | 80 | - **Mode** : 7/7 actives (100 %) |
| 81 | 81 | - **Parution** : 7/7 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 7, +0, ~7, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 7, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/pfizer.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/pfizer.md |
| 7 | 7 | Rôle : Fiche connecteur — Pfizer Canada (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **4 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Global Development Lead, Internal Medicine (MD, Sr. Director)* — ∅ · The annual base salary for this position ranges from $274,500.00 to $457,500.00.* In addit… · parue le 2026-08-14. | |
| 67 | +Exemple réel : *Global Development Lead, Internal Medicine (MD, Sr. Director)* — ∅ · The annual base salary for this position ranges from $274,500.00 to $457,500.00.* In addit… · parue le 2026-08-13. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Global Development Lead, Internal Medicine (MD, Sr. Director)* | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 5 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 4/4 actives (100 %) |
| 86 | 86 | - **GPS** : 0/4 actives (0 %) |
| 87 | 87 | - **Mode** : 0/4 actives (0 %) |
| 88 | 88 | - **Parution** : 4/4 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 4, +0, ~0, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 4, +0, ~4, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/playmind.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/playmind.md |
| 7 | 7 | Rôle : Fiche connecteur — Playmind (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Developer C++ Unreal (Inter or Senior)* — Montréal · ∅ · | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/2 actives (0 %) |
| 84 | 84 | - **GPS** : 2/2 actives (100 %) |
| 85 | 85 | - **Mode** : 0/2 actives (0 %) |
| 86 | 86 | - **Parution** : 2/2 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 2, +0, ~2, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 2, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/plusgrade.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/plusgrade.md |
| 7 | 7 | Rôle : Fiche connecteur — Plusgrade (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **4 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Software Developer* — Montréal · ∅ · parue le 2026-08-01. | |
| 67 | +Exemple réel : *Software Developer* — Montréal · ∅ · parue le 2026-07-31. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Software Developer* — Montréal · ∅ · parue le 2026-08-01 | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 4 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/4 actives (0 %) |
| 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-08-19 02:10 — trouvées 4, +0, ~0, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 4, +0, ~4, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 15 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/poka.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/poka.md |
| 7 | 7 | Rôle : Fiche connecteur — Poka (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Frontend Developer* — Montréal · ∅ · parue le 2026-08-05 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/5 actives (0 %) |
| 79 | 79 | - **GPS** : 5/5 actives (100 %) |
| 80 | 80 | - **Mode** : 0/5 actives (0 %) |
| 81 | 81 | - **Parution** : 5/5 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 5, +0, ~5, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 5, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/portagecybertech.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/portagecybertech.md |
| 7 | 7 | Rôle : Fiche connecteur — Portage CyberTech (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Spécialiste DevOps / DevOps Specialist* — Québec · $75,000 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 1/6 actives (17 %) |
| 84 | 84 | - **GPS** : 6/6 actives (100 %) |
| 85 | 85 | - **Mode** : 6/6 actives (100 %) |
| 86 | 86 | - **Parution** : 6/6 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 6, +0, ~6, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 6, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/potloc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/potloc.md |
| 7 | 7 | Rôle : Fiche connecteur — Potloc (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Développeur Full Stack Senior / Senior Full Stack Developer | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/2 actives (0 %) |
| 79 | 79 | - **GPS** : 2/2 actives (100 %) |
| 80 | 80 | - **Mode** : 2/2 actives (100 %) |
| 81 | 81 | - **Parution** : 2/2 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 2, +0, ~2, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 26 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 2, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 27 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/pouletrouge.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/pouletrouge.md |
| 7 | 7 | Rôle : Fiche connecteur — Poulet Rouge (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Adjoint·e au Vice-président, Développement des franchises* | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/1 actives (0 %) |
| 84 | 84 | - **GPS** : 1/1 actives (100 %) |
| 85 | 85 | - **Mode** : 1/1 actives (100 %) |
| 86 | 86 | - **Parution** : 1/1 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:10 — trouvées 1, +0, ~1, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 1, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
added
docs/connecteurs/produits_kruger.md
+116 −0
@@ -0,0 +1,116 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/produits_kruger.md | |
| 7 | +Rôle : Fiche connecteur — Produits Kruger (employeur direct, ATS taleo_tbe) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Produits Kruger (`produits_kruger`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`taleo_tbe`](ats-taleo_tbe.md) · Statut registre : actif · Connecteur : `jobka/connectors/produits_kruger.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Produits Kruger](https://www.produitskruger.ca) | |
| 20 | +- **Page carrières** : https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=KRUGER2&cws=78 | |
| 21 | +- **Secteurs** : Manufacturier, Biens de consommation | |
| 22 | +- **Région** : Gatineau, Crabtree | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-taleo_tbe.md`](ats-taleo_tbe.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `CWS` | `78` | | |
| 33 | +| `EMPLOYER` | `Produits Kruger` | | |
| 34 | +| `HOST` | `tre` | | |
| 35 | +| `INST` | `tre01` | | |
| 36 | +| `ORG` | `KRUGER2` | | |
| 37 | +- **Throttle** : 1.0 s entre requêtes. | |
| 38 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 39 | + | |
| 40 | +## Champs → schéma | |
| 41 | + | |
| 42 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | + | |
| 44 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 45 | +|---|---|---| | |
| 46 | +| `title` — Titre | titre du poste | 100 % | | |
| 47 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 48 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 49 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 50 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 51 | +| `region` — Région | région administrative | 100 % | | |
| 52 | +| `address` — Adresse | adresse du lieu de travail | 100 % | | |
| 53 | +| `postal_code` — Code postal | code postal si publié | 0 % | | |
| 54 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 55 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 100 % | | |
| 56 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 0 % | | |
| 57 | +| `salary_label` — Libellé salaire | texte salarial original | 0 % | | |
| 58 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 59 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 60 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 61 | +| `date_deadline` — Date limite | date limite pour postuler | 0 % | | |
| 62 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 100 % | | |
| 63 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 64 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 65 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 66 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 67 | + | |
| 68 | +Exemple réel : *Transportation Coordinator (18-month contract)* — Gatineau (QC) · ∅ · parue le 2026-08-04. | |
| 69 | + | |
| 70 | +## Fréquence & budgets | |
| 71 | + | |
| 72 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 73 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 74 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 75 | + | |
| 76 | +| Variable | Défaut | | |
| 77 | +|---|---| | |
| 78 | +| `JOBKA_TBE_DETAIL_LIMIT` | `60` | | |
| 79 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 80 | + | |
| 81 | +## Volumétrie & complétude live | |
| 82 | + | |
| 83 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 84 | + | |
| 85 | +- **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) | |
| 86 | +- **Salaire** : 0/1 actives (0 %) | |
| 87 | +- **GPS** : 0/1 actives (0 %) | |
| 88 | +- **Mode** : 0/1 actives (0 %) | |
| 89 | +- **Parution** : 1/1 actives (100 %) | |
| 90 | +- **Dernier sync** : 2026-08-19 04:48 — trouvées 1, +1, ~0, -0 | |
| 91 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 92 | + | |
| 93 | +## Erreurs & dépannage | |
| 94 | + | |
| 95 | +Aucune erreur dans `sync_log` pour cette source. | |
| 96 | + | |
| 97 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync produits_kruger` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='produits_kruger' ORDER BY ts DESC LIMIT 5;"` | |
| 98 | +- 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`. | |
| 99 | + | |
| 100 | +## Licence / conformité | |
| 101 | + | |
| 102 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Produits Kruger » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 103 | + | |
| 104 | +## Historique | |
| 105 | + | |
| 106 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 107 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 108 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 109 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 110 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 111 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 112 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 113 | + | |
| 114 | +Commits touchant `jobka/connectors/produits_kruger.py` : | |
| 115 | + | |
| 116 | +- `89f9713` 2026-08-19 Nouvelle famille ATS Taleo Business Edition (taleo_tbe) : flux RSS public + JSON-LD des pages requisition (lieu, dates, description complète), filtre Québec différé tant que le détail n'est pas visité. Connecteurs : Sépaq (99), Kruger (corporatif, filtre QC), Produits Kruger, exo (25), HEC Montréal personnel (9) + corps professoral (9). Fixture sepaq (121 requêtes rejouables). TÉLUQ écarté (tenant TBE fermé). | |
modified
docs/connecteurs/promutuel.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/promutuel.md |
| 7 | 7 | Rôle : Fiche connecteur — Promutuel Assurance (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **37 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **37 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **37 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Analyste de risque en assurance des particuliers* — Joliette · ∅ · parue le 2026-08-18. | |
| 67 | +Exemple réel : *Analyste de risque en assurance des particuliers* — Joliette · ∅ · parue le 2026-08-17. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Analyste de risque en assurance des particuliers* — Joliette | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 38 (dont **37 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/37 actives (0 %) |
| 86 | 86 | - **GPS** : 37/37 actives (100 %) |
| 87 | 87 | - **Mode** : 6/37 actives (16 %) |
| 88 | 88 | - **Parution** : 37/37 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:11 — trouvées 37, +0, ~37, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 37, +0, ~20, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/qsl.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/qsl.md |
| 7 | 7 | Rôle : Fiche connecteur — QSL (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **37 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **37 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Contremaître portuaire* — Québec · Salaire de base compét | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 37 (dont **37 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 14/37 actives (38 %) |
| 84 | 84 | - **GPS** : 37/37 actives (100 %) |
| 85 | 85 | - **Mode** : 0/37 actives (0 %) |
| 86 | 86 | - **Parution** : 37/37 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:11 — trouvées 37, +0, ~37, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 37, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/rcgt.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/rcgt.md |
| 7 | 7 | Rôle : Fiche connecteur — Raymond Chabot Grant Thornton (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **5 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Chargée ou chargé de dossiers* — Québec · ∅ · parue le 2026-08-14. | |
| 67 | +Exemple réel : *Chargée ou chargé de dossiers* — Québec · ∅ · parue le 2026-08-13. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Chargée ou chargé de dossiers* — Québec · ∅ · parue le | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/5 actives (0 %) |
| 86 | 86 | - **GPS** : 5/5 actives (100 %) |
| 87 | 87 | - **Mode** : 1/5 actives (20 %) |
| 88 | 88 | - **Parution** : 5/5 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:11 — trouvées 5, +0, ~5, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 5, +0, ~3, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/reitmanscanadalteltd.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/reitmanscanadalteltd.md |
| 7 | 7 | Rôle : Fiche connecteur — Reitmans (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **138 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **138 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Gérant.e adjoint.e - Mega Centre Sainte Foy* — Québec · Sa | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 145 (dont **138 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 31/138 actives (22 %) |
| 84 | 84 | - **GPS** : 138/138 actives (100 %) |
| 85 | 85 | - **Mode** : 40/138 actives (29 %) |
| 86 | 86 | - **Parution** : 138/138 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:11 — trouvées 138, +0, ~138, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 138, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/reseau_mieux_etre.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/reseau_mieux_etre.md |
| 7 | 7 | Rôle : Fiche connecteur — Réseau Mieux-Être (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **15 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **15 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Infirmier(ère) auxiliaire– Clinique St-Laurent* — Montréa | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 15 (dont **15 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/15 actives (0 %) |
| 79 | 79 | - **GPS** : 15/15 actives (100 %) |
| 80 | 80 | - **Mode** : 2/15 actives (13 %) |
| 81 | 81 | - **Parution** : 15/15 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:11 — trouvées 15, +0, ~15, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 15, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/rethinkcanada.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/rethinkcanada.md |
| 7 | 7 | Rôle : Fiche connecteur — Rethink (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Directeur.trice-conseil* — Montréal · ∅ · parue le 2026- | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/3 actives (0 %) |
| 84 | 84 | - **GPS** : 3/3 actives (100 %) |
| 85 | 85 | - **Mode** : 3/3 actives (100 %) |
| 86 | 86 | - **Parution** : 3/3 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:11 — trouvées 3, +0, ~3, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:16 — trouvées 3, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/riotinto.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/riotinto.md |
| 7 | 7 | Rôle : Fiche connecteur — Rio Tinto (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **23 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **23 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **23 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Ingénieur(e) de maintenance* — Sorel-Tracy · ∅ · parue le 2026-08-18. | |
| 67 | +Exemple réel : *Ingénieur(e) de maintenance* — Sorel-Tracy · ∅ · parue le 2026-08-17. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Ingénieur(e) de maintenance* — Sorel-Tracy · ∅ · parue l | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 23 (dont **23 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/23 actives (0 %) |
| 86 | 86 | - **GPS** : 23/23 actives (100 %) |
| 87 | 87 | - **Mode** : 1/23 actives (4 %) |
| 88 | 88 | - **Parution** : 23/23 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:12 — trouvées 23, +0, ~23, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:17 — trouvées 23, +0, ~16, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/robotiq.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/robotiq.md |
| 7 | 7 | Rôle : Fiche connecteur — Robotiq (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **7 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **7 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Développeur.se Web Fullstack (Angular)* — Québec · ∅ · | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 7 (dont **7 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/7 actives (0 %) |
| 84 | 84 | - **GPS** : 7/7 actives (100 %) |
| 85 | 85 | - **Mode** : 7/7 actives (100 %) |
| 86 | 86 | - **Parution** : 7/7 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:12 — trouvées 7, +0, ~7, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:17 — trouvées 7, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/rodeofx.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/rodeofx.md |
| 7 | 7 | Rôle : Fiche connecteur — Rodeo FX (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **20 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **20 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *FX Artist - Mid and Senior - Multiple Positions* — Montréal | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 20 (dont **20 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/20 actives (0 %) |
| 84 | 84 | - **GPS** : 20/20 actives (100 %) |
| 85 | 85 | - **Mode** : 2/20 actives (10 %) |
| 86 | 86 | - **Parution** : 20/20 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:12 — trouvées 20, +0, ~20, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:17 — trouvées 20, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/rtc_quebec.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/rtc_quebec.md |
| 7 | 7 | Rôle : Fiche connecteur — Réseau de transport de la Capitale (employeur direct, ATS njoyn) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -40,7 +40,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 40 | 40 | |
| 41 | 41 | ## Champs → schéma |
| 42 | 42 | |
| 43 | −Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 43 | +Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 44 | 44 | |
| 45 | 45 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 46 | 46 | |---|---|---| |
@@ -81,15 +81,15 @@ Exemple réel : *Coordonnateur – évolutions technologiques* — ∅ · ∅ · | ||
| 81 | 81 | |
| 82 | 82 | ## Volumétrie & complétude live |
| 83 | 83 | |
| 84 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 85 | 85 | |
| 86 | 86 | - **Offres en base** : 21 (dont **18 actives**, 0 masquées comme doublons `dup_of`) |
| 87 | 87 | - **Salaire** : 0/18 actives (0 %) |
| 88 | 88 | - **GPS** : 0/18 actives (0 %) |
| 89 | 89 | - **Mode** : 0/18 actives (0 %) |
| 90 | 90 | - **Parution** : 0/18 actives (0 %) |
| 91 | −- **Dernier sync** : 2026-08-19 02:13 — trouvées 18, +0, ~18, -0 | |
| 92 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 91 | +- **Dernier sync** : 2026-08-19 04:17 — trouvées 18, +0, ~0, -0 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 93 | 93 | |
| 94 | 94 | ## Erreurs & dépannage |
| 95 | 95 | |
modified
docs/connecteurs/samsara.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/samsara.md |
| 7 | 7 | Rôle : Fiche connecteur — Samsara (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Mid-Market Account Executive - French Fluent* — Montréal · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/1 actives (100 %) |
| 79 | 79 | - **GPS** : 1/1 actives (100 %) |
| 80 | 80 | - **Mode** : 1/1 actives (100 %) |
| 81 | 81 | - **Parution** : 1/1 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:13 — trouvées 1, +0, ~1, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:17 — trouvées 1, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/sante_montreal.md
+21 −21
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sante_montreal.md |
| 7 | 7 | Rôle : Fiche connecteur — Santé Québec — Montréal (employeur direct, ATS njoyn) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -40,31 +40,31 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 40 | 40 | |
| 41 | 41 | ## Champs → schéma |
| 42 | 42 | |
| 43 | −Complétude mesurée sur les **50 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 43 | +Complétude mesurée sur les **762 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 44 | 44 | |
| 45 | 45 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 46 | 46 | |---|---|---| |
| 47 | 47 | | `title` — Titre | titre du poste | 100 % | |
| 48 | 48 | | `employer` — Employeur | nom de l'entreprise | 100 % | |
| 49 | 49 | | `url` — URL | lien direct vers l'offre originale | 100 % | |
| 50 | −| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 51 | −| `city` — Ville | municipalité normalisée | 100 % | | |
| 52 | −| `region` — Région | région administrative | 100 % | | |
| 50 | +| `description` — Description | texte complet (HTML nettoyé) | 98 % | | |
| 51 | +| `city` — Ville | municipalité normalisée | 98 % | | |
| 52 | +| `region` — Région | région administrative | 96 % | | |
| 53 | 53 | | `address` — Adresse | adresse du lieu de travail | 0 % | |
| 54 | 54 | | `postal_code` — Code postal | code postal si publié | 0 % | |
| 55 | −| `work_mode` — Mode | presentiel / hybride / teletravail | 2 % | | |
| 56 | −| `employment_type` — Type | temps_plein / temps_partiel / … | 54 % | | |
| 57 | −| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 100 % | | |
| 58 | −| `salary_label` — Libellé salaire | texte salarial original | 100 % | | |
| 59 | −| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 55 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 1 % | | |
| 56 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 64 % | | |
| 57 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 97 % | | |
| 58 | +| `salary_label` — Libellé salaire | texte salarial original | 99 % | | |
| 59 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 2 % | | |
| 60 | 60 | | `requirements` — Exigences | scolarité, expérience, langues (JSON) | 100 % | |
| 61 | 61 | | `date_posted` — Date de parution | ISO 8601 | 100 % | |
| 62 | 62 | | `date_deadline` — Date limite | date limite pour postuler | 0 % | |
| 63 | −| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 92 % | | |
| 64 | −| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 63 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 94 % | | |
| 64 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 98 % | | |
| 65 | 65 | | `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | |
| 66 | 66 | | `apply_url` — Candidature | lien de candidature directe | 0 % | |
| 67 | −| `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | | |
| 67 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 8 % | | |
| 68 | 68 | |
| 69 | 69 | Exemple réel : *Chef de service - aide à domicile - secteur Pointe-Aux-Trembles (Intérim)* — Montréal · 96770 $ - 125799 $ Annuelle · parue le 2026-08-18. |
| 70 | 70 | |
@@ -81,15 +81,15 @@ Exemple réel : *Chef de service - aide à domicile - secteur Pointe-Aux-Tremble | ||
| 81 | 81 | |
| 82 | 82 | ## Volumétrie & complétude live |
| 83 | 83 | |
| 84 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 85 | 85 | |
| 86 | −- **Offres en base** : 60 (dont **50 actives**, 0 masquées comme doublons `dup_of`) | |
| 87 | −- **Salaire** : 50/50 actives (100 %) | |
| 88 | −- **GPS** : 50/50 actives (100 %) | |
| 89 | −- **Mode** : 1/50 actives (2 %) | |
| 90 | −- **Parution** : 50/50 actives (100 %) | |
| 91 | −- **Dernier sync** : 2026-08-19 02:13 — trouvées 50, +0, ~50, -5 | |
| 92 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 86 | +- **Offres en base** : 763 (dont **762 actives**, 0 masquées comme doublons `dup_of`) | |
| 87 | +- **Salaire** : 738/762 actives (97 %) | |
| 88 | +- **GPS** : 59/762 actives (8 %) | |
| 89 | +- **Mode** : 5/762 actives (1 %) | |
| 90 | +- **Parution** : 762/762 actives (100 %) | |
| 91 | +- **Dernier sync** : 2026-08-19 05:30 — trouvées 762, +703, ~9, -0 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 16 | |
| 93 | 93 | |
| 94 | 94 | ## Erreurs & dépannage |
| 95 | 95 | |
modified
docs/connecteurs/sante_quebec.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sante_quebec.md |
| 7 | 7 | Rôle : Fiche connecteur — Santé Québec (employeur direct, ATS digitalrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -37,7 +37,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 37 | 37 | |
| 38 | 38 | ## Champs → schéma |
| 39 | 39 | |
| 40 | −Complétude mesurée sur les **41 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 40 | +Complétude mesurée sur les **41 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 41 | 41 | |
| 42 | 42 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 43 | 43 | |---|---|---| |
@@ -78,15 +78,15 @@ Exemple réel : *Spécialiste en procédés administratifs à la Direction de l | ||
| 78 | 78 | |
| 79 | 79 | ## Volumétrie & complétude live |
| 80 | 80 | |
| 81 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 81 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 82 | 82 | |
| 83 | −- **Offres en base** : 51 (dont **41 actives**, 0 masquées comme doublons `dup_of`) | |
| 83 | +- **Offres en base** : 51 (dont **41 actives**, 6 masquées comme doublons `dup_of`) | |
| 84 | 84 | - **Salaire** : 40/41 actives (98 %) |
| 85 | 85 | - **GPS** : 28/41 actives (68 %) |
| 86 | 86 | - **Mode** : 0/41 actives (0 %) |
| 87 | 87 | - **Parution** : 41/41 actives (100 %) |
| 88 | −- **Dernier sync** : 2026-08-19 02:13 — trouvées 41, +0, ~41, -0 | |
| 89 | −- **Syncs enregistrés** (`sync_log`) : 14 | |
| 88 | +- **Dernier sync** : 2026-08-19 04:17 — trouvées 41, +0, ~0, -0 | |
| 89 | +- **Syncs enregistrés** (`sync_log`) : 15 | |
| 90 | 90 | |
| 91 | 91 | ## Erreurs & dépannage |
| 92 | 92 | |
modified
docs/connecteurs/saputo.md
+12 −12
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/saputo.md |
| 7 | 7 | Rôle : Fiche connecteur — Saputo (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **24 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **24 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -50,10 +50,10 @@ Complétude mesurée sur les **24 offres actives** de la source (base live, 2026 | ||
| 50 | 50 | | `region` — Région | région administrative | 100 % | |
| 51 | 51 | | `address` — Adresse | adresse du lieu de travail | 0 % | |
| 52 | 52 | | `postal_code` — Code postal | code postal si publié | 0 % | |
| 53 | −| `work_mode` — Mode | presentiel / hybride / teletravail | 0 % | | |
| 53 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 100 % | | |
| 54 | 54 | | `employment_type` — Type | temps_plein / temps_partiel / … | 100 % | |
| 55 | −| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 79 % | | |
| 56 | −| `salary_label` — Libellé salaire | texte salarial original | 79 % | | |
| 55 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 75 % | | |
| 56 | +| `salary_label` — Libellé salaire | texte salarial original | 75 % | | |
| 57 | 57 | | `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | |
| 58 | 58 | | `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | |
| 59 | 59 | | `date_posted` — Date de parution | ISO 8601 | 100 % | |
@@ -61,10 +61,10 @@ Complétude mesurée sur les **24 offres actives** de la source (base live, 2026 | ||
| 61 | 61 | | `category` — Catégorie | taxonomie interne (TI, Santé, …) | 67 % | |
| 62 | 62 | | `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | |
| 63 | 63 | | `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | |
| 64 | −| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 64 | +| `apply_url` — Candidature | lien de candidature directe | 100 % | | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Internal Auditor* — Montréal · Salary Range: From 68,630$ to 90,080$ (+ business allowance) · parue le 2026-08-15. | |
| 67 | +Exemple réel : *Senior Director, People Strategy & Business Initiatives* — Montréal · Salary: $173,685 - $227,960 · parue le 2026-08-13. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Internal Auditor* — Montréal · Salary Range: From 68,630$ t | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 25 (dont **24 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | −- **Salaire** : 19/24 actives (79 %) | |
| 85 | +- **Salaire** : 18/24 actives (75 %) | |
| 86 | 86 | - **GPS** : 24/24 actives (100 %) |
| 87 | −- **Mode** : 0/24 actives (0 %) | |
| 87 | +- **Mode** : 24/24 actives (100 %) | |
| 88 | 88 | - **Parution** : 24/24 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:13 — trouvées 0, +0, ~0, -0, **ÉCHEC : 520 Server Error: <none> for url: https://saputo.wd5.myworkdayjobs.com/wday/cxs/saputo/Sap…** | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 24, +0, ~24, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 27 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/scalia.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/scalia.md |
| 7 | 7 | Rôle : Fiche connecteur — Propriétés Scalia (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Technicien comptable - Accounting technician* — Montréal · | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 1/5 actives (20 %) |
| 84 | 84 | - **GPS** : 5/5 actives (100 %) |
| 85 | 85 | - **Mode** : 5/5 actives (100 %) |
| 86 | 86 | - **Parution** : 5/5 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:13 — trouvées 5, +0, ~5, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 5, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/scottsmiraclegro.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/scottsmiraclegro.md |
| 7 | 7 | Rôle : Fiche connecteur — Scotts Canada (Fafard) (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **27 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **27 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -79,15 +79,15 @@ Exemple réel : *Technicien en électromécanique / Electromechanical Technician | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 27 (dont **27 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 1/27 actives (4 %) |
| 86 | 86 | - **GPS** : 27/27 actives (100 %) |
| 87 | 87 | - **Mode** : 0/27 actives (0 %) |
| 88 | 88 | - **Parution** : 27/27 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 27, +0, ~27, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 27, +0, ~3, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
added
docs/connecteurs/sepaq.md
+116 −0
@@ -0,0 +1,116 @@ | ||
| 1 | +<!-- | |
| 2 | +============================================================================= | |
| 3 | +Job·Ka — Groupe KA | |
| 4 | +Auteur : Simon-Pierre Boucher | |
| 5 | +Contact : contact@spboucher.ai | |
| 6 | +Fichier : docs/connecteurs/sepaq.md | |
| 7 | +Rôle : Fiche connecteur — Sépaq (employeur direct, ATS taleo_tbe) | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | + relancer le script pour régénérer. | |
| 10 | +============================================================================= | |
| 11 | +--> | |
| 12 | + | |
| 13 | +# Sépaq (`sepaq`) | |
| 14 | + | |
| 15 | +**Employeur direct** · Plateforme ATS : [`taleo_tbe`](ats-taleo_tbe.md) · Statut registre : actif · Connecteur : `jobka/connectors/sepaq.py` | |
| 16 | + | |
| 17 | +## Description | |
| 18 | + | |
| 19 | +- **Site** : [Sépaq](https://www.sepaq.com) | |
| 20 | +- **Page carrières** : https://tre.tbe.taleo.net/tre01/ats/careers/v2/jobSearch?org=SEPAQ&cws=37 | |
| 21 | +- **Secteurs** : Tourisme, Plein air, Secteur public | |
| 22 | +- **Région** : Québec (province) | |
| 23 | +- Offres marquées **« Offre directe »** dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire. | |
| 24 | + | |
| 25 | +## Accès | |
| 26 | + | |
| 27 | +- **Mécanique** : voir la fiche plateforme [`ats-taleo_tbe.md`](ats-taleo_tbe.md) — API JSON publique du site carrières, backend `requests` direct (Scrapfly seulement si indiqué sur la fiche plateforme). | |
| 28 | +- **Identifiants du tenant** (attributs du connecteur) : | |
| 29 | + | |
| 30 | +| Attribut | Valeur | | |
| 31 | +|---|---| | |
| 32 | +| `CWS` | `37` | | |
| 33 | +| `EMPLOYER` | `Sépaq` | | |
| 34 | +| `HOST` | `tre` | | |
| 35 | +| `INST` | `tre01` | | |
| 36 | +| `ORG` | `SEPAQ` | | |
| 37 | +- **Throttle** : 1.0 s entre requêtes. | |
| 38 | +- **Filtre Québec** : seuls les postes localisés au Québec sont conservés (facette serveur quand l'ATS en offre une, sinon `is_quebec_location` côté client). | |
| 39 | + | |
| 40 | +## Champs → schéma | |
| 41 | + | |
| 42 | +Complétude mesurée sur les **99 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 43 | + | |
| 44 | +| Champ (`jobs.*`) | Rôle | Complétude | | |
| 45 | +|---|---|---| | |
| 46 | +| `title` — Titre | titre du poste | 100 % | | |
| 47 | +| `employer` — Employeur | nom de l'entreprise | 100 % | | |
| 48 | +| `url` — URL | lien direct vers l'offre originale | 100 % | | |
| 49 | +| `description` — Description | texte complet (HTML nettoyé) | 100 % | | |
| 50 | +| `city` — Ville | municipalité normalisée | 100 % | | |
| 51 | +| `region` — Région | région administrative | 34 % | | |
| 52 | +| `address` — Adresse | adresse du lieu de travail | 100 % | | |
| 53 | +| `postal_code` — Code postal | code postal si publié | 100 % | | |
| 54 | +| `work_mode` — Mode | presentiel / hybride / teletravail | 4 % | | |
| 55 | +| `employment_type` — Type | temps_plein / temps_partiel / … | 35 % | | |
| 56 | +| `salary` — Salaire ($) | bornes numériques normalisées $/h et $/an | 55 % | | |
| 57 | +| `salary_label` — Libellé salaire | texte salarial original | 55 % | | |
| 58 | +| `benefits` — Avantages | avantages sociaux publiés (JSON) | 0 % | | |
| 59 | +| `requirements` — Exigences | scolarité, expérience, langues (JSON) | 0 % | | |
| 60 | +| `date_posted` — Date de parution | ISO 8601 | 100 % | | |
| 61 | +| `date_deadline` — Date limite | date limite pour postuler | 15 % | | |
| 62 | +| `category` — Catégorie | taxonomie interne (TI, Santé, …) | 44 % | | |
| 63 | +| `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | | |
| 64 | +| `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | | |
| 65 | +| `apply_url` — Candidature | lien de candidature directe | 0 % | | |
| 66 | +| `gps` — GPS | lat/lng (géocodage sans invention) | 0 % | | |
| 67 | + | |
| 68 | +Exemple réel : *Cuisinier ou cuisinière classe 1* — Sépaq Anticosti, Port-Menier · 20,81 $ à 28,30 $ de l’heure selon l’expérience · parue le 2026-08-18. | |
| 69 | + | |
| 70 | +## Fréquence & budgets | |
| 71 | + | |
| 72 | +- **Cadence** : resynchronisation **horaire** (PM2 `job-ka-sync` = `run.py watch 60`), suivie du géocodage en lot puis de la déduplication inter-sources. | |
| 73 | +- **Throttle** : 1.0 s minimum entre deux requêtes vers la source (`request_delay`). | |
| 74 | +- **Budgets / plafonds (variables d'environnement)** : | |
| 75 | + | |
| 76 | +| Variable | Défaut | | |
| 77 | +|---|---| | |
| 78 | +| `JOBKA_TBE_DETAIL_LIMIT` | `60` | | |
| 79 | +- Cache BD des pages détail (`detail_cache`) : le détail d'une offre n'est re-téléchargé que si sa ligne de liste change. | |
| 80 | + | |
| 81 | +## Volumétrie & complétude live | |
| 82 | + | |
| 83 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 84 | + | |
| 85 | +- **Offres en base** : 99 (dont **99 actives**, 0 masquées comme doublons `dup_of`) | |
| 86 | +- **Salaire** : 54/99 actives (55 %) | |
| 87 | +- **GPS** : 0/99 actives (0 %) | |
| 88 | +- **Mode** : 4/99 actives (4 %) | |
| 89 | +- **Parution** : 99/99 actives (100 %) | |
| 90 | +- **Dernier sync** : 2026-08-19 04:46 — trouvées 99, +99, ~0, -0 | |
| 91 | +- **Syncs enregistrés** (`sync_log`) : 1 | |
| 92 | + | |
| 93 | +## Erreurs & dépannage | |
| 94 | + | |
| 95 | +Aucune erreur dans `sync_log` pour cette source. | |
| 96 | + | |
| 97 | +- Rejouer un sync isolé : `.venv/bin/python run.py sync sepaq` puis inspecter `sync_log` : `sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='sepaq' ORDER BY ts DESC LIMIT 5;"` | |
| 98 | +- 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`. | |
| 99 | + | |
| 100 | +## Licence / conformité | |
| 101 | + | |
| 102 | +**Flux public du site carrières officiel de l'employeur** (API JSON de l'ATS ou HTML rendu serveur) — le même contenu que la page carrière affiche publiquement, prévu pour la diffusion des offres, sans authentification. Chaque offre conserve son URL originale et le bouton « Postuler chez Sépaq » renvoie chez l'employeur. Aucune donnée personnelle de candidat n'est collectée. User-Agent identifié `JobKaBot/1.0 (+https://www.job-ka.com; contact@spboucher.ai)` sur les accès directs ; requêtes throttlées et plafonnées par budgets. | |
| 103 | + | |
| 104 | +## Historique | |
| 105 | + | |
| 106 | +**Mission connecteurs du 2026-08-18** — passage de 135 à 217 employeurs directs connectés, de 9 à 17 plateformes ATS, ajout de 3 portails agrégateurs et du canal de dépôt direct : | |
| 107 | +- `fd4bfc8` qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ; | |
| 108 | +- `5a66f48` +59 employeurs (sondage massif d'ATS + détection de pages carrières) ; | |
| 109 | +- `4917d57` 8 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ; | |
| 110 | +- `f6e7571` portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ; | |
| 111 | +- `744cbfc` badge « Offre directe », stats directes/portails, dépôt direct employeurs ; | |
| 112 | +- `1604ff9` reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel). | |
| 113 | + | |
| 114 | +Commits touchant `jobka/connectors/sepaq.py` : | |
| 115 | + | |
| 116 | +- `89f9713` 2026-08-19 Nouvelle famille ATS Taleo Business Edition (taleo_tbe) : flux RSS public + JSON-LD des pages requisition (lieu, dates, description complète), filtre Québec différé tant que le détail n'est pas visité. Connecteurs : Sépaq (99), Kruger (corporatif, filtre QC), Produits Kruger, exo (25), HEC Montréal personnel (9) + corps professoral (9). Fixture sepaq (121 requêtes rejouables). TÉLUQ écarté (tenant TBE fermé). | |
modified
docs/connecteurs/servicenow.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/servicenow.md |
| 7 | 7 | Rôle : Fiche connecteur — ServiceNow (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Sr Enterprise Account Exec* — Montréal · ∅ · parue le 20 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/2 actives (0 %) |
| 84 | 84 | - **GPS** : 2/2 actives (100 %) |
| 85 | 85 | - **Mode** : 2/2 actives (100 %) |
| 86 | 86 | - **Parution** : 2/2 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 2, +0, ~2, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 2, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/siainnovationsinc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/siainnovationsinc.md |
| 7 | 7 | Rôle : Fiche connecteur — SIA Innovations (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Contrôleur(-euse) administratif et financier* — Montréal · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 4/9 actives (44 %) |
| 79 | 79 | - **GPS** : 9/9 actives (100 %) |
| 80 | 80 | - **Mode** : 7/9 actives (78 %) |
| 81 | 81 | - **Parution** : 9/9 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 9, +0, ~9, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 9, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/sideinc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sideinc.md |
| 7 | 7 | Rôle : Fiche connecteur — Side (PTW) (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **33 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **33 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *3D Environment Artist - Talent Pool (N Americas)* — Québec | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 33 (dont **33 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/33 actives (0 %) |
| 79 | 79 | - **GPS** : 33/33 actives (100 %) |
| 80 | 80 | - **Mode** : 7/33 actives (21 %) |
| 81 | 81 | - **Parution** : 33/33 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 37, +0, ~37, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 37, +0, ~8, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/sidlee.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sidlee.md |
| 7 | 7 | Rôle : Fiche connecteur — Sid Lee (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Conseiller·ère, Talent et acquisition de talents* — Montré | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 15 (dont **13 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/13 actives (0 %) |
| 79 | 79 | - **GPS** : 13/13 actives (100 %) |
| 80 | 80 | - **Mode** : 0/13 actives (0 %) |
| 81 | 81 | - **Parution** : 13/13 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 13, +0, ~13, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 13, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/sleeman.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sleeman.md |
| 7 | 7 | Rôle : Fiche connecteur — Brasseries Sleeman (Unibroue) (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **3 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Préposé(e) à l’assainissement* — Québec · Salaire : 25,86 $/h (augmentations garanties atteignant 29.46$ après 15 mois) · parue le 2026-07-29. | |
| 67 | +Exemple réel : *Préposé(e) à l’assainissement* — Québec · Salaire : 25,86 $/h (augmentations garanties atteignant 29.46$ après 15 mois) · parue le 2026-07-28. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Préposé(e) à l’assainissement* — Québec · Salaire : 25 | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 1/3 actives (33 %) |
| 86 | 86 | - **GPS** : 3/3 actives (100 %) |
| 87 | 87 | - **Mode** : 0/3 actives (0 %) |
| 88 | 88 | - **Parution** : 3/3 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 3, +0, ~3, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 3, +0, ~1, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/sogeclair.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sogeclair.md |
| 7 | 7 | Rôle : Fiche connecteur — SOGECLAIR (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **43 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **43 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Intégrateur Mécanique* — Montréal · 96 470 $ / année · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 43 (dont **43 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/43 actives (2 %) |
| 79 | 79 | - **GPS** : 43/43 actives (100 %) |
| 80 | 80 | - **Mode** : 1/43 actives (2 %) |
| 81 | 81 | - **Parution** : 43/43 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 43, +0, ~43, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 43, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/sparkgrid.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sparkgrid.md |
| 7 | 7 | Rôle : Fiche connecteur — Sparkgrid (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Backend developer Golang* — Montréal · ∅ · parue le 2017 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/1 actives (0 %) |
| 84 | 84 | - **GPS** : 1/1 actives (100 %) |
| 85 | 85 | - **Mode** : 0/1 actives (0 %) |
| 86 | 86 | - **Parution** : 1/1 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 1, +0, ~1, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 1, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/spiria.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/spiria.md |
| 7 | 7 | Rôle : Fiche connecteur — Spiria (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **12 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **12 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Contracts & Compliance Manager* — Montréal · Salary range: | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 16 (dont **12 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 7/12 actives (58 %) |
| 79 | 79 | - **GPS** : 12/12 actives (100 %) |
| 80 | 80 | - **Mode** : 12/12 actives (100 %) |
| 81 | 81 | - **Parution** : 12/12 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 12, +0, ~12, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 12, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/spreedly.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/spreedly.md |
| 7 | 7 | Rôle : Fiche connecteur — Spreedly (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Partner Growth Manager* — Montréal · ∅ · parue le 2026-0 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/2 actives (0 %) |
| 79 | 79 | - **GPS** : 2/2 actives (100 %) |
| 80 | 80 | - **Mode** : 2/2 actives (100 %) |
| 81 | 81 | - **Parution** : 2/2 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 2, +0, ~2, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 2, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/squeezestudio.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/squeezestudio.md |
| 7 | 7 | Rôle : Fiche connecteur — Squeeze Studio Animation (employeur direct, ATS recruitee) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Animateur 3D senior* — Montréal / Québec · ∅ · parue le | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/3 actives (0 %) |
| 79 | 79 | - **GPS** : 2/3 actives (67 %) |
| 80 | 80 | - **Mode** : 3/3 actives (100 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 3, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/stelpro.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/stelpro.md |
| 7 | 7 | Rôle : Fiche connecteur — Stelpro (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Agent au service à la clientèle* — Saint-Bruno-de-Montarvil | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/1 actives (0 %) |
| 84 | 84 | - **GPS** : 1/1 actives (100 %) |
| 85 | 85 | - **Mode** : 0/1 actives (0 %) |
| 86 | 86 | - **Parution** : 1/1 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 1, +0, ~1, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 1, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/stl_laval.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/stl_laval.md |
| 7 | 7 | Rôle : Fiche connecteur — Société de transport de Laval (employeur direct, ATS njoyn) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -40,7 +40,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 40 | 40 | |
| 41 | 41 | ## Champs → schéma |
| 42 | 42 | |
| 43 | −Complétude mesurée sur les **16 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 43 | +Complétude mesurée sur les **16 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 44 | 44 | |
| 45 | 45 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 46 | 46 | |---|---|---| |
@@ -81,15 +81,15 @@ Exemple réel : *Agent·e service à la clientèle (Sur appel)* — ∅ · Salai | ||
| 81 | 81 | |
| 82 | 82 | ## Volumétrie & complétude live |
| 83 | 83 | |
| 84 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 85 | 85 | |
| 86 | 86 | - **Offres en base** : 16 (dont **16 actives**, 0 masquées comme doublons `dup_of`) |
| 87 | 87 | - **Salaire** : 5/16 actives (31 %) |
| 88 | 88 | - **GPS** : 0/16 actives (0 %) |
| 89 | 89 | - **Mode** : 0/16 actives (0 %) |
| 90 | 90 | - **Parution** : 0/16 actives (0 %) |
| 91 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 16, +0, ~16, -0 | |
| 92 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 91 | +- **Dernier sync** : 2026-08-19 04:18 — trouvées 16, +0, ~0, -0 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 93 | 93 | |
| 94 | 94 | ## Erreurs & dépannage |
| 95 | 95 | |
modified
docs/connecteurs/suncor.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/suncor.md |
| 7 | 7 | Rôle : Fiche connecteur — Suncor Énergie (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **3 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Bilingual Occupational Health Nurse* — Montréal · ∅ · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Bilingual Occupational Health Nurse* — Montréal · ∅ · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Bilingual Occupational Health Nurse* — Montréal · ∅ · pa | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/3 actives (0 %) |
| 86 | 86 | - **GPS** : 3/3 actives (100 %) |
| 87 | 87 | - **Mode** : 0/3 actives (0 %) |
| 88 | 88 | - **Parution** : 3/3 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:14 — trouvées 3, +0, ~3, -0 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:19 — trouvées 3, +0, ~3, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/sunlife.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sunlife.md |
| 7 | 7 | Rôle : Fiche connecteur — Sun Life (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **8 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **8 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **8 offres actives** de la source (base live, 2026- | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Disability Payment Administrator* — Montréal · ∅ · parue le 2026-08-15. | |
| 67 | +Exemple réel : *Disability Payment Administrator* — Montréal · ∅ · parue le 2026-08-14. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Disability Payment Administrator* — Montréal · ∅ · parue | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 10 (dont **8 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 0/8 actives (0 %) |
| 86 | 86 | - **GPS** : 8/8 actives (100 %) |
| 87 | 87 | - **Mode** : 0/8 actives (0 %) |
| 88 | 88 | - **Parution** : 8/8 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:15 — trouvées 8, +0, ~8, -1 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 23 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:19 — trouvées 8, +0, ~7, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 24 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/surmesur.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/surmesur.md |
| 7 | 7 | Rôle : Fiche connecteur — Surmesur (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Gestionnaire des médias sociaux* — Québec · $58,000 - $68, | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 4/5 actives (80 %) |
| 84 | 84 | - **GPS** : 5/5 actives (100 %) |
| 85 | 85 | - **Mode** : 5/5 actives (100 %) |
| 86 | 86 | - **Parution** : 5/5 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:15 — trouvées 5, +0, ~5, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:19 — trouvées 5, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/sweat_pants_agency.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/sweat_pants_agency.md |
| 7 | 7 | Rôle : Fiche connecteur — Sweat Pants Agency (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Marketing Project Manager, Paid Media* — Montréal · Sweat P | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 3/6 actives (50 %) |
| 79 | 79 | - **GPS** : 6/6 actives (100 %) |
| 80 | 80 | - **Mode** : 6/6 actives (100 %) |
| 81 | 81 | - **Parution** : 6/6 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:15 — trouvées 6, +0, ~6, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:19 — trouvées 6, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/talan.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/talan.md |
| 7 | 7 | Rôle : Fiche connecteur — Talan (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Conseiller(ère) fonctionnel(le) finance, Business Central/NAV | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 13 (dont **13 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/13 actives (0 %) |
| 84 | 84 | - **GPS** : 13/13 actives (100 %) |
| 85 | 85 | - **Mode** : 11/13 actives (85 %) |
| 86 | 86 | - **Parution** : 13/13 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:15 — trouvées 13, +0, ~13, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:19 — trouvées 13, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/talsom.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/talsom.md |
| 7 | 7 | Rôle : Fiche connecteur — Talsom (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Test* — Montréal · ∅ · parue le 2019-08-20. | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/1 actives (0 %) |
| 84 | 84 | - **GPS** : 1/1 actives (100 %) |
| 85 | 85 | - **Mode** : 0/1 actives (0 %) |
| 86 | 86 | - **Parution** : 1/1 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:15 — trouvées 1, +0, ~1, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:19 — trouvées 1, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/tandemlaunch.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/tandemlaunch.md |
| 7 | 7 | Rôle : Fiche connecteur — TandemLaunch (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Scientifique en innovation / Innovation Scientist- Startup Incu | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/5 actives (0 %) |
| 79 | 79 | - **GPS** : 5/5 actives (100 %) |
| 80 | 80 | - **Mode** : 0/5 actives (0 %) |
| 81 | 81 | - **Parution** : 5/5 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:15 — trouvées 5, +0, ~5, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:19 — trouvées 5, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/td.md
+6 −6
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/td.md |
| 7 | 7 | Rôle : Fiche connecteur — Groupe Banque TD (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **69 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **69 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -64,7 +64,7 @@ Complétude mesurée sur les **69 offres actives** de la source (base live, 2026 | ||
| 64 | 64 | | `apply_url` — Candidature | lien de candidature directe | 100 % | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 100 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *Manager, Personal Financial Services- Val D'Or* — Québec · 50 600$/$50,600 - 71 400$/$71,400 CAD · parue le 2026-08-19. | |
| 67 | +Exemple réel : *Manager, Personal Financial Services- Val D'Or* — Québec · 50 600$/$50,600 - 71 400$/$71,400 CAD · parue le 2026-08-18. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *Manager, Personal Financial Services- Val D'Or* — Québec · | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | 84 | - **Offres en base** : 79 (dont **69 actives**, 0 masquées comme doublons `dup_of`) |
| 85 | 85 | - **Salaire** : 68/69 actives (99 %) |
| 86 | 86 | - **GPS** : 69/69 actives (100 %) |
| 87 | 87 | - **Mode** : 68/69 actives (99 %) |
| 88 | 88 | - **Parution** : 69/69 actives (100 %) |
| 89 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 69, +0, ~69, -1 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 89 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 69, +0, ~66, -0 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/techo_bloc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/techo_bloc.md |
| 7 | 7 | Rôle : Fiche connecteur — Techo-Bloc (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **40 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **40 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Agent(e) de sécurité* — Saint-Hubert · Taux horaire de bas | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 42 (dont **40 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 20/40 actives (50 %) |
| 84 | 84 | - **GPS** : 40/40 actives (100 %) |
| 85 | 85 | - **Mode** : 8/40 actives (20 %) |
| 86 | 86 | - **Parution** : 40/40 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 40, +0, ~40, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 40, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/tecsys.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/tecsys.md |
| 7 | 7 | Rôle : Fiche connecteur — Tecsys (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **27 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **27 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Data Engineer (DevOps)* — Montréal · ∅ · parue le 2026-0 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 27 (dont **27 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/27 actives (0 %) |
| 79 | 79 | - **GPS** : 27/27 actives (100 %) |
| 80 | 80 | - **Mode** : 25/27 actives (93 %) |
| 81 | 81 | - **Parution** : 27/27 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 27, +0, ~27, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 27, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/tehora.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/tehora.md |
| 7 | 7 | Rôle : Fiche connecteur — TEHORA (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **346 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **346 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Administrateur de plateforme documentaire* — Québec · ∅ | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 389 (dont **346 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/346 actives (0 %) |
| 79 | 79 | - **GPS** : 346/346 actives (100 %) |
| 80 | 80 | - **Mode** : 109/346 actives (32 %) |
| 81 | 81 | - **Parution** : 346/346 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 825, +0, ~825, -43 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 825, +0, ~752, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/tetrix.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/tetrix.md |
| 7 | 7 | Rôle : Fiche connecteur — Tetrix (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **9 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Executive Assistant* — Montréal · CA$80K - CA$100K · parue | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 9 (dont **9 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 9/9 actives (100 %) |
| 79 | 79 | - **GPS** : 1/9 actives (11 %) |
| 80 | 80 | - **Mode** : 9/9 actives (100 %) |
| 81 | 81 | - **Parution** : 9/9 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 9, +0, ~9, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 9, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/toonboom.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/toonboom.md |
| 7 | 7 | Rôle : Fiche connecteur — Toon Boom Animation (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Gestionnaire des opérations commerciales / Sales Operations Ma | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/6 actives (0 %) |
| 84 | 84 | - **GPS** : 6/6 actives (100 %) |
| 85 | 85 | - **Mode** : 6/6 actives (100 %) |
| 86 | 86 | - **Parution** : 6/6 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 6, +0, ~6, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 6, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/transatat1.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/transatat1.md |
| 7 | 7 | Rôle : Fiche connecteur — Transat A.T. (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **36 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **36 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Agent.e, centre d'appel* — Montréal · Un salaire de base de | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 41 (dont **36 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 2/36 actives (6 %) |
| 84 | 84 | - **GPS** : 36/36 actives (100 %) |
| 85 | 85 | - **Mode** : 20/36 actives (56 %) |
| 86 | 86 | - **Parution** : 36/36 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 36, +0, ~36, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 36, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/triotech.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/triotech.md |
| 7 | 7 | Rôle : Fiche connecteur — Triotech (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Responsable maintenance et SST* — Québec · Salaire horaire | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 8 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 1/6 actives (17 %) |
| 84 | 84 | - **GPS** : 6/6 actives (100 %) |
| 85 | 85 | - **Mode** : 6/6 actives (100 %) |
| 86 | 86 | - **Parution** : 6/6 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 6, +0, ~6, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 6, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/trois_brasseurs.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/trois_brasseurs.md |
| 7 | 7 | Rôle : Fiche connecteur — 3 Brasseurs Canada (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Gérant(e) de restaurant \| Restaurant manager* — Brossard · | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 11 (dont **11 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 8/11 actives (73 %) |
| 79 | 79 | - **GPS** : 11/11 actives (100 %) |
| 80 | 80 | - **Mode** : 11/11 actives (100 %) |
| 81 | 81 | - **Parution** : 11/11 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 11, +0, ~11, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 11, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/tsmg.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/tsmg.md |
| 7 | 7 | Rôle : Fiche connecteur — TSMG (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **11 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Driver - Company Car Provided* — Montmagny · ∅ · parue le | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 11 (dont **11 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/11 actives (0 %) |
| 79 | 79 | - **GPS** : 11/11 actives (100 %) |
| 80 | 80 | - **Mode** : 11/11 actives (100 %) |
| 81 | 81 | - **Parution** : 11/11 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 11, +0, ~11, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 11, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/ubisoft.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ubisoft.md |
| 7 | 7 | Rôle : Fiche connecteur — Ubisoft (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **123 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **123 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Communication Analyst – Security Awareness* — Montréal · | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 131 (dont **123 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/123 actives (0 %) |
| 84 | 84 | - **GPS** : 123/123 actives (100 %) |
| 85 | 85 | - **Mode** : 2/123 actives (2 %) |
| 86 | 86 | - **Parution** : 123/123 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 123, +0, ~123, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 25 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 123, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 26 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/unit8.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/unit8.md |
| 7 | 7 | Rôle : Fiche connecteur — Unit8 (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **3 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Senior Data Engineer - Palantir Foundry (Hybrid, Canada)* — M | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 3 (dont **3 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/3 actives (0 %) |
| 79 | 79 | - **GPS** : 3/3 actives (100 %) |
| 80 | 80 | - **Mode** : 2/3 actives (67 %) |
| 81 | 81 | - **Parution** : 3/3 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 3, +0, ~3, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 3, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/usmobile.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/usmobile.md |
| 7 | 7 | Rôle : Fiche connecteur — US Mobile (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **6 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Staff Frontend Engineer* — Montréal · ∅ · parue le 2026- | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 6 (dont **6 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 6/6 actives (100 %) |
| 79 | 79 | - **GPS** : 6/6 actives (100 %) |
| 80 | 80 | - **Mode** : 6/6 actives (100 %) |
| 81 | 81 | - **Parution** : 6/6 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 6, +0, ~6, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 6, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/vaco.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/vaco.md |
| 7 | 7 | Rôle : Fiche connecteur — Vaco (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **4 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Executive Finance and Accounting Recruiter (Full Desk)* — Mon | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 4 (dont **4 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 3/4 actives (75 %) |
| 79 | 79 | - **GPS** : 4/4 actives (100 %) |
| 80 | 80 | - **Mode** : 0/4 actives (0 %) |
| 81 | 81 | - **Parution** : 4/4 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 4, +0, ~4, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:24 — trouvées 4, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/valsoft_corp.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/valsoft_corp.md |
| 7 | 7 | Rôle : Fiche connecteur — Valsoft (employeur direct, ATS workable) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **37 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **37 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Finance Manager* — Québec · The salary range for this role | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 37 (dont **37 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 4/37 actives (11 %) |
| 79 | 79 | - **GPS** : 37/37 actives (100 %) |
| 80 | 80 | - **Mode** : 6/37 actives (16 %) |
| 81 | 81 | - **Parution** : 37/37 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 39, +0, ~39, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 39, +0, ~4, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/valtech.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/valtech.md |
| 7 | 7 | Rôle : Fiche connecteur — Valtech (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **15 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **15 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Senior Commerce & Digital Consultant* — Montréal · Le salai | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 16 (dont **15 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 2/15 actives (13 %) |
| 79 | 79 | - **GPS** : 15/15 actives (100 %) |
| 80 | 80 | - **Mode** : 0/15 actives (0 %) |
| 81 | 81 | - **Parution** : 15/15 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 15, +0, ~15, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 15, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/vaporus_inc.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/vaporus_inc.md |
| 7 | 7 | Rôle : Fiche connecteur — Vaporus (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Représentant aux Ventes Commerciales / Wholesale Sales Represe | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 2/2 actives (100 %) |
| 79 | 79 | - **GPS** : 1/2 actives (50 %) |
| 80 | 80 | - **Mode** : 0/2 actives (0 %) |
| 81 | 81 | - **Parution** : 2/2 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 2, +0, ~2, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 2, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/vasco.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/vasco.md |
| 7 | 7 | Rôle : Fiche connecteur — Vasco (employeur direct, ATS ashby) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *GTM Engineer* — Montréal · ∅ · parue le 2026-06-08. | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/2 actives (0 %) |
| 79 | 79 | - **GPS** : 2/2 actives (100 %) |
| 80 | 80 | - **Mode** : 2/2 actives (100 %) |
| 81 | 81 | - **Parution** : 2/2 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 2, +0, ~2, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 2, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/venturemedia.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/venturemedia.md |
| 7 | 7 | Rôle : Fiche connecteur — Venture Media (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Operations Manager (Branch, Warehouse and Logistics) - Permanen | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 2/2 actives (100 %) |
| 84 | 84 | - **GPS** : 2/2 actives (100 %) |
| 85 | 85 | - **Mode** : 1/2 actives (50 %) |
| 86 | 86 | - **Parution** : 2/2 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 2, +0, ~2, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 2, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/vicpark.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/vicpark.md |
| 7 | 7 | Rôle : Fiche connecteur — Victoria Park Medispa (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **13 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Coordinateur(trice) de la réception* — Québec · ∅ · par | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 13 (dont **13 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/13 actives (0 %) |
| 84 | 84 | - **GPS** : 13/13 actives (100 %) |
| 85 | 85 | - **Mode** : 13/13 actives (100 %) |
| 86 | 86 | - **Parution** : 13/13 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 13, +0, ~13, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 13, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/videotron.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/videotron.md |
| 7 | 7 | Rôle : Fiche connecteur — Vidéotron (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **80 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **80 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Cuisinier·ère* — Québec · Un salaire de 22,14 $/heure · | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 85 (dont **80 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 11/80 actives (14 %) |
| 84 | 84 | - **GPS** : 80/80 actives (100 %) |
| 85 | 85 | - **Mode** : 32/80 actives (40 %) |
| 86 | 86 | - **Parution** : 80/80 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 80, +0, ~80, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 80, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/ville_gatineau.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ville_gatineau.md |
| 7 | 7 | Rôle : Fiche connecteur — Ville de Gatineau (employeur direct, ATS njoyn) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -40,7 +40,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 40 | 40 | |
| 41 | 41 | ## Champs → schéma |
| 42 | 42 | |
| 43 | −Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 43 | +Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 44 | 44 | |
| 45 | 45 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 46 | 46 | |---|---|---| |
@@ -81,15 +81,15 @@ Exemple réel : *Coordonnateur(trice), revenus* — ∅ · Selon la classe 4 de | ||
| 81 | 81 | |
| 82 | 82 | ## Volumétrie & complétude live |
| 83 | 83 | |
| 84 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 85 | 85 | |
| 86 | 86 | - **Offres en base** : 18 (dont **17 actives**, 0 masquées comme doublons `dup_of`) |
| 87 | 87 | - **Salaire** : 16/17 actives (94 %) |
| 88 | 88 | - **GPS** : 0/17 actives (0 %) |
| 89 | 89 | - **Mode** : 0/17 actives (0 %) |
| 90 | 90 | - **Parution** : 0/17 actives (0 %) |
| 91 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 17, +0, ~17, -1 | |
| 92 | −- **Syncs enregistrés** (`sync_log`) : 13 | |
| 91 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 17, +0, ~0, -0 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 14 | |
| 93 | 93 | |
| 94 | 94 | ## Erreurs & dépannage |
| 95 | 95 | |
modified
docs/connecteurs/ville_terrebonne.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ville_terrebonne.md |
| 7 | 7 | Rôle : Fiche connecteur — Ville de Terrebonne (employeur direct, ATS njoyn) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -40,7 +40,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 40 | 40 | |
| 41 | 41 | ## Champs → schéma |
| 42 | 42 | |
| 43 | −Complétude mesurée sur les **16 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 43 | +Complétude mesurée sur les **16 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 44 | 44 | |
| 45 | 45 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 46 | 46 | |---|---|---| |
@@ -81,15 +81,15 @@ Exemple réel : *Préventionniste* — ∅ · Le taux horaire de ce poste est de | ||
| 81 | 81 | |
| 82 | 82 | ## Volumétrie & complétude live |
| 83 | 83 | |
| 84 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 84 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 85 | 85 | |
| 86 | 86 | - **Offres en base** : 16 (dont **16 actives**, 0 masquées comme doublons `dup_of`) |
| 87 | 87 | - **Salaire** : 15/16 actives (94 %) |
| 88 | 88 | - **GPS** : 0/16 actives (0 %) |
| 89 | 89 | - **Mode** : 0/16 actives (0 %) |
| 90 | 90 | - **Parution** : 0/16 actives (0 %) |
| 91 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 16, +0, ~16, -0 | |
| 92 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 91 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 16, +0, ~0, -0 | |
| 92 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 93 | 93 | |
| 94 | 94 | ## Erreurs & dépannage |
| 95 | 95 | |
modified
docs/connecteurs/vmlcanadaen.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/vmlcanadaen.md |
| 7 | 7 | Rôle : Fiche connecteur — VML Canada (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Senior Strategist (Passport Brand Design)* — Montréal · $65 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/2 actives (50 %) |
| 79 | 79 | - **GPS** : 2/2 actives (100 %) |
| 80 | 80 | - **Mode** : 0/2 actives (0 %) |
| 81 | 81 | - **Parution** : 2/2 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 2, +0, ~2, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 2, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/vo2_group.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/vo2_group.md |
| 7 | 7 | Rôle : Fiche connecteur — VO2 Group (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **17 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *[VO2 Canada] - Analyste d'Affaires (BA) – Missions Ponctuelle | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 17 (dont **17 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 1/17 actives (6 %) |
| 79 | 79 | - **GPS** : 17/17 actives (100 %) |
| 80 | 80 | - **Mode** : 17/17 actives (100 %) |
| 81 | 81 | - **Parution** : 17/17 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 17, +0, ~17, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 17, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/vooban.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/vooban.md |
| 7 | 7 | Rôle : Fiche connecteur — Vooban (employeur direct, ATS greenhouse) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **18 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Développeur AI Front-End* — Montréal · ∅ · parue le 202 | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 18 (dont **18 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/18 actives (0 %) |
| 79 | 79 | - **GPS** : 18/18 actives (100 %) |
| 80 | 80 | - **Mode** : 0/18 actives (0 %) |
| 81 | 81 | - **Parution** : 18/18 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 18, +0, ~18, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 18, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/vosker.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/vosker.md |
| 7 | 7 | Rôle : Fiche connecteur — Vosker (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **19 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **19 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Chef.fe des revenus* — Montréal · ∅ · parue le 2026-08-1 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 20 (dont **19 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/19 actives (0 %) |
| 84 | 84 | - **GPS** : 19/19 actives (100 %) |
| 85 | 85 | - **Mode** : 17/19 actives (89 %) |
| 86 | 86 | - **Parution** : 19/19 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 19, +0, ~19, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 19, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/voxdata.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/voxdata.md |
| 7 | 7 | Rôle : Fiche connecteur — VOXDATA (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **5 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Agent(e) bilingue, service à la clientèle \| Bilingual Custom | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 5 (dont **5 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 5/5 actives (100 %) |
| 79 | 79 | - **GPS** : 5/5 actives (100 %) |
| 80 | 80 | - **Mode** : 5/5 actives (100 %) |
| 81 | 81 | - **Parution** : 5/5 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:20 — trouvées 5, +0, ~5, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:25 — trouvées 5, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/walmart.md
+12 −12
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/walmart.md |
| 7 | 7 | Rôle : Fiche connecteur — Walmart Canada (employeur direct, ATS workday) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 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,7 +38,7 @@ Généré : 2026-08-19 03:39 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 **980 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 41 | +Complétude mesurée sur les **979 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 42 | 42 | |
| 43 | 43 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 44 | 44 | |---|---|---| |
@@ -61,10 +61,10 @@ Complétude mesurée sur les **980 offres actives** de la source (base live, 202 | ||
| 61 | 61 | | `category` — Catégorie | taxonomie interne (TI, Santé, …) | 91 % | |
| 62 | 62 | | `language` — Langue | fr / en / bilingue (source ou heuristique) | 100 % | |
| 63 | 63 | | `company_logo` — Logo employeur | URL du logo si exposé par la source | 0 % | |
| 64 | −| `apply_url` — Candidature | lien de candidature directe | 31 % | | |
| 64 | +| `apply_url` — Candidature | lien de candidature directe | 33 % | | |
| 65 | 65 | | `gps` — GPS | lat/lng (géocodage sans invention) | 91 % | |
| 66 | 66 | |
| 67 | −Exemple réel : *(CAN) Caissier* — Saint-Leonard · The minimum rate of pay for this position starts from $18.75. · parue le 2026-08-19. | |
| 67 | +Exemple réel : *(CAN) OMNI Customer Fulfillment Associate* — Laval · The minimum rate of pay for this position starts from $18.75. · parue le 2026-08-19. | |
| 68 | 68 | |
| 69 | 69 | ## Fréquence & budgets |
| 70 | 70 | |
@@ -79,15 +79,15 @@ Exemple réel : *(CAN) Caissier* — Saint-Leonard · The minimum rate of pay fo | ||
| 79 | 79 | |
| 80 | 80 | ## Volumétrie & complétude live |
| 81 | 81 | |
| 82 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 82 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 83 | 83 | |
| 84 | −- **Offres en base** : 1016 (dont **980 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | −- **Salaire** : 915/980 actives (93 %) | |
| 86 | −- **GPS** : 893/980 actives (91 %) | |
| 87 | −- **Mode** : 1/980 actives (0 %) | |
| 88 | −- **Parution** : 980/980 actives (100 %) | |
| 89 | −- **Dernier sync** : 2026-08-19 02:30 — trouvées 979, +11, ~968, -2 | |
| 90 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 84 | +- **Offres en base** : 1016 (dont **979 actives**, 0 masquées comme doublons `dup_of`) | |
| 85 | +- **Salaire** : 915/979 actives (93 %) | |
| 86 | +- **GPS** : 892/979 actives (91 %) | |
| 87 | +- **Mode** : 1/979 actives (0 %) | |
| 88 | +- **Parution** : 979/979 actives (100 %) | |
| 89 | +- **Dernier sync** : 2026-08-19 04:35 — trouvées 977, +0, ~696, -1 | |
| 90 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 91 | 91 | |
| 92 | 92 | ## Erreurs & dépannage |
| 93 | 93 | |
modified
docs/connecteurs/xplornet.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/xplornet.md |
| 7 | 7 | Rôle : Fiche connecteur — Xplornet (employeur direct, ATS smartrecruiters) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Call Center Representative* — Montréal · ∅ · parue le 20 | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 0/1 actives (0 %) |
| 84 | 84 | - **GPS** : 1/1 actives (100 %) |
| 85 | 85 | - **Mode** : 0/1 actives (0 %) |
| 86 | 86 | - **Parution** : 1/1 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:30 — trouvées 1, +0, ~1, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:35 — trouvées 1, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
docs/connecteurs/xsolla.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/xsolla.md |
| 7 | 7 | Rôle : Fiche connecteur — Xsolla (employeur direct, ATS lever) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **21 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **21 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Site Reliability Engineer (Monetization)* — Montréal · ∅ | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 21 (dont **21 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 20/21 actives (95 %) |
| 79 | 79 | - **GPS** : 20/21 actives (95 %) |
| 80 | 80 | - **Mode** : 21/21 actives (100 %) |
| 81 | 81 | - **Parution** : 21/21 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:30 — trouvées 21, +0, ~21, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:35 — trouvées 21, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/youset.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/youset.md |
| 7 | 7 | Rôle : Fiche connecteur — YouSet (employeur direct, ATS breezy) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **1 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -72,15 +72,15 @@ Exemple réel : *Courtier en assurance de dommages des particuliers* — Montré | ||
| 72 | 72 | |
| 73 | 73 | ## Volumétrie & complétude live |
| 74 | 74 | |
| 75 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 75 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 76 | 76 | |
| 77 | 77 | - **Offres en base** : 1 (dont **1 actives**, 0 masquées comme doublons `dup_of`) |
| 78 | 78 | - **Salaire** : 0/1 actives (0 %) |
| 79 | 79 | - **GPS** : 1/1 actives (100 %) |
| 80 | 80 | - **Mode** : 1/1 actives (100 %) |
| 81 | 81 | - **Parution** : 1/1 actives (100 %) |
| 82 | −- **Dernier sync** : 2026-08-19 02:30 — trouvées 1, +0, ~1, -0 | |
| 83 | −- **Syncs enregistrés** (`sync_log`) : 24 | |
| 82 | +- **Dernier sync** : 2026-08-19 04:35 — trouvées 1, +0, ~0, -0 | |
| 83 | +- **Syncs enregistrés** (`sync_log`) : 25 | |
| 84 | 84 | |
| 85 | 85 | ## Erreurs & dépannage |
| 86 | 86 | |
modified
docs/connecteurs/ziptrekeco.md
+5 −5
@@ -5,7 +5,7 @@ Auteur : Simon-Pierre Boucher | ||
| 5 | 5 | Contact : contact@spboucher.ai |
| 6 | 6 | Fichier : docs/connecteurs/ziptrekeco.md |
| 7 | 7 | Rôle : Fiche connecteur — Ziptrek Tremblant (employeur direct, ATS bamboohr) |
| 8 | −Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 8 | +Généré : 2026-08-19 05:40 EDT par scripts/gen_connector_docs.py — NE PAS ÉDITER, | |
| 9 | 9 | relancer le script pour régénérer. |
| 10 | 10 | ============================================================================= |
| 11 | 11 | --> |
@@ -36,7 +36,7 @@ Généré : 2026-08-19 03:39 EDT par scripts/gen_connector_docs.py — NE PAS | ||
| 36 | 36 | |
| 37 | 37 | ## Champs → schéma |
| 38 | 38 | |
| 39 | −Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 03:39 EDT). | |
| 39 | +Complétude mesurée sur les **2 offres actives** de la source (base live, 2026-08-19 05:40 EDT). | |
| 40 | 40 | |
| 41 | 41 | | Champ (`jobs.*`) | Rôle | Complétude | |
| 42 | 42 | |---|---|---| |
@@ -77,15 +77,15 @@ Exemple réel : *Guide de tyroliennes Mont-Tremblant TEMPS PLEIN- 2026* — Qué | ||
| 77 | 77 | |
| 78 | 78 | ## Volumétrie & complétude live |
| 79 | 79 | |
| 80 | −*(mesuré le 2026-08-19 03:39 EDT dans `data/jobka.db`)* | |
| 80 | +*(mesuré le 2026-08-19 05:40 EDT dans `data/jobka.db`)* | |
| 81 | 81 | |
| 82 | 82 | - **Offres en base** : 2 (dont **2 actives**, 0 masquées comme doublons `dup_of`) |
| 83 | 83 | - **Salaire** : 2/2 actives (100 %) |
| 84 | 84 | - **GPS** : 2/2 actives (100 %) |
| 85 | 85 | - **Mode** : 2/2 actives (100 %) |
| 86 | 86 | - **Parution** : 2/2 actives (100 %) |
| 87 | −- **Dernier sync** : 2026-08-19 02:30 — trouvées 2, +0, ~2, -0 | |
| 88 | −- **Syncs enregistrés** (`sync_log`) : 12 | |
| 87 | +- **Dernier sync** : 2026-08-19 04:35 — trouvées 2, +0, ~0, -0 | |
| 88 | +- **Syncs enregistrés** (`sync_log`) : 13 | |
| 89 | 89 | |
| 90 | 90 | ## Erreurs & dépannage |
| 91 | 91 | |
modified
jobka/connectors/njoyn.py
+8 −4
@@ -145,15 +145,19 @@ class NjoynConnector(BaseConnector): | ||
| 145 | 145 | return [it for it in items if it["title"]] |
| 146 | 146 | |
| 147 | 147 | def _parse_table(self, page: str) -> list[dict]: |
| 148 | − """Habillage classique en tableau : N° | Titre | Catégorie | Ville | | |
| 149 | − Pays (ex. CGI). Retourne aussi ville/pays pour le filtre Québec.""" | |
| 148 | + """Habillage tableau multi-colonnes : N° | Titre | Catégorie | Ville | | |
| 149 | + Pays (ex. CGI). Signature stricte — le libellé du lien est le numéro | |
| 150 | + de poste lui-même et la ligne a ≥ 4 colonnes — pour ne JAMAIS | |
| 151 | + intercepter les habillages « titre dans le lien » (STL, RTC…).""" | |
| 150 | 152 | items, seen = [], set() |
| 151 | 153 | for tr in _TR_RE.findall(page): |
| 152 | − m = _JOBID_RE.search(tr) | |
| 154 | + m = _ROW_LINK_RE.search(tr) | |
| 153 | 155 | if not m or m.group(1) in seen: |
| 154 | 156 | continue |
| 157 | + if _txt(m.group(2)) != m.group(1): | |
| 158 | + continue # le lien porte un titre : autre habillage | |
| 155 | 159 | tds = [_txt(td) for td in _TD_RE.findall(tr)] |
| 156 | − if len(tds) < 2: | |
| 160 | + if len(tds) < 4: | |
| 157 | 161 | continue |
| 158 | 162 | seen.add(m.group(1)) |
| 159 | 163 | title = tds[1] if len(tds) > 1 else "" |
| 160 | 164 | |