UPDATED ON 17th of September
LinkedIn is the world’s largest professional networking site with over 610 million members and 120 million daily active users (DAU).
It is also the best place to find B2B leads since 80% of all leads from Social Media come from it.
But how do those businesses generate those leads?
They probably do it by running ads, but before you get too excited to let me tell you that it can cost you from $3 up to $15 for a single click on your ad.
Imagine I’d need to pay, on average, $3.72 to get you to visit this blog-post.
Hardy an economically rational decision for a small business.
Here comes the solution … Your LinkedIn network!
You can build a business network that can be used as the launchpad for your products, services or your personal brand.
What’s the best thing? It’s absolutely free to do it. LinkedIn allows you to have upwards of 30,000 connections. Imagine being able to post content which can be seen by that many professionals over and over again.
What you’ll learn in this guide can be applied to any industry or niche. It describes a very simple growth-hacking method which can have huge effect on the success of your business.
- Find prospective companies and their employees in any niche,
- Identify decision-makers and
- Build a network of decision-makers in your niche
Everything in this guide can be achieved using free tools (although it doesn’t hurt upgrading it).
Feel free to share it with the person responsible for lead generation in your company🚀
The task will be achieved by mainly using two brilliant automation tools; PhantomBuster and LinkedIn Helper. At first glance, they might look quite intimidating. No worries, for this guide we’ll only use a tiny portion of their arsenal but still enough to give you a glimpse of the possibilities.
PB can be used for a variety of tasks like extracting Facebook Group members, endorsing LinkedIn contacts, auto-following on Instagram and more. On the other hand, LinkedIn Helper’s only playground is LinkedIn. Two main differences between the tools are: PB is run on a cloud – i.e. nothing is done on your PC/MAC – while LNH is run in your browser window. PB absolutely wins here. However, unlimited run time is what brings LNH back into the game. While PB lets your run so-called APIs for 60 minutes per day (free trial), LNH doesn’t mind if it’s run all the time. For instance, if the extraction of company information takes 30 seconds for each profile, that means we can extract around 120 profiles per day. Of course, you can raise the run-time for PB, but that comes at a price (well worth it).
All in all, PB is a more robust growth-hacking tool with many applications but in order to make the process free, we’ll need a combination of both tools. That’s why this guide will show how we can find decision-makers with both tools.
After a quick introduction of the tools, let’s dive into it. Here is the outline of the guide for you to quickly navigate through. Feel free to re-visit this guide whenever you feel stuck.
- Find companies in your niche
- Collect companies from search results and identify best prospects
- Collect employees and identify decision-makers on LinkedIn
- Build a LinkedIn network building machine
- Find direct email address, headcount and location
I’ve chosen LinkedIn as it is the biggest professional social network and holds thousands of potential customers for your business, no matter the industry and niche. What makes LinkedIn stand-out, is its users’ level of investment and dedication in making their profiles as complete as possible. Likewise, the same is true for business as most of the business owners want the business to look as good and as big as possible. Therefore, it is quite easy to find contact information about employees’ titles and positions in the company.
With this information, we can quickly identify decision-makers that we should get in touch with. For instance, if you are a small accounting firm you could look for business owners in your area, get their email and send them a message.
Subscribe here If you are interested in learning how to send 100+ emails daily that end up in Primary tab with 70%+ open rate.
When visiting Company page on LinkedIn you will see a ribbon named People. This is where LinkedIn stores all information regarding employees that have associated with a company.
In most cases, the list is fairly accurate but it can happen that there are some ex-employees or people who have selected the wrong company due to the similarity of the company names. It’s recommended to do quick “screening” of the contacts, which will be shown in greater detail later on.
1 Find companies in your niche
The first step includes finding prospective companies that are interesting for your business and collect them in a spreadsheet for later processing. LinkedIn’s internal search is a great place to start. Alternatively, Google search can be used to find LinkedIn company pages as well. I will present you both ways because I believe they can be used in synergy to create the most complete “hit-list”.
We’re going to cover two ways of finding businesses that have a LinkedIn profile:
- LinkedIn internal search
- Google search (Operators & Advanced Search) – Read More
I usually use a combination of both methods to create the most complete list. In case, you own Sales Navigator license this task can be achieved with ease. It enables a far more sophisticated filter with filter conditions that are hidden from standard users.
LinkedIn offers a free 1-month trial which can be canceled immediately after signing up (so nothing is charged). I’m gonna be sending a guide describing how to best leverage free trial for Sales Navigator to my subscribers. You can subscribe here to get it first.
1.1 Find companies via LinkedIn internal search
See the full list of all the operators and how to use them in the below table:
|Quotes||“search query”||For an exact phrase, enclose the phrase in quotation marks. For example, type “product manager”.|
|Parentheses||(“search query1” OR “search query 2”) AND keyword||Parentheses let you create complex OR statements. Here we basically run two queries at the same time. “search query1” + keyword and “search query 2” + keyword|
|NOT|| “CBD shop” NOT dispensary||Type the word NOT immediately before a search term to exclude it from your search results.|
|AND||Type the word AND to see results that include all items in a list.|
|OR|| (CBD OR hemp OR cannabis) AND shop||Type the word OR to see results that include one or more items in a list. This typically broadens your search results.|
Let’s take a look at an example:
Let’s say we would like to find businesses that sell CBD or Hemp products. Using what we have learned, we can search – (CBD OR hemp) Retail -. When pressing search don’t forget to select Companies under More (see screenshot).
Changing search query to (CBD OR HEMP OR CANNABIS) Retail would now also include results with hemp shops. However, be careful with expanding the criteria too much, since it can lead to less relevant results. Moreover, more results mean more run-time.
You shouldn’t worry about a few irrelevant results too much since we will easily exclude them in a spreadsheet later on. Sadly, search criteria can’t be set specific geographical areas without Sales Navigator. However, translating keywords into the language of the target segment you are trying to reach can serve as a potential workaround. For instance, using “dampf store” will show vape stores in German-speaking markets.
It will take some time to perfect the search query. In most cases, multiple search queries can be used to achieve the best results. If you are particularly interested in a specific industry, you can append its name to the end of the search query.
Here is the list of some official LinkedIn industries. See full list here.
- Health, Wellness and Fitness
- Consumer goods
- Alternative medicine
- Pharmaceuticals and many more
Whenever the search is done on LinkedIn, it generates a URL that includes all the search criteria used. This can come in handy when we want to revisit the search results at other times.
For instance, if we are doing 10 different searches to find companies of our target segment, we can save those URLs in a spreadsheet for easy management.
As you find search queries that work for you, continue to part 2 to see how to save the search results in a spreadsheet.
Find email addresses & send 100+ emails to the Primary tab with 75%+ open rate a day
1.2 Find companies via Google search operators
Instead of using LinkedIn internal search we can use Google’s search engine to search “within” LinkedIn database.
In many cases, Google can give us better results than LinkedIn itself. Mostly because LinkedIn wants to charge money via Sales Navigator and other subscriptions while Google doesn’t.
Google Advanced Search is a built-in feature of Google that allows a user to specify additional requirements for a search. By giving additional information to Google, we can get more refined search results.
It enables us to refine results by using explicit phrases, excluding certain words, looking for words in title, text, …
Google achieves this by using so-called Search Operators which can be found in the table below.
|site||site:linkedin.com||It limits search results to only Linkedin.com domain|
|intitle||intitle:”CBD”||Results must have “CBD shop” in their title.|
|intext||intext:UK||Can be useful when we want to limit results to a certain geographical location.|
|inurl||inurl:linkedin.com/company||Show results that contain what is in inurl in their actual URL. In most casese, it is better to use inurl instead of site since it provides more accurate results.|
Google has gone an extra step to make the user experience easier and created an interface where users can compile those queries. Based on the input it automatically generates an advanced search query for us.
In the example above, using only two search operators yields in the best results. With this query, I’ve tried to search for cosmetic products wholesalers in London.
Sometimes adding language can be helpful, especially if we want to limit the results to only a specific region. It boils down to your use case and a different set of operators can work for you. The only one that must not be forgotten is site or domain restraint which tells Google to look for LinkedIn pages only.
As you become more accustomed to the operators you will be able to write queries without the interface like the ones below.
Use of more complex operators:
wholesale inurl:linkedin.com/company intext:whitelabel intitle:CBDSearch query results in LinkedIn Company profiles that deal with CBD or CBD wholesale and offer whitelable
wholesale inurl:linkedin.com/company intext:whitelabel AND (intitle:CBD OR intitle:hemp)Search query results in LinkedIn Company profiles that deal with CBD or HEMP wholesale and offer whitelable.
These are the most helpful operators that can be used for Google search. Of course, there are many more but their benefits decrease. Furthermore, the likelihood of getting prompted with the Human Verification page (see image below) increases by adding more operators in a search query thus making it more complex.
Complex queries are signaling to Google that queries are being for web scraping by bots. When this happens you can simply press I’m not a robot and continue with your hunt (no consequences whatsoever – similarly to YouTube pause if you watch for too long).
To show the full results, scroll to the bottom of the page and ma sure to click on repeat the search with the omitted results included. Thankfully, this is only needed once but be sure to double-check if you suspect that there are too few results in your search.
Get first access to the following guides:
- How to send 100+ emails to the Primary tab with 75%+ open rate a day through your G-Suite account
- Find decision-makers’ email address from LinkedIn users
- How to build a professional network of 1000+ connections in a niche with Sales Navigator
2 Collect companies from search results and identify best prospects
As we have found set our “killer” search queries that yield in a big enough number of relevant LinkedIn pages, let’s now look at how we can collect those URLs and store them in a spreadsheet for further processing.
Firstly, I recommend you to create a spreadsheet, preferably in Google Sheets, where you’d keep all the search results, queries used to generate results and all the additional data we will collect throughout this guide.
We can use two tools to collect the results into the spreadsheet:
- LinkedIn Helper (free 14-day trial)
2.1 Collect search results from LinkedIn search
LinkedIn Helper helps us automating the collection of all company profiles with a single click. This can be achieved with a feature called Collect companies which it will automatically loop through all the pages and extract URLs for you. This process needs to be repeated for every search query we have compiled.
Steps required to set up LNH:
- Create a free account on their website
- Install the extension (Chrome – see animation below)
- Refresh the windows with LinkedIn search results
As you’ve installed the extension and refreshed the page with search results, you should be able to see LNH in the bottom right corner. It will prompt you to log into your account (create an account from the form). Once you do it, you’ll notice you’ve received a 14-day trial.
Next step, select Collect companies under Company extractor tool. The collection will loop through all the pages and will append results to the list for easy exporting. Once the process is finished continue to export the CSV file and copy results into the spreadsheet.
Use split text to column function in Google Sheets or Excel, as seen in the animation, to make the data more manageable. Your spreadsheet should now include company names, URLs and industry.
Next, we need to tidy up the spreadsheet to only include information needed for the next stage which includes cleaning the list of irrelevant or invalid entries and later exporting employees’ profile URLs.
I recommend keeping the name, URL and industry columns. First and last will help us weed out irrelevant entries. Feel free to delete any rows that do not fit into what you are looking for.
2.2 Collect results from Google
Let’s use the same following query to demonstrate extraction:
wholesale (CBD OR hemp) inurl:linkedin.com/companyShould result in companies dealing with wholesale sale of CBD and hemp products
You can see both of them in action in the below animation. I would recommend scrolling until you stop seeing relevant businesses in the search results.
Once you are satisfied with the results press on the saved bookmark and copy the results into the spreadsheet. As before, feel free to go through the sheet and remove all entries that seem irrelevant to you.
2.3 Identify the best prospective companies to work with
This above method is “quick and dirty” since it can capture everything that Google and LinkedIn deem relevant. Often times the reality is that there are plenty of leads that aren’t that important and should be removed from further processing.
I would recommend quickly going through the list and remove rows containing irrelevant entries. This will make the process of collecting employees ways faster and more efficient.
3. Collect employees and identify decision-makers on LinkedIn
3.1 Extract all employees’ data (first, last name and title)
As we have collected and cleaned the list of companies let’s start with retrieving all employees of those companies. For this, we will use PB since LNH doesn’t have the corresponding feature. Its free tier gives you 10 minutes of run-time per day. That’s is not plenty of time that we need to use both LNH and PB. Remember, we are trying to do it completely for free.
Steps required to set-up PB:
- Create a PB account
- Install Chrome extensions here (one-click)
- Make sure you are logged into your LinkedIn profile
- Visit API page here & Press use API
Before we are able to use we need to make sure that PB has access to our LinkedIn profile and to the spreadsheet where URLs of company profiles are stored. To make the spreadsheet available to PB we need to set link sharing to “anyone with the link “so anyone who has the link can access. Check out this guide for more information.
Let’s head up back to PB where we will configure the API that will collect the data. Three elements are crucial for successful configuration of PB; 1) LinkedIn session cookie* (PB uses to log-in into your account), 2) spreadsheet URL and 3) column name containing LinkedIn URLs.
* you will never share your log-in credentials with PB
If you have installed the extension, the session cookie can be inserted with a single click. I’d recommend keeping other settings as they are for now. Once you are finished with configuring API I would recommend setting “Delete all previous files at launch Low space usage” under Settings->File storage. This way new file that stores the data is generated with every run.
Refer to bottom animation for a brief demonstration. These settings apply for the majority of PB’s APIs.
Find a more detailed explanation on how to set-up the API and spreadsheet to work correctly below.
We are finally getting closer to extracting employees’ profiles. Once you have configured the API correctly continue with pressing the Launch button and let PB work its magic.
Pressing Launch will take you to a Console view where you can observe API do its work. It will now loop through all the companies’ profiles in the spreadsheet and extract the first page of employees’ profiles. Once this is done, results will be available for download in a CSV file.
3.2 Identify decision-makers and create a “hit-list”
As you go through the list you might notice that there are some people who are not relevant for your business. Because who only want to connect with decision-makers in our niche we need to clean the list.
You might also notice that for some rows, there might not be any data. This is because some users are out of your network, meaning you are not able to see their profile unless you have a common connection. This is expressed with Profile out of your network in the error column. Feel free to remove all rows containing such information.
|profileUrl||URL to employee’s LinkedIn profile||Yes|
|name||Full name of the employee||No|
|firstName||First name of the employee||Yes|
|lastName||Lat name of the employee||Yes|
|job||Current job title||Yes|
|query||URL of employer’s LinkedIn profile||Yes|
|timestamp||Timestamp of collection||No|
Let’s now look at how to clean the list of employees to only include those who we would like to connect with.
For instance, if you are looking for purchasing managers, titles like Purchasing manager, Sales manager, Account manager or Business developer might be used to describe such employees.
To help save time we can use a regular expression, or regex for short, which is a sequence of characters that define a search pattern. It will check the text in a specific column for the occurrence of pre-defined words – i.e in our example function will return TRUE if the employee has one of the job titles.
In Google Sheets, you can create it with the following formula:
- Let’s break down the above formula: A2 indicated a cell with the job title. It is encapsulated in function lower() to make all the text in job title lowercase (it will match both Sales and sales).
2. “purchasing|sales|development|account“ – pipe character stands for the OR statement. In our case, the statement will match all rows that have text equal to any of the purchasing, sales or development. The output when this happens will be TRUE as it can be seen in the below image. I recommend omitting the manager from any search criteria since it can refer to many positions in the company (Stock manager. customer success manager, marketing manager, ….).
Feel free to adjust the criteria to your liking. I’ve added purchase since I’ve noticed many employees having “purchase manager” in their title. Once you are satisfied with results remove all rows where Regex output was FALSE.
To add company name in the end we can use another Regex trick.
Since in most cases, LinkedIn URL includes company name we can extract append it in the separate column. This will give an overview of how many contacts there are for each business and will later be used to send a personalized message.
Here is the formula that you can use to get the company name from URL.
4. Build a LinkedIn network building machine
Now you have collected tens, possibly hundreds, of new highly relevant leads. Instead of having them stored in the spreadsheet, wouldn’t be better to connect with them and build your own professional network?
Automatically sending invitations and connecting to a list of LinkedIn users with a personalized message can help grow your business network tremendously. Imagine sending tens of connection requests each day, all with a personalized messages while you are focusing on your work.
Now that we have refined our list of contacts that we have collected, we can move on to the next stage which includes 1) sending a connection requests on LinkedIn and 2) adding a personalized message to the request.
Adding a personalized message can be the difference between accepting and ignoring your request. I recommend adding a good reason when sending a request. You do not want to be seen as a spammer/bot. You can check some suggestions here.
Both LNH and PB offer this feature. During the trial, we are able to add up to 5 APIs for free, however, once the trial expires the number of APIs available for use reduces to 1. PB excels because it offers custom run-time compared to LNH which needs to be started and stopped manually. However, both can be used to achieve the same task.
4.1 Personalise the connection request
For this task, we will need Network Booster API which can be found here. Moreover, we will need to have a sheet containing URLs to contacts’ profiles that we would like to connect with and send a personalized message to. API will automatically send a connection request to everyone on the sheet. This can be a huge time-save and a great way to increase the size of your network.
You can customize your message by using #firstName#, #fullName#, #company#, #jobTitle#, and #school#. In fact, any column from the input file can be interpolated by writing down its name between # hashtag signs. Make sure that your note is under 300 characters, custom fields included. You need to make your copy succinct.
I’ve stumbled upon your #company# while browsing for best around #city# in #industry# industry.
I’m looking to connect with like-minded people in #city#.
For standard accounts is it recommended to not send more than 80 connection request per day. Phantom Buster set to send a connection request to a maximum of 10 accounts per launch which is then repeated 8 times a day. Try setting sent time to working hours on weekdays as seen below.
Under Settings, I recommend choosing the lazy-worker schedule to avoid raising suspicion from the LinkedIn anti-bot system. According to the configuration below, PB will trigger the automation once per hour between 10 am and 4 pm on workdays. Meaning 70 requests (7 hours*10 requests per run) will be sent in one working day, bringing the weekly tally to 350 connection requests! This setting is ideal since it will copy the behaviour of a normal human worker.
Once you are all set-up, continue with pressing launch and enjoy your watching network building machine at work.
5. Find direct email address, headcount and location
Find direct emails of your LinkedIn connections and decision-makers outside your network. See how you can enrich decision-makers profile with data about company size, number of employees, location and more.
Subscribing for educational newsletter will get you first in line to receive the guide about:
– Send up to 100+ emails that will end up in Primary tab per day with your Gmail