Lead generation
Real Estate Lead Scout
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.
01 / THE PROBLEM
Why this matters.
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.
02 / THE DIRECTION
The solution.
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.
My role.
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.
03 / ARCHITECTURE
How the pieces connect.
System flow
- 01Bluesky · YouTube comments · CSV lists
- 02Keyword pre-filter
- 03Claude extracts intent, place, budget, timeline
- 04Scoring rubric in code · hot, warm, cold
- 05Normalize & dedupe · HubSpot upsert
- 06ISA alert with a drafted reply
- 07Weekly lead-volume report
04 / ENGINEERING DECISIONS
Designed with intent.
- 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.
05 / EVALUATION APPROACH
What needs to hold true.
- 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.
Technology direction.
Challenges & tradeoffs
- The first YouTube run scored a couple describing a house they had already sold as hot, and scored “we would love your help” as cold. Both became rules with tests (an “already closed” intent that is always cold, and +10 for asking an agent for help), then were replayed on the live pipeline to confirm.
- Reddit, the obvious source, no longer allows self-serve API keys, so the source layer was built so sources can be swapped without touching the rest of the pipeline.
Results
- Live, searching Bluesky every 3 hours and YouTube comments every 6 hours, alongside CSV uploads.
- The first Bluesky run surfaced 2 real sellers, each synced to HubSpot and sent to the ISA with a drafted reply.
- A weekly lead-volume report by source, tier and ISA handoff, emailed every Monday.
Lessons learned
- Read the first real results line by line. The fixture tests passed; real comments found both scoring mistakes.