Zillow Deal Finder: AI Cap Rate, Cash Flow & Price-Cut Scoring
Pricing
from $4.00 / 1,000 qualified deal (rules only)s
Zillow Deal Finder: AI Cap Rate, Cash Flow & Price-Cut Scoring
First 25 deals free. No start fee. A Zillow deal finder for real estate investors: pay only for listings that cash-flow at your terms — cap rate, cash flow, reduced prices and FSBO leads, scored with an AI memo. Free demo on any plan; live search runs Zillow Search Scraper on your own Apify account.
Pricing
from $4.00 / 1,000 qualified deal (rules only)s
Rating
0.0
(0)
Developer
Rich Minds
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
New cash-flowing Zillow deals in your inbox every morning, scored 0–100 with AI memos.
⚡ First 25 deals free · 💵 $0.004 per qualified deal, no start fee · 🤖 $0.015 with the AI deal memo · 🔑 No API key on paid Apify plans — free plan: your own Gemini / Groq key · ⏱️ ~3 min for a 200-listing search (estimate)

Try it in 30 seconds. Click Try it — 6 sample listings, free. Type a city or ZIP into Cities or ZIP codes for a live search (on a plan that runs Store Actors): the first 25 qualified deals are free. → What a run costs · What the AI adds · Run it weekly
⚡ At a glance
| What you get | ranked Zillow deals: cap rate, cash flow, 1% rule, discount to Zestimate, flip math, price-cut / FSBO signals, who to call, (AI) a deal memo |
| You provide | a city or ZIP ("Memphis, TN", "44109") — or a Zillow search URL |
| Output | JSON / CSV / Excel dataset, best deal first, plus OUTPUT with the funnel and a per-ZIP MARKET_REPORT |
| Typical run | 200 listings scanned → ≈ 30 qualified in ~3 minutes (estimate) |
| Cost of that run | $0.58 math only (AI off: $0.46 source + 30 × $0.004) · ≈ $0.97 with the AI memo (30 × $0.015 + ≈ $0.06 tokens) |
| Free tier | first 25 qualified deals per account |
| Keys / setup | none on paid plans; free plan: list / dataset mode and your own AI key (llmProvider: byok) |
| Works with | Schedules, e-mail, Slack, webhooks, Google Sheets, Make / n8n / Zapier, MCP & AI agents |
🎯 What this Actor does
For real estate investors: it runs Zillow Search Scraper (maxcopell/zillow-scraper) on your account, does the
investment math on every listing and delivers only the deals that pass your rules:
- The spreadsheet, already done — mortgage, expenses, cash flow, NOI, cap rate, cash-on-cash and the 1% rule at your terms.
- Below-market proof — discount to the Zestimate and $/sqft vs the ZIP median of every listing in the run.
- Motivated sellers flagged — price cuts, days on Zillow, FSBO, foreclosure, bank-owned, auction, "as-is" quoted.
- A deal score 0–100 and grade A/B/C for your strategy, with the reasons — and who to call on every row.
- AI deal memo — red flags, upsides, condition and a fit score against your brief, every number checked.
🏠 Real estate deal finder for rentals and flips
listingGoal: rental weighs cap rate, cash flow and the 1% rule; flip weighs discount to Zestimate, $/sqft under
the ZIP median and motivation. No rent Zestimate? Rent comps (below), else rentFallbackPct (0.8 = 0.8% of the price a
month); rentSource says which rent was used.
🔨 Flip math — ARV, rehab and the 70% rule
arv (sold comps, else Zestimate, else ZIP $/sqft × sqft), rehabEstimate from the condition (turnkey $0, light-rehab
$15, heavy-rehab $40, unknown $10 per sqft), maxAllowableOffer (ARV × 0.70 − rehab) and flipProfit after 3% closing
and 8% selling costs — planning figures in the Flip math view.
🏘️ Rent comps and sold comps — numbers you can defend
rentComps: a listing without a rent Zestimate gets the median rent of its ZIP's rentals with the same bedroom count
(zipRentComp, rentSource: zip_rent_comps). soldComps: arv from homes sold there in the last 6 months
(soldCompPricePerSqft, arvSource: sold_comps). One capped search per ZIP on your account, ≈ $0.05 a ZIP, at most
maxCompZips (5); list rows may carry their own zipRentComp / soldCompPricePerSqft.
🔎 Motivated seller leads and FSBO leads
motivatedSellerOnly, minPriceCutPct and minDaysOnZillow keep sellers likely to negotiate. contactRoute (e-mail →
phone → Zillow's contact form) leads the Outreach view; fetchDetails adds the agent and real tax / HOA to the
shortlist (maxDetailFetches), writeOfferNote an AI note to the agent or owner plus, on hot deals, a one-page letter
of intent (PDF, offerLetterUrl) with blanks for your price — in the AI price.
👀 Watchlist — alerts on the listings you follow
sourceMode: watchlist + watchlist (zpids or listing URLs): each run re-checks them (≈ $0.0036 a listing) and
charges only a price or status change (watchChange, previousPrice, previousStatus).
🚀 How to use it
- Click
Try it— the free demo scores 6 sample Cleveland / Columbus listings; it works as is. - Type your market into Cities or ZIP codes (
Memphis, TN,44109) — that switches the demo to the live search. KeepenableAion — your first 25 deals show the memo free. - Press Start — deals land best-first in the Shortlist, Deal math, Flip math, Motivated sellers and Outreach views.
- Make it your daily deal alert — the first live run's status offers it: Save as a new task → Schedule, with
notifyEmail.OUTPUT.scheduleInputholds that run's exact input; only new deals and new price cuts are charged.

📚 Learn more: Step-by-step tutorial — how to find cash-flowing Zillow deals with this Actor
🆚 Why this instead of a Zillow Scraper?
Zillow Search Scraper (maxcopell/zillow-scraper) | Zillow Scraper — Cash Flow (trakk/zillow-scraper) | Zillow Deal Finder | |
|---|---|---|---|
| Price | $0.0023 per row · 633 users / 30 days | $0.003 per row + $0.003 per excluded property · 22 users | $0.004 per qualified deal ($0.015 AI), 25 free |
| What you pay for | every row, rentals and duplicates too | every row, even excluded properties | only deals that pass — junk costs $0 |
| Same 100 deals, all in | ≈ 500 raw rows = $1.15, math still yours | ≈ $1.50 for 500 analysed rows, no memo | $1.55 math only (100 × $0.004 + $1.15 source) — trakk's price with more math · $2.65 with the AI memo |
| Deal math | raw fields | cash-flow scenarios | cap rate, cash flow, CoC, 1% rule, flip math, ZIP comps, price cuts |
| Repeat runs | same listings again | same listings again | only new deals, new price cuts, watchlist changes |
The deal finders next to it in the Store search for "zillow deal finder" (FREE-tier prices, Store, 2026-09-26 — that search's median is $0.00395 per result; $0.004 here sits on it):
sian.agency/distressed-deal-finder | optirefine/real-estate-deal-finder | seibs.co/house-flipper-leads | This Actor | |
|---|---|---|---|---|
| Price | $0.036 per row + $0.05 start | $0.10 per row + $0.02 start | $0.005 per row, + $0.005 detail, + $0.005 high score | $0.004 per qualified deal, no start fee |
| Charged for | every foreclosure / auction row | every listing returned | every listing, more for good ones | only deals that pass your rules |
| Cash flow at your terms | rent estimate only | no | no | yes — cap rate, CoC, 1% rule |
| Flip math | comps | distress score only | ARV, max offer | ARV (sold comps on request), 70% max offer, profit |
💸 Cheaper than a PropStream seat — a PropStream alternative and DealCheck alternative
| PropStream | DealCheck | Mashvisor | This Actor, weekly | |
|---|---|---|---|---|
| Monthly cost | $99 / seat (Essentials) | $20 / seat (Pro; Plus $10) | $49.99 / seat (billed yearly) | ≈ $2.70 (1 search × 200 listings a week, ≈ 10 new AI deals) |
| Finds the deals | list building | no — you type each property | market data | yes — every listing of your search, scored |
Seat prices: list prices on PropStream, DealCheck and Mashvisor, checked 2026-09-26.
💵 Pricing — what a run really costs
Pay per result: one event per qualified deal, nothing else.
| Event | When it is charged | Price |
|---|---|---|
free-tier | your first 25 qualified deals, any mode | $0.00 |
qualified-deal-basic | AI off — Zillow fields, deal and flip math, signals, rule score and memo | $0.004 |
qualified-deal-ai | AI on — plus AI memo, red flags, upsides, condition, seller phrases, fit score | $0.015 |
Never charged here: the Zillow search (billed by Zillow Search Scraper on your account), rentals, rows without a
price, deals under minScore or failing a filter, repeats without a price drop, unchanged watchlist listings.
One free tier, one AI reserve: when the AI is unavailable, rule-scored rows use your free deals down to 5 kept for the AI — the status says "N of your 25 free deals left, 5 kept for the AI".
How that compares — $0.004 is 1.48× one raw Zillow row (median $0.0027), but one qualified deal replaces 5 raw rows.
Worked example (estimate) — one Cleveland search, 200 listings: $0.46 source on your account → ≈ 30 qualified with AI: 30 × $0.015 + ≈ $0.06 tokens → ≈ $0.97 total, $0.032 per deal ($0.58 with AI off; ≈ $0.60 on your first run).
AI tier, all in: ≈ $0.017 per deal ($0.015 here + ≈ $0.002 tokens through Apify's model access, or your own key) — about 4× the basic price.
🤖 What the AI tier adds
The FSBO deal from the demo, AI off — the math, the signals and the rule memo:
{"address": "1207 Example St, Cleveland, OH 44109", "price": 89900, "monthlyCashFlow": 428, "capRatePct": 11.7,"discountToZestimatePct": 14.0, "score": 95, "dealGrade": "A", "motivationSignals": ["stale", "fsbo", "below_zestimate"],"aiSummary": "Cap rate 11.7%, cash flow +$428/mo at 25% down, cash-on-cash 20.4%, 14.0% below Zestimate. Estimate from the listing and your assumptions, not financial advice.","sellerPhrases": ["Investor special", "sold as-is", "cash only", "needs TLC"]}
AI on ($0.015, default model anthropic/claude-haiku-4.5, sample for the demo listing) against the brief
"Cash-flowing 3+ bedroom single-family homes under $200k in Ohio; light rehab is fine, no condos with high HOA.":
{"fitScore": 88, "score": 92, "assessedBy": "ai", "condition": "light-rehab","scoreReasons": ["homeType SINGLE_FAMILY with 3 bedrooms at $89,900", "monthlyCashFlow +$428 at 25% down", "isFSBO true"],"aiSummary": "3-bed single-family FSBO at $89,900, 14.0% below its $104,500 Zestimate, cash-flowing +$428/mo (cap rate 11.7%). On Zillow 96 days and marketed as-is for cash buyers — expect light rehab.","redFlags": ["Sold as-is, cash only — financing may not be accepted", "Only 9 photos on the listing"],"upsides": ["20.4% cash-on-cash", "$/sqft 13.3% under the ZIP 44109 median", "Owner-listed: negotiate directly"],"dealPitch": "FSBO 3-bed in Cleveland 44109 at $89,900, +$428/mo at 25% down — owner open to cash offers"}
The AI reads the listing like an analyst — the 10 minutes per listing you spend before calling.
⚙️ Input
Start with locations, minScore, listingGoal, your deal criteria, enableAi, maxDiscoveryChargeUsd and
notifyEmail; everything else has a sensible default.
List-mode rows
sourceMode: list works on any plan and is the free API trial; a row in itemsList uses Zillow Search Scraper's format.
📤 Output
One dataset item per qualified deal — the demo's foreclosure duplex, shortened:
{"url": "https://www.zillow.com/homedetails/2255-Demo-Rd-Cleveland-OH-44109/900000103_zpid/", "zpid": "900000103","contactRoute": "(216) 555-0178", "contactChannel": "phone", "price": 165000, "rentSource": "rentZestimate","monthlyCashFlow": 748, "capRatePct": 11.43, "arv": 188000, "maxAllowableOffer": 113100,"motivationSignals": ["foreclosure", "below_zestimate", "seller_language"], "score": 97, "dedupeKey": "zpid:900000103"}
Output fields
Upsert key for a CRM or Sheet: dedupeKey (zpid:<Zillow property id>) — one property is one row however many
runs find it; itemId is its short hash.
Next to OUTPUT (funnel, charges, aiCoverage, comps, errors): a DIGEST ("vs last run: qualified 41 → 55"),
a client-ready REPORT page (OUTPUT.reportUrl) and a per-ZIP MARKET_REPORT.
⭐ Found it useful? A review on the Store helps others find it — it takes a minute on the Actor's page.
🔁 Run it weekly
- Save as a new task → Schedule (daily or weekly) with
notifyEmail— the first live run's status offers it andOUTPUT.scheduleInputholds its exact input; every run with new deals e-mails you the digest and the trend. - Keep
dedupeAcrossRunsandalertOnPriceCuton — the next run delivers only new deals and price drops (isNewPriceCut). The memory is kept per search (places, URLs,listingGoal): rewordinginvestorGoalkeeps it; a changed search starts a new one and the status says so. OnededupeStoreNameper client keeps their lists apart. - Add
slackWebhookUrl, or push rows to Google Sheets / n8n / Make — docs/marketing/kit/integrations.md.
Weekly cost is the new deals only: 3 cities × 200 listings = $1.38 source + ≈ 20 new deals × $0.015 ≈ $1.68 a week.
🎯 Try it for your niche
| Niche | What it looks for | Start |
|---|---|---|
| Buy-and-hold | cash flow ≥ $150/mo, 3+ beds, Cleveland | the buy-and-hold input below |
| Wholesale / flip | 10%+ under Zestimate, motivated sellers, Akron | the wholesale / flip input below |
🔌 Integrations, automation and API
- Webhook —
webhookUrlPOSTs{"event": "deal.qualified", "deal": {…}, "runId": "…"}per deal, or withwebhookBatchSize> 1{"event": "deals.qualified", "deals": [{…}, …], "runId": "…"}; 429 / 5xx retried once, never fails the run. - Google Sheets / Slack / HubSpot — the Integrations tab; the Shortlist view maps onto a sheet.
- AI agents / MCP — plain typed inputs. First call = the free trial:
{"sourceMode": "list", "itemsList": [...]}scores rows you send, no source run.
Use it from Claude, ChatGPT or any MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?actors=rich_minds/zillow-deal-finder-ai"}}}
Then ask: "Run zillow-deal-finder-ai for Memphis, TN (maxDiscoveryChargeUsd 0.5) and list the A-grade deals."
Minimal agent input: {"locations": ["Memphis, TN"], "investorGoal": "…", "minScore": 60, "maxQualified": 25, "maxDiscoveryChargeUsd": 0.5}
Run outcomes — what your integration sees
👥 Who is it for?
| You are… | You run it to… | Start with |
|---|---|---|
| Buy-and-hold / BRRRR investor | see which listings cash-flow — an investment property finder | locations + minMonthlyCashFlow |
| Wholesaler / flipper | find motivated sellers and a max offer under the 70% rule | listingGoal: flip, motivatedSellerOnly |
| Investor-friendly agent | send clients a deal list and a ZIP market report | a schedule + notifyEmail, REPORT, MARKET_REPORT |
| Proptech / AI agent | feed typed, scored rows to a CRM or an agent | the API / MCP call, webhookUrl |
🧠 How the AI works
- Grounded. The model sees one listing, the math and your terms; a sentence with a number not in the row is dropped, seller phrases must be verbatim.
- Your brief.
fitScorerates the listing againstinvestorGoal;scoreblends it 40/60 with the rule score. - Model.
anthropic/claude-haiku-4.5through Apify's model access, orllmProvider: "byok"; only listings that passed every free filter reach it, and a failed call keeps the rule score (assessedBy: ai-fallback).
🔒 Data, compliance and limits
- Only what Zillow publishes; broker and agent contacts as published. No login, no skip tracing.
- The math is an estimate — not financial advice. ZIP medians need ≥ 3 listings of the ZIP.
- Keep your use within Zillow's terms and applicable law (GDPR, CCPA).
❓ FAQ
How much will one run cost me? One city × 200 listings: $0.46 for Zillow Search Scraper on your account, then $0.015 per qualified deal with AI (≈ 30 → $0.45) plus ≈ $0.06 tokens — ≈ $0.97 ($0.58 with AI off); the first 25 deals are free.
What will my first real search cost? At most 200 listings × $0.0023 = $0.46, capped by maxDiscoveryChargeUsd ($0.50); the first 25 qualified deals are free.
Can I get only Zillow price reduced listings? Yes — minPriceCutPct or targetFlags: ["price_cut"]; scheduled runs re-alert on a new cut.
How long does a run take? Demo: seconds. 200 listings: ~1–2 min of Zillow search, then ≈ 2–4 s per AI deal, 8 at a
time (estimate; OUTPUT.timing). Own key: paced to the provider's hint after a rate limit (aiPaceSecs); a used-up
quota is detected within ≈ 20 s ("the key's quota looks used up") and the deals keep their rule score. Own-key
throughput is not measured yet. Worst case ≈ 10 min per 100 deals — pass timeoutSecs 1800 per 100 deals.
Which Apify plan do I need? Any plan runs the demo. Live search, watchlist and built-in AI need a plan that runs Store Actors; free plan: dataset / list and llmProvider: "byok".
What happens if nothing matches my filters? The run succeeds with 0 rows and charges nothing.
Will I be charged for the same deal twice? Only if its price dropped since (alertOnPriceCut, isNewPriceCut).
Is the data public / is this legal? Public Zillow listing data only, no login; use it within Zillow's terms.
🧩 More Actors from the same developer
Not quite your use case? The same pay-per-qualified-result model, closest to this Actor's buyers first:
- Booking Hotel Finder & Scraper — hotel price drop alert, hotel price tracker, hotel price comparison
🆘 Support
Something missing or wrong? Open an issue on the Actor's page — requests from buyers are shipped first.
📝 Changelog
What changed in each build, newest first — pin one with build in the API call.
- 0.3.2 (2026-09-27) — Store card says "no start fee"; runs and prices unchanged.
- 0.3.1 (2026-09-26) —
rentComps(ZIP rent comps) andsoldComps(sold-comp ARV); offer letter PDF (offerLetterUrl) on hot AI deals; memory kept per search, not perinvestorGoalwording; a used-up own key stops the AI within ≈ 20 s; the first live run offers a schedule (OUTPUT.scheduleInput); tidier status texts. - 0.2.1 (2026-09-26) — shorter AI-on status (cause in the status, the fix in
nextSteps), own-key calls paced to the provider's retry hint, one free tier with a 5-deal AI reserve said as "N of your 25 free deals left", rows without a price named in the status. - 0.2 (2026-09-26) — city / ZIP input (
locations), watchlist mode, flip math,contactRoute,rentFallbackPct,MARKET_REPORT; AI tier $0.015; breaking:dealScore→score,aiScore→fitScore(the twins are gone). - 0.1.1 (2026-09-26) — first public release with deal math, ZIP comps, motivated-seller signals and the AI deal memo.
- 0.1 (2026-09-26) — initial release.