Create a candidate
Add one candidate from a side panel that opens from the candidate list. Two paths in the same panel: drop in a CV and let the parser fill the fields, or type four fields by hand. For 10+ candidates at once, use Bulk import instead.
Manual creation lives in a side panel that opens from the right of the screen. The panel offers two paths in the same view:
- Drop a CV file at the top — the parser extracts the candidate’s details, creates them in one shot, and navigates you to their profile.
- Or scroll past the separator and type four fields by hand: First Name, Last Name, Email, Phone Number.
Both paths detect duplicates the same way: when the candidate (by email or CV match) already exists in your tenant, the panel switches to a “Duplicated candidate” view showing the existing record with a link to their profile, rather than creating a new one.
Opening the panel
-
Go to the candidates list
Click Candidates in the main menu, or use the URL
/candidates. -
Click Add Candidate
The button is in the toolbar, labelled Add Candidate (English) or Ajouter un candidat (French), with a + circle icon. The side panel slides in from the right.
Path 1 — drop a CV (the parser does the work)
What it is. A drop zone at the top of the side panel with an upload-arrow icon and the text “Drop files here or click to upload”. Dropping a file uploads it to the parsing endpoint and skips the manual form entirely.
Accepted file formats
The formats depend on the resume parser your tenant uses (set in your organization’s configuration — admin only). Two parser types exist:
- NEXTAL parser (default): PDF, DOC, DOCX.
- SOVREN parser: PDF, DOC, DOCX, ODT, and any image format (image/*).
Files outside these formats are rejected by the drop zone before any upload starts. You can drop one file at a time — multi-file selection is disabled.
How it works under the hood
-
Drop or click
Drop a CV onto the dashed zone, or click anywhere in the zone to open your computer’s file picker.
-
A spinner replaces the panel content
The whole content area shows a centered loading icon. Don’t close the panel during this step.
-
The file goes to the parsing endpoint
The CV is uploaded to Nextal’s resume parser, which extracts the candidate’s name, email, phone and other details from the document.
-
One of two things happens next
- New candidate created — the parser returns a fresh candidate; the side panel closes and you are redirected to
/candidates/<id>. - Duplicate detected — the parser found an existing candidate matching this CV; the panel switches to the “Duplicated candidate” view (see below).
- New candidate created — the parser returns a fresh candidate; the side panel closes and you are redirected to
Path 2 — type four fields by hand
Below the drop zone, a small or separator splits the CV path from the manual form. The form has exactly four fields, in this order:
Field
Required?
Validation
First Name
Yes
Any non-empty string. Error: “Please provide a first name”.
Last Name
Yes
Any non-empty string. Error: “Please provide a last name”.
No
If filled, must be a valid email address. Error: “Please provide a valid email”. Empty is accepted.
Phone Number
No
If filled, must parse as a number (free text rejected). Empty is accepted.
How to save manually
-
Type First Name and Last Name
Both are required. The form refuses to submit without them.
-
Optional: type Email and / or Phone
Leave blank if you don’t have them yet — you can add them later on the profile.
-
Click Add in the footer
The button label changes to Adding while the request is in flight.
-
What happens next
- Success — the panel closes and you land on the new candidate’s profile at
/candidates/<id>with First/Last name, Email and Phone pre-filled. - Duplicate found — the server responds with 409 Conflict and the panel switches to the “Duplicated candidate” view (see below). Your typed values are kept but no new record is created.
- Success — the panel closes and you land on the new candidate’s profile at
Duplicate detected — what you see
When this appears.
- You dropped a CV that the parser identified as belonging to an existing candidate.
- You typed four fields by hand and the email already exists in the tenant (server returns 409).
What it shows. A blue “Duplicated candidate · this candidate already exists” banner, followed by a card containing the existing candidate’s avatar (their photo if set, otherwise their initials in a colored circle), their first + last name, email and phone number, and a link labelled Candidate profile that opens /candidates/<id> in the same window.
What you can do.
- Click Candidate profile (or the avatar / email in the card) to open the existing candidate. The side panel stays open in the background — close it with Cancel afterwards.
- Click Cancel in the panel footer to dismiss without doing anything.
- The Add button is hidden while the duplicate is shown — you can’t override and create the duplicate from here.
Footer buttons
- Cancel — closes the panel and clears the form. Shown except while the CV is being parsed.
- Add — submits the manual form. Shown when no duplicate has been detected and the CV is not currently parsing. The label becomes Adding while waiting on the server.
After the candidate is created
You land on the candidate’s profile at /candidates/<id>. The fields you provided are pre-filled. From there you complete the record — see Profile detail and edit.
If you dropped a CV, the parser may have populated many more fields than the four manual ones (skills, experience, education, etc.) — review them on the profile.
Tips
- Prefer the CV path when you have one. The parser captures dozens of fields the manual form doesn’t expose — it’s faster than typing AND more complete.
- Email is optional in the form but valuable. Leaving Email empty makes server-side duplicate detection less reliable; if you have it, type it.
- Use Bulk Import for batches. If you have a spreadsheet of 10+ candidates, Bulk Import is the right path — one upload, one mapping step, all candidates created at once.
- Cancel mid-parse? While the spinner is showing, the Cancel button is hidden. The upload runs to completion; if it produces a candidate, you’re navigated to them anyway. Close the resulting profile manually if you didn’t want it.