Engagement Capture
Post engaged. Engager profiled. Give-first sequence written.
The Problem
LinkedIn engagement is the strongest warm signal in B2B — someone who liked or commented on a relevant post is already thinking about the topic. But turning engagement into conversations requires work that doesn't scale: manually checking who engaged, researching their background, reading their recent activity, then writing personalized outreach that references all of it. By the time you've done that for five people, the engagement is stale. This system captures post engagers in real time, builds deep activity profiles, and generates 3-touch outreach sequences using a give-first methodology — all before the engagement goes cold.
Stack
How It Works
The execution path
Monitors tracked LinkedIn posts in Airtable. For each active post, fires an async Pronto posts_engagers request with a callback URL pointing to WF2. Pronto extracts everyone who liked, commented, or reacted — then sends them back via webhook.
- ·Read config from Airtable (ICP titles, company sizes, webhook base URL)
- ·Pull all posts with Status = "active" from Tracked Posts table
- ·POST to Pronto posts_engagers (async) with callback URL → WF2 webhook
- ·Update post status to "extracting" while Pronto processes
- ·Pronto callback delivers full engager profiles (name, title, company, LinkedIn activity) to WF2
Receives engager callback from Pronto. Filters by ICP title match, then loops through each engager one at a time — enriching contacts, enriching accounts, and pulling three layers of LinkedIn activity intelligence. Builds a comprehensive profile and upserts to Airtable.
- ·Receive Pronto callback via production webhook (body.leads format)
- ·Parse engagers and filter by ICP title keywords from config
- ·Loop one engager at a time through the enrichment chain
- ·Enrich contact via Pronto single_enrich (verified email)
- ·Enrich account via Pronto accounts/single_enrich (company intel)
- ·Pull 3 activity layers: recent posts, comments, and reaction patterns
- ·Build Profile — merge all sources, extract interest topics, assemble full engager record
- ·Upsert to Airtable Engagers table (dedup by LinkedIn URL)
- ·Update post status → "extracted" with engager count
Reads all enriched engagers from Airtable, feeds each to a Claude AI Agent with a structured system prompt encoding the give-first methodology, persona routing rules, and an interchangeability test. Outputs 3-touch LinkedIn DM sequences and writes them back to Airtable.
- ·Read config (outreach style, knowledge base) and all engagers with Status = "enriched"
- ·Claude AI Agent generates per engager: signal tier, angle, and 3-touch sequence
- ·Touch 1: Give-first — reference engagement, share insight about their work. No pitch, no ask
- ·Touch 2: New value — resource or finding tied to their interest profile. Soft ask only
- ·Touch 3: Soft CTA — suggest connecting, reference shared interests, easy out
- ·Structured Output Parser enforces JSON schema (signal_tier, angle, touch_1-3, confidence_score)
- ·Build Update formats all touches and writes back to Airtable — mark Outreach Ready
Key Design Decisions
By The Numbers