A field guide to LinkedIn intent signals

The LinkedIn signal sources Funkel watches for, what each one actually predicts, and which combinations are worth testing first.

Most outbound tools sell “intent” like it’s one thing. It is not. Buyers leave different kinds of signal on LinkedIn, and those signals 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 current working list. Funkel runs configurable signal sources 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 looks 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 on this signal hold up well 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). When the invite goes out, the opener should cite the engagement that triggered it; we wrote a short guide on connection notes that get accepted if that part is what is hurting your numbers.

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.

This signal is useful because the buyer has already started comparing options. 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 pacing rules that enforce this are the same ones we use for keeping your LinkedIn account safe.

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. The signal-mix playbook spells out four worked recipes by category (dev tools, vertical SaaS, agency, marketplaces) so you do not have to compose the mix from scratch.

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. Once the signals are firing, the next question is whether the opener should be AI-drafted or hand-written; we wrote up when AI-personalized beats a template, and when it does not.

Read next