How I Get Quality B2B Email Leads – Building My Own Custom Research Bot
In this article, I’ll talk a little about how I made my own custom b2b email lead research bot with Python automation. Although the program is still in testing, I currently get 200-250 quality email leads daily running it on my alternate computer.
The script can automatically research the name of a website owner and find their email with around 70% accuracy. Although human moderation of the leads is currently required, I can most likely get the accuracy of leads higher by using advanced syntax-checking of emails, and more web based cross-examination of lead results.
After sorting through the raw output leads for around 20 minutes, I’m able to get around 98% deliverability and 25-30% open rate on the emails I send (on templated, mostly non-personal emails!), which is actually better than when I was collecting the leads manually. This script has reduced my time spent cold emailing by around 2 hours per day, which goes a long way when running a business. So let’s hop into how it works!
I had just started up my new SEO, web design, and PPC ads business, SEOT Tech. As many small business owners know, getting the first customers is really hard! It takes a lot of persistence, and time spent directly reaching out to business owners (at least for my acquisition strategy).
I noticed that I was taking a lot of time out of my day to cold email prospects, with little-to-no quality responses. It was a frustrating putting so much effort in and getting no results, and most of the time was spent finding quality leads to email. So I decided to build my own lead researcher that could find contact names and emails.
Version 1 of this script wasn’t all that successful. I spent around a day creating the first prototype, and by day 3 or 4 I had it fully up and running. The script would scrape Google for 10-20 websites that were ranking on pages 2, 3, and 4. It would make note of the websites ranking above them and use that info to make the emails look more customized. Although it seemed like a good idea on paper, in reality I was having some problems with the resulting contact names and emails.
The leads collected were often something like firstname.lastname@example.org, email@example.com, etc. Even worse, I was getting spamtrap and .gov emails as well. I emailed around 250 of these info emails with not the best deliverability and bad open/response rates.
I created a simple SMTP bulk emailer script to use with my Gmail account. After the first bulk email batches, my main Gmail account was nearly perma-banned because of the sudden increase in the amount of emails sent. So I stopped sending emails and took a break from the project for around a week. During that time I focused on the brutal task of cold calling to get new clients.
Now it was time to create version 2 of the script. I knew I needed more website pages to be collected and analyzed for good lead results. This time I had the script scraping thousands of business websites on YellowPages in every state in the USA. I usually run that part of the script until I have around 10-20k business websites collected in a .txt file. Then I run the second part of the script that goes through every link in the list, and tries to research the owner/CEO/president/manager’s name and email. It’s only successful around 10-20% of the time, which is why I need so many websites in the list to get quality leads.
The research part of the script works by searching for the owner of a particular website like a normal person would on Google. It collects all of the results returned by Google and analyzes them for human names with a Python package called Spacy. To ensure that it gets the correct name, I implemented strict requirements:
- There must be one of the keywords in the main domain name. This ensures that it’s the correct business, and not another business, which I found Google was often returning if it couldn’t find the correct result.
- The niche keyword, for instance “plumber”, couldn’t be the only matching keyword for the name search results.
- Since Spacy seems to use a neural network model to find human names, it sometimes interprets the business name as a human name by mistake. So I made sure that the “human name” wasn’t a part of the main domain.
Once it finds a contact person’s name, it goes to the main website, finding “contact us” pages (identified by finding words like “contact”, “about”, etc), and scraping emails from every HTML element on the page. Once it’s scraped every page and found emails, it adds each them to the lead list, assuming they meet the requirements. These emails are usually good quality, since they are a part of the main website. I’ve found that business websites sometimes have hidden personal emails in the HTML/forgotten pages that the scraper picks up.
Then it moves onto the third stage, which is trying to guess the contact person’s personal email by doing combinations like “firstname.lastname@example.org” and searching them in Google. Although this step only picks up quality results around 5-10% of the time, it dramatically improved the leads that I get from this script. Where before I was getting results like “email@example.com”, I’m now getting results like “firstname.lastname@example.org” and similar. I’ve found these leads to be very accurate, since I also implemented strict requirements for the collected emails to be added to the lead list. These emails are what offer the best open and reply rates, but I’m still doing plenty of testing.
That’s all I have for now, but I’ll create a second update article once I have some even better results. I’m planning to offer this program as a web-based lead gen service, where my clients can view the lead emails and names for something like $0.05-$0.10 per (warm) lead. A warm lead meaning one that has been sent multiple emails in a particular niche, and one that has showed interest in that niche.
Compared to something like FB ads, where you pay for people who often don’t convert to paying customers, this could be a vast improvement for my client’s lead generation.
If this project sounds interesting to you, feel free to reach out via email: email@example.com so you can get 20 free leads for your business. This offer won’t last forever, but I’m currently still testing and adding to the software, so the resulting leads aren’t ready to be sold yet.
I hope you found this article at least somewhat interesting, and thanks for supporting my website by reading all the way through!
Want To Learn How To Generate Leads On Autopilot For Your Business?
My team and I can skyrocket your leads, using tools like this one. If you’re ready to generate more sales every month using just your website, PPC ads, and some SEO, then book a free consultation so we can get to know you and work on a custom plan for your business!