Hendy Saputra
Hire Me
Back to work

B2B Lead Gen & WhatsApp Outreach

Client Work

Terminal walkthrough of the fetch → send → WhatsApp delivery pipeline

Finds B2B leads on a supplier directory and reaches out over WhatsApp automatically, on a daily schedule, with zero manual work.

Overview

Built for an industrial equipment supplier who was finding and messaging potential customers by hand, one directory listing at a time. I built a five-stage pipeline: fetch leads from a supplier directory by rotating a keyword pool built around what a buyer searches for, not the client's own product category, a mistake I made and fixed early, extract and dedupe WhatsApp numbers, then send outreach on a live-computed schedule spread naturally across the working day. It runs on OpenClaw's cron as plain deterministic Node.js jobs, no AI in the hot path, so the pipeline can't be taken down by an AI session running out. After a real account restriction in production, I redesigned sending around a rotating pool of WhatsApp accounts with individual trust warm-up periods, to reduce that platform risk going forward.

Highlights

  • Reverse-engineered the directory site's login and WhatsApp-number reveal: found a decoupled JSON API behind a Cloudflare-blocked login form, and found numbers sitting in the raw page HTML as a base64 attribute, no click or extra API round-trip needed.
  • Keyword pool built around what a buyer searches for (downstream industries and use-cases), not the client's own product category, the difference between finding customers and finding competitors.
  • Live probability-based send pacing recomputed on every cron firing from the remaining daily quota and time left in the working day, instead of a fixed interval, so message timing can't be fingerprinted as a repeatable pattern.
  • Rotating pool of WhatsApp accounts (Baileys) with a 14-day trust warm-up per account, added after a real restriction incident in production, plus reply and opt-out tracking that auto-excludes anyone who replies to stop.
  • Auto-migrating SQLite schema and a daily PDF report (leads found, full send schedule, stale-keyword warnings, recent replies) delivered over WhatsApp to the client, with error alerts on any pipeline failure.

Built with

Node.jsBaileysOpenClawSQLiteWeb ScrapingWhatsApp Business