# Adding candidates from CVs

> Upload one CV or a batch — AI reads each one and adds it as a candidate, holding back only the CVs that need a decision.

_Collection: Companies, Contacts & Candidates (records) — Kepler Help Center. Canonical: https://keplercrm.com/support/articles/import-candidates-from-cvs/_

Drop a stack of CVs into Kepler and let AI do the data entry. Each CV becomes a candidate as soon as it is read. Only CVs that need a decision — a possible duplicate, a missing name or contact details — wait for you, and you deal with them in the same dialog.

## Uploading CVs

  - Open **Candidates** and click **Add candidate**.

  - On the **Upload CV** tab, drag and drop your files or click **Browse files** (PDF, DOC, DOCX or TXT, up to 10 MB each). You can upload up to **500 CVs** at once — Kepler uploads large selections in smaller chunks. Use **Paste text** for a CV you've copied.

  - Optionally choose a job under **Add to job** and a stage; every candidate from the upload is added to that job's pipeline.

  - Click **Add CV** (or **Add N CVs**). Keep the dialog open until the upload finishes; after that you can close it and carry on working.

Spreadsheets dropped here are not CVs: the dialog offers **Import from CSV** instead (see [Importing your data](/support/articles/import-your-data/)).

## What happens to each CV

The dialog lists your CVs in groups:

  - **Reading** — still being read. A CV that is ready adds itself when done. Very large uploads are read in a background batch, and Kepler emails you when they're done.

  - **Added** — the candidate is in Kepler. **Open** goes to the record; a CV matched to an existing candidate reads *CV added to their existing profile* or *Merged into their profile*.

  - **Need you** — CVs held back, each with the reason and what you can do.

An added row can carry a tag: **N filled** for the fields the CV filled (contact details and your [custom fields](/support/articles/custom-fields/)), or **N to check** when AI found values it wasn't sure of. Click the tag to see what the CV filled (undo any of it on the record) and how the LinkedIn search for the new candidate is going. Each value to check has **Accept**, **Edit** (or **Pick…**) and **Dismiss**; anything you leave waits in [Notifications](/support/articles/ai-suggestions/) and never holds up the add. LinkedIn searches keep running after you close the dialog.

## CVs that need you

  - **May already be in Kepler** / **Probably already in Kepler** — choose **Compare** to see this CV beside the existing candidate (email, phone, LinkedIn, current role, location, experience). Where they differ, pick which value to keep on each line — current role and experience go together. Then choose **Merge into** *their* **profile** to apply your picks, **Attach CV only** to keep the existing profile, **New candidate** to create a separate record, or **Skip**. A CV email or phone you pick becomes the primary one and the old one stays on the record. If the email address matches, a separate candidate isn't offered. When the match is spotted before the full CV is read, **Different person** reads the rest of the CV first.

  - **No name found in the file** — **Add a name**, then **Add candidate**.

  - **No email or phone in the CV** — **Add details** and add the candidate, or choose **Add without**.

  - **Doesn't look like a CV** or **Couldn't read enough of this CV to add it** — **View file** to check it, then **Add anyway** or **Remove**.

  - A file that couldn't be opened or read shows why, with **Retry**.

When several CVs are waiting, **Add all N ready** and **Skip all** handle the group at once.

## When you close the dialog

Kepler confirms how many candidates were added, with **View** and **Undo** (undone candidates go to Recently deleted). CVs that still need you wait for next time: the button on the Candidates page reads **Add candidate · N waiting**, and opening it shows them under **Still need you**. A CV left waiting for 30 days is cleared as if it had never been uploaded; the dialog warns you in the last week.

If an upload is interrupted, the dialog shows **Upload interrupted** — no CVs from it were processed. Choose **Discard & upload again** to start over.

> **TIP:** Email and phone are the details most worth checking — they're what link the candidate to synced conversations and protect against future duplicates.
