Use case Leads and enquiries

Open with their own post

The first line of a cold message is the whole message. You have a list of two hundred LinkedIn profiles, and before you write to any of them you open each one and scroll the activity tab to see whether they post at all. Then you hunt for the one post worth mentioning and type a sentence about it. That is a full afternoon, and most of it is scrolling. I built this so the scrolling is done before you sit down.

All 32 builds

Two real profiles, the post that landed best, and the opener built from it
Two real profiles, the post that landed best, and the opener built from it
Two real LinkedIn profiles from one run, both ACTIVE, with the top post each, its reactions and comments, and the template opener written from it.

The question this page answers

How do I know which people on my LinkedIn list are active, what they last wrote about, and how to open a message to them?

How the working version is put together

  1. Paste the profiles

    Profile URLs, one per line, up to two hundred in a run. Set how many posts to read for each, ten by default. Give the run a watch key if you plan to repeat it. Leave the list empty and you get three demo rows built by the same code, one per activity class, which costs nothing.

  2. Read the newest posts

    For every profile I read the newest posts, reposts included, up to the number you set. The reads run on two harvestapi Actors on your own Apify account, one for the posts and one for the profile itself, and are billed there. If you already have their output, paste it in and I enrich it with no new runs.

  3. Sort them into active, lapsed or silent

    ACTIVE means a post in the last fourteen days. LAPSED means the last post was fifteen to sixty days ago. SILENT means sixty days or more, or nothing at all. Alongside the class sit the last post date, posts in the last thirty and ninety days, and the average reactions and comments across what I read.

  4. Find the post that landed best

    The one with the most reactions and comments, their own writing first and a repost only when there is nothing else. You get its link, its date, a two-hundred-character excerpt and a topic guess from a keyword table, from hiring and fundraising through AI and sales to leadership and career.

  5. Write the opener from it

    Without an OpenAI key the line comes from a fixed template that names the topic, says when they posted and quotes the first few words. With your key the model writes it instead and I check the result: at most forty words, a quoted phrase that really is in the post, none of the stock phrases people learn to skip, and no dashes. A line that fails is thrown away and the template goes out in its place. The row says which one you got.

What two real profiles came back with

The first real run read three posts each from Satya Nadella and Bill Gates, with no OpenAI key, so both openers are the template. Both came back ACTIVE. Nadella had posted the same day, two of the three posts his own and one a repost, averaging 2,964 reactions. His top post was about HydraFusion in GitHub Copilot, 3,584 reactions and 178 comments, filed under AI. Gates had posted the day before, all three his own, averaging 3,672 reactions and 419 comments. His top post opened with questions he had received since sharing a memo on AI: 6,444 reactions and 595 comments.

The template opener for Nadella reads: Satya, your AI post this week stuck with me, the line Super excited about HydraFusion in GitHub Copilot in particular, so I wanted to ask how that has played out since. That is safe and it is dull, which is what a template is. It exists so a row without a key still has a line you can edit, and it should be edited.

Why the template is the floor, not the product

A template is one fixed sentence, and it reads wrong on a charged post or a condolence. Someone writing about a layoff or a death does not want to be asked how that has played out since. The model opener with your own OpenAI key is the real product. It reads the post and writes to it, and the check behind it means it can never quote something the person did not write. Read it before you send it, because it is checked for length and for a real quote, not for taste.

The retry that a real run forced

The posts Actor sometimes drops one profile from a batch and reports nothing wrong. During testing it returned zero posts for a profile that had posted that week, without an error. So when a profile comes back with no posts I ask for it once more on its own before calling anyone silent, and the row says whether it was retried.

What it costs to run

One and a half cents per profile that returned data. A profile that could not be found costs nothing. The two harvestapi Actors bill your own Apify account on top at their own per-post and per-profile prices. The OpenAI call, when you use it, goes on your own key. Run the same list under the same watch key next month and each row says NEWLY_ACTIVE, WENT_SILENT or UNCHANGED.

Read this before you spend anything

When I would tell you not to bother

If you want the model openers, bring an OpenAI key. Without one every line is the template, and the template should never go out unedited.

I only read the posts you asked for. Ask for ten and the averages describe those ten, not the person's history.

The topic guess is a keyword table. It is right often enough to sort a list by and wrong often enough that you should read the excerpt before you write.

What lands on your desk

  • One row per profile: name, headline, company and follower count beside an ACTIVE, LAPSED or SILENT class
  • Last post date, posts in the last thirty and ninety days, average reactions and comments, own posts against reposts
  • The top post with its link, date, excerpt and topic
  • One opening line, template or model, with a note when the model's line was rejected and why
  • The change since the last run under the same watch key
  • If you want the ACTIVE rows flowing into a sequence with the opener already in place, that is the work I do

Questions this page answers

What counts as active?
A post or repost in the last fourteen days. Fifteen to sixty days is LAPSED, and sixty or more, or nothing at all, is SILENT.
Do I need an OpenAI key?
Only for the model-written opener. Without one you get a template line that names the topic and quotes the first few words of the post, and it should be edited before it goes anywhere.
Can the opener misquote someone?
The model's line is checked for a quoted phrase that really is in the post, and a line that fails is replaced by the template. The template quotes the post's own opening words.
Have you run it on real profiles?
On Satya Nadella and Bill Gates, three posts each, and both rows are on this page with their top posts and the template openers. Neither is a client of mine and no message was sent.
What does it cost?
One and a half cents per profile that returned data. The two harvestapi Actors that read the posts and the profile bill your own Apify account on top.

Want this built and handed over working?

One line is enough to start. You get an honest answer on fit, and a number rather than a discovery call.

Start a brief