# Weekly LinkedIn commenter harvest into HubSpot with Airtop

> Every Monday at 6am, a cloud browser pulls new LinkedIn post commenters, scores them against your ICP, adds fresh leads to HubSpot, and Slacks the top picks.

- Workflow type: agent
- Services: Airtop, HubSpot, Slack
- Categories: Sales
- Published: 2026-07-17

## What it does

- Every Monday at 6am, a cloud browser opens the recent posts of a curated list of LinkedIn thought leaders you track and pulls every engaged commenter.
- Scores each commenter against your ICP criteria (title, industry, company signals) so triage time goes to the right names.
- Adds qualifying commenters into HubSpot as new lead-stage contacts tagged with source "LinkedIn engagement", skipping anyone already in your CRM.
- Posts a Slack digest to your sales channel with the top scored commenters ready for outreach.

## What you'll need

- An Airtop account for the cloud browser and saved LinkedIn login
- A LinkedIn account signed in through the Airtop browser once
- A HubSpot account with permission to create and search contacts
- A Slack workspace and the channel you want the digest to land in
- A short list of LinkedIn thought-leader profiles or search terms to watch

## Prompt

Every Monday at 6am, use Airtop to harvest engaged LinkedIn post commenters into my HubSpot lead pipeline and Slack a triage digest of the top scored names to my sales channel.

Trigger: cron, every Monday at 6:00am in my local time zone.

Editable inputs I should be able to configure on the workflow: (1) targetProfiles, a list of LinkedIn thought-leader profile URLs and/or search keywords to watch; (2) icpCriteria, a plain-text description of my ideal customer profile covering target job titles, industries, seniority, and company signals; (3) linkedinProfileName, the saved Airtop profile that stays logged into LinkedIn across runs (default "linkedin-main"); (4) slackChannel, the destination channel for the digest (default #sales); (5) sourceTag, the value to write into HubSpot's contact source field (default "LinkedIn engagement"); (6) postsPerLeader, cap on how many recent posts to harvest per person per run (default 3); (7) minScore, the ICP score threshold below which commenters are dropped (default 50).

Step 1: Create an Airtop session using Create Session with configuration.profileName set to linkedinProfileName so LinkedIn stays logged in from the previous run. Do not create a fresh profile each time. If the profile ever needs refreshing after this session, use Save Profile on Termination to persist the updated cookies under the same name.

Step 2: For each entry in targetProfiles, open a window and use Airtop Load URL to navigate to that person's LinkedIn recent activity feed (or run their search on LinkedIn if the entry is a keyword). Then use Airtop Query Page to identify the postsPerLeader most recent posts worth harvesting, skipping pinned, promoted, or clearly off-topic content. Have Query Page return each post's canonical URL in structured JSON so the next step can iterate.

Step 3: For every post URL, Load URL to the post detail page, then run Airtop Paginated Extraction across the comment thread to pull every commenter as { name, headline, company, profileUrl, commentSnippet }. Paginated Extraction must follow "load more comments" pagination or infinite scroll until the thread is exhausted. Keep a reference back to the source post URL and the thought leader whose feed it came from so the digest can cite it later.

Step 4: Deduplicate against HubSpot. For each extracted commenter, call HubSpot Search Contacts to check whether they already exist, matching first by LinkedIn profile URL (if we store it as a contact property), then by name+company as a fallback. Anyone already in HubSpot is dropped from the batch immediately so we never re-create existing contacts.

Step 5: Score every remaining new commenter against icpCriteria. Produce a numeric score from 0 to 100 plus a one-line rationale citing specifically what matched or didn't (title, industry, seniority, company signal). Drop anyone with a score below minScore.

Step 6: For the qualifying commenters, call HubSpot Batch Upsert Contacts (up to 100 per batch) to create them as new lead-stage contacts. Populate firstname, lastname, jobtitle, company, and a LinkedIn URL property. Set hs_lead_status to a lead stage value and write the sourceTag into the contact source field. Include the ICP score and rationale as contact properties if the account has properties for them, otherwise stash them in a notes-style field.

Step 7: Compose the Slack digest. Rank the newly added contacts by ICP score, take the top 10 to 15, and format a message that includes for each: name, headline, company, LinkedIn profile URL, score, one-line rationale, and a link back to the LinkedIn post they engaged with. Also include a summary header line with counts (posts crawled, commenters extracted, duplicates skipped, new contacts added). Use Slack Send a Message to post it to slackChannel.

Guardrails and edge cases: (a) never re-create contacts that already exist in HubSpot; always Search Contacts before Batch Upsert. (b) If LinkedIn returns a login wall or challenge, do not silently fail; post a Slack note saying the linkedinProfileName profile needs to be re-authenticated and stop the run. (c) Cap total posts crawled per run so a viral leader doesn't blow up the batch. (d) Use Airtop's costThresholdCredits and timeThresholdSeconds soft caps on Query Page and Paginated Extraction to protect against runaway sessions. (e) At the end, terminate the Airtop session so credits stop billing.

## How to customize

- Change the schedule (run daily, twice a week, or Friday afternoons instead of Monday morning).
- Swap the tracked list of LinkedIn profiles or search keywords whenever your priorities shift.
- Tune the ICP scoring rubric (job titles, seniority, industry, company size) to match your target segment.

## FAQ

### Do I need to log into LinkedIn every run?

No. Airtop uses a saved browser profile, so once you sign in the first time your LinkedIn session persists across runs and the workflow can pick up right where it left off.

### Will this create duplicate contacts in HubSpot?

No. Every commenter is checked against your existing HubSpot contacts before anything is written, so people already in your CRM are skipped.

### Can I use this with Salesforce or another CRM instead of HubSpot?

This template writes to HubSpot, but you can swap the CRM step for Salesforce, Pipedrive, or Attio. The browser harvest and Slack digest pieces stay the same.

### Which channel does the Slack digest go to?

Whatever channel you point it at. The default is #sales, but you can send the digest to any public or private channel your Slack account has access to.

### What does the ICP score actually consider?

It compares each commenter's headline, current company, and role against the criteria you write, such as target job titles, industries, and seniority levels.

Use this prompt in General Input: https://www.generalinput.com/prompts/weekly-linkedin-commenter-harvest-into-hubspot-with-airtop