A luxury superyacht club needed its 25,003-record member database matched to verified LinkedIn profiles. Typical enrichment vendors quote 30–40% match rates. This pipeline reached 87.4% high-confidence matches.
The club held a large membership list that was rich in names and thin in everything else. Without a verified professional profile behind each record, the list could not support segmentation, outreach, or any analysis that depended on knowing who a member actually was.
Commercial enrichment vendors were the obvious option and the wrong one. Their quoted match rates sat in the 30–40% range, which would have left the majority of the database unresolved, and a bulk vendor match carries no evidence trail: when a record is wrong, there is no way to tell which part of the match failed.
The harder constraint was precision. For a high-net-worth membership, a confidently wrong match is worse than no match at all — it attaches the wrong person to the wrong record and quietly corrupts everything built on top of it.
A single search per person fails predictably: an obscure or abbreviated company name poisons the query and returns nothing. The pipeline runs five passes that progressively relax the constraints — name plus company, then name plus location, then name alone, then nickname variants, then alternative business names.
Each pass only retries the rows earlier passes missed. That keeps query volume proportional to the difficulty of the remaining records rather than to the size of the database, with no duplicated work across passes.
Finding a plausible profile URL is half the problem; establishing that it belongs to the right person is the other half. The confidence-scoring engine tests each candidate against evidence: name intelligence, dehyphenation, suffix stripping, a 70-plus entry nickname dictionary, middle-initial detection, and location and company cross-verification.
Only candidates scoring 80 out of 100 or higher are recorded as high-confidence. Everything below that threshold is held back rather than shipped as a guess, which is what makes the 87.4% figure a usable number instead of a coverage statistic.
Coordinating hundreds of API calls across dozens of batches means accepting that the run will be interrupted. The system checkpoints progress after every sub-batch, so a network timeout, an API credit limit, or a restart resumes from the exact point of failure.
This was not theoretical. The run hit credit limits twice mid-pipeline; both times it resumed cleanly with no rework and no data loss.
The pipeline processed all 25,003 records and returned 21,864 verified LinkedIn matches — an 87.4% high-confidence match rate, roughly double to triple the rate typically quoted by enrichment vendors, with the full pipeline completing in hours.
Because every match carries its score and the evidence behind it, the output is auditable: a record can be traced back to the pass that found it and the checks it passed.
The pattern generalises well beyond membership lists. Any identity-resolution problem — customer records, supplier masters, CRM deduplication, know-your-customer files — has the same shape: many records, imperfect inputs, and a cost to being confidently wrong.
Three decisions did most of the work here, and they transfer directly. Decide the confidence threshold before the run, not after seeing the results, so the bar is not quietly lowered to improve the headline number. Order the retry passes from most constrained to least, so cheap high-precision matches happen first and the expensive fuzzy work only touches the residue. Checkpoint everything, because a run measured in hours will be interrupted.
The part teams usually skip is the evidence trail. Storing the score and the reasoning alongside each match is what allows the output to be audited later, disputed sensibly, and re-run with a different threshold without starting over.
Related service: AI Implementation Services. See the rest of the work on the case studies index and the portfolio.
Bring one workflow, its owner, and what an incorrect result would cost. That is enough to scope the first engagement.