# Adding candidates from CVs

> Upload a batch of CVs — AI parses them into draft candidates you review, dedupe and create in bulk.

_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. Uploads become **draft candidates** that you review before anything touches your database — with duplicates flagged automatically.

## Uploading CVs

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

  - Choose the **Upload CV** tab (drag and drop works, multiple files at once) or **Paste text** for a CV you've copied. You can upload up to **500 CVs per batch** — Kepler uploads large selections in smaller chunks and then processes them as one review batch.

  - Kepler confirms — *"Parsing N CVs in the background"* — and you can carry on working. You'll get a toast when CVs are ready to review.

## The review dashboard

While a batch is open, the Candidates page's Add button becomes **Review imports (N)**. The dashboard shows your CVs on the left and the selected draft on the right, with a live progress bar ("N of M parsed") — you can start reviewing the first parsed CV while the rest are still processing.

Each draft carries a status: **queued**, **parsing**, **ready**, **duplicate review**, **needs review**, **failed**, **created** or **skipped**.

## Reviewing a draft

  - **Identity fields** — first/last name, email, phone, LinkedIn, location and role title, all editable, with a completeness indicator.

  - **Profile preview** — the structured work history, skills and education extracted from the CV.

  - **Duplicate review** — when a draft matches an existing candidate, choose **Use existing**, **Update existing** (apply the CV to the current record) or **Create anyway**.

Click **Create candidate** to commit a draft (Kepler auto-advances to the next one), or **Skip** to set it aside — skipped drafts can be reopened.

## Custom columns read from the CV

If your workspace has candidate columns set to fill **From source content** with **Primary CV** ticked (see [Custom fields](/support/articles/custom-fields/)), the batch shows what it read. A strip above the queue counts, per column, how many drafts came back *confident*, need *review* or had *no evidence*; each draft lists the value it found with the line from the CV it came from. Use **Exclude** to drop a value you don't want — confident values fill empty columns when the candidate is created, and the rest arrive as reviewable suggestions.

## Bulk actions

The batch header offers **Create all ready (N)** to commit every reviewed-and-clean draft in one go, and **Retry failed (N)** to re-parse anything that errored. Status chips — **All**, **Ready**, **Needs review**, **Duplicates**, **Failed**, **Processing**, **Created**, **Skipped** — narrow a big queue.

## Managing batches

Batches persist until you finish or discard them, so a big import can span days. From the batch menu you can **Rename batch**, **Assign reviewer** (hand the queue to a colleague), **Share with workspace** or **Make private (only you)**, or **Discard batch**.

> **TIP:** Email and phone are the fields most worth double-checking before you create — they're what link the candidate to synced conversations and protect against future duplicates.
