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.

Funkel AI buyer signal router showing how different signals require different outreach routes.

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 target 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 buyer profile 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 finds 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 buyer profile 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 looks for people comparing or complaining about a competitor. 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 find 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 Funkel skips

Funkel does not scrape pricing-page visitors. That data belongs in analytics, not LinkedIn outreach, and matching it back to a person without consent is not the product we want to build.

Funkel also avoids permanent “always-on” sequences against old signals. A job change is fresh for two weeks. A competitor-pain post is fresh for about a week. After that, Funkel waits for a new signal before contacting the lead. The same pacing rules also help with keeping your LinkedIn account safe.

What usually works

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