1. Start with the duplicates
Root-domain duplicates are the fastest win. If two or more Company records share acmecorp.com, pick the one with the most activity (notes, tasks, deals, meetings) as the winner, re-link every reference (deals, people, list entries) to it, then delete the losers.
After domain duplicates, run a second pass on fuzzy-name duplicates: "Acme Inc" vs "Acme, Inc." vs "ACME". These miss the domain join when domains are empty or typo'd.
- Export every Company that shares a root domain with ≥ 1 other.
- Pick a winner per cluster (most recent activity wins).
- Re-point every reference — deals.associated_company, people.company, list entries.
- Audit-log the merge in a note on the winner so history isn't lost.
- Delete the losers in a single batch.
2. Delete junk companies
Companies with no deal, no linked person, and either a missing name or missing domain are deletion candidates. In most workspaces we audit, this is 5–20% of the Companies object.
Do this second so merge-winners absorb the activity before the losers disappear.
- Filter: 0 associated deals, 0 associated people, domain OR name empty.
- Cross-check against your ICP filter — don't delete anything that matches.
- Batch delete with a dry-run CSV first.
3. Backfill segmentation fields
Category / industry, primary location, and company size are the fields every ICP filter and outbound segmentation depends on. If they're only populated on half your records, every filter returns a mix of signal and noise.
Enrichment tools (Prospeo, Clearbit, Apollo) can fill most of this in a single pass. Start with companies attached to active-stage deals — the ones whose completeness actually moves revenue.
4. Retire the attribute graveyard
Custom attributes populated on under 5% of records are dead weight: they split filters, confuse onboarding, and don't support any report anyone looks at. Archive them (not delete — keep the audit trail) after one last export.