Benjamin Nwandu.Let’s talk
Back to the project

Walkthrough / Lead generation

Real Estate Lead Scout: the thinking.

A lead engine that finds US home buyers and sellers in public posts, qualifies them with AI and a scoring rubric in code, removes duplicates, syncs the good ones to HubSpot, and hands hot leads to an ISA with a drafted first message.

The starting point.

What made this worth building.

Every day people say in public that they are about to buy or sell a home, in threads and comment sections nobody on a sales team is watching. Bought lists and open-house sign-ins sit in spreadsheets, unworked and full of duplicates. By the time anyone notices a post, the person has usually picked an agent.

The direction I chose.

The approach taken.

An n8n pipeline that runs every few hours. It searches Bluesky and the comments on recent home-buying YouTube videos, and takes CSV uploads such as open-house sign-ins. A free keyword filter drops chatter, then Claude extracts the facts: intent (buying, selling, just asking, or already closed), location, budget, timeline, financing and whether they already have an agent. A tested scoring function in code sets the tier. Contacts are normalized and deduplicated, hot and warm leads are upserted into HubSpot, and each one reaches the ISA on Telegram with a summary, the link, and a drafted first reply that a person reviews before posting. A weekly email reports lead volume by source, tier and ISA handoff.

How the pieces connect.

Each stage exists because the one before it cannot be trusted on its own.

  1. 01Bluesky · YouTube comments · CSV lists
  2. 02Keyword pre-filter
  3. 03Claude extracts intent, place, budget, timeline
  4. 04Scoring rubric in code · hot, warm, cold
  5. 05Normalize & dedupe · HubSpot upsert
  6. 06ISA alert with a drafted reply
  7. 07Weekly lead-volume report

The decisions behind it.

The constraints I set deliberately, and would defend.

  • The AI only extracts facts. A tested function decides the tier, so the same post always gets the same score, and every score stores its reasons.
  • Nothing is posted or sent automatically. A person reads the draft and posts it, because communities ban automated promotion and a banned account ends the channel.
  • One person, one record: match on email, then phone, then profile, so duplicates are caught across sources and across runs.
  • Only hot and warm leads reach HubSpot, to protect the free plan’s 1,000-contact limit. Cold posts stay in the lead store for dedupe and reporting.
  • Run a free keyword filter before any AI call, so screening hundreds of posts stays cheap.
  • Use official APIs, not scrapers. When Reddit’s API turned out to need manual approval, Bluesky and YouTube were added the same day instead of working around it.

What has to hold true.

How I would know it works — and how I would know it does not.

  • Unit tests for the scoring rubric (12 cases, including the 8 Oriki rubric cases, unchanged) and for name, email and phone normalization.
  • Fixture runs: hot, warm and cold leads reach the right tier; a duplicate in the same batch is dropped; re-sending the batch adds nothing; a CSV row matches an earlier lead by email despite different capitalization.
  • HubSpot: a test lead became a contact with its score, tier, source and lead status filled in.
  • First live runs: Bluesky, 12 searches to 27 posts past the filter to 2 real sellers; YouTube, 40 videos to 61 comments past the filter.
  • Not yet verified: Reddit as a source (API access pending), and how many alerts turn into conversations, which needs weeks of real ISA use.

Where this stands today.

Stated plainly, with nothing implied.

This project is complete.

Designed and built the pipeline with Claude Code: the sources, the extraction schema, the scoring rubric and its tests, contact normalization and dedupe, the HubSpot sync, the ISA handoff and the weekly report. It reads public posts only, and no lead is ever contacted automatically. No real person’s name or post appears on this page.

n8n · implementedClaude · implementedHubSpot API · implementedYouTube Data API · implementedBluesky API · implementedTelegram · implementedGmail · implemented

Let’s build something useful

Good conversations.
Better systems.

Have a conversational AI challenge, an automation idea, or a role in mind?