# parser agent merged two candidates into one record - same name, different emails, no dedup key on file

## TL;DR

The dedup matched on name alone and fused two different people into one record. Require email (or another stable identifier) as the merge key, and never auto-merge on name only. Merged records corrupt both candidates' histories and are painful to split.

```text
parser agent merged two candidates into one record - same name, different emails
```

## Steps

1. Confirm the merge: check the record's history for two distinct emails or employment timelines.
   Expected: Two people are visible in one record.

2. Split the record manually and restore each candidate's history from the audit log.
   Expected: Both candidates are whole again.

3. Change the merge key to email (normalized, lowercased) and require a second signal for fuzzy matches.
   Expected: Name-only merges stop.

4. Add a merge review queue: fuzzy matches propose, humans dispose.
   Expected: Uncertain merges get eyes.

5. Scan for other bad merges with the same pattern: records with multiple distinct emails.
   Expected: The full extent is known.

## When to use

- two candidates share one record
- dedup runs on name only
- a merge needs to be undone

## When not to use

- the merge was correct (same person, two applications)
- records are matched on email already (check the merge logs for the real cause)
- the duplicates are in different systems (that is a sync problem)

## Tool compatibility

- any ATS dedup or parser agent
- audit logs

## Variant phrasings

- "merged two candidates same name"
- "dedup merged different people"
- "candidate record merge wrong"

## Why it happens

Names are not identifiers: common names collide constantly in candidate pools. A dedup keyed on name will eventually fuse two careers into one, and the fused record then poisons screening, outreach, and reporting for both people. Email is the minimum viable identity key.

## Edge cases

- email changes too; keep a history of past emails per candidate
- fuzzy matching still has a role for typos, but it must propose, not commit
- the audit log is the only reliable way to un-merge; make sure it records merges

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_sIRVyXi09f8RV_N2-xTXVg
