HowAutomate
    Back to Portfolio
    AIPythonPlaywrightn8nOpenAI

    LinkedIn AI Lead Engine: Scrape, Qualify & Auto-Outreach on a Daily Schedule

    Our own lead-generation engine, running daily: a Playwright scraper finds fresh LinkedIn posts where businesses describe automation pain points, an AI classifier scores each author HOT/WARM/SKIP, qualified leads land in a Google Sheets CRM, and personalised outreach goes out automatically — capped, paced, and logged for safety.

    54 → 6
    Daily posts scanned → qualified leads
    3-tier
    AI scoring: HOT / WARM / SKIP
    15/day
    Hard-capped, paced outreach
    100%
    Hands-free daily runs
    LinkedIn AI Lead Engine: Scrape, Qualify & Auto-Outreach on a Daily Schedule

    The Challenge

    Finding automation clients on LinkedIn manually meant scrolling feeds hoping to spot a business owner describing a problem we solve — then researching them, writing a message, and remembering to follow up. Unstructured, unrepeatable, and the first thing dropped in a busy week. Generic mass-outreach tools were the wrong answer: they burn accounts, spam the wrong people, and produce conversations that start with distrust.

    What We Built

    We built the opposite of a spam cannon: a precision engine that starts from intent. A Python + Playwright scraper runs on a daily schedule via n8n, searching LinkedIn posts for buying-signal keywords across the past week. Each post's author and content go to an LLM classifier with a strict rubric: HOT (actively seeking automation help now), WARM (a real business describing a genuine operational pain), or SKIP (fellow agencies, tool vendors, tutorial content — the majority). Qualified leads land in a Google Sheets CRM with the AI's reasoning and a personalised three-line outreach message referencing their specific post. The engine then sends the DM — or a connection request with note where messaging is closed — through a safety layer: a hard daily cap, human-like typing and delays, a permanent contacted-log preventing double outreach, and per-lead status written back to the Sheet.

    How It Works

    The insight behind the engine: the best B2B leads on LinkedIn aren't found by title or industry filters — they're found by what people write. Someone posting 'drowning in manual follow-ups, there has to be a better way' is a warmer lead than any job-title match. So the scraper searches post content for pain-signal keywords, not profiles.

    The AI classifier is where quality is enforced, and its rubric is strict by design. It must distinguish a business owner describing their own pain (WARM) from an automation consultant marketing their services (SKIP) — the same keywords, opposite value. In a typical run, 54 scraped posts produce around 6 genuine leads; the classifier's reason field is logged to the Sheet so every decision is auditable, and the rubric gets tuned from misclassifications.

    Outreach messages are generated per lead, referencing the specific post: a short observation about their problem, one line on how we build exactly that kind of automation, and a soft question. Three lines, no pitch deck, no exclamation marks. Replies read like the start of a conversation because they are one.

    The sending layer treats LinkedIn like the fragile, adversarial environment it is. LinkedIn serves two entirely different profile page structures at random, so the messenger handles both, falls back from DM to connection-request-with-note when messaging is gated, detects Premium upsell modals, types with human cadence, and paces sends 90 seconds apart. A hard daily cap and a permanent contact log make over-messaging structurally impossible.

    Orchestration is n8n end-to-end: schedule trigger, scrape, dedupe against existing Sheet rows, classify, append, send, and write outreach status back per lead — with retry logic on every network hop. The Sheet is the CRM: one row per lead with post URL, classification, reasoning, the message sent, and current status.

    We run this engine for our own pipeline every day at 11 AM — it produced real client conversations in its first week. The same architecture adapts to any B2B service business whose customers describe their problems in public: swap the keywords, retune the rubric, keep the safety rails.

    More AI Case Studies

    Chat with us