How to migrate ATS data without losing history
How to migrate ATS data without losing history: what transfers, deduplication by email, stage mapping, dry runs, GDPR deletions, and one-click rollback.
On this page
You keep your history in an ATS migration by transferring more than names and emails: notes, files, interview feedback, original timestamps, and pipeline positions all move if the importer supports them. The two safeguards that decide success are a dry run before the real import and a working rollback after it.
What data transfers in an ATS migration?
| Data | Transfers? | Notes |
|---|---|---|
| Candidates and contact details | Yes | Deduplicated by email on import |
| CVs and attached files | Yes | Verify file counts after the import |
| Notes and interview feedback | Yes | The part teams most fear losing; spot-check it record by record |
| Original timestamps | With a good importer | Recruitifly preserves them; some importers stamp everything “today” |
| Pipeline stages | Mapped | Recruitifly keeps original stage names as tags |
| Jobs, open and closed | Yes | Closed jobs carry your placement history |
| Consent and deletion records | Must transfer | See the GDPR section below |
| Reports and dashboards | No | Rebuilt in the new system; archive old exports if audits need them |
The timestamp row deserves emphasis. If every note appears to be created on migration day, you have lost the answer to “when did we last speak to this person”, which is half the value of the database.
How does candidate deduplication work?
Email is the key. The importer checks each incoming candidate against existing records by email address, and on a match it merges the history onto one profile instead of creating a twin. This matters because most migrations pull from several sources at once: the old ATS, a spreadsheet someone kept on the side, a mailbox export. The same person usually exists in more than one of them.
Recruitifly’s importer deduplicates by email automatically. Good practice for any near-matches, the same name and phone under a different address, is a flag for human review rather than a silent merge. After the import, spot-check your known repeat candidates and confirm each is one record with stacked history.
How do you map pipeline stages without losing meaning?
Your old system’s stages will not match the new system’s defaults, and forcing them flattens history. The safe pattern:
- List every old stage, including the abandoned ones holding three candidates from years ago.
- Map each to the nearest new stage, which preserves where everyone currently stands.
- Keep the original stage name attached to the record. Recruitifly stores it as a tag, so “Submitted to client” stays searchable even though the candidate now sits in a standard interview stage.
- Decide explicitly what happens to candidates in dead stages, rather than letting the importer guess.
Done this way, reporting works in the new world and no nuance from the old one is destroyed.
Why run a dry run before the real import?
A dry run executes the whole migration against a preview instead of your live workspace, then shows what would happen: how many candidates, how many merged as duplicates, which records failed and why, and how the stages mapped. You catch the surprises, a shifted export column, dates in the wrong format, a thousand contacts without email addresses, while they are still free to fix. Recruitifly’s one-click migration always starts with a dry run. Treat any importer without one as a warning sign, because the alternative is discovering these problems in production.
What about GDPR deletions and consent?
The candidates you deleted in the old system must stay deleted. A naive migration from an old full export can resurrect records you were legally required to erase, which turns a tidy-up into a violation. Three rules keep you safe:
- Import from a current export, taken after your latest deletion run, never from an old backup.
- Carry consent records and their dates across, so retention clocks continue rather than restart.
- Apply your retention policy on arrival, so over-age records are anonymized instead of imported fresh.
Recruitifly’s importer respects prior deletions, and consent tracking, scheduled retention with anonymization, and audit trails are built in on the other side. For how long you may keep CVs in the first place, see candidate data retention.
What does rollback look like if something is wrong?
Even with a dry run, you want an exit. Recruitifly’s importer offers one-click rollback: the imported data is removed cleanly, you return to the pre-import state, fix the export or the mapping, and run it again. Combine that with keeping the old system read-only through your notice period and an independently archived full export, and a failed import costs an afternoon instead of your history.
Migration is one step of a larger move. The sequencing, parallel running, and cutover day are covered in the practical switching checklist, and the calendar planning in how long implementation takes.
Recruitifly is in private beta, and one-click migration with dry run and rollback is part of the product. Talk to us if you want to see your own export run through a dry run before you decide anything.
Frequently asked questions
What data can be migrated between ATS systems?
Candidates, contact details, CVs and files, notes, interview feedback, jobs, pipeline positions, and original timestamps can all migrate when both systems support proper export and import. Reports and dashboards generally do not transfer and get rebuilt. The quality differentiator is history: a good importer preserves creation dates and stage context instead of stamping everything with the migration date.
How are duplicate candidates handled during migration?
Good importers deduplicate by email address: when an incoming candidate matches an existing record, the history merges onto one profile instead of creating a twin. Recruitifly does this automatically during import. Near-matches, such as the same name under a new email address, should be flagged for human review rather than merged silently.
What is a migration dry run?
A dry run executes the full import against a preview rather than your live workspace and reports what would happen: record counts, merged duplicates, failed rows, and how stages mapped. It surfaces export and formatting problems while they are still free to fix. Recruitifly's one-click migration always begins with a dry run, with rollback available after the real import.
Do GDPR deletions carry over when switching ATS?
They must. Candidates you erased in the old system cannot be resurrected by importing an old export; that would undo an erasure you were legally required to perform. Import from a fresh export taken after your last deletion run, carry consent dates across so retention clocks continue, and apply your retention policy on arrival. Recruitifly's importer respects prior deletions.
Recruitifly Editorial
Editorial
Related reading
Adding LLM screening to your ATS without creating duplicate records
Layer LLM screening over your ATS without splitting your candidate data: one source of truth, stable ID sync, scores written back as fields, not copies.
Sourcing with adjacent job titles and skills
Searching one job title misses most of the market. A worked SRE example plus a repeatable method for mapping adjacent titles and skills for any role.
AI Act candidate disclosure: notice template
What to tell applicants when automated screening is used, under the EU AI Act and GDPR Articles 13, 14 and 22, plus a copy-paste disclosure notice template.
Want to see how this looks on your own data?
No hard promises. Just a straight conversation about exports, stages, and your current stack.
Contact us