Find leads
Search the web, Google Maps, social profiles and a B2B database for prospects, find and verify their business emails, and save them as contacts.
Find leads discovers prospects and lets you save them as contacts in a list or straight into a campaign. Web & Social searches find and verify public business contacts automatically. B2B Database searches return people from the configured index, with email discovery and verification available for your selections.
Open More > Find leads in the dashboard header. It takes the manage-contacts permission, because saving creates contacts and searching spends your own search credits.
Two ways to search
| Tab | Searches | Needs |
|---|---|---|
| Web & Social | The open web, Google Maps, Instagram, Facebook, TikTok, YouTube, X and Reddit, through Google | Your own Serper API key (see connect Serper) |
| B2B Database | A people database hosted on this instance, filtered by title, seniority, department, industry, company, size and location | An operator who has loaded the database (see the B2B database) |
Both tabs support saving and exporting selected results. Web & Social shows contacts after their mailbox checks finish. In B2B Database, select results and use Find emails or Verify before saving.
Connect Serper
Web & Social search runs on your own Serper key. Create an account at Serper, copy the API key from its dashboard, and paste it into the box on the Web & Social tab. SendSets checks the key with a free account request before saving it, and stores it encrypted.
Connecting, replacing or disconnecting the key takes the manage-settings permission. Once connected, the pill in the top bar says Serper connected; click it to paste a replacement key or to disconnect. The key is the same connection that shows as Serper under Integrations.
Web & Social search
Pick a source, enter a keyword or niche and a location, and choose how many results you want (up to 300).
Searches run in the background and resume when you return to the page. SendSets checks its persistent public discovery index first, uses Serper for more candidates when needed, removes directory listings, job pages and social posts, resolves company websites, reads public contact pages, and checks the mailboxes before showing results. Stop cancels the search and keeps results that already finished their checks. At most one search runs per workspace, and at most two run on the backend at once.
The result count is a target, not a guarantee. A search has a candidate budget of three times the requested count, with a minimum of 10 and a cap of 300, and stops after 15 minutes. Known candidates are checked before paying for search fallback. A smaller list means fewer candidates had a published or confirmed address. Invalid addresses, catch-all domains and unconfirmed mailboxes are omitted. Role inboxes can appear as Risky, with their reason shown.
| Source | Good for | Query shape |
|---|---|---|
| Web | Business websites and their public contact pages | "roofers" "Austin" |
| Google Maps | Local businesses with a phone and website | A Maps search: dentist in San Diego |
| Creators, agencies and DTC brands | site:instagram.com "fitness coach" "Miami" | |
| Local and business pages | site:facebook.com "…" "…" | |
| TikTok | Creators and brands | site:tiktok.com/@ "…" "…" |
| YouTube | Channels and creators | site:youtube.com/@ "…" "…" |
| X | Founders and builders | site:x.com "…" "…" |
| Community members and founders | site:reddit.com "…" "…" |
Search fallback is billed by Serper to your Serper account. SendSets charges nothing per lead. A Maps search reads 20 places per Serper request, and a web search reads up to 100 results per request. Free Serper accounts use 10-result pages automatically, so a larger search can spend several search credits. If Serper still rejects the query on your plan, try simpler keywords or upgrade your Serper account. Automatic verification uses your connected verification service when available, so that service can charge checks.
How emails are found
SendSets resolves contact evidence in this order:
- Previously observed contacts from the company's public website.
- A public social profile and the business website it links.
- The business's homepage, contact, about, team and imprint pages (at most five pages per site).
- For a named person with a company domain, likely addresses such as
first.last@company.com, confirmed with mailbox checks.
Web searches confirm addresses from the business's public website, rather than displaying unconfirmed snippet emails. Social searches can also read a public profile and, when a person's name and company domain are known, probe likely address patterns. At most three published addresses are checked per candidate. Guessed addresses on catch-all domains are not shown as confirmed contacts. Social networks often show a login wall; that produces an empty profile result without using your account.
Reusing discoveries
Server-fetched search results and public company-site contacts are stored permanently in the instance's PostgreSQL database. Their public source URLs and observation dates are retained. Company website observations are reused across workspaces for up to 30 days before being refreshed; a successful crawl that found no address is retried after six hours. Concurrent lookups of the same domain share one crawl.
Imported contacts, private workspace labels and verification outcomes never populate the shared public index. Mailbox checks are stored separately per workspace and reused for up to 24 hours. Unknown results are not cached as deliverable. Search progress and results also remain in the workspace, so closing the page does not discard them. Saving to a list is still an explicit action.
The email column says where each address came from: the search result, the profile, the website, a guess from the name, or the database.
The B2B database
The B2B Database tab filters a people database the instance hosts. Separate several values in a field with commas; a lead matches any of them. Company size and industry filter on the company the person works at. Has email is on by default so results are ready to contact.
Results come back 50 at a time with the total match count, and Load more fetches the next page. Leads without an address in the database can be given one with Find emails, which guesses from the name and company domain and confirms the guess with a mailbox check.
If the tab says the database is not set up, the instance has none. On a self-hosted instance, an operator enables it with LEADDB_CLICKHOUSE_URL (see configuration). Before loading any third-party data, confirm its license allows you to search it, show it to your users, and export it.
Verification
Every address in the results gets free checks straight away: valid syntax, a domain that receives mail, and whether it is a disposable address, a personal mail provider, or a shared inbox like info@. An address that fails those shows as Invalid.
Web & Social searches perform the mailbox check automatically. B2B database results can be checked with Verify in the selection bar or in a lead's details. Both use the same checker as your contacts, so a connected verification service such as MillionVerifier is used when you have one (see address verification). If SMTP cannot confirm an address, it is not included in usable web results.
| Status | Means |
|---|---|
| Verified | The mail server accepted the address and the domain does not accept everything |
| Catch-all | The domain accepts every address, so no check can confirm this one |
| Risky | Deliverable-looking, but a shared inbox or otherwise uncertain |
| Invalid | Bad syntax, a domain that does not receive mail, a disposable domain, or a rejected mailbox |
| Unknown | The server would not say, for example because it greylisted the check |
| Not checked | Only the free checks have run |
Verify the leads you keep, not every result. Checking a thousand addresses to save a hundred spends checks on addresses nobody will mail.
Saving and exporting
Select leads and click Save to list. You can add them to one or more lists (contact categories), create a list on the spot, and add them to a campaign. Leads without an email, and addresses already marked invalid, are skipped; the dialog says how many before you save.
Saved leads become contacts with the source Lead Search, matched by email: saving a lead that is already a contact updates it instead of creating a duplicate. Title, website, location, profile URL, company domain and where the lead was found are stored as contact fields, so you can use them in templates as {{.title}}, {{.website}} and {{.location}} (see personalization). A verified or risky result carries over as the contact's verification; the rest are checked by the usual background verification.
Export in the selection bar downloads the selected leads as CSV, and Export all downloads every result.
Duplicates
The same person found through several sources shows once. Results are merged when they share an email address, a social profile, a company domain plus name, a phone number, or the source's own id, and the lead lists every source it was found on.
Limits
| Action | Limit per request |
|---|---|
| Web & Social results | 300 |
| B2B page | 100 (the page loads 50) |
| Find emails | 25 leads (the page sends 10 at a time) |
| Verify | 100 leads (the page sends 25 at a time) |
| Save | 1,000 leads |
Next steps
- Organize what you saved: Contacts and CRM.
- Send to it: Campaigns.