Hendy Saputra
Back to projects

Client work

B2B Lead Gen & WhatsApp Outreach

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

Result
Runs every day with zero manual work.
Stack
Node.js · Baileys · OpenClaw · SQLite · Web Scraping · WhatsApp Business

Terminal walkthrough of the fetch → send → WhatsApp delivery pipeline

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.

Highlights

  1. 01Reverse-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.
  2. 02Keyword 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.
  3. 03Live 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 sends spread evenly across the working day.
  4. 04Reply and opt-out tracking that automatically excludes anyone who replies to stop.
  5. 05Auto-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.

Also built for this client: Multi-Platform Video Publishing Studio