To move an Excel talent pool into a recruiting CRM, take stock of every source, map each column to a fixed CRM field, remove duplicates, check per person on what legal basis the record may stay, import a small test batch, and only then load the rest. For a pool of a few thousand records, plan about two weeks (a planning assumption, not a measured value). The step that decides the result is not the upload, it is the clean-up before it.
When is Excel no longer enough for a talent pool?
Excel works as a starting point: you can list names, roles and the last contact in an afternoon. It stops working when more than one person edits the file, when you need to search by skills, or when you have to prove consent and deletion dates. In our conversations with recruiting teams and agencies, the existing talent pool is usually a spreadsheet plus a folder of CVs, which is why the first CRM import is also the first quality check of the pool. Typical signs that it is time to move:
- Two colleagues keep their own versions of the sheet.
- Nobody can say when a person was last contacted or whether they agreed to be kept.
- You search by scrolling or Ctrl+F instead of by requirements.
- A CV folder holds people who are not in the sheet at all.
How do you migrate step by step?
1. Take stock of every source
List where candidate data lives: sheets, CV folders, the ATS, mailbox folders, LinkedIn connections and exported project lists. Write down for each source how many records it holds, how old they are and how the people came in (application, sourcing, referral, event).
2. Map the columns
Decide the fixed fields before you import. The table shows a starting set; free-text “notes” columns are the riskiest, so split them into structured fields or leave out what does not support a hiring step.
| Excel column (typical) | CRM field | Required? | Comment |
|---|---|---|---|
| Name | First name, last name | Yes | Split into two fields to avoid broken merge fields |
| Email / phone | Email, phone | One of both | Email is the usual key for the duplicate check |
| LinkedIn / XING link | Profile URL | No | Second duplicate key |
| Role / title | Current role | Yes | Needed for segments |
| Source | Source | Yes | Application, sourcing, referral, event, import |
| Date added / last contact | Created, last contact | Yes | Starts the retention check |
| Consent yes/no | Consent, date, wording | Yes | Without it, the record is on a deletion clock |
| Notes | Tags, structured notes | No | Facts only; no speculation about the person |
3. Remove duplicates and dead records
Match on email first, then profile URL, then name plus company. Delete bounced addresses and records without any contact route. A smaller, correct pool beats a large one that nobody trusts; 100 to 300 maintained contacts per role family are usually worth more than thousands of stale rows.
4. Check the legal basis per source
An old CV is not consent. For applicants, the usual German practice is to delete the data about six months after the process ends, because compensation claims under § 15 (4) AGG must be raised within two months and a lawsuit must follow within three months (§ 61b ArbGG). To keep people longer you need a documented, voluntary consent under Art. 6 (1) (a) GDPR that states purpose and retention period. People you found yourself, for example on LinkedIn, must be informed under Art. 14 GDPR, normally within one month. Sort the records into three groups: has consent, can be asked, must be deleted. This is a checklist, not legal advice; clear exceptions with your data protection officer. The full rules are in talent pools and GDPR.
5. Import in a small test batch
Load 50 to 100 records first. Check that names, roles, sources and dates landed in the right fields, that duplicates were caught and that nothing was overwritten. Then import the rest in segments.
6. Ask the old contacts again
For records without consent, send a short invitation instead of a pitch: who you are, why you kept their data, what you would send, how to say no. Everyone who agrees becomes a record with a date and a documented basis; everyone who does not answer stays on the deletion list.
7. Review after 30 days
Count what you imported, what bounced, who agreed and how many records have a “last confirmed” date. Retire the sheet only when the CRM is the one leading system; a second, parallel copy brings the drift back. If you are switching from an ATS, this ATS migration guide covers the stage mapping.
Which Excel traps break an import?
Most failed imports are not caused by the CRM but by the file. These are the traps we see again and again; check them before the test batch.
| Trap | What happens | Fix before the import |
|---|---|---|
| German Excel saves CSV with a semicolon and an old character set | Umlauts turn into garbage, all fields land in one column | Save as “CSV UTF-8”, set the delimiter in the import dialog, check the preview |
| Phone numbers stored as numbers | Leading zero and “+” disappear (+43 becomes 43) | Format the column as text, use the international format |
| Mixed date formats (03.11. / 11/03/2026) | Dates swap day and month, retention dates are wrong | One format (ISO: 2026-11-03) in every date column |
| Several values in one cell | “Java, Python, Berlin” becomes one skill | One value per cell or one column per field; tags afterwards |
| Duplicate check only inside the file | A person already in the CRM is created a second time | Ask the vendor whether the check compares against existing records, and test it with five known duplicates |
| Merged cells, hidden rows, filters | Rows are skipped without a warning | Remove merges, unhide everything, count rows before and after |
What is left of 4,000 rows? A worked example
An illustration with assumed shares, not a measurement; replace them with the numbers from your inventory. Take a sheet with 4,000 rows. Assume 12 % are duplicates (480) and 8 % of the rest have no email, phone or profile URL (320). That leaves 3,200 reachable people. If 35 % of them come from processes that ended more than six months ago and have no documented consent (1,120), they belong on the deletion list or the invitation list. What you can import as is: 2,080 records, 52 % of the original sheet. The point is not the exact percentage; it is that the clean-up shrinks the pool by roughly half before the first upload, and that this is the right result, not a loss.
Which mistakes make a migration fail?
- Importing everything first, deciding the purpose later. Start with one role family that recurs.
- Treating connections as consent. A LinkedIn connection tells you the person exists, not that they want to hear from you.
- Keeping the old sheet alive. Two sources of truth mean two sets of mistakes.
- No owner. Name one person who checks the pool every quarter; see keeping talent pools current.
How does the import work in Sprad?
The Talent Network in Sprad is part of the free core, together with the CRM and the career site; searches, screening and interviews run on credits (100 a month are included in the free account, as of 29 Oct 2026, source: sprad.io/pricing). You can import CSV, Excel and TSV files with column mapping, a preview and a duplicate check by email and LinkedIn URL; existing records are not overwritten. Other sources are CV upload, a LinkedIn Recruiter project export and your LinkedIn data export (Connections.csv, which contains only name, profile URL, company, position and connection date). Invited people can get a free job & career agent that keeps their profile current. Limits to know: the AI mapping of unrecognised columns costs credits for the whole file, and for an existing ATS the dependable route is a CSV export. If you also want to search beyond your own pool, people search covers LinkedIn, XING, GitHub and the Talent Network together. The wider picture is in What is a talent pool and how do you build one?
FAQ
Can I import an Excel list into a recruiting CRM without losing data?
Yes, if you map the columns first and import a test batch. Keep the original file untouched as a backup until the 30-day review is done, then delete it as well, because a forgotten copy carries the same legal duties.
Do I need consent before I import old applicants?
You need a legal basis to keep them. For applicants whose process ended more than about six months ago, that is in practice a documented consent; otherwise the records should be deleted, not imported. Ask your data protection officer about exceptions.
What is the best format for the import file?
CSV with one header row, one person per row, UTF-8 encoding and one column per field. Avoid merged cells and several values in one cell.
Why do umlauts or phone numbers break in a CSV import?
Excel saves CSV in a regional character set and treats phone numbers as numbers. Export as CSV UTF-8, format phone columns as text and check the import preview before you confirm.
How long does a migration take?
For a few thousand records plan about two weeks including clean-up and the 30-day review afterwards. This is a planning assumption; the clean-up dominates, not the upload.
Can I keep my CVs in a folder as well?
Better not. A parallel folder is a second copy that your deletion process does not see. Attach the CV to the record instead and delete the folder once the import is checked.
What does a recruiting CRM add compared with Excel?
Search by requirements, one history per person, consent and deletion dates per record, segments and reminders. The comparison with ATS and talent pool is in talent pool, ATS or CRM.

