Learn / Lead lists
Intent signals: finding buyers who need you now
One client booked 24 calls in 30 days without touching Apollo or ZoomInfo. Same offer, same infrastructure, same plain email as the campaign before it. The only thing that changed was the question we asked before building the list: not who fits the profile, but who is already spending money on this problem. That is intent based lead generation, and it is the gap between a list of people who could buy and a list of people who are mid purchase somewhere else.
Say you run a content agency. You can send 10,000 cold emails to business owners in a niche, or you can send 10,000 to business owners who already have 2,000 subscribers and are visibly putting money into video. Same volume, same copy, same week. One list is a coin flip. The other is a room full of people who already agree with the premise of your pitch.
This page is the written version of the training below: the three signals we actually run, where each one comes from, the copy angle each one earns, and the point where the whole approach starves.
What counts as a signal
Firmographics describe a company. Industry, headcount, revenue band, location. Useful, and also the exact filter set every competitor you have is running this morning.
A signal is evidence that money, attention, or headcount is already moving toward the problem you solve. Three carry most of the weight, and which one you use is decided by what you sell, not by preference.
| Signal | Best if you sell | Where to source it | The angle it earns |
|---|---|---|---|
| Social following | Content, video, short form, ghostwriting, podcast, PR | Clay find-people search, follower and connection minimums; Apify scrapers for TikTok, Instagram, YouTube | They already pay to grow their presence. Offer to grow it somewhere else. |
| Live ad spend | Cold email, cold calling, CRM, sales tools, funnels, creative | Ad Intel on the company domain plus the Facebook page URL, run inside Clay | They are already buying customer acquisition. Offer to add a channel, not to start one. |
| Open job listings | Almost anything: content, sales, web dev, bookkeeping, HR, consulting | Clay open-jobs search by title, or a web research prompt run across a list you already own | They just told the market they have budget for this work. Offer the alternative to the hire. |
There are others, and the logic never changes. Someone sitting on your pricing page is the same idea with a shorter fuse, which is what visitor identification covers.
Signal 1: a following they already pay to protect
If someone is big on one platform, they care about their online presence and have already decided it is worth spending on. Offer to do the same thing somewhere else and you are pushing on a door that is open. This is the play for YouTube agencies, short form, LinkedIn ghostwriting, podcast production, PR, anything shaped like growth.
LinkedIn is the easy one, and you can do it natively inside Clay. Build the find-people search the way you normally would with company attributes, job title, and location, then open the profile section and add a minimum number of connections and a minimum number of followers. Set the floor at 5,000 if you want people who take the platform seriously.
Be conservative with that baseline, because the filter fluctuates: profiles with 3,000 followers still come through on a 5,000 minimum. Push it to 10,000 and you are almost guaranteed a clean list.
For every other platform, Apify has a scraper: TikTok, Instagram, YouTube. Pipe the output into Clay and the same principles apply, with a few more steps than LinkedIn needs. If the data you want lives somewhere with no scraper at all, that is the job for Clay's AI agent on a raw website.
The cross-platform version is the interesting one. Someone serious about LinkedIn is a good candidate for a YouTube offer. One platform tells you what they believe about content, and you pitch the next one.
Signal 2: money already moving through ads
Selling cold email, cold calling, CRM work, sales tooling, or funnels? Ad spend is your signal. A company running thousands of dollars a month through Meta or Google is in growth mode and is actively buying customer acquisition. You are not asking them to start caring about pipeline. You are asking to sit next to something that already works.
Ad Intel is the tool. There is a free trial, and the paid plan runs $44 a month for 5,000 credits. You can run it inside the platform, or connect the API key to Clay and run it across a list. At any real list size, do it in Clay: it is cheaper than the in-app credit route.
Setup is the API key, the company domain, and, if you have it, the Facebook page URL. Add the page URL. The hit rate is much higher with both, and the domain alone still returns a decent share. Google Ads is the identical setup, same tool, same steps.
What comes back is active status, number of ads, unique landing page count, ad body, headline, and CTA. Two fields decide the campaign: whether the ads are active, and how many are running. Someone running a pile of ads is pushing a pile of spend. The unique landing page count is a funnel offer hiding in a data column. You can check any single advertiser by hand in Meta's public ad library, but hand-checking does not scale to a list.
Noticed you're scaling Meta pretty hard. If ROAS is holding, happy to run your first outbound campaign free to show you how it complements what's already working. Worth sharing more?
Subject line: "meta ad problem". It implies the topic and creates enough curiosity about a possible issue to earn the read. Notice the email calls out that they are scaling and nothing more. If you sold ad creative or editing, you would go after a specific ad and suggest fixes. Selling outbound, the only relevant fact is that spend is already flowing.
Signal 3: the open job listing
Being upfront: this is a low volume play and it is not my default for most clients. As part of a broader targeting strategy it earns its place, and it works whether you sell content, sales, web development, bookkeeping, HR, or consulting. The signal is simply whether a company is hiring for your service or something next to it.
A company posts a job for a YouTube channel manager and you run a YouTube agency. You are not cold. You are the faster alternative to a hire that has to be found, onboarded, and ramped. The volume of relevant job posts will always be smaller than the other two signals, and the math still works: find 500 to 1,000 companies hiring for your exact service, convert 5%, and that is 25 to 50 qualified calls from people who need the work done right now.
There are two ways to build it, and they are not equal:
- From the hiring trigger. Clay does open jobs natively. Search the title. Selling cold email, that is open SDR and BDR roles, and those two titles alone returned over 8,000 results before any location filter. Stack every variant you can think of, because nobody names these roles the same way. Ask a model for 50 phrasings of the same job and paste them all in.
- From a list you already own. Run a web research prompt across your existing rows: company name, website, company LinkedIn, is this company currently hiring for these roles. Lower hit rate by design. On one list of 2,350 prospects, only 281 came back hiring for the roles we cared about. Those 281 were the best leads in the file.
For copy, put the role in the subject line when your prospect is the person doing the hiring. They may assume you are an applicant, and they will give the role name weight because it is already on their mind. If they are not the hiring manager, drop the role entirely, because it means nothing to them.
If we had a way to fill your open {{role}} position with a system that beats an in-house hire, and the first 7 days of content are free so you can test us, would that be worth sharing more?
The signal picks the list. The offer still does the work.
The one copy decision
Every signal gives you the same fork: call out what you saw, or go straight to the offer. Option one names the platform, the ad account, or the open role, then moves into the pitch. Option two skips the observation entirely and treats the signal as pure list precision, so the offer lands on someone it was always going to fit.
Calling it out does not automatically make the email better. Sometimes it adds a little. What decides the reply is whether the offer is worth answering, which is the whole argument behind the front-end offers we run. Add a PS with one real proof point from your own work, or drop it and let the offer stand alone. Social proof can make a message read saltier, so we often hold it for the follow-up.
Stack the signals instead of picking one
You do not have to choose. On one campaign we pulled Meta ads, Google ads, hiring status, and TikTok shop status onto the same list, then wrote if-then rules over the output. Has ad spend but no hiring signal, campaign A. Hiring but no ads, campaign B. Both, campaign C. The copy is different in each one because the reason for the email is different in each one.
The reason to run this through an AI agent rather than a native integration is output control. We asked for the specific role they were hiring for and nothing else, so a return of "not hiring" was unambiguous and the routing logic stayed clean.
Where intent targeting starves
Here is the honest caveat, and it is why this is not the answer for everyone. Intent filters cut an already narrow market. If your total market is thin, or your signals are so specific that only a few hundred companies clear them, you will build a beautiful list and run dry. That is not a copy problem. There is nobody left to send to.
So size the reachable market before you build any of this. Below roughly 100,000 reachable decision makers there is not enough volume to find the offer that works, and every filter you add cuts from that number, not from an infinite pool. The method for checking is in sizing your market before you send anything. The hiring signal starves first, every time, which is exactly why it belongs inside a broader strategy rather than under it.
tl;dr: target on what someone is already spending money on, not on what industry they sit in. Followers, live ads, open roles. The signal picks the list, the offer earns the reply, and none of it survives a market that is too small.
FAQ
What is intent based lead generation?
Building your list from evidence that a company is already spending money, attention, or headcount on the problem you solve, instead of from firmographics like industry and headcount. A 5,000-follower LinkedIn profile, a live Meta ad account, and an open job listing are all signals. Firmographics say a company could buy. Signals say they are already buying, just not from you.
What are the best intent signals for cold email?
Three carry most of the weight. Social following works for content, video, and growth offers. Live ad spend on Meta or Google works for sales, lead gen, funnel, and creative offers. Open job listings work for almost any service, because a posted role is a company telling the market it has budget for exactly the work you do.
How many LinkedIn followers should a prospect have to be worth emailing?
Set the floor at 5,000 and go to 10,000 if you want certainty. The follower filter fluctuates: profiles with 3,000 followers still slip through a 5,000 minimum, so be conservative with the baseline you pick. At 10,000 you are almost guaranteed a list of people who take the platform seriously and already invest in growing it.
Do you have to mention the intent signal in the email?
No. You get two directions: call out what you saw, or go straight to the offer and let the signal work upstream as list precision. Naming the TikTok or the ad account sometimes adds a little, but it does not carry a weak offer. The signal decides who receives the email. The offer decides whether they reply.
How do you find companies that are actively running ads?
Use an ad data tool such as Ad Intel, either directly or through its API inside Clay. Map the company domain, and map the Facebook page URL too if you have it, because the hit rate is much higher with both. The two fields that matter are whether ads are active and how many are running.
When does intent based targeting stop working?
When the market is too small. Intent filters cut an already narrow list, so if your total market is thin or your signals are very specific, you build a beautiful list of a few hundred companies and then run dry. Size the reachable market before you build anything. The hiring signal starves first, since relevant job posts are always low volume.
If you'd rather have the whole thing built and run for you (signals, lists, copy, infrastructure, and a setter on the replies), that's what we do: 3,000+ sales calls booked for clients in the past year. Or keep learning free: every training, grouped by topic, sits on the trainings hub, and the full video for this one is on YouTube.
PS - the signal does its job before the email exists. If the copy has to prove you did research, the list was never tight enough.