Getting in
Every prospecting tool eventually sells you the same person twice.
You search, you import, and three weeks later the same search offers the same person again — because the tool remembers its own results rather than what happened to them in your system.
The fix is unglamorous and it is the difference between using the feature and abandoning it.
Importing
A person you already have comes back as already imported, not as a new card.
Two layers. The obvious one records what came from where, so re-running a search shows an imported person as imported with a link to their record.
The second layer is the one that matters. If a contact with that email already exists — from anywhere, by any route — the mapping is still written, pointing at the contact you already had. Without that step, the same search would keep offering to import somebody you have had for a year.
- Three switches must all be on before a credit is spent —
Connected, live calls permitted, and credentials verified. Anything less refuses the search.
- And the refusal is still recorded —
Marked as having searched nothing. So "who was trying to use prospecting before we bought it" is answerable — a question nobody anticipates until they need it.
- Saving a new key clears the verified mark —
A rotated credential cannot inherit a stale green tick. And submitting an empty key means keep the one you have, so a secret never travels back to the browser.
- A provider outage is a message, not an error page —
Every failure folds into a result that says it did not work. The screen degrades; it does not break.
- A vocabulary change at the provider cannot fail an import —
A seniority value we do not recognise is dropped rather than rejected.
Enrichment
It asks the provider best suited to what you already have.
Not a fixed order. A contact with a profile link goes to the provider that takes one natively; a first name, last name and a company domain go to the one built for exactly that shape.
And the condition for stopping is a new channel, not a match. A provider that returns a perfect, correct answer containing only the email address you already had has not helped, so the search continues rather than declaring success.
- you have A profile URLso it asks the provider that takes one natively→ work email
- you have First, last and a domainso it asks the provider built for that shape→ nothing new — keep going
- you have Name and domainso it asks the broad one→ direct line
- It fills gaps and never overwrites —
Every assignment is guarded on the field being empty.
- A contact who needs nothing costs nothing —
One that already has both an email and a phone number returns immediately without spending anything, unless you force it.
- No domain field is not a dead end —
The domain is derived from the address you already hold.
›Does an import create a lead or a contact?
A contact. There is no import-as-lead, so a workspace that wants discovered people to enter the lead funnel and be scored and routed should know that up front — today that means importing as contacts and working them as contacts.
›Can I import a whole page of results at once?
No. Import is one person at a time, which is deliberate friction on a credit-consuming action but is genuinely slow for a large list.
›Is there a spending cap?
Cost is recorded per search and per enrichment, and nothing refuses a search for being over a budget. Set expectations with the team rather than relying on the product to stop them.
›Which providers?
Three, configured per workspace with your own credentials, so the relationship and the pricing stay yours.