LinkedIn email scraper: 2,500 prospects a day per account
A client was pulling LinkedIn profiles, enriching them for emails, and sending from
Lemlist. No outreach on LinkedIn itself. The stack was
PhantomBuster, then a pile of
Google Sheets — literally hundreds — plus people who approved whether a lead was worth a send.
Each LinkedIn account did about 150 scrapes a day. Call it a 50% email match. That is 40–80 new emails a day per account. After I rebuilt it they were pulling about 2,500 prospects a day per account, 1,000–4,000 if you vary the number so it does not look like a machine. 15–20x the volume. More expensive. Most of the review work left the humans.
Hundreds of Sheets cannot talk to each other
Searches lived in separate Google Sheets by industry. Management consulting was one. Nothing joined. I moved the lot to Airtable. One base. Accounts at the top, searches under them, leads under the searches. Same shape as the
Notion system: a high-level page talking to daily work, numbers rolling back up.
A new LinkedIn account is a row plus a growth-hacking account id. Attach Sales Navigator searches to it. Progress, leads today, and a daily cap sit on the account so you can stop at 2,500 instead of leaning on the profile. They were running five accounts. One of them had 206 pending searches, another 101, 331 in total on the screen I opened. One account was 1% through its 206 searches. Each search is tens to a few hundred profiles.
The only job the LinkedIn account still does
The Integromat scenario — now Make.com — grabs the account, finds searches on it, extracts the result pages, writes last page scraped, then branches. First run also checks: emails waiting to verify, verified emails waiting for Lemlist.
HubSpot was wired. It was not fully live. Lemlist was.
The LinkedIn login only extracts Sales Navigator searches. They wanted posted-in-the-last-30-days and 90-days filters, so the search itself had to come from the account. Profile scrapes and company employee scrapes do not use that session. Your own account is maybe 100–200 profile views a day, and you still need company data. Off their profile, the same flow can sit on hundreds of thousands of profile and company lookups.
Cheapest finder first:
Dropcontact, then
People Data Labs, then
Hunter
Waterfall on cost. Dropcontact first. A short delay. Write the email back if it hits. Next run verifies it. Miss, then People Data Labs. Miss, then Hunter. Then stop.
I took the 1,000 free People Data Labs credits. The payload is large: LinkedIn person, company, phone if they have it, emails, full job history. Price is the problem. API keys live in an Airtable field so a VA can paste a new key when the 1,000-request bucket empties.
On the test pass Dropcontact sat at 0% — credits gone, they needed to upgrade. People Data Labs matched 51% of what it was handed. Hunter got the remainder: 13 of 23. You can stack more finders. Past the big ones you are mostly burning Make operations. I skipped Snov.io. The product is fine. The API token refresh on Integromat eats credits.
One Lemlist campaign per search
Paste a search URL. Every lead attaches back to that search. The row writes total pages, current page, emails found, email hit rate. Status is a formula: zero results is pending, current page less than total is in progress, equal is complete. A done-percentage field is the same idea in a number.
Each search gets a Lemlist campaign id. Industry sequences stay separate. A location can have its own sequence if you want it that granular. The prospect lands in the right campaign every time.
Yes goes to Lemlist. Maybe waits for a human
They used to walk every lead. I kept a review view: deliverable email, status does not contain undeliverable, scrape complete. Airtable buttons open the LinkedIn profile, the company page, the website. Add to Lemlist queues it. Reject drops it. The company data is already on the row. The buttons are for a visual check.
The filter they asked for sits on the search. Company size 1–50. LinkedIn locations I pulled from LinkedIn so the names match — one location or hundreds. Industry codes the same way: high-level category, industry name, LinkedIn code. Match all of those and the lead skips review and goes into the sequence. Anything short of a 100% match sits in the maybe bay. They did not add keyword filters on the profile or company page. A blacklist keyword field would tighten it further.
Lead fields: first name, last name, company, email, which finder produced it, website, headline, company id, employee count, industry, verification status. I do not use profile photos. Past a point personalisation gets creepy. Photo analysis is possible. I have done it on other LinkedIn jobs.
2,500 a day, then cold email
LinkedIn was tightening toward about 100 actions a week. People still want LinkedIn data at scale. This is the direction I was seeing: extract 2,500 prospects a day per account, find the email, send from Lemlist. The same email can also fill the “enter an email” gate on a LinkedIn connection request if you still want that path.
I was not running my own 70 LinkedIn accounts on this. I was enjoying freelance automations. This one costs more than 150 PhantomBuster scrapes a day. It 15–20x’d the book they could send.
OFM Insider and
Automation Academy if you want the communities from this video. Newsletter is
Newsletter. A one-off session is
Consultation. Monthly coaching is
Monthly Coaching.
Transcript
Hey guys just before i would share a little video of an automation that i finished building for a client um something a little bit different something a little bit interesting i have not put out that much automation content and content recently um yeah i just thought i'd i'd share this so the client came to me they were doing they're extracting um profiles from LinkedIn and trying to enrich them to get emails they're not actually doing on any outreach on LinkedIn directly they were using PhantomBuster in order to get job contact emails and then enriching them and sending over into Lemlist they were using like hundreds of different google sheets like literally hundreds and they walked me through this um they're like current process they also had
A like people-based approval system to check if a lead was actually valid and worth reaching out to uh so i've tried to automate it as as much as as possible and i'll walk you through each of the stages and processes i implemented for them um just to give you like a general like rundown of how it actually came out so they they're able to scrape about 150 profiles per day at least they previously were per LinkedIn account um and so that would then generate a certain number of email addresses let's say a 50 match rate so each LinkedIn account they had was generating i would estimate around 40 to 80 new um emails per day that they were able to send out and using like
This new strategy that i implemented um it's now gone like well above 10x perhaps 20xed their outreach potential so yeah i'm really quite interested to share this with you like i said before it was quite a it was built on google sheets so they it couldn't communicate with each other so like of course if if you know me we've we've rebuilt this on on Airtable my tool of choice for for most um most things actually so yeah let's get straight into it um this is the like actual Integromat scenario so i'll just walk you through what is happening um where we're grabbing the LinkedIn account and finding searches that are connected to that account we're then extracting all of the results uh updating the records
Showing the last page that we that we actually scraped this will then pass it down to another path if we have leads exist already it will verify that email address and if it's a valid email the next time the scenario runs we'll add it into Lemlist and add it into HubSpot currently HubSpot isn't actually fully integrated but it will sync over to lemlist and this will only run the first time the scenario runs each time the scenario runs it will just run a little check to see do we have any emails that we need to verify do we have any emails that are verified and we need to add in to um to start the actual email outreach process so then we're going to do
Like a LinkedIn profile scrape and from that profile scrape we then go and get the company employees now the way that i did this i'm not directly using their LinkedIn account and that is how we were able to increase the amount of the capabilities of the number of profiles they were able to view per day of course if you're doing this with your own LinkedIn account you can do maybe 100 maybe 200 profile scrapes per day bearing in mind we have to get the company information as well so i've actually outsourced this so for us to be able to massively increase the number of profile scrapes we can do per day this automation can handle hundreds of thousands of profile scrapes and company scrapes because
We're we're not using their um profiles to do it directly we're using private apis uh and then the the process is really quite simple it will go down and we'll check Dropcontact to see if we can find an email on Dropcontact uh the only reason i did it in this order is because it was cheapest so of course it makes sense if we're able to find an email with the cheapest service we'll we'll take what Dropcontact has to offer um this then checks do we get a response from Dropcontact did they find an email and you just need to add a little delay here very simple will then update the Airtable database if it has found an email the next time it runs like i
Said it will go down this path and it will go and verify the email um if it hasn't found an email then the next thing that we're using is People Data Labs this is a new api that i came across i'm not actually sure of the price of it um because i just took the 1000 free api credits and i recommend it to the client like they could potentially just use a virtual assistant to keep making new accounts i imagine it's going to be quite an expensive api however the level of data and information that you get with these api requests is um is phenomenal it's a really really interesting tool actually it will give you all of the LinkedIn data all the LinkedIn company
Data telephone number if it has their email addresses entire company history it's got it's really got everything so i it's a new tool that i've been being it's not new as a business but i've just recently started using it really interesting api and the level of data that you get is just um it's really impressive it's worth looking at and then once again the final automation if People Data Labs isn't able to grab an email for the prospect then we will go down to Hunter and if we don't find an email from Hunter um we will just call it quits um we could add in a load of other different apis i was trying to keep this as sort of as lean as possible we
Could try like a few other tools but generally i think we've got like the big ones covered Snov.io the api is a bit of a pain to work with to be honest like you have to keep refreshing your your api token and when you're using a tool like Integromat to do this to keep refreshing the api token for them is just going to use up a load of credit so as a tool i do like it however the api is just a little bit annoying to work with in in my opinion anyway the more interesting side of this automation so that's like just a general walkthrough of what we're actually doing and how it all works uh and then if i walk you through um
If i walk you through air tables so they're currently managing five different accounts so they can actually plug these accounts directly in just by creating a new row and then adding the growth hacking account id here then they can connect to LinkedIn search to it and this will tell you how what the progress is so currently they're connecting i'm not sure of the exact number but potentially up to like 100 different searches uh here we go yeah 206 pending searches 101 here 331. so this is one percent through all of the 206 searches that are attached to this account and each of those searches maybe has a hundred maybe a few hundred uh maybe ten or twenty LinkedIn profiles within each search and then this
Will tell you how many leads is found today from this particular profile this is just me running around and doing a bit of testing which is not um fully fully live yet um so we found 92 leads today and the reason for adding that in is just so we can put in a particular limit let's say that we scraped 2500 leads today from one account we could push LinkedIn a little bit but um we don't actually want to go too much higher than that so that is the number of leads that we have actually scraped from LinkedIn itself the only process in this automation that uses the LinkedIn account is extracting LinkedIn sales navigator searches and the only reason i did that as well is
Because they wanted to have the filter criteria in their search to check if a LinkedIn prospect has posted within a 30-day period or a 90-day period and so on and they have that segregation um built in so next up let's go into like the LinkedIn search tab so like i said previously they had like hundreds of google sheets where everything was sort of separated based on the outreach industry in this case management consulting i brought this all into Airtable and built the structure in Airtable for this just to make it like all in one place you can visually see everything and in my opinion it's much much cleaner hopefully hopefully they're happy with it as well so all they're doing is pasting the LinkedIn search
Url that they want to scrape from whenever a lead is found it's automatically going to be attached here then we dynamically add the total number of pages and this is the current page that we're on it then also adds in the total number of emails found and the percentage of emails found currently Dropcontact has run out of api credit so i was just using a little test account so they're actually going to have to upgrade it um this is a nice little formula that that i built which just shows you if the status is in progress if it's pending or if it's completed it updates automatically if result scraped is zero then it means it's pending scrape because we haven't got any results yet if
Total pages is equal to page um it means complete if it's less than it means that it's in progress right so just like really simple formula but just quite a nice um i don't know quite nice visuals for me anyway i i like to really easily be able to see the status of each of my um of everything that's in progress basically then we have the done percentage this will tell you how far through the automation is how many leads have been found today in each particular and then also just to add in like something else quite interesting so they have unique um list outreach email sequences for each of the different searches based on the industry so what they can do is then if
They just paste in the Lemlist id the prospect will be added into the correct campaign every single time so i hope that makes sense so they can assign a specific email campaign outreach to each specific LinkedIn search so if they really wanted to go very granular each different location could actually have its own lemlist outreach sequence added to it automatically and the automation would understand where to correctly add in the the LinkedIn prospects if we go into the email finder this has like template api keys in at the moment so um you're welcome to steal them they won't work very long um so what i built here is like you can just change the api keys like very very quickly so what i mentioned with
People Data Labs is i think it's going to be quite an expensive tool and the reason for that the reason i built this is so they could potentially have a virtual assistant every time they reach their 1000 request limit they can just have someone update this field with a new api key um which to me just makes a lot of sense um Dropcontact currently is at a zero percent success rate because it's run out of searches but here you can actually see the success rate for each individual for each individual email finder tool so bearing in mind it goes through Dropcontact first and then it's passed on to People Data Labs and then it's passed on to Hunter so People Data Labs is finding us
A match for 51 of the prospects that we hand to it which is is really quite good and then anything that People Data Labs can't find emails for Hunter is them running it as well so we've actually passed on 23 prospects into Hunter and it's found 13 um of them which is is also quite good uh and you could like i said you could literally stack as many different email finder tools on top of each other as you want for me it just gets to a certain point where if like some of the big guys haven't been able to pick up an email for that person we could run through hundreds of different email finder tools and just go on forever just pretty much wasting
Integromat credits so i just opted to run it through these tools which have like a really high coverage rate and um and just leave it there essentially but of course you have the option to add in more if you choose to then any lead that is found via our search is automatically tagged back into that search so we can use it for some type of like analytics uh to to know like how many um prospects were pulled and where they were pulled from from which particular search they were pulled from and then in here we've just got like the standard stuff like first name last name company email where the email came from and this is actually what the analytics is built on top of
Did it come from People Data Labs Dropcontact or um or from Hunter then we also have the website and any other information that Dropcontact gives us as well as the actual company website and the headline from LinkedIn profile picture maybe it's useful to to them personally i don't actually use LinkedIn profile pictures anywhere i think there's a level of automation and scraping where you can actually just get a little bit creepy and maybe take personalization a bit too far um so yeah personally i don't use it but nonetheless it's interesting to have and you can also do some type of like photo analysis which i have done in LinkedIn automations before here's like the company id which we use for scraping it's quite important for
Them to have the industry and the employees i'll go on to why that is in a minute here's a response from our link email verification tool it's deliverable when it's accepted and then they they were previously doing something where they um they would manually go through the leads just to make sure that they were valid prospects so i built out this view where essentially as long as an email in fact i just need to need to correct one issue i've just seen there email status does not contain undeliverable so now whenever we have a deliverable email address um so it's a valid email address and it's been accepted we've run it for our scraper we've got all the information this is sort of like a
Validation um they can even manually check here where they can just click add to Lemlist this prospect will then be moved into the lemlist queue and then i was basically thinking like of course they want to do some type of reviews so i built these like dynamic buttons really easy to do any field that you have you can turn into a button within um airtable just another one of the amazing benefits of using using airtable um so when they click this it will automatically open the LinkedIn profile page if they click this it will open the company page and here it will open the website technically they have got all of the data available here anyway because i've already extracted like the LinkedIn company employees
The description and so on but sometimes it's nice to just get a visual feel of um of the actual LinkedIn company page and i will still do that quite often rather than just looking at a spreadsheet which is why i added that there so this is like a productivity thing basically i thought that they would be links that they would be using to review quite often yeah and then if they they click add to Lemlist it will be added into the Lemlist queue and it will automatically be put into the lemlist outreach campaign as we discussed earlier uh or they can potentially reject a lead if it's not um if it's not valid something else that they ask me for is they want like an
Automatic filtering process to be able to check is a lead is it actually what they want so what i've built out here is they can add in and any search that they have there was a field i don't know if you saw this but you can attach a filter to it and this will automatically filter through any the that come through just to make sure that they're 100 valid and if they match this filter it will automatically approve them to go into Lemlist so i hope this is making sense the only ones that are put into this bay for manual approval is if the filter filtration system isn't sure if it's a 100 match or not so i've tried to automate as much of the
Work as possible so if it matches these filters employee account is between 1 maximum 50. it matches this LinkedIn location all of the LinkedIn locations i actually extracted from LinkedIn just to make sure that there was like cross compatibility so anything that they click in here will be added in they can add in as many or as few as they want they can have one or they can have hundreds and then you can also add in like the LinkedIn codes so these are um LinkedIn industry codes as you can see what the actual names are here again this is taken directly from LinkedIn to ensure that um any information we're scraping directly from LinkedIn is also it gives us a 100 match if that makes
Sense so um you can extract this from like the LinkedIn api directly so they can add in any LinkedIn categories that they want for industry for location for company size they're the the specific filters that they ask for we could also look into doing like specific keywords on the profile page or on the company page but um they didn't opt in for that um so this is just an easy process where we can check is this prospect is are they 100 in our target market if they are they're automatically put into the email sequence if they're not then it's held off and it's put into like the manual review bay let's call it uh if you're wondering how this is built you can just um
Add in like a separate table in which case this is industry codes which i pasted them all in this is like a sort of high level category it falls within technology and this is the actual industry itself and then these are the industry codes as provided by LinkedIn same for locations here i just extracted all of the possible locations that LinkedIn offers and that it's put in here and it's just a really simple filter if LinkedIn profile contains this um i'm printing out every single of the names here as long as the industry name is contained within this block of text it means that we have a match and it will automatically be be passed through um so all in all i think this was
Like it was quite an interesting um thing to build like now i'm really quite focused on building like relational databases which is also what the entire notion system is built upon i think it's so interesting like the the analytics and the automation that you can just build and provide as well as saving yourself an Integromat credits rather than just having to look up what's going on in another field you can just pull all of the data through to work from like very high level the highest level here is the accounts page going down into smaller and smaller tasks but having all of that information accessible at the highest level of your database um which for us is the is the accounts page so yeah this
Is um i've been doing quite a lot more automation recently mostly like clients um requesting me to build out build out some automations for them and we've had like some interesting requests so yeah this was just one of them something like a little bit different that you haven't seen before due to like the um LinkedIn restrictions being set to like 100 per week a lot more people are opting for an approach such as this they still want to be able to perform the outreach from LinkedIn but they want to be able to do it at scale so with this particular method we're able to extract 2500 prospects per day potentially even more like i anywhere between 1 000 to 4 000 is what i would
Do per day and i would like alternate it to keep it random um but let's yeah call it an average of like 2 500 prospects per day per LinkedIn account grab the emails for them and add them into a cold email outreach sequence so this is like the direction that i'm seeing a lot of people um move into and there's like another just like getting a little bit off topic now one way around like the LinkedIn outreach is that you can actually they're asking you for an email address you could actually also use a method such as this to get the valid email for the person and then you could also add that in to be able to send the LinkedIn connection request um if
If if that makes sense there are ways around it but it's yeah it's just becoming more and more popular that people are moving to like cold email outreach based off of of LinkedIn data which also makes that complete sense um yeah other than that personally i've not actually been doing too much on LinkedIn recently i'm i'm not really like promoting any products um to be honest i'm enjoying like the zero to one million dollar series and i have got like the 70 LinkedIn accounts still sitting there um potentially i could look into doing like some type of affiliate stuff but at the moment i'm just um or pushing some of my own products but at the moment i'm just enjoying building a few different like
Freelance automations people are coming to me with some quite interesting problems and i'm i i enjoy solving problems automating things so it gives me quite a lot of satisfaction knowing that prior to using them using this automation the client i've just built this for they were doing like 150 scrapes per day per LinkedIn account and as much as this method is going to be a little bit more expensive for them we've more than way more than 10x that outreach between 15 to 20x the volume of outreach that they're able to to make as on top of that as well as automating a lot of the processes that they were previously using people for to manually review these to manually go through like the filtering process
That i just walked through and um i i just find it quite interesting to to automate these processes to be honest and to be able to walk away from it knowing that i've you know 10x 20x companies um outreach capabilities which should lead into like a massive increase in their in their revenue and that's that's basically what what i enjoy doing um at the moment anyway um yeah other than that please feel free to leave any questions and comments it's nice to put another automation video out on this channel to be honest it's been a little while since i um since i was able to but mostly i've not been building anything like really different um or anything like super interesting mostly just like some
Basic LinkedIn outreach things that people see videos on my channel and they just want me to remake things that i've built before um i do have a project with like another client where they've basically they're hiring me to basically build whatever i want for them which is always like an interesting situation to be be put in so they're just paying like an hourly rate and they're just saying just focus like this is the problems that we have we'd like to see growth what can you do for us so just to be sort of let loose on a project is always always quite interesting basically just to be left to my own devices to see what ideas i can come up with and they basically just
Wanted like a fresh um fresh point of view and like some some fresh ideas to be brought to the table in terms of growth and automation so hopefully i'll get to record some interesting um videos from that project as well as long as i have their permission to do so um yeah other than that thank you so much for watching any questions as always just leave a comment you