Return to overview
CV & Data Automation
Remo Vloet6 min.

Importing candidates from CSV: what should you check?

Look beyond row counts to names, field types, source IDs and links to other records.

On this page

The import reports success, but a candidate’s name contains broken characters and the note belongs to the wrong record. A completed upload doesn’t establish that the information is usable.

Candidate CSV imports need checks at three levels: the file must be read correctly, each column must reach the right field, and references must lead to the right record. This guide covers those file-level checks. A full ATS migration also involves permissions, history and deciding when the team switches systems.

Key takeaways

  • Preserve the original export and document changes in a working copy.
  • Check delimiters, encoding and field types before saving or importing.
  • Use stable source IDs to follow records and their relationships.
  • Compare values and links after a trial import, not just totals.

What does your CSV actually contain?

First, establish what one row represents. A candidate, a contact event and an application are different things. A person appearing several times doesn’t necessarily mean there are duplicate candidate profiles. The file may contain separate contact events.

Record the selection exported and when it was produced. An active-candidates export can’t be compared directly with the total number of people in the old ATS. Give the working copy a recognisable version and keep the original separately.

A CV filename isn’t the CV itself. Check whether documents are supplied separately and how they connect to candidates. A reference to a file on an old computer is of little use if the new system can’t read that file.

How do you prevent columns from shifting?

Check the export’s delimiter and the importer’s expected format. If an entire row appears in one column, stop checking individual fields: the file first needs to be read correctly.

A note may contain commas, quotation marks or line breaks. RFC 4180, an informational description of a common CSV format, describes enclosing such fields in quotation marks and doubling internal double quotes. The importer needs to handle the format actually used.

Count records with a suitable CSV reader, rather than counting visible text lines alone. A multiline note may belong to one candidate. Manually removing every line break can damage the original content.

Why check names and field types separately?

Correct columns don’t prove the characters were read correctly. Include names with accents in the trial file and compare them with the source. Microsoft explains how to open UTF-8 CSV files in Excel, including an import route when ordinary opening doesn’t work as intended. Use settings suited to your export.

Then check how values are interpreted. Excel’s text-import documentation explains that defaults affect date and number interpretation. Importing a column as text can preserve leading zeros.

A source ID isn’t a quantity. 000427 and 427 may be different values for your record links. Agree an unambiguous date format with the person running the import and check a date that exposes a day/month mix-up. Recover conversion errors from the preserved source rather than guessing missing characters.

What belongs in the column mapping?

A mapping describes more than the destination field label. Write down the meaning of the source value, where it belongs and any required conversion. Have someone who knows the recruitment process check that meaning.

Source columnAgreement before importResult to check
Candidate IDRetain as a source referenceExactly the same characters remain
NameFull name or agreed separate fieldsAccents and name particles survive
Contact dateDate of contact, with source formatHasn’t become the record creation date
OwnerReference to the correct userUnknown users are handled explicitly
NoteCandidate or contact event, as defined by the sourceContent and relationship are correct
CV referenceSeparate file with an agreed linkDocument opens from the correct record

Agree what an empty value means too. Is it ‘unknown’, ‘not applicable’ or ‘keep the existing value’? When updating records, you need to know whether an empty cell clears a populated field. Import functions differ, so test that behaviour instead of assuming it.

What makes a small trial file useful?

Take a fictional candidate, Zoë, with source ID 000427. The export contains a note with a comma and two lines of text, plus a reference to a separate CV. Another file links a contact event to the same source ID.

Define the expected result before importing: the name remains readable, the ID is unchanged, the note stays together and the contact event belongs to Zoë. Check the CV separately. Importing the candidate row successfully says nothing about whether that document moved with it.

Include a missing reference in the trial, such as a contact event linked to an unknown candidate ID. See whether you can identify the unprocessed record and the reason. The desired response is an agreed test outcome, not a claim about what every importer already provides.

What happens after an error or partial import?

Keep the results report and record what was created, skipped or rejected against each source ID. If the importer doesn’t provide a useful report, agree how the person running it will demonstrate what happened.

Don’t immediately run the same file again. First establish whether existing records will be recognised, updated or created again. A failed relationship doesn’t mean all previously imported candidate records have been reversed.

Ask about recovery before the trial. Can the affected batch be identified? Who decides which changes can safely be undone? Preserving the source file matters, but it doesn’t itself provide an undo function in the destination ATS.

When can you run the final import?

Proceed when the agreed checks have passed and differences have been explained or consciously accepted. Keep the mapping, file version and results together. A changed export format or mapping calls for another check of the affected fields.

When moving to Simply, our team reviews the export with you. We agree which records should move, help prepare the selection and set up the migration for you. This migration assistance is temporarily free. The file checks above help us agree what needs to arrive correctly; you do not have to manage the whole transition yourself.

We choose the processing route around your data and preferences. Our migration team handles the import for you, or you import it yourself with the CSV importer and set up your workspace together with Simply Ask. In Simply you decide which data AI may process. Bring a description of your export and a few difficult fields to a migration discussion, then we can agree how to carry out the work.

Share this post

About the author

Remo Vloet

Remo Vloet is a co-founder of Simply, the AI Operating System for recruitment agencies: inbox, meetings, sourcing, CV parsing, search and matching, documents and automation in one system. With a background in building complex software, he contributes to the technical vision behind Simply.

LinkedInArticles by Remo Vloet

Frequently asked questions

Is a CSV file a complete ATS backup?

The file type doesn't establish completeness. A CSV may contain only some records and fields. Documents, relationships, permissions and history need separate checks.

Can I edit the export in Excel first?

Work on a copy and check how columns are read. Automatic interpretation can change values before you save them again. Preserve the original export.

Can I remove duplicate rows?

First establish what a row represents. Repeated candidate IDs can belong to separate contact events or other related records. Removing rows based only on a name can remove useful information.

Are matching record totals enough?

No. Check values and relationships using recognisable examples too. An unwanted duplicate can hide a missing record in the overall count.

Can you rule out all data loss?

A general checklist can't promise that. A preserved source, explicit mapping, trial import and documented checks help reveal errors and prepare for recovery.

More in CV & Data Automation

Chase less,place more.

Find out how Simply can completely evolve your workflow. No slides, just product.

Cookie settings

Choose which optional cookies we may use; our cookie policy explains each one. Optional categories are off until you turn them on, and you can change this at any time from the footer.

Necessary

Keeps the site secure and remembers your language and these choices. These cannot be switched off.

Always on
What this includes
  • simply_lang · Simply

    Remembers the language you picked in the footer.

    Stores: Cookie, 1 year

  • simply_consent · Simply

    Remembers the choices you make here.

    Stores: Local storage, 12 months

  • Cloudflare Web Analytics · Cloudflare

    Counts page views and measures loading speed, without identifying you.

    Stores: No cookies

  • Cloudflare Turnstile · Cloudflare

    Checks the demo request form is sent by a person, not a bot.

    Stores: No cookies

Analytics

Shows us how visitors use the site, so we can improve it.

What this includes
  • Google Analytics · Google

    Counts visits and shows which pages are used.

    Stores: _ga, _ga_*: 2 years

  • Contentsquare · Contentsquare

    Analyses clicks and scrolling, with form input masked.

    Stores: _cs_id, _cs_c: 13 months; _cs_s: 30 minutes

Marketing

Measures our ads and campaigns, and lets us show relevant ads on other sites.

What this includes
  • Google Ads · Google

    Measures which ads lead to a demo request.

    Stores: _gcl_au: 90 days

  • Meta Pixel · Meta

    Measures conversions and supports retargeting on Facebook and Instagram.

    Stores: _fbp: 90 days

  • LinkedIn Insight Tag · LinkedIn

    Measures conversions and supports retargeting on LinkedIn.

    Stores: bcookie, li_sugr, lidc and others on linkedin.com: 1 day to 1 year

  • Factors.ai · Factors.ai

    Identifies visiting companies and attributes visits to campaigns.

    Stores: _fuid: 400 days

Google Tag Manager loads the Google, analytics and marketing tags above only after you allow them.