A field guide to LinkedIn intent signals

The 13 signal strategies Funkel watches for, what each one actually predicts, and which combinations produce the highest reply rates.

Most outbound tools sell “intent” like it’s one thing. It is not. There are at least a dozen kinds of signal a buyer leaves on LinkedIn, and they vary wildly in what they actually predict. The job change is loud and public. The competitor-pain post is quiet and almost private. Both can land you a meeting. Most of the time, only one is the right shot.

This is the working list. We run thirteen distinct signal strategies in production today. Some are simple search filters. Some collect engagement on specific posts. A few are uglier than they read.

The role-change family

recent_job_changes and recently_changed_jobs (same implementation, two names that survive in customer configs) look for profiles whose role matches your ICP titles and started in the last few weeks. The unspoken truth: LinkedIn does not give us a clean “changed jobs” event. We use the people search with title filters and reason about freshness from profile data.

Reply rates here are reliably high (often 25%+ for tight ICPs) because the buyer is in a new context and is re-evaluating their stack. The catch: every other outbound tool is also pinging them. By month three in their new role, the signal goes cold.

The keyword family

keyword_tracking matches profile content against a comma-separated keyword list. Useful when your ICP is defined more by what people care about than what their title is. “observability” and “SRE” pull a different set of buyers than “Director of Platform Engineering” alone.

top_active_profiles finds authors of public posts that contain your target keywords. This is closer to a community-sourcing signal than a buying signal. Treat it as a feeder for slower nurture, not for a same-week meeting.

The funding family

recently_raised_funds searches for posts about fundraising, then surfaces the people congratulating them or the founders themselves. The fallback query, if you give it no specifics, is “fundraising OR series OR raised OR funding.”

Reply rates are fine. Conversion is the question. Funded teams are spending on tools but they are also fielding a flood of pitches that same week. Lead with something specific to their stack, not the funding round.

The engagement family

These are the signals we like most. company_linkedin_url and company_followers collect the people who liked or commented on your own company’s posts. They already know who you are. The connection request lands warm.

competitor_urls does the same, but on a competitor’s posts. Anyone engaging with a competitor’s content has, by definition, the budget and the problem. Meanwhile, influencer_profiles watches engagement on category influencers; useful when your ICP is shaped by thought-leader gravity (devtools, AI, design).

The competitor-pain signal

competitor_pain is the one we are quietly proudest of. For each competitor you configure, the agent runs five queries: alternative, switching, migrating from, frustrated, expensive. The authors of those posts are people actively complaining about your competitor in public.

Reply rates here are not the highest in absolute terms, but the conversion to demo is the best of any signal we track. The buyer has already decided to leave; you are offering an alternative they were going to look up anyway.

The profile-view signals

your_profile_url and visited_profile both surface people who looked at your profile. Lower volume, very high intent. The message you write here has no excuse to be generic; they already showed up at your door.

What we deliberately don’t do

We do not scrape pricing-page visitors. That data lives in your analytics, not in LinkedIn, and stitching it back to a person without their consent is a different conversation than the one Funkel is built for.

We also do not run permanent “always-on” sequences against signals that have gone cold. The job change is hot for two weeks. The competitor-pain post is hot for a week. After that the signal expires and the lead has to surface again on something fresher.

The honest take

Most teams over-index on recent_job_changes because it is easy to understand and it scales. We see better results from running two or three signals at lower volume: usually competitor_pain, an engagement signal, and one role-change signal as a baseline. Three concentrated signals beat ten diffuse ones.

If you are setting up your first agent, that is the mix to copy. Add or remove from there based on what is actually producing replies in your inbox.

Read next