LangGraph Realtor Agent
The Problem
Finding properties that meet complex criteria requires manually reviewing hundreds of listings across multiple locations. Traditional real estate platforms offer basic filtering by price and bedrooms, but they cannot understand nuanced requirements like "finished basement with no pool" or evaluate whether a property is truly move-in ready. Buyers must manually check listings multiple times daily to catch new properties, leading to hours of repetitive work and the risk of missing qualified homes.
The technical challenge was building an autonomous system that could search multiple locations, intelligently validate complex criteria using LLM reasoning (not just keyword matching), stay within API rate limits, prevent duplicate notifications, and provide actionable feedback even when no properties match perfectly.
The Solution
A multi-agent system built with LangGraph that autonomously searches for homes 8 times daily. The Scraper Agent queries the Realtor API across 9 suburbs, retrieving property listings within specified parameters. The Reviewer Agent uses GPT-4 to analyze detailed property information against hard requirements (finished basement, fenced yard, no pool, post-1980 construction, move-in ready condition, $200k-$400k range). The Summarizer Agent creates property descriptions and sends Telegram notifications only for homes that pass all criteria.
When no properties match, the system calculates smart scores for rejected properties to identify the "closest match" and explains which criteria were missed. SQLite database tracking prevents duplicate notifications across runs. The system uses conservative API limits (15 property detail fetches per run) to stay within free tier boundaries while maintaining effective coverage.
Architecture
The system uses LangGraph to coordinate three specialized agents in sequence. Properties flow through the state graph: scraper retrieves listings, reviewer validates each property against criteria, and summarizer sends notifications for matches. APScheduler manages execution timing (8x daily: 9 AM, 11 AM, 1 PM, 3 PM, 5 PM, 7 PM, 9 PM, 11 PM) with SQLite-backed persistence. The entire system runs on AWS EC2 via systemd service management.
Key Implementation Decisions
- •LangGraph for orchestration: Built-in state management and conditional routing eliminated custom workflow code
 - •Three-agent design over monolithic: Separation of concerns (search/validate/notify) made testing and debugging straightforward
 - •GPT-4 for validation: LLM reasoning handles nuanced criteria like "move-in ready" better than rule-based logic
 - •Smart scoring for rejections: Properties scored based on rejection severity to surface near-misses
 - •Conservative API usage: 15 detail fetches per run balances coverage with free tier limits
 - •SQLite deduplication: Tracks seen/reviewed/notified properties across runs to prevent spam
 - •Separate Telegram bot: Isolated notification channel independent of other automation systems
 
The Results
Quantifiable Outcomes
- ✓Autonomous 24/7 operation on AWS EC2 with 8 daily searches across 9 suburbs
 - ✓Zero duplicate notifications via SQLite property tracking across runs
 - ✓15 API calls per run staying within Realtor API free tier (10,000/month)
 - ✓Smart rejection scoring surfaces closest matches when nothing passes all criteria
 - ✓100% criteria validation using GPT-4 reasoning for nuanced requirements
 - ✓Sub-30-second workflow execution for complete scrape/review/notify pipeline
 
Lessons Learned
- →Agent specialization beats generalization: Three focused agents outperformed attempts at a single complex agent handling all tasks
 - →LLM validation handles edge cases: GPT-4 reasoning for "move-in ready" caught properties rule-based logic would miss
 - →Smart scoring reduces notification fatigue: Showing closest match with rejection reasons provides value even when nothing passes
 - →Conservative API limits prevent runaway costs: 15 detail fetches per run provided effective coverage without exceeding free tier
 - →LangSmith tracing simplified debugging: Built-in observability made troubleshooting multi-agent workflows straightforward
 
Future Enhancements
- ⟩Expand to 20+ suburbs with configurable search regions
 - ⟩Add price drop monitoring with historical tracking
 - ⟩Implement market insights comparing property value to neighborhood averages
 - ⟩Build web dashboard for reviewing all seen/rejected properties with filtering
 - ⟩Add ML-based preference learning to improve scoring accuracy over time