Why does a recruitment database fill up with duplicate candidates?
Because the same person arrives through several doors. They apply to one advert, get sourced from LinkedIn by a colleague, are imported in a bulk upload, and are added by hand after a call. Unless each of those routes checks against the same rule, you end up with four records for one person, and the history is split across all four.
Duplicates are usually described as a data quality problem, which understates them. The cost is not untidiness, it is the split history. One record holds the note from the call, another holds the CV, a third holds the fact they were rejected by a client last year. No consultant sees the whole person, and the system cannot rank someone it only half knows.
The worst version of this is commercial. Two consultants submit the same candidate to the same client because each is looking at a different record. That is a conversation with a client no agency wants to have.
Matching cannot be done on name alone. Common names collide constantly, and a rule that merges on name will eventually merge two different people, which is worse than leaving duplicates. Reliable matching uses email, a LinkedIn profile, and phone number, and treats name similarity as a hint rather than a decision.
The three things worth having are prevention at every entry point, detection for the duplicates already there, and a guard on submission that recognises the same person across records even when the records have not been merged yet. The third is the one that stops the client conversation.