> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.100hires.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to Import Candidates from CSV

# How to Import Candidates from CSV

Import candidate data from spreadsheets into 100Hires with column mapping and error checking.

## How to import

1. Click **Add Candidates** in the header
2. Select **Import from CSV File** from the dropdown ![How to Import Candidates from CSV: How to import](https://100hires.com/wp-content/uploads/2026/08/add-candidates-csv-boxed-1.png)
3. Drag and drop your CSV file ![CSV import page with drag-and-drop area and choose a file button](https://100hires.com/wp-content/uploads/2026/06/kb-csv-import-upload-clean-2026-06-18.png)

**Direct link:** [Import from CSV](https://app.100hires.com/import-candidates-csv)

## Import steps

### Step 1: map columns

Match your CSV columns to 100Hires profile fields:

1. Select the 100Hires field for each CSV column ![How to Import Candidates from CSV: Step 1: map columns](https://storage.crisp.chat/users/helpdesk/website/-/4/f/a/a/4faab8f2b2ab0400/how-to-import-candidates-from-_130z872.png)
2. Skip columns you don't want to import
3. Standard fields: First name, Last name, Email, Phone
4. Custom profile fields are also available

### Step 2: review errors

The **Errors** tab shows:

* Missing required information
* Invalid email formats
* Duplicate entries
* Other data issues
![CSV import column mapping table linking file columns to 100Hires profile fields](https://100hires.com/wp-content/uploads/2026/08/csv-import-column-mapping.png)
Fix errors in your CSV and re-upload, or proceed with valid rows only.

### Step 3: review changes

The **Changes** tab shows which rows match candidates you already have, and exactly which fields will be overwritten. Review it before confirming.

**How 100Hires recognizes an existing candidate.** A row is matched against your existing candidates by any of these three, so you only need one of them in the file:

* **Candidate ID** - the 100Hires internal id, available via Export candidates to CSV
* **Email address**
* **LinkedIn URL**

A row that matches none of the three creates a new candidate.

**Mapping tip.** First name, Last name, Email and LinkedIn URL are detected automatically from your column headers. The Candidate ID column is not - on the mapping step select the matching profile field for it yourself, otherwise the ids in your file are ignored and every row is imported as a new candidate. This matters most in the export-edit-reimport workflow: export candidates to CSV, edit the file, then map the Candidate ID column when you import it back.

### Step 4: assign to job

Optionally assign imported candidates to a job:

1. Select a job from the dropdown
2. Choose a pipeline stage ![How to Import Candidates from CSV: Step 4: assign to job](https://storage.crisp.chat/users/helpdesk/website/-/4/f/a/a/4faab8f2b2ab0400/how-to-import-candidates-from-_1h3wp8h.png)
3. The system automatically assigns all imported candidates

### Step 5: complete import

Click **Finish** to create the candidates.

## CSV format tips

* Include a header row with column names
* Use UTF-8 encoding for special characters
* Use comma as delimiter
* Wrap text containing commas in quotes

## Example CSV structure

```
First Name,Last Name,Email,Phone,LinkedIn
John,Smith,john@example.com,555-1234,linkedin.com/in/johnsmith
Jane,Doe,jane@example.com,555-5678,linkedin.com/in/janedoe
```

## Adding source tags

During import, add a source to track where candidates came from:

1. Complete the import
2. Select all imported candidates
3. Use the **Sources** bulk action to add a source tag ![How to Import Candidates from CSV: Adding source tags](https://storage.crisp.chat/users/helpdesk/website/-/4/f/a/a/4faab8f2b2ab0400/how-to-import-candidates-from-_5u42su.png)
