The Problem
Dane invests in single-family and small multifamily properties across Milwaukee, Waukesha, and Racine. With hundreds of new Zillow listings hitting every week, manually running cash-on-cash calculations on each one was consuming entire afternoons. Deals that penciled out sat unreviewed because there was no bandwidth to evaluate them in time. In real estate, being the third person to call a motivated seller is rarely a winning position.
Results
- 300+ properties screened weekly: Up from roughly 10 analyzed manually, a 30x increase in coverage with zero additional effort
- 20 hours/month reclaimed: Time previously spent pulling comps, estimating rents, and running calculations by hand
- Up to $1,356/month in time value recovered: Based on $75/hour opportunity cost applied to reclaimed hours
- $144/month total system cost: Apify at $30, RentCast at $79, and API overhead at $35, a fraction of what the time was worth
Before vs After
Before: Dane spent 20+ hours monthly scrolling Zillow, manually pulling comps, estimating rents, and calculating returns on individual properties. Coverage was limited to what one person could physically review in a day.
After: A daily n8n workflow screens every new listing in three target markets, runs dual-scenario ROI calculations against real RentCast rent data, deduplicates against previously alerted properties, and delivers a formatted Gmail report of qualified deals each morning before he opens his laptop.
Client Goal
Dane needed a way to evaluate every qualifying Milwaukee-area listing against a 12% cash-on-cash threshold, in both all-cash and financed scenarios, without spending his days buried in spreadsheets. The goal was deal flow coverage at scale, not optimization of a manual process.
Challenges
- Volume vs. capacity: Hundreds of new listings weekly across three markets made exhaustive manual review impossible without missing deals or burning time that should go toward acquisitions
- Rent estimation accuracy: Estimating market rent by feel introduces error that compounds through the ROI calculation. A $200/month rent miss changes the entire return profile of a property
- Foreclosure noise: Bank-owned properties look attractive on list price alone but carry rehab complexity and legal overhead that destroys the projected return; filtering them before the calculation stage was critical
- Repeat alert fatigue: Without deduplication, a property sitting on market for three weeks would generate 21 duplicate alerts, creating noise that erodes trust in the system entirely
Solution Overview
We built a daily n8n workflow that pulls fresh Zillow listings from three Milwaukee-area markets, filters them against Dane's investment criteria, fetches real market rent estimates from RentCast, runs both all-cash and financed ROI scenarios against those numbers, deduplicates against a Google Sheets tracker, and emails formatted alerts only for properties that hit 12% or higher. The system handles the research layer entirely. Dane's job is to decide, not to screen.
How It Works
- Schedule trigger: The n8n workflow fires once per day, pulling fresh listing data from Apify's Zillow scraper across Milwaukee, Waukesha, and Racine markets
- Criteria filtering: Three hardcoded rules run immediately after extraction. Properties outside the one-to-four unit range are dropped, zip codes 53206 and 53205 are excluded, and bank-owned properties are removed before any calculations run
- Market rent estimation: Each qualifying property address hits the RentCast API, which returns location-specific market rent estimates based on comparable properties. No guessing, no averages
- Dual-scenario ROI calculation: Every property gets calculated twice. All-cash: annual rent divided by purchase price. Financed: 30% down, 7% interest, 30-year loan, with mortgage payment, operating expenses (10% CapEx, 10% repairs, 9% vacancy, 8% management), plus actual Zillow tax and insurance data factored in
- Threshold filter and deduplication: Properties where neither scenario hits 12% are dropped. Qualifying addresses are checked against a Google Sheets tracker. If the property already triggered an alert this week without a price change, it is skipped
- Gmail delivery: Qualified new properties generate a formatted email with the Zillow link, full financial breakdown, cash-on-cash percentage, projected monthly cash flow, and the RentCast comp data used in the calculation. Everything needed to make a call decision in under two minutes
Key Features
- Dual-scenario analysis: Every property evaluated at both all-cash and financed returns. Qualified opportunities show the full picture regardless of how Dane ultimately structures the purchase
- Real rent data via API: RentCast market estimates replace guesswork with address-level comparable data, making the ROI calculation defensible rather than approximate
- Hardcoded exclusion logic: Foreclosures and specific zip codes are filtered before the API call stage, preventing wasted compute on properties that would never qualify
- Smart deduplication: Google Sheets tracker eliminates repeat alerts for stale listings, keeping the daily email signal-to-noise ratio high enough to act on
- Same-day delivery: Qualified properties arrive the morning they hit market. The difference between being the first call and the fifth
Tools Used
n8n
Self-hosted workflow orchestration: daily schedule triggers, filtering logic, ROI calculations, and multi-step routing without platform fees
Apify
Zillow scraper actor pulling fresh listing data across three markets daily: address, price, tax estimates, insurance, and unit count
RentCast
Real-time market rent API returning address-level comparable data: the foundation of an accurate ROI calculation rather than an estimated one
Google Sheets
Deduplication tracker that logs every alerted property by address, preventing repeat notifications when listings sit on market unchanged
Gmail
Daily delivery channel for qualified deal alerts: formatted with Zillow link, full financial breakdown, and RentCast comp data for instant decision-making
Video Walkthrough
Calculate Your ROI
Your Market Should Be Working While You Sleep
If you are a real estate investor manually screening listings that could be filtered in seconds, we should talk. We will map out exactly how this system would work for your criteria and target markets.