RBC (rbc)
Employeur direct · Plateforme ATS : workday · Statut registre : actif · Connecteur : jobka/connectors/rbc.py
Description
- Site : RBC
- Page carrières : https://rbc.wd3.myworkdayjobs.com/RBCEARLYTALENT1
- Secteurs : Finance, Services
- Région : MONTRÉAL
- Offres marquées « Offre directe » dans l'app (badge) : la candidature se fait chez l'employeur, jamais via un intermédiaire.
Accès
- Mécanique : voir la fiche plateforme
ats-workday.md— API JSON publique du site carrières, backendrequestsdirect (Scrapfly seulement si indiqué sur la fiche plateforme). - Identifiants du tenant (attributs du connecteur) :
| Attribut | Valeur |
|---|---|
EMPLOYER |
RBC |
HOST |
wd3 |
SITE |
RBCEARLYTALENT1 |
TENANT |
rbc |
- Throttle : 0.7 s entre requêtes.
- 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_locationcôté client).
Champs → schéma
Aucune offre active en base pour cette source.
Fréquence & budgets
- Cadence : resynchronisation horaire (PM2
job-ka-sync=run.py watch 60), suivie du géocodage en lot puis de la déduplication inter-sources. - Throttle : 0.7 s minimum entre deux requêtes vers la source (
request_delay). - Budgets / plafonds (variables d'environnement) :
| Variable | Défaut |
|---|---|
JOBKA_WORKDAY_DETAIL_LIMIT |
300 |
- 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.
Volumétrie & complétude live
(mesuré le 2026-10-14 18:40 EDT dans data/jobka.db)
- Offres en base : 5 (dont 0 actives, 0 masquées comme doublons
dup_of) - Salaire : 0/0 actives (—)
- GPS : 0/0 actives (—)
- Mode : 0/0 actives (—)
- Parution : 0/0 actives (—)
- Dernier sync : 2026-10-14 15:53 — trouvées 0, +0, ~0, -0
- Syncs enregistrés (
sync_log) : 472
Erreurs & dépannage
Erreurs relevées dans sync_log :
| Erreur | Occurrences | Dernière fois |
|---|---|---|
| Workday non-JSON après 3 essais (HTTP 200, text/html) : Expecting value: line 1 column 1 (… | 1 | 2026-10-10 02:09 |
| Expecting value: line 1 column 1 (char 0) | 1 | 2026-08-29 02:27 |
- Rejouer un sync isolé :
.venv/bin/python run.py sync rbcpuis inspectersync_log:sqlite3 data/jobka.db "SELECT * FROM sync_log WHERE source='rbc' ORDER BY ts DESC LIMIT 5;" - 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.
Licence / conformité
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 RBC » 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.
Historique
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 :
fd4bfc8qualité lieux : rejet des villes hors Québec, bâtiments McGill → Montréal ;5a66f48+59 employeurs (sondage massif d'ATS + détection de pages carrières) ;4917d578 nouveaux ATS (Taleo, Njoyn, UltiPro, iCIMS, SuccessFactors, ADP WFN, Digital Recruiters, Workland) + 23 employeurs publics/parapublics ;f6e7571portails Guichet-Emplois, Jobillico, Espresso-Jobs — l'offre directe gagne toujours la canonique (dédup) ;744cbfcbadge « Offre directe », stats directes/portails, dépôt direct employeurs ;1604ff9reprise sur coupure WAF Guichet-Emplois (retry + acquis partiel).
Commits touchant jobka/connectors/rbc.py :
1119e5e92026-10-10 [ka6] snapshot pré-mission reddyiceedde0ca82026-10-05 [ka6] fix connecteur rbc: faux positif de supervision « volume QC nul » (37e cas du pattern, 2e intervention sur cette source) — le connecteur est SAIN, found=0 est le comportement CORRECT (médiane historique 0.5, portail Workday early talent RBCEARLYTALENT1 dominé par Toronto/US/Malaisie, le QC n'y a que 0-1 poste par vagues de stages). Le stale de 5,9 h vient de la définition de succès de la supervision (dernier sync found>0 = 2026-10-04 22:02) : l'unique offre QC en base (R-0000186549 « 2027 Winter Change Management Intern (4 months) », Montréal, parue 2026-09-10 — celle-là même récupérée par le fix multi-lieux c095c66 du 2026-09-28) a été DÉPUBLIÉE par RBC entre 22:02 et 00:00 EDT (found 1 → 0, missed=1, puis removed=1 via le garde-fou 2-miss). sync_log VERT en continu (ok=1). Détail cxs de R-0000186549 : 403 S22 = marqueur Workday classique « dépublié ». Re-vérification live du board /wday/cxs/rbc/RBCEARLYTALENT1/jobs : 200, 34 offres paginées (limit max 20 sur ce tenant, 400 au-delà), publication active (postes 2027), searchText Quebec/Québec/Montreal/Montréal → 0 ; l'unique offre multi-lieux « 2 Locations » (R-0000187346, leçon rbc c095c66) vérifiée au détail cxs : Jersey City + New York, 100 % US. Topologie du tenant sondée (leçon silabs d96f5e0) : 8 noms de sites frères → 404, seul RBCEARLYTALENT1 existe. Aucune migration d'ATS : Google référence toujours RBCEARLYTALENT1 comme portail early talent (y compris l'offre dépubliée en cache) ; jobs.rbc.com = façade Phenom du volet carrières général, hors périmètre de ce connecteur. sources.json déjà propre (name/url/EMPLOYER corrigés au passage précédent). Tant que RBC ne republie rien au Québec sur le portail early talent (cycles saisonniers de stages), ce connecteur sera re-signalé périodiquement : structurel, pas une panne (même classe que zoetis 78938c3 / cclfg 43526d3 / ghgsat 5e2c122 / poolcorp 3e3fd59). Docstring rbc.py enrichie (chronologie + marqueur + topologie du tenant). Sync isolé rejoué ×2 : found=0 stable, ok=1, ~9 s ; non-régression plateforme workday sur tenant vivant mcgill : found=545, ok=1. Fiches docs/connecteurs/ rbc.md + ats-workday.md + INDEX.md régénérées via scripts/gen_connector_docs.py (les 1130 autres fiches, dont seuls les instantanés horodatés changeaient, restaurées — hors périmètre). 106 tests pytest verts. pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.c095c6602026-09-28 [ka6] fix connecteur rbc: angle mort réel « poste multi-lieux » derrière un stale volume-QC-nul (1re intervention) — contrairement aux 19 faux positifs précédents, il y avait une VRAIE offre QC manquée. Contexte : site early talent Workday rbc.wd3/RBCEARLYTALENT1 (stages/co-op, médiane QC 0.5), l'unique offre QC en base (« 2027 Capital Markets, Global Markets Program Summer Analyst » R-0000180191, Montréal) dépubliée par RBC dans la nuit → found=0 ×2, sync_log VERT en continu (ok=1, 233+ syncs). Re-vérification live du board : 200 JSON, 46 postes (Toronto/USA/Malaisie), searchText=Quebec → 1 poste VIVANT : « 2027 Winter Change Management Intern (4 months) » R-0000186549, lieu principal MONTRÉAL Quebec + secondaire Toronto, publié 2026-09-10 — mais sa ligne de liste affiche locationsText=« 2 Locations » sans nommer les villes, que le filtre client is_quebec_location rejetait ; et ce tenant n'expose AUCUNE facette de province (State_Province sans Quebec ni Ontario) donc pas de filtre serveur possible. FIX dans workday.py (_keep) : repli sur le slug de lieu de l'externalPath (…/job/MONTRAL-Quebec-Canada/…, porte le lieu PRINCIPAL) quand le libellé est vide ou « N Locations » — zéro requête additionnelle, ne touche que les tenants filtrés client ; limite assumée documentée : un poste dont seul un lieu SECONDAIRE est QC reste manqué. La page détail remplace déjà « 2 Locations » par le vrai lieu (mécanique existante) → l'offre entre en base avec city=Montréal. Au passage, artefacts vague C corrigés (pattern ci/geox) : EMPLOYER 'Rbc' → 'RBC' (rbc.py, docstring re-vérif 2026-09-28 + chronologie), name 'Rbc' → 'RBC' et url vide → https://www.rbc.com (vérifié 200) dans sources.json — éditions ciblées, format préservé. Sync isolé rejoué : found=1 (added=1 puis stable ×2), ok=1, ~14 s ; non-régression Workday : cibc found=69 ≈ médiane 73. Fiches docs/connecteurs/ rbc.md + ats-workday.md + INDEX.md régénérées via scripts/gen_connector_docs.py (les 1130 autres fiches, dont seuls les instantanés horodatés changeaient, restaurées — hors périmètre). 106 tests pytest verts. pm2 restart job-ka-sync OK, site local 200, www.job-ka.com 200.c45c75302026-08-23 Vague C — +620 connecteurs employeurs directs (350 -> 968)