Public : opérateurs de la plateforme HireQ (super administrateurs)
Portail : après la connexion, vous arrivez sur /dashboard
Dernière mise à jour : 2026-10-01 (bêta)
En ligne : www.hireq.ca/fr/guides/admin.html · English version
Ce guide décrit l'espace de travail administrateur tel qu'il est construit dans le portail unifié (portal/). Le portail administrateur est offert en anglais seulement; les libellés à l'écran sont donc conservés en anglais dans ce guide. La configuration du serveur et les étapes de mise en production se trouvent dans ops/beta-go-live-checklist.md et env.md. SMTP, logos et l'éditeur Emails (courriels) : email-setup.md.
Avis bêta. La plateforme fonctionne avec Stripe en mode test (
PAYMENTS_MODE=sandbox). Les services doivent utiliser des identifiants de prix (Price ID) Stripe en mode test, et les utilisateurs paient avec des cartes de test. N'entrez pas de Price ID réels pendant la bêta. Passage au mode réel plus tard : ops/stripe-live-cutover.md.
Guides des autres rôles : Guide rapide · Guide du candidat · Guide du recruteur
Conception approfondie des schémas : validation-user-guide.md
Comment le schéma, la taxonomie, les compétences et les scores de jumelage s'articulent : §3
1. Comment accéder au portail
1.1 Créer un compte administrateur
Les administrateurs ne peuvent pas s'inscrire sur /register, et il n'existe aucune variable d'environnement pour les administrateurs. Une personne ayant un accès shell au serveur de l'API exécute :
cd /opt/hireq/backend
.venv/bin/python scripts/create_admin_user.py --email you@hireq.ca
Le script demande le mot de passe deux fois. Le mot de passe doit contenir au moins 10 caractères, ne pas être composé uniquement de chiffres et ne pas être l'adresse courriel. Exécuter le script de nouveau pour un administrateur existant réinitialise son mot de passe (et réactive le compte). Le script refuse de transformer le courriel d'un candidat ou d'un recruteur existant en compte administrateur.
1.2 Se connecter
- Connectez-vous sur la même page de connexion que tout le monde (
/). Vous êtes redirigé vers/dashboard. - Si la 2FA est activée, entrez le Authenticator code (code d'authentification) lorsqu'il est demandé.
- Liens directs :
/dashboard?section=matching,validation-schema,taxonomy,emails,audit,skills,account, etc. - L'interface administrateur est offerte en anglais seulement.
- Si la session n'est pas valide, vous êtes renvoyé vers
/.
1.3 Sécurité du compte (mot de passe et 2FA)
Barre latérale → Account security (sécurité du compte).
- Change password (changer le mot de passe) — mot de passe actuel + nouveau mot de passe (mêmes règles que ci-dessus).
- Authenticator app (2FA) (application d'authentification) — Set up 2FA (configurer la 2FA) → ajoutez la clé à votre application d'authentification → entrez le code à 6 chiffres → Turn on 2FA (activer la 2FA). Pour la désactiver, il vous faut votre mot de passe et un code valide.
La 2FA est facultative dans le logiciel, mais la politique de la bêta exige que chaque administrateur l'active. Les administrateurs peuvent voir toutes les données des candidats, les enregistrements et les paiements.
1.4 Appareil 2FA perdu (procédure de soutien)
Il n'existe pas encore de codes de récupération en libre-service. Pour tout utilisateur (administrateur, recruteur ou candidat) qui a perdu son application d'authentification :
- Vérifiez son identité par un autre moyen (courriel connu + un deuxième canal de confiance).
- Un opérateur ayant accès à la base de données désactive la 2FA de cet utilisateur : mettez
totp_enabled = falseettotp_secret = NULLdans la ligneusers. - Demandez à l'utilisateur de se connecter avec son mot de passe et de configurer la 2FA de nouveau.
- Consignez la réinitialisation dans votre journal de soutien.
2. Ce que vous gérez
HireQ n'est pas un outil d'administration où l'on se contente « d'activer des options ». Vous gérez les règles et les catalogues à l'intérieur desquels vivent les candidats et les recruteurs :
| Ce que vous configurez | Ce qu'ils vivent |
|---|---|
| Versions de la taxonomie des emplois | Sélecteur de titre normalisé du recruteur et références de la famille |
| Schémas de validation des candidats et des emplois | Lacunes de l'Assistant profil, liste de contrôle de la qualité de l'offre, état de préparation à la publication |
| Paramètres de jumelage | Quand le rejumelage s'exécute, qui est avisé, si les occasions sont présentées automatiquement |
| Dictionnaire de compétences (+ banques de questions facultatives) | Sélecteurs de compétences, questions de validation des compétences, identifiants de compétences pour le jumelage |
| Listes de valeurs | Listes déroulantes (type d'emploi, mode de travail, maîtrise de la langue, …) |
| Services payants + Price ID Stripe | Facturation du recruteur et services de CV du candidat |
| Statut des utilisateurs et des emplois | Qui peut se connecter; quels emplois sont publics |
L'IA n'embauche et ne refuse jamais automatiquement. Vos options de Matching (jumelage) peuvent aviser et présenter des occasions; les candidats doivent toujours consentir. Les recruteurs déplacent toujours le statut du pipeline à la main.
3. Schéma de validation, taxonomie des emplois, compétences et scores de jumelage
Ces écrans d'administration semblent séparés dans la barre latérale, mais ils forment un seul pipeline. Les candidats et les recruteurs ne les modifient jamais; ils évoluent à l'intérieur des règles et des données de professions que vous activez.
3.1 Validation Schema (les règles)
Il existe deux schémas actifs (chacun versionné; seule la version active s'applique) :
| Schéma | Ce qu'il régit |
|---|---|
| Candidate (candidat) | Comment les données du profil deviennent des déclarations; liste de contrôle de complétion du profil; invites de lacunes de l'Assistant profil; pondérations de préparation |
| Job (emploi) | Comment les champs de l'offre deviennent des déclarations de l'emploi; liste de contrôle de la qualité de l'offre; seuils de préparation à la publication et à la recommandation |
Un schéma n'est pas une liste de professions ou de noms de compétences. Il est structurel (« les compétences doivent exister », « poser une question sur {keyword} », « la publication exige une préparation ≥ X »). Le même schéma de candidat fonctionne pour toute compétence que le candidat ajoute.
Paramètres par défaut du candidat (fournis / habituellement actifs) : pondérations de préparation autodéclarée 0.15 / manuelle 0.35 / IA 0.5; completeness_divisor 11; validated_score_threshold 0.7; low_ai_gap_threshold 0.5. Les vérifications de complétion comprennent le nom complet, le lieu, le téléphone, le résumé, les postes visés, les préférences de travail, l'historique de travail, les compétences, les langues, la formation et les certifications (plusieurs permettent « aucun » lorsque le candidat décline dans l'assistant).
Paramètres par défaut de l'emploi : pondération autodéclarée 1.0; publish_readiness_threshold 0.6; recommendation_readiness_threshold 0.6; min_required_skills 1; required_locales ["en"]. Complétion : titre et description en anglais, ≥1 compétence, lieu (ville ou lieu), type d'emploi, mode de travail.
Si aucune version n'est active dans la base de données, l'API utilise le JSON fourni sous backend/config/.
3.2 Taxonomie des emplois (arbre des professions)
La taxonomie est du contenu : catégories → familles → titres d'emploi normalisés → compétences de la famille.
L'importation exige deux fichiers (CSV UTF-8 ou .xlsx) :
Colonnes du fichier des compétences :
Category ID, Category, Job Family ID, Job Family, Skill ID, Skill, Skill Type, Importance, Expected Proficiency, Validation Method, Interview Weight, Question Required
Colonnes du fichier des titres normalisés :
Category ID, Category, Job Family ID, Job Family, Job ID, Job Title
Points importants en production :
- Le Skill ID de la taxonomie est un identifiant externe sur la ligne de taxonomie. Le jumelage repose sur le
Skill.idde la plateforme, créé ou mis à jour à partir du nom de la compétence (sans tenir compte de la casse). Les mots-clés en double dans le dictionnaire nuisent toujours au jumelage. - L'importation exige une étiquette de version. Un fichier dont la somme de contrôle est identique renvoie la version existante (et peut l'activer).
- Activate (activer) fait de cette version la seule version active (
effective_atest défini).
Lorsqu'un recruteur utilise Build family baseline (créer la référence de la famille), les compétences de la famille deviennent des lignes JobRequirement proposées :
| Champ de l'exigence | Provenance dans la taxonomie |
|---|---|
required |
Importance égale à core (sans tenir compte de la casse) |
weight |
2.0 si Interview Weight est High, sinon 1.0 |
target_proficiency |
5 (valeur par défaut fixe). Expected Proficiency est conservé dans les métadonnées de la grille — ce n'est pas la cible numérique utilisée dans le calcul d'adéquation actuel |
hard_gate |
Toujours false au chargement de la taxonomie (seule une modification ultérieure peut définir un critère éliminatoire) |
confirmation_status |
proposed jusqu'à ce que le recruteur confirme |
Sans couverture de la taxonomie pour un poste, les recruteurs peuvent quand même rédiger un emploi avec des compétences libres, mais le parcours de jumelage fondé sur les preuves exige un titre normalisé + des exigences confirmées.
3.3 Catalogue de compétences, compétences des candidats et compétences de la taxonomie
| Source | Où elle se trouve | Rôle |
|---|---|---|
| Dictionnaire de compétences (Admin → Skills) | Liste plate de mots-clés + banque de questions facultative | Identifiants de compétences communs à la plateforme pour les sélecteurs, les déclarations et la mise à jour par nom depuis la taxonomie |
| Compétences des candidats | Profil / CV / Assistant profil → déclarations de compétence (score + niveau de 1 à 10) | Ce que la personne sait faire, avec preuves |
| Compétences de la famille (taxonomie) | Version active de la taxonomie | Exigences par défaut pour les titres de cette famille |
Les compétences des candidats ne sont pas limitées à la taxonomie. Les compétences saisies librement peuvent créer de nouvelles entrées dans le catalogue. La validation des compétences (interface candidat) génère des questions si la banque est vide (voir §6).
3.4 Calcul des scores de jumelage (comportement du code)
Le jumelage fondé sur les preuves (assess_match) compare les exigences confirmées de la version actuelle de la spécification de l'emploi aux déclarations de compétence du candidat (les équivalences de compétences approuvées peuvent associer des compétences apparentées).
Admin activates taxonomy + candidate/job schemas + Matching settings
↓
Candidate adds skills → claims → Profile assistant / skill validation strengthens scores & levels
↓
Recruiter picks canonical title → Build family baseline → Confirm requirements → publish
↓
Job is matchable only if: published + assessment_ready + ≥1 confirmed requirement
↓
Per requirement: fit = claim_score × min(1, level / target_proficiency)
↓
fit_score = weighted average of fit
evidence_confidence = weighted average of evidence strength
suitability = fit_score × (0.5 + 0.5 × evidence_confidence)
↓
Recommendation label (hardcoded thresholds) + Matching settings for “strong” notify/auto-present
Statut par exigence :
supportedsi l'adéquation ≥ 0.7 et les preuves ≥ 0.5missing_evidencesi les preuves < 0.4 (ou aucune déclaration)- sinon
partial
Critères éliminatoires : si une exigence a hard_gate et que l'adéquation < 0.5, le candidat est inadmissible et la recommandation est needs_review.
Libellé de recommandation (et non les seuils des paramètres de jumelage) :
| Résultat | Quand |
|---|---|
needs_review |
Tout échec à un critère éliminatoire, ou ni recommandé ni preuves insuffisantes |
recommended |
suitability ≥ 0.7 et evidence_confidence ≥ 0.5 |
insufficient_evidence |
evidence_confidence < 0.4 |
Correspondance forte (paramètres de Matching — utilisés pour aviser / présenter automatiquement) :
- l'admissibilité n'est pas
ineligible, et - suitability ≥
suitability_threshold(par défaut 0.7), et - evidence_confidence ≥
evidence_threshold(par défaut 0.5)
Un emploi jumelable exige toutes les conditions suivantes : status == published, assessment_ready == true et ≥1 exigence confirmée. assessment_ready devient vrai lorsque les problèmes de spécification sont réglés après les confirmations.
La publication (par le recruteur) est une deuxième barrière en plus de la spécification : la complétion du schéma d'emploi doit réussir et la préparation de l'emploi doit être ≥ publish_readiness_threshold (par défaut 0.6).
Des rapports de jumelage vides signifient habituellement des confirmations de taxonomie manquantes, des emplois non publiés, des preuves de compétences minces chez les candidats ou (sur de gros jeux de données) le plafond de candidats du rejumelage — pas seulement « de mauvais seuils ».
3.5 Ce que vous modifiez habituellement et ce que vous laissez tel quel
| Objectif | À modifier |
|---|---|
| Nouvelles professions / meilleures références de famille | Job Taxonomy (importer / activer) |
| Listes de contrôle de profil ou de publication plus strictes, invites de l'assistant, pondérations de préparation | Validation Schema |
| Quand aviser ou présenter des occasions | Matching |
| Identité des compétences plus propre pour le jumelage | Dictionnaire Skills (harmonisez les noms avec la taxonomie) |
| Assistant profil / validation des compétences pour « n'importe quelle » compétence | Habituellement rien — déjà générique dès que les compétences existent sous forme de déclarations |
4. Plan de la barre latérale
Les statistiques (candidats, recruteurs, emplois, candidatures, entrevues planifiées par rapport aux entrevues réalisées) restent visibles lorsque vous changez de section.
| Section | Vous l'utilisez pour |
|---|---|
| Overview (aperçu) | Accéder par des cartes à plusieurs autres sections (ne crée pas de lien direct vers chaque élément; Validation et Audit log restent dans la barre latérale) |
| Analytics (analytique) | Tendances sur 30 jours; exportations CSV (candidats, recruteurs, emplois) |
| Skills (compétences) | Mots-clés du dictionnaire + banque de questions de validation facultative |
| Lookups (listes de valeurs) | Listes normalisées |
| Services | Catalogue payant et correspondance Stripe |
| Candidates (candidats) | Trouver des personnes; désactiver / réactiver |
| Recruiters (recruteurs) | Même chose pour les comptes d'embauche |
| Applications (candidatures) | Examiner une candidature et ses entrevues |
| Jobs (emplois) | Modérer le statut des offres (draft / published / closed) |
| Validation | File d'examen des déclarations, remplacements, test rapide du LLM, examen des entrevues |
| Validation Schema (schéma de validation) | Règles versionnées des candidats et des emplois |
| Job Taxonomy (taxonomie des emplois) | Importer / activer la taxonomie des professions |
| Matching (jumelage) | Politique d'automatisation et seuils de correspondance forte |
| Emails (courriels) | Texte par défaut, champs de fusion et logo HireQ de chaque courriel sortant |
| Audit log (journal d'audit) | Actions sensibles récentes |
| Account security (sécurité du compte) | Votre mot de passe administrateur et votre 2FA (§1.3) |
5. Ordre de mise en production suggéré (environnement vide)
Faites ceci avant de demander à un client de faire les essais d'acceptation (UAT) du jumelage.
- Lookups — chargez les catégories dont les recruteurs et les candidats ont besoin (type d'emploi, mode de travail, type de rémunération, province, maîtrise de la langue, niveau de scolarité, avantages sociaux, …).
- Skills — alimentez le dictionnaire (l'importation de la taxonomie met aussi à jour les noms de compétences). Évitez les mots-clés en double.
- Job Taxonomy — téléchargez les modèles CSV, remplissez les deux fichiers, cliquez sur Validate (valider), puis sur Import (importer) (étiquette obligatoire; l'activation à l'importation est cochée par défaut), et confirmez qu'une version est active.
- Validation Schema — activez un schéma candidat et un schéma emploi (importez un JSON éprouvé au besoin).
- Matching — révisez les seuils. Les valeurs par défaut du produit activent l'automatisation, les avis et la présentation automatique (ON). Pour des essais UAT prudents, désactivez la présentation automatique jusqu'à ce que vous soyez à l'aise.
- Emails — confirmez le SMTP et les URL de réinitialisation (email-setup.md), téléversez le logo de la plateforme, prévisualisez Account setup (configuration du compte) / Password reset (réinitialisation du mot de passe), puis parcourez les modèles d'embauche dont les recruteurs hériteront.
- Services — créez Candidate Search (Recherche de candidats; l'identifiant du service doit correspondre à
RECRUITER_CANDIDATE_SEARCH_SERVICE_ID, par défaut 2) et tout forfait mensuel pour recruteurs avec un Price ID Stripe. Pendant la bêta, utilisez des Price ID provenant du mode test de Stripe. - Validation → LLM status / test (état et test du LLM) — confirmez que le point de terminaison du modèle répond avant le clavardage réel avec les candidats, et vérifiez les plafonds IA affichés.
- Account security — activez la 2FA pour chaque administrateur.
- Test rapide : le recruteur choisit un titre normalisé → référence → confirmation → publication; le candidat termine l'Assistant profil (+ validation des compétences); le Rapport de jumelage n'est pas vide. Inscrivez une boîte de réception de rechange et confirmez que le courriel de configuration du mot de passe arrive. Achetez Candidate Search avec la carte de test
4242 4242 4242 4242.
Des scripts d'exportation et d'importation pour les compétences, les listes de valeurs et les services existent aussi sous backend/scripts/ pour copier des environnements.
6. Listes de valeurs et compétences
Les Lookups (listes de valeurs) sont des lignes (category, code, item). La combinaison catégorie + code doit être unique. Après Add (ajouter), le formulaire conserve la catégorie pour que vous puissiez entrer plusieurs codes rapidement. Filtrez par catégorie lorsque la liste est longue. Les catégories inconnues qui existent déjà dans les données sont listées comme orphelines pour que vous puissiez les nettoyer.
Skills est une liste plate de mots-clés utilisée par les sélecteurs des candidats, les compétences des emplois des recruteurs, la mise à jour par nom depuis la taxonomie et le jumelage. Ajoutez avec soin — les doublons nuisent au jumelage (§3.3).
Questions de validation (par compétence) :
- Maximum de 10 questions actives (
skill.question_bank_fullen cas de dépassement). - Si la banque est vide, la validation des compétences génère des questions jusqu'à une banque cible de 5; une session utilise jusqu'à 5 questions.
- Longueur minimale de l'invite : 12 caractères. Désactivez / réactivez dans l'interface; il n'y a pas de bouton de suppression.
7. Taxonomie des emplois (Job Taxonomy)
Étapes opérationnelles (concepts à la §3.2) :
- Téléchargez les modèles CSV skills (compétences) et jobs (emplois) (les colonnes et des exemples sont affichés à l'écran).
- Validate vérifie les fichiers téléversés sans les activer.
- Import avec une étiquette obligatoire; activation facultative à l'importation (cochée par défaut dans l'interface).
- Ouvrez une version pour voir les nombres (catégories, familles, titres, compétences).
- Activate la version que les recruteurs doivent utiliser.
Les recruteurs choisissent les titres normalisés dans la version active. La référence de la famille dans les outils d'embauche en dépend. Les anciens titres en texte libre peuvent être rattachés avec backend/scripts/backfill_legacy_job_titles.py si l'équipe des opérations en a besoin.
8. Schéma de validation (Validation Schema)
Il existe deux schémas : candidat et emploi. Chacun est versionné. Activer une version en fait la règle en vigueur; les anciennes versions sont conservées pour l'historique.
Modes de l'éditeur : Structured (structuré) et JSON. Les onglets structurés couvrent :
- Settings (paramètres : pondérations, seuils; le schéma d'emploi comprend aussi les seuils de publication et de recommandation, le minimum de compétences et les paramètres régionaux)
- Categories (catégories)
- Materializers (matérialiseurs)
- Completion requirements (exigences de complétion)
- Gap prompts (invites de lacunes)
- Portal groups (groupes du portail)
Actions : Validate → Save new version (enregistrer une nouvelle version) → Save & activate (enregistrer et activer) → Export (exporter) la version active; dans l'historique, Load (charger) / Activate; en JSON, Apply (appliquer) / Import as version (importer comme version; l'importation seule n'active pas la version).
Les candidats ne voient jamais cet écran; ils voient l'Assistant profil. Les recruteurs voient les lacunes de qualité de l'offre déterminées par le schéma emploi.
Faites de petits changements révisés. Une règle de complétion défectueuse bloque la publication ou donne l'impression qu'un candidat « ne peut pas terminer » son profil.
9. Validation (examen humain)
La Queue (file) liste les candidats ayant une activité de validation.
Ouvrez un candidat pour voir ses déclarations, ses scores, ses statuts et une chronologie des décisions. Vous pouvez :
- Patch (modifier) le score ou le statut
- Override (remplacer) avec une raison (écriture auditée). Pour les déclarations de compétence, le remplacement définit aussi le niveau de maîtrise 1 à 10 enregistré et utilisé dans le jumelage
- Attach evidence (joindre des preuves) sous forme de notes
- Ouvrir l'examen des entrevues lorsque des évaluations existent
Les étiquettes de confiance (par exemple « Strong evidence ») sont dérivées de la préparation; il ne s'agit pas d'un produit distinct.
LLM status (état du LLM) et Test connection (tester la connexion) vous indiquent si le modèle de validation est joignable. Utilisez-les lorsque l'Assistant profil bloque ou renvoie des erreurs.
LLM status affiche aussi les plafonds de dépenses : max_output_tokens, daily_call_limit (pour toute la plateforme) et daily_call_limit_per_user. Lorsqu'un plafond est atteint, les appels à l'IA s'arrêtent jusqu'à minuit UTC et le produit revient à un comportement plus simple, sans IA (par exemple, des questions de profil intégrées au lieu de relances par l'IA). Si des utilisateurs signalent des réponses « génériques » de l'assistant en fin de journée, cherchez LLM platform daily cap reached dans les journaux de l'API et demandez à l'équipe des opérations d'augmenter LLM_DAILY_CALL_LIMIT si le budget le permet.
Examen des entrevues et enregistrements
Ouvrez un candidat (file Validation ou Candidates) pour accéder à la liste Interviews (entrevues). Chaque session affiche le lecteur d'enregistrement (sessions audio/vidéo) ainsi que chaque question et réponse. Les administrateurs peuvent examiner n'importe quelle session.
- Les enregistrements sont stockés dans un compartiment privé et sont lus au moyen de liens de courte durée.
- Ils sont supprimés automatiquement 180 jours après la fin de l'évaluation par la tâche de conservation (
hireq-recording-retention.timer). Chaque suppression écrit un événement d'auditrecording.purged. Les transcriptions et les scores sont conservés. - Si un candidat demande une suppression anticipée, ou si une obligation légale exige de conserver un enregistrement plus longtemps, transmettez la demande à l'équipe des opérations — il n'existe pas de bouton de suppression par enregistrement.
10. Jumelage (Matching)
Cette section est une politique qui s'ajoute aux scores (quand rejumeler, aviser ou présenter automatiquement). Le calcul des scores est décrit à la §3.4. Les libellés de recommandation utilisent des seuils codés en dur; ces paramètres définissent la correspondance forte pour l'automatisation.
| Paramètre | Valeur par défaut | Effet |
|---|---|---|
| Enable automated rematch (activer le rejumelage automatique) | activé | Recalcule le score lorsque les preuves d'un candidat ou un emploi publié jumelable changent (avec délai anti-rebond) |
| Notify on strong matches (aviser lors de correspondances fortes) | activé | Message dans la boîte de réception (et courriel si activé) au candidat et aux recruteurs de l'emploi |
| Auto-present opportunities (présenter automatiquement les occasions) | activé | Crée une occasion pour les correspondances fortes. Le candidat doit quand même consentir. Désactivez pour des essais UAT prudents |
| Suitability threshold (seuil de pertinence) | 0.7 | Barre de 0 à 1 pour une correspondance « forte » |
| Evidence threshold (seuil de preuves) | 0.5 | Barre de 0 à 1 pour des preuves suffisantes |
| Debounce seconds (secondes anti-rebond) | 30 | Attente de 0 à 600 secondes avant un rejumelage |
| Max candidates per job run (maximum de candidats par exécution) | 500 | Plafond (1 à 10000). Le rejumelage parcourt les candidats par identifiant jusqu'à ce plafond |
Les recruteurs peuvent toujours cliquer sur Présenter une occasion pour une correspondance lorsque la présentation automatique est désactivée.
Le jumelage ne tient compte que des emplois jumelables (§3.4). Si les rapports sont vides, vérifiez la taxonomie, les confirmations, la publication, assessment_ready et la progression de la validation des candidats avant de modifier les seuils.
11. Courriels (Emails)
Emails (/dashboard?section=emails) définit les valeurs par défaut du système pour chaque message sortant de HireQ. Les recruteurs peuvent remplacer les types liés à l'embauche pour leur entreprise; ils ne peuvent pas modifier les courriels d'authentification ou de facturation, l'adresse de l'expéditeur ni le logo HireQ.
Guide complet du SMTP et de l'éditeur, catalogue et champs de fusion : email-setup.md.
Sur cet écran, vous :
- Téléversez le platform logo (logo de la plateforme; image, 5 Mo maximum) utilisé dans l'en-tête des courriels
- Modifiez l'objet, le titre, le corps et le libellé du bouton pour chaque type de message
- Insérez les jetons de champs de fusion autorisés (les
{{tokens}}inconnus sont refusés à l'enregistrement) - Utilisez Preview email (prévisualiser le courriel) avec des données d'exemple, Save template (enregistrer le modèle) ou Reset to default (rétablir la valeur par défaut, soit le modèle intégré)
Notify on strong matches (Admin → Matching) contrôle toujours les courriels de correspondance. Désactiver les avis ne désactive pas les courriels de configuration du compte ni les invitations de calendrier (ICS) pour les entrevues.
12. Services payants
Créez des lignes avec :
- Audience (public) —
candidateourecruiter - Billing (facturation) —
one_timeoumonthly - Nom, description, prix, devise (CAD par défaut)
- Pour recruteur + mensuel : le Stripe Price ID est obligatoire (le Product ID est facultatif)
Les services mensuels pour candidats sont refusés par l'API et l'interface. Le service Candidate Search (Recherche de candidats) des recruteurs doit exister sous forme de service dont l'identifiant correspond à RECRUITER_CANDIDATE_SEARCH_SERVICE_ID du serveur (par défaut 2), sinon les recruteurs ne peuvent pas ouvrir la section des candidats.
Bêta (mode test) : créez les Products/Prices correspondants dans le tableau de bord Stripe avec le Test mode activé, puis collez ces identifiants price_…. Les Price ID du mode test ne fonctionnent plus après le passage au mode réel; vous les remplacerez dans le cadre de ops/stripe-live-cutover.md.
La suppression d'un service ne rembourse pas automatiquement les clients Stripe.
13. Modération et analytique
Candidates / Recruiters — recherchez par courriel ou par nom (et par entreprise pour les recruteurs). Deactivate (désactiver) bloque la connexion; Reactivate (réactiver) la rétablit. Les utilisateurs supprimés ou inactifs ne peuvent pas s'authentifier.
Jobs — recherchez; définissez le statut draft, published ou closed. Le nombre de consultations vous aide à mesurer la demande. Fermer un emploi est une action de modération humaine, et non une action de l'IA. Les changements de statut faits par l'administrateur ne remplacent pas les barrières de spécification et de qualité du recruteur nécessaires à un parcours de jumelage sain.
Applications — recherchez et filtrez par statut; Inspect (examiner) pour voir les entrevues et l'identité du candidat. Vous ne déplacez pas le pipeline ici (ce sont les recruteurs qui le font).
Analytics — cartes sur 30 jours pour les inscriptions, les emplois affichés, les candidatures, les revenus et les consultations d'emplois. Export (exporter) les candidats, les recruteurs ou les emplois en CSV.
14. Journal d'audit
Liste en lecture seule des événements récents : acteur, rôle, action, ressource, heure. Les actions typiques comprennent le remplacement d'une déclaration, la présentation d'une correspondance, le consentement, le statut d'une candidature, les offres, la désactivation de la 2FA par un utilisateur (auth.totp_disable) et la suppression automatique d'enregistrements (recording.purged).
14a. Conditions d'utilisation, Politique de confidentialité et versions des politiques
- L'inscription exige l'acceptation des Conditions d'utilisation et de la Politique de confidentialité en vigueur. HireQ conserve les versions acceptées, l'heure et l'adresse IP.
- Versions actuelles :
2026-10-01(PRIVACY_POLICY_VERSION,TERMS_VERSION). Les pages publiées sont des ébauches en attente d'examen juridique. - Lorsque l'équipe des opérations change une version (après avoir modifié
website/privacy.html/terms.html), chaque utilisateur connecté voit une boîte de dialogue bloquante (« Nous avons mis à jour nos Conditions d'utilisation et notre Politique de confidentialité » en français, We updated our Terms and Privacy Policy en anglais) et doit accepter avant de continuer. Ne changez de version que pour des modifications importantes, et mettez à jour les pages et l'environnement en même temps. - Les utilisateurs qui refusent peuvent demander au soutien de supprimer leur compte (les candidats peuvent le faire eux-mêmes dans Paramètres → Confidentialité).
L'écran n'offre pas encore de filtres ni l'affichage du contenu JSON. Si vous avez besoin d'une action précise, l'équipe d'ingénierie peut interroger audit_events ou appeler GET /admin/audit?action=….
15. Ce que cet espace de travail ne permet pas
- Modifier le profil d'un candidat comme si vous étiez cette personne
- Déplacer le pipeline comme un recruteur
- Une interface d'administration en français
- Une page d'état ou un produit de billets de soutien
- Lancer des remboursements Stripe depuis l'interface
- Se joindre en direct à la salle vidéo IA d'un candidat
- Réinitialiser la 2FA d'un autre utilisateur depuis l'interface (utilisez la procédure de la §1.4)
- Créer des administrateurs depuis l'interface (utilisez
create_admin_user.py) - Supprimer un enregistrement précis sur demande (tâche de conservation seulement)
- Des paiements Stripe réels pendant la bêta
- Modifier l'adresse d'expéditeur SMTP dans l'éditeur Emails (c'est
EMAIL_FROMdans l'environnement) - Un générateur visuel de courriels HTML par glisser-déposer
16. En cas de problème
| Symptôme | Quoi essayer |
|---|---|
| Validation Schema absent du menu | Vous n'êtes pas sur le portail unifié /dashboard; cette application est uniquement portal/ |
| Le recruteur ne peut pas publier | Complétion du schéma d'emploi + préparation ≥ seuil et titre de la taxonomie + spécification confirmée (§3.4) |
| Jumelage vide | Emplois jumelables (publiés + assessment_ready + confirmations), déclarations de compétence des candidats, paramètres d'automatisation, plafond du rejumelage |
| Le jumelage avise de façon trop agressive | La présentation automatique et les avis sont activés par défaut — désactivez-les ou augmentez les seuils pour les essais UAT |
| Le test du LLM échoue | URL et clé du modèle dans l'environnement du serveur; guide d'exploitation Modal/Ollama si c'est le fournisseur |
| Enregistrement d'un service mensuel bloqué | Entrez le Stripe Price ID; le public doit être recruiter |
| L'utilisateur ne peut pas se connecter | Vérifiez l'indicateur de désactivation, le courriel de configuration du mot de passe, le code 2FA si activé; « Rate limit exceeded » disparaît après une minute |
| L'utilisateur a perdu son application d'authentification | §1.4 |
| Mot de passe administrateur oublié | Utilisez Forgot password? (mot de passe oublié?), ou l'équipe des opérations exécute de nouveau create_admin_user.py --email … |
| Mot de passe refusé | Au moins 10 caractères, pas uniquement des chiffres, pas l'adresse courriel |
| Utilisateurs bloqués sur la boîte de dialogue des politiques | Ils doivent cocher la case et cliquer sur le bouton d'acceptation (Accept and continue en anglais); vérifiez que PRIVACY_POLICY_VERSION / TERMS_VERSION correspondent aux pages publiées |
| Réponses génériques de l'IA / « Heuristic mode » | Modèle hors service (Test connection) ou plafond IA quotidien atteint (LLM status, journaux de l'API) |
| Enregistrement manquant pour une session | Session texte, échec audio/vidéo, enregistrement de plus de 180 jours ou stockage des entrevues non configuré |
| Paiement du recruteur refusé | La bêta est en mode test — il faut utiliser 4242 4242 4242 4242; vérifiez que le service a un Price ID du mode test |
| Aucun courriel de configuration ou de réinitialisation | email-setup.md : SMTP + URL de réinitialisation; l'utilisateur doit essayer « Mot de passe oublié » et vérifier ses courriels indésirables |
| Enregistrement des courriels refusé | Retirez les jetons de fusion qui ne figurent pas dans la liste de jetons de ce type |
| Logos absents dans les vraies boîtes de réception | Définissez PUBLIC_API_BASE_URL sur l'API publique; l'aperçu intègre les logos et peut sembler correct en local |
| Les questions de validation des compétences ne s'enregistrent pas | Banque pleine à 10 questions actives; désactivez les invites inutilisées |
| L'importation de la taxonomie refuse les fichiers | Les deux fichiers sont obligatoires; colonnes exactes; Skill ID / Job ID uniques; les paires catégorie/famille doivent concorder |