SOP Lead List Building With Apollo
Overview
This SOP covers building a lead list for a lead generation campaign.
Objective / Definition of Done
Build a lead list according to the requirements and prepare it for use in campaigns.
The list is complete when it has been:
- Created in Apollo
- Checked for targeting
- Exported from Apollo
- Enriched in Clay with missing emails and any custom messaging prompts we want to use
- Exported from Clay
- Verified using MillionVerifier or a similar tool
- Verified-only list and full list both saved in Google Drive in a folder with a descriptive name
- Uploaded to EmailBison, HeyReach, and Attio
Process
Specify the Targeting
Before we build the list, we need a clear idea of who we’re targeting. Make sure we’ve answered the following questions:
- Who are they?
- Where are they?
- What industry are they in?
- What size company do they work at?
- What is their role?
- What do they care about?
- What are we solving for them?
We will need these specific parameters (at a minimum) for creating the lead list:
- Location
- Industry
- Company headcount range
- Job title
- Optional: keywords
In general, we want these lead lists to be tightly targeted.
All the job titles in a list should be closely related and share the same concerns.
All the companies in a list should be in the same industry and of similar size.
In general, they should also be at least in the same country, and in some cases we’ll want to be even more closely targeted in terms of location.
Job Titles
For coming up with job titles, you may want to ask ChatGPT for suggestions:
I’m preparing a cold email campaign for the following offer:
{{offer}}
We’re targeting {{industry}} in {{location}} with headcount range {{headcount range}}.
What are some job titles I should reach out to, and why?
In addition, you may want to add “Please only give me job titles who are likely to have decision-making authority for this offer” unless our strategy for the campaign explicitly states that we’re reaching out to non-decision-makers (sometimes used in an account-based marketing strategy).
Create the List
Use the parameters we’ve specified to create the lead list in Apollo’s people search.
The location and headcount filters are very straightforward.
For the job title, use broad versions of the title. For example, instead of “Head of Growth” you can enter “head growth”. Instead of “Director of Marketing”, enter “director marketing”. Apollo is pretty good about matching similar job titles anyway, but this should help pick up variations like “Marketing Director” vs “Director of Marketing”.
For the industry, start by using Apollo’s industry filters. If they work well, they’re the easiest option.
However, sometimes they are not very good. In the next step, we’ll check the list for accuracy. If you can’t get good accuracy using the industry filter, you may need to find another way to filter, like using specific keywords.
Emails
Apollo has a filter for email addresses. A lot of people will set the filter to only return leads with verified email addresses. We don’t do that, for two reasons:
- Apollo’s verification is not very good anyway, and we don’t trust it - we’ll verify the emails ourselves using an external tool.
- We want to include leads who don’t have email addresses, because we’ll use Clay to enrich them later and try to find their email addresses.
Check the List for Accuracy
We want to make sure that the lead list reasonably reflects the target audience we’re trying to reach.
Pick 10 leads at random and check them for accuracy.
Look at:
- The contact’s job title.
- Do they have the responsibility we’re looking for?
- Often, unrelated or irrelevant job titles will sneak in.
- For example, if we’re targeting directors of sales for an outbound sales ops offer, we might get a contact with the job title “Director of Retail Sales”.
- This would not be a good person to reach for our offer because retail sales typically involves managing in-store sales teams, merchandising, and point-of-sale operations rather than overseeing outbound prospecting, pipeline management, or cold email strategies.
- The company’s website.
- Does the company actually do what we’re expecting?
- For example, if we’re trying to reach construction companies and we’ve used the Construction industry filter, we might get companies which sell to construction companies, but don’t build anything, like construction equipment suppliers who sell Caterpillar products or cranes.
- Are there any other obvious indications on the website that the company is not a good fit for what we’re trying to sell?
- Some possible examples for an outbound sales offer:
- If they look tiny, e.g. "We are a family-owned business serving only {a very small region}."
- If they have a highly non-standard sales process, e.g. "We specialize in government contracts."
- If they look like a staffing agency rather than an actual service provider
- If they’re a non-profit or educational institution instead of a business
Of the 10 leads you check at random, at least 8 of them should be a good fit. If you have questions at this step, please feel free to ask for feedback in the Team channel.
If fewer than 8 of the 10 random leads look like a good fit, we need to refine the targeting.
The first way we do this is using negative keywords. For example, if we’re making a list of construction companies and we have a lot of construction equipment suppliers on the list, try adding a negative keyword for “construction equipment”.
Then check the list again - does this negative keyword remove a lot of matches we actually want / make the list too small? If so, we may not want to use that negative keyword.
But if it looks good, check 10 leads at random again to see whether at least 8 of them are good fits.
If there are still a lot of irrelevant companies, add more negative keywords.
If a few iterations of this aren’t enough to get us good targeting, or the resulting list is very small, we may need to come up with a different filtering strategy.
But if the list looks good at this point, move on to the next step.
Get Preliminary Approval For The List
Before moving on, because the next step will cost us Apollo credits or money, get approval from the founders.
You can save the list in Apollo and drop a message in the Team channel on Slack.
Make sure that the list name contains the date in YYYY-MM-DD format at the beginning, and a clear description of the ICP.
Example: if the lead list was created on March 5, 2025 and targets sales leaders at companies with 50-200 headcount in Finland, you’d name the list:
2025-03-05 - Finland SaaS Sales Leaders 50-200
Export the List
Once the list has been finalized in Apollo and approved by the team, we need to export it for use.
If we have enough credits left in our Apollo account to export the list directly, just do that - it’s fast and doesn’t cost anything extra.
If we don’t have enough credits, we’ll have to use a third-party Apollo scraper.
There are a lot of options, but for now we’ll use https://app.exportapollo.com/.
Load into Clay for Enrichment
After the list has been exported from Apollo, we want to load it into Clay so we can:
- Attempt to find emails for any prospects which Apollo didn’t have them for.
- Add any AI personalizations we want to use for these leads.
A separate SOP will be provided for email enrichment.
Separate playbooks for personalizations will be provided, and we’ll specify which ones we want to use for the given lead list.
To make sure we don’t spend money/credits unnecessarily on this step, keep a few things in mind:
- ONLY run email enrichment on leads that we don’t already have an email address for.
- When coming up with AI personalizations, ONLY run the prompt for the first 10 leads (Clay has an easy option for this), making adjustments until you’re very happy with the outputs. Then run the prompt for the entire lead list.
If you have any questions or doubts about the quality of the AI outputs, ask for feedback in the team channel before running the prompt on the entire lead list.
Get Final Approval For Lists
At this point, the lead list data is finalized.
Regardless of whether you asked for feedback on the AI outputs above, get approval from the founders for the final lists before exporting the list from Clay and spending email verification credits on the next step.
Once approved, move on to the next step.
Export List from Clay and Verify Emails
Once the enrichment in Clay is done and the finalized list has been approved, export the lead list and run it through a verification service.
For now, we’ll use MillionVerifier.
Once verification is complete, you’ll want to pull two lists:
- The list of leads with verified/safe email addresses ONLY
- We will use these for the cold email campaigns
- The full lead list
- We can still use leads without verified emails for LinkedIn and cold calling
In the future, we may also pull a report of risky/catch-all email addresses and run those through a catch-all verification service like Scrubby.
Put Lists Into Google Drive
In the shared Google Drive folder for campaign data, create a folder for this targeting if one doesn’t already exist.
Use the same name for the folder as you used for the saved Apollo list in that step.
Put the two lead lists specified above into this folder. Make sure it’s clear in the filenames which list is which.
Load Lists Into Sales Tools
Now that the lead lists are in place in Google Drive, we want to load them into the sales tools we use.
For now, the leads are going to go into three places: 1. EmailBison for cold email campaigns 1. Upload the list of verified emails only. 2. Unless otherwise specified, upload the leads into a new campaign with the same name as the folder you put the leads into. 2. HeyReach for LinkedIn connector campaigns 3. Upload the list of all contacts. 4. Unless otherwise specified, upload the leads into a new campaign with the same name as the folder you put the leads into. 5. The campaign should have a single step which sends a connection request. 6. Unless otherwise specified, the connection request should have no message. 3. Attio, our CRM 7. Upload the list of all contacts. 8. Tag the leads appropriately based on the targeting using attributes.
Summarized Version of SOP
Objective: Build a lead list and prepare it for use in campaigns.
Definition of Done:
- Lead list created in Apollo
- List checked for targeting accuracy
- List exported from Apollo
- Enriched in Clay (missing emails + any AI personalization)
- Exported from Clay
- Emails verified using MillionVerifier or a similar tool
- Final lists saved in Google Drive with clear naming
- Lists uploaded to EmailBison (verified only) and HeyReach and Attio (all leads)
Step 1: Specify Targeting
- Define who we’re targeting:
- Industry, location, company size, job title, role, needs
- Job titles should be decision-makers unless otherwise specified.
- Ensure leads in a single list share similar needs and concerns.
Job Title Selection:
- Use broad keyword variations for titles (e.g., “head growth” instead of “Head of Growth”).
- Use Apollo industry filters first; if inaccurate, refine with keywords.
- Do not filter by verified emails in Apollo (we verify externally).
Step 2: Create & Check the List
- Generate the list in Apollo using the defined targeting.
- Pick 10 random leads and review:
- ✅ Job title relevance (decision-making authority?)
- ✅ Company fit (correct industry, size, and function?)
- Refine targeting if necessary using negative keywords.
- If 8+ of 10 leads are a good fit, proceed. Otherwise, redefine filters.
Step 3: Get Preliminary Approval
- Save the list in Apollo.
- Post in Slack Team Channel for founder approval before spending credits.
Step 4: Export the List
- Use Apollo credits first to export.
- If credits are insufficient, use https://app.exportapollo.com/.
Step 5: Load into Clay for Enrichment
- Enrich missing emails.
- Add AI personalization prompts (test 10 leads first, adjust as needed).
- Only run email enrichment on leads missing emails (to save costs).
Step 6: Get Final Approval
- Post in Slack for final review before exporting from Clay.
Step 7: Export & Verify Emails
- Export the finalized list from Clay.
- Verify emails using MillionVerifier.
- Generate two versions:
- ✅ Verified Emails List → Used for email campaigns.
- ✅ Full List (incl. unverified emails) → Used for LinkedIn & cold calling.
Step 8: Save Lists in Google Drive
- Create a folder named: YYYY-MM-DD - ICP Details
- Upload both lists:
- Verified Emails List
- Full List (all contacts)
Step 9: Load Lists Into Sales Tools
- EmailBison (cold email campaigns)
- Upload verified emails only.
- Create a new campaign matching the folder name.
- HeyReach (LinkedIn connector campaigns)
- Upload full list (all contacts).
- Use a single-step connection request (no message unless specified).
- Attio (CRM)
- Upload full list (all contacts).
- Tag leads based on targeting parameters.
Final Check:
✅ All lists saved & named correctly
✅ Verified emails uploaded to EmailBison
✅ Full list uploaded to HeyReach & Attio