Agency outreach requires more steps than standard B2B database outreach.
A B2B database export gives you a name, company, and email address. An agency directory listing gives you a company profile and a domain. The email address discovery step between the profile and the outreach is where most of the complexity and quality risk enters the workflow.
This workflow applies to any agency directory source: Clutch, DesignRush, GoodFirms, UpCity, G2, Capterra, or Trustpilot.
The full agency email discovery and verification workflow.
Select agency directory and target criteria
(category, location, company size, review count)
→ Collect company profiles and domains
→ Identify target contacts
(founder, CEO, head of growth, business development)
→ Run email finder against domain + contact name
→ Collect finder output
→ Normalize and deduplicate
→ Verify with BillionVerify
→ Route by signal
→ Import valid records into CRM or sender
→ Launch sequence
Step 1: Selecting target companies from the directory.
Before running email discovery, define your targeting criteria clearly. Broad scraping of agency directories produces noisy lists with poor signal quality.
| Targeting criteria | Why it matters |
|---|---|
| Service category | Agencies in your target category are more likely to need your offer |
| Company size | Affects email infrastructure quality and who makes decisions |
| Review count and recency | Indicates active business and higher-quality public presence |
| Location | May affect outreach relevance and language |
| Portfolio characteristics | Signals type of clients and deals — matching your ICP |
Step 2: Identifying the right contact within the company.
Agency outreach quality depends on reaching the right person. The decision-maker for most agency offers is the owner, CEO, or head of business development — not a project manager or developer.
| Agency size | Likely decision-maker | Email discovery approach |
|---|---|---|
| 1–10 employees | Founder or sole owner | LinkedIn profile + domain finder |
| 11–50 employees | CEO or business development lead | Named contact on website or LinkedIn |
| 51–200 employees | Head of partnerships or growth | Team page, LinkedIn, domain finder |
| 200+ employees | Business development team | Multiple contacts, multiple verification runs |
Step 3: Running the email finder.
Use a tool like Hunter, Apollo, or Snov.io against the company domain with the contact's name:
| What to input | Expected output |
|---|---|
| Company domain + first and last name | Pattern-matched email address |
| Company domain only | Most common email pattern (useful for testing) |
| LinkedIn profile URL | Email discovery from enrichment tools |
Finder output quality varies by domain. Catch-all domains — common at small agencies — return a positive SMTP result for any address pattern. BillionVerify will flag these so you can route them separately.
Step 4: Verifying the discovered email.
Once the finder returns an address, verify it before adding it to any CRM or campaign.
| BillionVerify result | Meaning for agency contacts |
|---|---|
| Valid | Safe to import and include in standard sequence |
| Invalid | Finder returned an incorrect pattern — do not import |
| Catch-all | Domain accepts all addresses; specific mailbox may not exist |
| Role-based | Finder returned a generic inbox rather than a named contact |
| Unknown | Server response was inconclusive — review before sending |
| Risky or disposable | Not a real business address — do not import |
Step 5: Routing by signal.
| Signal | Action |
|---|---|
| Valid | Import into main campaign sequence |
| Catch-all | Separate lower-volume segment, monitor deliverability closely |
| Role-based | Separate campaign with shared-inbox messaging |
| Invalid | Suppression file — do not use in future campaigns either |
| Unknown | Review queue — decision required before any send |
| Risky | Suppression file |
Maintaining a suppression list for agency outreach.
Agency directories overlap significantly. The same company may appear on Clutch, DesignRush, and G2 with slightly different profile data. Without a suppression list, the same contact can be discovered and added multiple times through different discovery runs.
Before every new batch, check all discovered addresses against:
- Previously suppressed addresses (bounced, unsubscribed, complained)
- Already-imported CRM contacts
- Previously verified and excluded addresses (catch-all, role-based)