Import en lot
Un assistant dédié à the Bulk Import page pour importer beaucoup de candidats à la fois. Deux chemins dans un seul assistant : Import de données Excel/CSV (4 étapes avec mappage de colonnes) ou Import de fichiers CV (3 étapes, l’analyseur fait le travail).
L’Import en lot est une page distincte (pas une fenêtre) accessible depuis le bouton Import en lot de la liste des candidats. Il vous fait passer par un assistant à plusieurs étapes. La première étape vous demande de choisir le type d’import, ce qui détermine si vous mappez aussi les colonnes ou si vous passez directement à la configuration.
Vue d’ensemble — les étapes de l’assistant
L’assistant bifurque selon le type d’import choisi à l’Étape 1. Le chemin A (chiffrier) ajoute une étape de mappage au milieu; le chemin B (CV) la saute parce que l’analyseur extrait les champs lui-même. Les deux chemins se terminent par la même séquence Configurer + Importer.
Étape
Chemin A — Import de données Excel/CSV (4 étapes)
Chemin B — Import de fichiers CV (3 étapes)
Choisir le type
Deux cartes radio. Choisissez une fois — basculer réinitialise le téléversement.
1. Téléverser
Un fichier CSV / XLSX / XLS. 10 Mo max. Modèle d’exemple disponible au téléchargement.
Plusieurs fichiers PDF / DOC / DOCX à la fois. 10 Mo par fichier. Aucune limite sur le nombre.
2. Mapper les colonnes
Une ligne par en-tête de fichier. L’auto-mappeur pré-remplit Prénom / Nom / Courriel / 18 autres. Les champs requis doivent être mappés avant que Suivant s’active.
— sauté —
L’analyseur de CV extrait les champs automatiquement.
3. Configurer
Affectation à un poste optionnelle, étiquettes optionnelles, case Ignorer les doublons (activée par défaut). Aperçu des données en haut.
Mêmes trois options. Trois tuiles bleues récapitulatives en haut (fichiers, candidats à créer, taille totale) + aperçu des 10 premiers fichiers.
4. Importer
Un candidat est créé par ligne, avec une courte pause entre les lignes. Progression en direct + compteurs par ligne.
Un fichier est analysé à la fois, avec une courte pause entre les fichiers. Les candidats importés sont étiquetés « bulk import » comme source. Progression en direct + compteurs par fichier.
La barre de progression en haut de chaque étape reflète cela : elle affiche 4 nœuds sur le chemin A (Téléverser, Mapper les colonnes, Configurer, Importer) et 3 sur le chemin B (Téléverser, Configurer, Importer). Les étapes terminées sont remplies; l’étape courante est mise en évidence; les étapes à venir sont estompées. Vous pouvez cliquer sur n’importe quelle étape déjà terminée pour y revenir et ajuster.
Ouvrir l’assistant
-
Aller à la liste des candidats
Cliquez sur Candidats dans le menu principal (URL
/candidates). -
Cliquer sur Import en lot
Le bouton est à gauche de la barre d’outils (à côté d’Ajouter un candidat et d’Exporter). Visible uniquement avec create-candidate permission. Il vous navigue vers the Bulk Import page — une page dédiée, pas un panneau latéral.
Étape 1 — Choisir le type d’import
L’étape Téléverser affiche deux cartes radio cliquables :
Import de données Excel/CSV
Chemin tableur. Vous téléversez un fichier (CSV / XLSX / XLS), l’assistant lit les colonnes, vous les mappez aux champs candidat, prévisualisez les données analysées, configurez les options d’assignation, puis lancez l’import. 4 étapes au total : Téléverser → Mapper les colonnes → Configurer → Importer.
Import de fichiers CV
Chemin analyseur de CV. Vous téléversez plusieurs fichiers CV à la fois (PDF/DOC/DOCX), chaque fichier est téléversé individuellement vers l’analyseur qui crée un candidat par CV. Pas de mappage de colonnes. 3 étapes au total : Téléverser les fichiers → Configurer → Importer.
Chemin A — Étape 1 : Téléverser votre tableur (chemin données)
Formats acceptés : CSV (.csv) et Excel (.xlsx, .xls). Les fichiers Excel avec macros ou structures inhabituelles sont refusés pour des raisons de sécurité. Pour les CSV, Nextal considère la première ligne comme les en-têtes et ignore les lignes vides.
Limite de taille : 10 Mo. Les fichiers plus gros sont rejetés à la zone de dépôt avec le message « File is too large. Maximum size is 10MB. ».
Exigences de fichier (affichées dans l’étape) :
- La première ligne doit contenir les en-têtes de colonnes.
- Colonnes obligatoires : Prénom, Nom, Courriel.
- Colonnes optionnelles : Téléphone, Adresse, Compétences, etc.
- Les lignes vides sont automatiquement ignorées.
Modèle : un fichier de départ est téléchargeable via le lien « Télécharger le modèle » sous la zone de dépôt — il pointe vers /public/export/CandidateImportTemplate.csv.
Ce qui se passe au téléversement :
-
Déposer ou cliquer
Déposez un fichier dans la zone en pointillés, ou cliquez n’importe où dans la zone pour ouvrir le sélecteur.
-
Le fichier est analysé dans votre navigateur
Nextal lit le fichier localement — sans encore l’envoyer au serveur — et en extrait les en-têtes de colonnes et les lignes.
-
L’assistant saute à l’étape 2 (Mapper les colonnes)
Pas besoin de cliquer Suivant — un parsing réussi avance automatiquement.
Chemin A — Étape 2 : Mapper les colonnes (chemin données uniquement)
Une ligne par colonne du fichier. Chaque ligne a trois parties : le nom de la colonne dans votre fichier, une liste déroulante de champs candidat, et un échantillon des vraies valeurs des premières lignes pour vérifier si le mappage est correct.
Règles d’auto-mappage
L’assistant pré-remplit la liste quand il reconnaît l’en-tête. Le mappeur est insensible à la casse et multilingue :
Si l’en-tête est…
Il est mappé à…
first name, firstname, fname, prenom, prénom
Prénom
last name, lastname, lname, surname, nom
Nom
email, e-mail, mail, courriel
Courriel
phone, telephone, tel, mobile, cell
Téléphone
address, adresse, location
Adresse
linkedin, facebook, twitter, github, website, site web
champ social correspondant
description, bio, summary, about
Description
comment, commentaire, comentario, notes, note, remarks
Commentaire
salary, current salary, salaire
Salaire actuel
expected salary, requested salary
Salaire demandé
experience, years experience, exp
Années d’expérience
language, langue
Langue préférée
skills, technologies, competences, compétences
Compétences/Technologies
tags
Étiquettes
available, start date, disponible
Date disponible
Les en-têtes que le mappeur ne reconnaît pas restent sur — Do not map — (la première option). Vous choisissez le champ à la main.
Les 21 champs candidat sur lesquels vous pouvez mapper
Trois sont obligatoires (marqués d’un * dans la liste) : Prénom, Nom, Courriel. Si l’un n’est pas mappé à une colonne, le bouton Suivant reste désactivé et un encadré d’erreur rouge en haut de l’étape liste chaque champ obligatoire manquant.
Champ
Type
Obligatoire
Comment c’est analysé
Prénom
texte
oui
Trim, conservé en chaîne.
Nom
texte
oui
Trim.
Courriel
oui
Mis en minuscules + trim.
Téléphone
phone
non
Tous les caractères non-chiffres retirés. « (514) 555-1234 » → « 5145551234 ».
Adresse
texte
non
Chaîne trimée.
LinkedIn / Facebook / Twitter / GitHub / Site web
texte
non
Chaînes trimées.
Description
texte
non
Trim.
Commentaire
texte
non
Trim. Spécial : après la création du candidat, la valeur du commentaire est postée comme commentaire sur le candidat, pas comme champ de fiche.
Salaire actuel / Salaire demandé
nombre
non
parseFloat(). Les non-nombres deviennent 0.
Années d’expérience
nombre
non
parseFloat(). Les non-nombres deviennent 0.
Langue préférée
texte
non
Chaîne trimée.
Niveau français (1–5) / Niveau anglais (1–5)
nombre
non
parseFloat(). Utilisez des nombres 1–5.
Date disponible
date
non
new Date(value). Utilisez le format ISO (AAAA-MM-JJ) pour plus de sûreté.
Compétences/Technologies (séparées par virgules)
array
non
Découpé sur les virgules, chaque élément trimé, vides retirés. « react, typescript, node » → ["react","typescript","node"].
Étiquettes (séparées par virgules)
array
non
Même analyse que Compétences.
Règles de validation à l’étape de mappage
- Encadré d’erreur rouge — apparaît si un champ obligatoire n’est pas mappé (« Required field ‘First Name’ is not mapped ») ou si le même champ est mappé à plusieurs colonnes (« Field ‘Email’ is mapped multiple times »). Le bouton Suivant reste désactivé.
- Encadré d’avertissement jaune — liste les colonnes non mappées : « N column(s) will be ignored: ColumnA, ColumnB ». Informatif, non bloquant.
- Chaque champ peut être mappé une seule fois. Une fois que vous mappez une colonne sur Courriel, ce champ disparaît des listes déroulantes des autres lignes jusqu’à ce que vous le libériez en mappant cette colonne sur autre chose ou sur — Do not map —.
Chemin A — Étape 3 : Configurer (chemin données)
L’étape Configurer a deux sections :
Aperçu des données
Affiche les lignes transformées (après application de vos mappages de colonnes). Confirme que nom/courriel/téléphone se sont bien analysés. Comparez les valeurs originales et transformées côte à côte avant de valider.
Options de configuration
Trois options s’appliquent à chaque candidat importé :
- Affecter automatiquement les candidats à un poste — case à cocher. Quand cochée, une recherche de poste asynchrone apparaît en dessous. Choisissez un poste ; une candidature sera créée pour chaque candidat après création du candidat lui-même. Par défaut désactivé ; cocher la case active automatiquement createJobApplications.
- Ajouter des étiquettes à tous les candidats importés — multi-select avec création possible. Les étiquettes choisies sont ajoutées en début de ce que la colonne Étiquettes mappée produit (les deux listes sont concaténées, sans déduplication).
- Ignorer les candidats en doublon (basé sur le courriel) — case à cocher, ACTIVÉE par défaut. Cochée, les doublons (le serveur renvoie 409 Conflict) sont comptés comme réussis et ignorés silencieusement. Décochée, les doublons sont enregistrés comme un échec avec l’erreur « Candidate already exists ».
Chemin B — Étape 1 : Téléverser les fichiers CV (chemin CV)
Zone de dépôt différente, formats acceptés différents :
Formats acceptés : PDF (.pdf), Word (.doc, .docx). Les images et l’ODT ne sont pas acceptés ici — l’importateur CV en lot utilise un jeu de formats plus strict que la fenêtre Ajouter un candidat individuelle.
Limite de taille : 10 Mo par fichier. Vous pouvez en téléverser beaucoup, mais chacun doit rester sous la limite. Les fichiers trop gros déclenchent « One or more files are too large. Maximum size is 10MB per file. ».
Plusieurs fichiers à la fois : déposez-en plusieurs ou sélectionnez-en plusieurs dans le sélecteur — ils s’ajoutent tous à la file. Chaque nouveau dépôt s’ajoute à la liste existante.
La liste des fichiers sélectionnés
Sous la zone de dépôt, chaque fichier en file a une ligne affichant :
- Une icône par type — icône PDF rouge pour les PDF, icône Word bleue pour les DOC/DOCX.
- Le nom du fichier.
- La taille (Ko/Mo).
- Un bouton × rouge pour retirer ce fichier de la file.
Au-dessus de la liste, un petit résumé total : « N fichiers · X.YY Mo ».
Chemin B — Étape 2 : Configurer (chemin CV)
Pour les imports CV, l’étape Configurer commence par un Résumé des fichiers CV au lieu d’un aperçu de données :
- Fichiers CV sélectionnés — nombre total.
- Candidats à créer — même nombre (un candidat par CV).
- Taille totale des fichiers — somme de tous les fichiers en file, en Mo.
Sous les tuiles, un aperçu défilant des 10 premiers fichiers avec leur meilleur essai de nom extrait du nom de fichier (les séparateurs comme _ et - deviennent des espaces, premier mot = prénom, le reste = nom). Si vous avez plus de 10 fichiers, l’aperçu se termine par « … et N autres fichiers ».
Les trois mêmes options de configuration s’appliquent (Affecter à un poste, Étiquettes, Ignorer les doublons) — identiques au chemin données.
Étape finale — Importer
Cliquer sur Démarrer l’import à l’étape Configurer vous amène ici. Les boutons Précédent et Suivant disparaissent — vous ne pouvez pas naviguer pendant l’import.
Ce que la progression affiche
- Icône + libellé de statut — un indicateur de chargement pendant l’exécution, une coche verte quand terminé sans erreur, un triangle jaune quand terminé avec des erreurs.
- Barre de progression — pourcentage de lignes / fichiers traités.
- Quatre compteurs — Total, Traités, Réussis, Échoués.
- Nombre d’avertissements — problèmes non bloquants (par ex. la ligne a été importée mais le commentaire n’a pas pu être posté).
L’assistant impose un délai de 100 ms entre chaque ligne (ou fichier) pour ne pas surcharger l’API. Donc un import de 200 lignes prend au moins 20 secondes plus le temps réel de création.
Ce qui se passe par ligne (chemin données)
- La ligne est transformée selon vos mappages de colonnes.
- Si vous avez défini des étiquettes à l’étape Configurer, elles sont ajoutées en début aux étiquettes de la ligne.
- Validation : Prénom, Nom ET Courriel doivent être présents. L’absence de l’un des trois déclenche « Missing required fields: firstName, lastName, or email » et la ligne va aux échecs.
- Le candidat est créé (
POST createCandidate). - Si un poste a été configuré, une candidature est créée (
POST createJobApplication) pour le nouveau candidat. - Si la colonne Commentaire mappée a une valeur non vide, elle est postée comme commentaire candidat (
POST addCandidateComment). Si le commentaire échoue, c’est un avertissement, pas un échec de ligne — le candidat est tout de même importé avec succès.
Ce qui se passe par fichier (chemin CV)
- Le CV est téléversé vers l’analyseur de CV, étiqueté avec la source « bulk import » et le nom du fichier (sans accents). L’ajout d’un seul candidat utilise le même analyseur, étiqueté comme import manuel à la place.
- Si l’analyseur retourne un candidat existant (
newCandidate: false), la gestion des doublons s’applique (voir ci-dessous). - Si nouveau, les étiquettes configurées sont appliquées (
updateCandidateTagsById) et une candidature est créée si un poste a été choisi.
Gestion des doublons
Sur un 409 Conflict (chemin données) ou newCandidate: false (chemin CV) :
- Ignorer les doublons ACTIVÉ (défaut) : la ligne compte comme réussie (le candidat existant remplit déjà l’objectif) et la boucle continue silencieusement. Aucune erreur journalisée.
- Ignorer les doublons DÉSACTIVÉ : la ligne compte comme échec avec l’erreur « Candidate already exists ». À utiliser quand vous voulez un rapport strict de réconciliation indiquant quelles lignes étaient déjà dans le système.
Télécharger le rapport d’erreurs
Si au moins une ligne a échoué, un bouton Télécharger le rapport d’erreurs apparaît sous les compteurs. Il génère un CSV avec une ligne par import échoué et les colonnes : Row, Name, Email, Error, Field. Le fichier est nommé import-errors-AAAA-MM-JJ.csv. Corrigez les lignes échouées dans Excel, enregistrez en CSV avec uniquement ces lignes, et relancez l’import — les bonnes lignes déjà importées seront détectées comme doublons et ignorées (si l’option est activée).
Recommencer
Un bouton Recommencer permet de relancer l’import avec la même configuration. Utile si une panne API transitoire a provoqué beaucoup d’échecs.
Astuces
- Choisissez le chemin qui correspond à votre source. Tableur de noms et courriels → chemin données. Dossier de PDF → chemin CV. N’essayez pas de convertir les CV en tableur — l’analyseur capture des dizaines de champs que le tableur ne peut pas exprimer.
- Testez avec 3 à 5 lignes d’abord. Réduisez le fichier, lancez un import, regardez les candidats créés. Si le mappage est faux, corriger 5 candidats est rapide ; corriger 500 ne l’est pas.
- Utilisez les Étiquettes de configuration pour marquer le lot. Ajoutez une étiquette comme « import-2026-02-01 » à l’étape Configurer — ensuite, le filtre Étiquette de la liste vous permet de retrouver tout le lot.
- Mappez une colonne Commentaire pour le contexte de sourcing. Si votre tableur a des notes (« rencontré à la conf », « intro chaude de Marie »), mappez-la sur Commentaire — la valeur devient un commentaire candidat après création, préservant le contexte pour le prochain qui reprend la fiche.
- Gardez Ignorer les doublons activé pour le premier essai. Par défaut activé, c’est plus sûr — vous n’échouez pas accidentellement la moitié du fichier parce que certains candidats existent déjà.
- Gros fichiers ? Attendez-vous à patienter. 1000 lignes = au moins 100 secondes de bridage + le temps de l’API. Ne fermez pas l’onglet ; l’import est côté navigateur et s’arrête si vous quittez la page.