Automated Real Estate Deal Finder: 30x Milwaukee Deal Coverage by Andrea ErcolessiAutomated Real Estate Deal Finder: 30x Milwaukee Deal Coverage by Andrea Ercolessi

Automated Real Estate Deal Finder: 30x Milwaukee Deal Coverage

Andrea  Ercolessi

Andrea Ercolessi

The Problem

A real estate investor was screening Milwaukee, Waukesha, and Racine County listings by hand. Every day: open Zillow, filter manually, copy properties into a spreadsheet, cross-reference rent estimates. It took over 20 hours a month and still only surfaced 10 properties a week.
The bottleneck wasn't effort. It was a process that couldn't scale.

Results

30x deal coverage: 300+ properties screened weekly vs 10 manually
20 hours/month reclaimed: fully automated, zero daily input required
Dual-scenario ROI on every property: all-cash and financed projections calculated automatically
System cost: $144/month vs $1,356/month in time value recovered

Before vs After

Before: manual Zillow browsing, spreadsheet tracking, no consistent rent data, deals missed between sessions.
After: automated pipeline runs every morning, filters to qualified deals only, delivers a formatted Gmail summary with full financial breakdown before Dane starts his day.
Formatted Gmail deal alert delivered each morning: property link, dual-scenario ROI, monthly cash flow, and RentCast rent comp data
Formatted Gmail deal alert delivered each morning: property link, dual-scenario ROI, monthly cash flow, and RentCast rent comp data

What I Built

A daily n8n workflow that runs at 6am, scrapes current Zillow listings across three Wisconsin markets using Apify, applies a three-stage filter, pulls rent estimates from RentCast, calculates dual-scenario ROI, deduplicates against Google Sheets history, and delivers a formatted Gmail alert for any property hitting the 12% cash-on-cash threshold.

How It Works

Trigger: n8n schedule runs at 6am daily
Scrape: Apify pulls all active listings from Milwaukee, Waukesha, and Racine County
Pre-filter: Remove listings outside 1-4 units, strip excluded zip codes, remove bank-owned properties
Rent estimate: RentCast API returns address-level monthly rent for each qualifying property
ROI calculation: Two scenarios computed: all-cash return and financed return (using 10-10-9-8 expense model for taxes, insurance, maintenance, vacancy)
Deduplication: Google Sheets tracker removes any property already seen in previous runs
Delivery: Gmail formats and sends a daily digest with full financials for every deal above the threshold
The n8n workflow
The n8n workflow

Tools Used

n8n (self-hosted) — workflow orchestration
Apify — Zillow scraper
RentCast — address-level rent estimation API
Google Sheets — deduplication tracker
Gmail — formatted daily delivery

Run the Numbers on Your Market

Video Walkthrough

What This System Can Become

The architecture is ready to extend: predictive pricing ML layer, multi-market expansion beyond Wisconsin, portfolio tracking for properties already owned. The core pipeline doesn't change. New markets are a config update.

Like this project

Posted Feb 19, 2026

Real estate investor manually screening Zillow daily for 12% cash-on-cash deals. Built n8n + Apify + RentCast system delivering qualified alerts every morning.