The Deal-Screening Agent: Read an Entire Metro Every Morning for 82 Cents
You are refreshing Zillow by hand and doing real comp work on maybe three houses a week. Here is the exact flow — screen every listing in a metro, pull what similar homes actually sold for, read every price cut, and surface only the few worth a second look — run from Claude via MCP. No code.
The actor referenced in this article. Pay only for results delivered.
Ask an investor how they source deals and you will get an honest answer that sounds like a confession: they refresh Zillow.
Same saved search, a few times a day, same alerts everyone else in the metro has. When something looks interesting, the real work begins — pull the comps, check what it last sold for, see whether the price has been cut, work out whether the ask is defensible. That is thirty to forty minutes per property if you do it properly.
So you do it properly maybe three times a week. Which means your screening funnel is not “every house in the metro.” It is “the four houses I had time for.”
That gap is not a discipline problem. It is a data problem.
Because here is the thing about a deal: the listing never tells you it is a deal. The listing tells you the asking price, and the asking price is a wish. What makes a property obvious is the listing versus what comparable homes actually sold for versus its own price history. Three lookups. Nobody does three lookups on three hundred houses by hand.
An agent does. Every morning. For about eighty cents.
The setup (two minutes, once)
The Mine Works MCP server puts our scrapers inside Claude as native tools. Claude calls them itself and reasons over the results in the same conversation — you never export a CSV and you never open a spreadsheet.
Open ~/.claude.json (or Claude Desktop → Settings → Developer → Edit Config) and add:
{
"mcpServers": {
"themineworks": {
"url": "https://the-mine-works-mcp.hatchable.site/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Grab your token from Apify → Account → Integrations. Restart Claude. Runs bill to your own Apify account at pay-per-result rates — there is no subscription on our end.
One thing worth saying plainly up front: everything below reads public listing pages. Zillow, Redfin and Realtor.com show these to anyone with a browser. No MLS login, no broker feed, no credentials.
Now the flow.
Step 1: Stop looking at four houses. Look at all of them.
The manual version: you have a saved search with your filters, and you scroll it. You see what fits on the screen. You see it at the same moment as everyone else with the same saved search, because you are all subscribed to the same notification.
The problem is not that you are slow. It is that your funnel is the wrong shape — you are filtering by what caught your eye, and what catches your eye is a photograph.
Zillow Search pulls the whole candidate set instead.
Prompt: Use search_zillow for “Austin, TX” with minPrice 300000, maxPrice 550000, minBeds 3, daysOnZillow 30, maxItems 300. Give me the full set — I want every record, not a summary.
Each record comes back with a zpid, the address, price, beds, baths, sqft, coordinates and the detail URL. A real run against Austin right now returns records like zpid 29506376 at 1209 Tetbury Ln, Austin, TX 78748. Hold onto that zpid — step 4 needs it.
That daysOnZillow filter is doing more work than it looks. Set it low and you get fresh inventory. Set it high and you get the ignored stuff, which is often where the motivated sellers are hiding.
Cost: $0.001 per property. 300 listings is thirty cents.
Step 2: The step everybody skips — what did houses actually sell for?
This is where manual screening quietly falls apart.
You look at a listing at $475,000 and you have no idea if that is aggressive or a gift, because the only reference point on the screen is other people’s asking prices. Asking prices are a hall of mirrors. Everyone is anchoring on everyone else.
The number that matters is what a similar house closed at, and that number is on Redfin.
Redfin Search has a soldWithinDays parameter that flips it from for-sale to recently-sold. That one parameter is the whole point of this step.
Prompt: Now use search_redfin for “Austin, TX” with soldWithinDays 90, minPrice 300000, maxPrice 550000, minBeds 3, maxItems 150. These are my comps — recently closed, not asking.
You get back propertyId, mlsId, address, city, and the listing agent and broker on each record. Ninety days is usually the right window: long enough to have a real sample, recent enough that the market has not moved underneath you.
Now you have two sets that can be compared: what people want (step 1) and what people got (step 2). Everything interesting lives in the space between them.
Cost: $0.002 per property, plus a $0.00005 per-run start fee. 150 comps is thirty cents and a hundredth of a penny.
Step 3: A second source, and the name on the sign
One source is a claim. Two sources is a fact. Listings drop, statuses go stale, and a property that Zillow still shows as active may have gone pending three days ago.
Realtor.com Search is the cross-check — and it carries something the others do not surface as cleanly: the agent and their office, on every record.
Prompt: Use search_realtor for “Austin, TX” with minPrice 300000, maxPrice 550000, minBeds 3, maxItems 100. Match these against the Zillow set by address. Flag anything where the status disagrees, and anything on Realtor that Zillow missed entirely.
Records come back with propertyId, listingId, a status field (for_sale and so on), the address, plus agent and office.
The agent field compounds over time. Run this for a month and you start seeing which brokerages carry the inventory you actually want, and which individual agents keep appearing on the properties that get cut twice. That is a relationship map you did not have to build by hand.
Cost: $0.002 per property, plus the $0.00005 start fee. 100 records is twenty cents.
Step 4: Now — and only now — go deep
Here is the discipline: you do not deep-dive three hundred houses. You deep-dive the twenty that survived steps 1 through 3.
The manual version of this step is the thirty-minute one. Open the listing, scroll to price history, squint at the tax record, check the school ratings, hunt for the HOA number, compare the Zestimate to the ask. Per house. Which is exactly why you only ever did it four times a week.
Zillow Property Details does all of it in one call, and it takes a bare ZPID — no URL construction needed.
Prompt: Use get_zillow_property_details on these 20 zpids. I want the full price history including every cut and relist, the tax history, the school ratings, HOA dues, and the Zestimate against the current asking price.
Price history is the most underrated field in residential real estate. A single listing at $475,000 tells you nothing. That same listing, showing $525,000 in April, $499,000 in May and $475,000 last week, tells you a great deal about the person on the other side of the table — not about the house.
Tax history is the second one. When assessed value and asking price have diverged sharply, something happened. Maybe a renovation. Maybe a fantasy. Either way it is a question worth asking, and you now know to ask it.
Cost: $0.001 per property. 20 deep-dives is two cents.
Step 5: Let Claude actually do the analysis
Everything up to here was gathering. This is where it turns into a shortlist.
Claude now has, in one conversation: 300 asking prices, 150 real closings, 100 cross-checked records with agents attached, and 20 full histories. It can hold all of that at once, which is the part you cannot do in a browser with fourteen tabs open.
Prompt: Using everything you have pulled, score my 20 shortlisted properties. For each one: (1) price per sqft versus the median of the Redfin sold comps within a similar size and bed band — express it as a percentage above or below; (2) the price-cut pattern from the Zillow price history — flag anything cut two or more times inside 60 days; (3) any gap between assessed value and asking price that looks anomalous; (4) the Zestimate-versus-asking gap. Then rank them and tell me which three you would go look at first, and say what would make each one a mistake.
That last clause matters. An agent that only tells you why something is good is a yes-man with an API key. Ask it for the bear case on every property and you get something worth reading.
The pattern to actually pay attention to: a listing cut twice in sixty days with no change in the underlying property is a seller telling you something they will not say out loud. The house did not change. Their situation did.
Cost: nothing. This is Claude reasoning over data you already pulled.
Step 6: Make it a standing morning run
The whole thing is a prompt, which means it can be a recurring one.
Prompt: Run the Austin screen again. Only show me listings that are new since yesterday’s run, or where the price has changed. Score them against the comp set from last week — no need to re-pull comps unless the newest sold data is more than 7 days old. Give me anything that scores in the top tier, and nothing else.
That is the version that changes how you work. Not “I automated Zillow” — you open one conversation with three properties in it and a reason for each, before your coffee. Everyone else in the metro is still scrolling.
What it actually costs
Real per-result prices, for a full pass over one metro:
| Step | Tool | Rate | Volume | Cost |
|---|---|---|---|---|
| Screen the metro | search_zillow | $0.001/property | 300 | $0.30 |
| Sold comps | search_redfin | $0.002/property | 150 | $0.30 |
| Redfin run start fee | search_redfin | $0.00005/run | 1 | $0.00005 |
| Cross-check + agents | search_realtor | $0.002/property | 100 | $0.20 |
| Realtor run start fee | search_realtor | $0.00005/run | 1 | $0.00005 |
| Deep-dive shortlist | get_zillow_property_details | $0.001/property | 20 | $0.02 |
| Total | $0.8201 |
Eighty-two cents to screen an entire metro properly.
The two start fees are real and I am listing them rather than rounding them away — they add up to one ten-thousandth of a dollar, which is not a rounding error so much as a rounding joke, but it is on the invoice and you should know it is there.
Run the full pass every morning and it is $24.60 a month. A new-listings-only standing run is a fraction of that, because you are not re-pulling 300 listings and 150 comps daily — you are pulling the twenty or thirty that changed. Comps get refreshed weekly, not daily; the last ninety days of closings do not move much overnight.
You pay per result delivered. A search that returns nothing costs nothing.
The honest part
This does not find you deals. It finds you candidates, with the arithmetic already done, so that your judgement gets pointed at twenty properties instead of four.
It will not walk the property. It will not smell the basement, notice the neighbour’s three dogs, or spot that the “renovated” kitchen is a veneer over 1978. Public listing data is a filter, not a verdict — and a filter’s entire job is to be wrong in a cheap direction so that you are only wrong in the expensive direction about things you actually looked at.
It also does not know your thesis, your financing, your risk tolerance, or your market. None of this is investment or financial advice. It is data gathering. Every number here needs a human who understands the neighbourhood to interpret it, and every property still needs you to go stand in it.
What it removes is the part that was never the real work: not knowing which of three hundred listings deserves thirty minutes. That was always a lookup problem. It just used to be an impossible one.
Tools used: Zillow Search · Redfin Search · Realtor.com Search · Zillow Property Details
All of them are available as one MCP endpoint.
Explore the scraper referenced in this article — see inputs, outputs, and pricing, then run it on Apify.
Frequently asked questions
Do I need MLS access or an agent licence for this? +
No. Every tool here reads public listing pages — the same Zillow, Redfin and Realtor.com pages any visitor can open. There is no MLS login, no credentials, no broker feed. You are reading public data, just all of it at once instead of one tab at a time.
What does a full metro pass actually cost? +
Screening 300 Zillow listings, pulling 150 recently-sold Redfin comps, cross-checking 100 Realtor.com records and deep-diving 20 shortlisted properties comes to about $0.82 at current per-result rates. You pay per result delivered, and nothing for a search that returns nothing.
Why pull comps from Redfin instead of just using Zillow's Zestimate? +
Because a Zestimate is a model output and a sold comp is a transaction. They answer different questions. The Zestimate is useful mainly as a second opinion to compare against asking price — the gap between them is a signal. What a similar house down the street actually closed for last month is evidence. Use both, but do not confuse them.
Is this giving me investment advice? +
No. This is data gathering and screening. It narrows a metro down to a handful of properties worth your attention and shows you the numbers behind why. Every judgement about whether something is a good buy is yours, and you still have to go see the house. Nothing here is financial advice.
I Automated My AI Job Hunt: 8 Tools, One Claude Agent, Under $1
Most job hunting is spent on the wrong problem. Here is the exact end-to-end flow — find who is actually hiring, rank by real fit, research the company, find the human, and write an application grounded in facts — run entirely from Claude via MCP.
Ask an AI for a Company's SEC CIK and It Will Lie to You. Here Is the Fix.
An AI that remembers is not an AI that verifies. This is the exact diligence flow — legal identity from GLEIF, filings from EDGAR, funding, engineering activity and hiring — run from Claude via MCP, grounded in real registries, for about fifteen cents a company.
Stop Cold Pitching: Find Local Businesses With a Problem You Can Actually Fix — Under $4
Cold outreach fails because it is generic. Here is the exact flow — build a prospect universe, diagnose the real problem from their own reviews, qualify who can pay, find the human, and pitch with evidence — run entirely from Claude via MCP. No code.