Aller au contenu

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).

Où le trouver
Liste des candidats → bouton Import en lot (en haut à gauche de la barre d’outils)
Qui peut l’utiliser
Utilisateurs avec la permission create-candidate permission

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.

L’assistant d’Import en lot. Barre de progression en haut (Téléverser → Configurer → Importer ou Téléverser → Mapper les colonnes → Configurer → Importer), sélecteur de type en bas.

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

  1. Aller à la liste des candidats

    Cliquez sur Candidats dans le menu principal (URL /candidates).

  2. 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

La première chose que l’assistant demande. Choisissez l’un des deux chemins.

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)

Zone de dépôt pour le tableur. L’encadré bleu des exigences et le téléchargement du modèle sont sous la zone.

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 :

  1. 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.

  2. 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.

  3. 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. L’auto-mappeur pré-sélectionne un champ candidat quand le nom d’en-tête est reconnu.

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

email

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)

Aperçu des données en haut pour vérifier les valeurs analysées, options de configuration en dessous.

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é :

  1. 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.
  2. 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).
  3. 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)

Déposez plusieurs CV à la fois. La liste en dessous suit ce qui est en file.

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)

Chemin CV : trois tuiles + une liste d’aperçu des 10 premiers fichiers avec le nom de candidat extrait par l’analyseur.

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

L’étape Import. La barre de progression se remplit au fur et à mesure du traitement. Les erreurs sont téléchargeables en CSV à la fin.

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)

  1. La ligne est transformée selon vos mappages de colonnes.
  2. Si vous avez défini des étiquettes à l’étape Configurer, elles sont ajoutées en début aux étiquettes de la ligne.
  3. 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.
  4. Le candidat est créé (POST createCandidate).
  5. Si un poste a été configuré, une candidature est créée (POST createJobApplication) pour le nouveau candidat.
  6. 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)

  1. 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.
  2. Si l’analyseur retourne un candidat existant (newCandidate: false), la gestion des doublons s’applique (voir ci-dessous).
  3. 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.