PropScout is a tool I built for researching distressed properties in Polk County, Iowa. Before this I was doing what most foreclosure investors do: a spreadsheet, a dozen browser tabs, and a lot of copy and paste. There are two ways to buy here, sheriff sale auctions and tax sale certificates, so the app watches both and puts everything on one map with the research already done.
There are three ways to look at the data. The map shows a color coded marker for every active listing. Click one and you get a street view photo, the judgment amount, the parcel PIN, and links to the sheriff site and the county tax record. The grid view turns each property into a card with a photo, the key numbers, an equity estimate, and buttons to add notes, favorite it, or skip it. The table view is a searchable, sortable spreadsheet I wrote myself (no DataTables, no jQuery) that remembers your filters, which is how I work through a few hundred rows at a time.
The enrichment is what makes it useful. As soon as a listing is scraped from the sheriff or treasurer site, a queue fires off parallel requests to about a dozen public sources: Google Geocoding for coordinates, the Polk County Assessor for square footage, beds, baths, and assessed value, the Treasurer for unpaid taxes and any unredeemed tax sale certificates, FEMA for the flood zone, EPA ECHO, Superfund, and TRI for environmental problems, USFWS for wetlands, Census ACS for neighborhood income, rent, and owner occupancy, HUD Fair Market Rent for rental comps, and a recorder and permits scraper for liens and code activity. By the time a property shows up on screen it already has the judgment amount, an equity estimate, a lien position risk rating (first mortgage, second mortgage, HOA, or mechanic's lien), and its tax sale redemption status. I never have to go look any of it up.
AI is optional and you pick the provider. The settings page accepts Anthropic Claude, OpenAI, Google Gemini, or a local Ollama model such as Qwen or Llama, and you can use a different one for each job. It does three things: ranks the whole active list into a Top Picks view and explains each pick, answers questions about a single property using that property's real data, and writes an investment memo. Any address the AI mentions becomes a link, so you can tap a property in the write up and open its detail panel instead of bouncing between a chat window and the map.
Under the hood it is a Next.js 14 App Router app written in TypeScript. There is no database. The listing cache, notes, history snapshots, and AI settings are plain JSON files in a data folder, which makes it easy to move and easy to back up. Scraping is done server side with Cheerio, the map uses Google's official JS loader, and printable reports are just styled pages sent through the browser's print dialog, so there is no headless Chrome to babysit. API keys are encrypted at rest with AES-256-GCM using a key derived from a server side secret with scrypt, so your Anthropic or OpenAI keys never sit on disk in plain text. It runs under pm2 behind nginx on my own server, so there is no cloud bill and no per property fee.