CampaignStack
From post engagement to a qualified outreach campaign

From post engagement to a qualified outreach campaign

CampaignStack10 min read

Someone in your ICP just commented on a post about the problem you solve. That is the best sourcing signal LinkedIn gives away for free, and it is also the most abused one. The abuse is not that people use it. It is that they treat a like as a request for a sales message, and the person on the other end can tell.

This is the manual version of the playbook, the one you can run this week with LinkedIn, a spreadsheet, an enrichment source and whatever you send with. The tooling appears at the end, because the useful idea does not depend on it: public engagement tells you who is paying attention to a topic right now, and nothing more.

Step 1: pick the post, not the poster

The wrong way to start is "find an influencer in our space and scrape their audience". An audience is everyone who follows someone, most of whom follow a hundred others. The right unit is one post, on one topic, that the buyer you want would have a reason to react to.

Three tests for a post worth working:

  • The topic is a problem, not a person. "Here is what we learned running 40 cold email domains" attracts people who run cold email. "Excited to announce I have joined Acme" attracts the poster's friends.
  • The engagement is recent. LinkedIn keeps surfacing a post for days after it is published, so a comment on it may be three weeks old. The post's own date is what matters, and it is in the URL: the long number in a post's address encodes its publication time. If you only take one technical trick from this article, take that one. A comment on a post from last month is not recent intent, whatever the feed says.
  • The engagement is from the right side of the table. The next step is where this is decided, but you can tell from the first ten comments whether a post drew buyers or drew vendors. A post whose comment section is other consultants agreeing is a networking event, not a lead source.

Open the post, click through to the reactions and the comments, and you have your raw list. On a public post those are visible to anyone; LinkedIn's own help pages describe reactions and comments as shared with the member's network and surfaced further whenever a connection engages. Nothing here requires access the reader did not choose to give.

Step 2: separate buyers from spectators

Take the raw list into a sheet with five columns: name, headline, engagement type (reaction, comment, repost), what they said if they commented, and a blank column called "role in this conversation".

Now fill the last column by hand, for every row. There are only four values.

  • Buyer. Someone whose job includes the problem the post is about, at a company that could plausibly pay for a solution. The VP Sales who commented "we have this exact issue with our SDRs".
  • Vendor. Someone who sells into that problem. Other agencies, other tools, freelancers. They engage the most and buy the least, and in most comment sections they are half the rows.
  • Employee of the poster. Colleagues who like the boss's post. They are not there for the topic.
  • Spectator. Everyone else: a student, a recruiter, someone from an unrelated function who found the post interesting.

This step is manual because it is the step that decides the campaign's quality, and no keyword filter does it well. "Founder" is a buyer in one comment section and a vendor in the next. Read the headline, read the comment, decide. On a post with 300 engagements this takes an hour and leaves you with 30 to 60 buyers. That ratio is normal. Anyone selling you "300 warm leads from one post" is selling you the vendors and the interns.

Step 3: enrich the few, not the many

Only the buyer rows go to enrichment. Every other row was going to cost a credit and return a person you should not contact.

What enrichment has to add before scoring is possible: current company and its size, current title and seniority, location, and the email or phone only if you intend to use that channel. What it does not have to add: a "personality profile", a "buying intent score" from a vendor, or a paragraph of AI summary. Those are padding on the invoice.

Two checks at this step that save the campaign later:

  • The company is a real fit, not just the person. A VP Sales at a 12-person startup and a VP Sales at a 1,200-person company are different buyers. The engagement told you the person cares about the topic. It told you nothing about whether their company can act on it.
  • The headline matched the profile. Headlines lag. Someone whose headline says "VP Sales at Acme" and whose profile says they left Acme in March is a job-change signal, which is interesting, and not a VP Sales at Acme, which is what you were about to write to.

Step 4: score against an ICP, then respect what you already know

Now you have 30 to 60 enriched buyers. Score each one against the ICP you would use for any other campaign: company size, industry, title, seniority, geography. The engagement is a bonus on top of that score, not a replacement for it. A perfect-fit account that liked the post outranks a poor-fit account that wrote three paragraphs.

Then, before anyone is added to a sequence, run the list against everything you already know. This is the step that gets skipped because it is boring, and it is the step that protects you.

  • Your suppression list. Anyone who unsubscribed, bounced, asked to be deleted, or is on a client or competitor domain. If you do not have that list as one file, the migration worksheet has the layout.
  • Prior contact. Anyone you messaged in the last 90 days is not a new lead because they liked a post. They are an existing thread, and the right move is to continue it, not to open another.
  • Duplicates across your own campaigns. The person who liked this post also liked last week's, and is already in a sequence from that one. Two openers from the same sender about two posts is how you become the vendor everyone screenshots.
  • Current clients. Obvious, and the most common miss, because clients follow the same people you do.

Step 5: write an opener that claims exactly as much as a like proves

This is where the playbook usually breaks. The message says "I saw you are interested in X" or "since you are looking into Y", and the reader knows they are not, because they clicked a thumbs-up on a post while waiting for a coffee.

What a like proves: the person saw a post about a topic and reacted to it. What a comment proves: the person had an opinion about the topic, and you can read it. What neither proves: that they are evaluating solutions, that they have a budget, that they want to hear from you.

So the opener has to work at the level of the evidence.

  • Refer to the event, and only the event. "Your comment on Maria's post about SDR ramp time" is a fact. "Your interest in improving SDR ramp time" is a claim the reader did not make.
  • Say something about the topic that earns a reply. The reason to write is that you have a view on the same problem. One concrete observation, from your own work, that they could disagree with.
  • Ask for the smallest thing. Not a call. A question they can answer in one line, about the thing they engaged with.
  • Send it while the event is still current. A week after the post, "your comment on Tuesday" is fine. A month after, it is proof that you scraped them. If the campaign is not ready inside the window, do not reference the post at all.

Then send in review mode for the first day. Read every opener before it goes. The one that references the wrong post, or calls a vendor a buyer, is the one you catch by hand and never by filter.

The five ways this goes wrong

Every one of these is a real campaign we have seen, and every one is why the manual version has the steps it has.

  1. Old engagement presented as fresh intent. The post was from six weeks ago, still circulating, and every opener said "saw your recent comment". The recipients could see the date. Step 1's date check exists for this.
  2. Vendors mistaken for buyers. A post about outbound tooling drew 200 engagements, of which 120 were other outbound vendors. The campaign pitched an outreach tool to 120 people who sell outreach tools. Step 2 exists for this.
  3. Duplicate leads. Three posts on one topic, one sheet per post, three imports. Forty people were in all three, and got three openers over eight days. Step 4's duplicate check exists for this.
  4. Prior opt-outs. A person who had replied "please remove me" to a campaign in the spring liked a post in the autumn and was imported as a new lead. Step 4's suppression check exists for this, and it is the one with legal weight.
  5. An opener that claimed more than a like proves. "Since you are exploring AI SDR tools" to someone who reacted to a post arguing AI SDRs do not work. Step 5 exists for this, and it is the most common of the five.

Where the tooling comes in

Everything above works with a browser and a spreadsheet, and for one post it is an afternoon. The trouble starts at the third post, when the sheets stop agreeing with each other about who has already been contacted, and at the second week, when the "recent" column is no longer true and nobody re-checked it.

That is the honest case for running this in a system rather than a sheet, and it is narrow. The system does not make the judgment in step 2 for you; a model can pre-sort, but a person still decides who is a buyer. What the system holds is the bookkeeping the sheet loses: the post's real date decoded from its id, so an engagement carries the time it happened and expires when it is stale; the ICP score as a number with the engagement as a bonus on top; the suppression list and prior contact re-checked at the moment of sending, not at import; one record per person across every post they engaged with, so the third post does not produce a third opener; and a review queue in front of the first sends so the wrong opener is caught before it lands.

That is how CampaignStack runs a post watch: pick the post, the engagements land as dated signals against a shared lead record, scoring and exclusions apply before anything is queued, and the opener is drafted from the event with its age in the prompt. But run the manual version first. If you cannot say who in a comment section is a buyer, no tool will say it for you, and if you can, the tool is only there to remember it.

Sources

  1. Reactions and comments are shared with the member's network; a public post reaches 2nd and 3rd-degree homepages when a 1
  2. Reactions and comments are shared with the member's network; a public post reaches 2nd and 3rd-degree homepages when a 1
  3. Members can restrict who may comment on their posts (anyone, connections only, no one)