#Day4AISChallenge I built and deployed an AI agent that hunts investment properties for me
Every morning at 7am it scans ImmobilienScout24 within a 40km radius of Stuttgart, filters for what actually matters (≤ €600k purchase price, ≥ 4% gross rental yield), scores every listing, and emails me a ranked shortlist — including an AI-written one-liner per property covering renovation needs, roof condition, and hidden costs.
Stack: Trigger.dev (TypeScript, cron) · Firecrawl (scraping) · Supabase (memory, so I only ever see NEW listings) · Resend (email) · Claude (the assessments).
3 things I learned the hard way:
1. Anti-bot blocking is weirdly specific. The scraper got blocked 5 out of 5 times. Turned out pagesize=50 in the URL was the trigger — one non-default parameter. Default page size + writing the radius as a float (40.0) = 200 OK every single time.
2. Never let an LLM read your numbers. Instead of trusting AI extraction, we pull price / size / year / location straight out of the page's own analytics data layer. Far more reliable — LLM extraction was returning things like "0.03 m² living space".
3. Testing on real data caught a bug that would have cost me money. Some listings write the rent as shorthand — KM: 490 €. Our parser missed it and fell back to an estimated market rent that was higher than reality. Result: a 3.1% dud was being presented to me as a "4.7% opportunity". Found it, fixed it, and now the list is shorter — but honest.
Running cost: a few cents per month.
Biggest takeaway: the boring part (parsing, verifying, testing against real listings) is where all the value was. The AI summary was the easy 10%.
0
5 comments
Michael Röder
2
#Day4AISChallenge I built and deployed an AI agent that hunts investment properties for me
AI Automation Society
skool.com/ai-automation-society
Learn to get paid for AI solutions, regardless of your background.
Leaderboard (30-day)
Powered by