The lists this industry keeps asking for.
Mortgage runs on knowing who is out there — which agents are licensed, where, and how to reach them. That data exists, mostly in public records nobody has bothered to make usable. This is where we put the ones we have cleaned, with the source of every field written down.
Michigan's own list is one download away, and the grid above will read it for you — the whole ingest runs in your browser, so the file never leaves your machine. Forty thousand licensees take about five seconds.
The catalogue.
Four states a dataset can be in, and the difference matters more than the name: live is built and downloadable, sample is the pipeline running on invented records, ready means the pipeline is written and tested and is waiting on its source file, and planned means we know where the data is and have not done the work.
Loading the catalogue…
Every licensed real estate agent in Michigan.
This one has a good answer, and it is not scraping. Michigan's licensing authority publishes the whole population itself — every salesperson, associate broker and broker in the state — as a report generated live from the licensing system. Free, no account, nothing crawled.
- Open LARA's list page. michigan.gov/lara → Bureau of Professional Licensing → License Lists and Reports ↗
- Take “FOIA – Real Estate Brokers/Salesperson List”. It is queried live against MiPLUS, so it takes a minute to generate, then downloads as a spreadsheet.
- Drop it on the grid at the top of this page — that is the whole of it. The same ingest runs in your tab: no upload, no account, no request leaves the page. Or run it on the command line if you would rather have the files.
# the state's file in, the clean list out node src/ingest/michigan-cli.js ~/Downloads/RealEstateList.xlsx \ --out mi.json --csv mi.csv --db ../db # or see it work first, on invented records in the same shape node src/ingest/michigan-cli.js --sample 3000 --db ../db
What the ingest does to it
| Un-shouts the names | “VANDENBERG, MEREDITH A” becomes “Meredith A Vandenberg”, with McDonald, O'Brien and LLC left alone. |
| Separates people from offices | Broker companies and branch offices are real records but they are not people. They are counted apart — putting them in a list of agents is the commonest defect in a bought list. |
| Links each agent to their broker | By the broker's licence number where the file has one, by normalised company name where it does not. |
| Normalises what varies | Phones to E.164, dates to ISO whether the export used serials or US order, statuses to one vocabulary — and anything it does not recognise is reported rather than guessed. |
| Records where every field came from | All of it at registry confidence, because the registry is where it came from. |
Tell us which one you need.
What gets built next is decided by what people ask for. Below is what has been asked for so far. Adding your name to one moves it up; asking for something new starts a row.
Requests go to our inbox. Vote counts are the ones we have recorded plus your own, which your browser remembers — there is no account system yet and this page does not pretend otherwise.
How we decide what goes in.
| Rule | Why |
|---|---|
| A public record beats a crawl | Where a regulator publishes the population, we ingest that. It is complete, it is authoritative, and it costs the internet nothing. Michigan is the model. |
| The source is on the record | Every dataset names the authority, the report, and the basis on which the data is published. If we cannot write that sentence, we do not ship the dataset. |
| No portal data, ever | Zillow, Realtor.com, Redfin and the rest prohibit automated collection in their terms of use, and MLS/IDX feeds are licensed to the broker who receives them. Neither is here and neither will be. |
| Caveats travel with the data | Every dataset lists what it is not. Contact details are as of the last renewal; production figures on a brokerage page are marketing copy; membership of a trade association is not a licence. |
| Having it is not permission to use it | A phone number in a public record is not consent to be autodialled or texted. The scraper attaches per-channel verdicts for exactly this reason, and they travel with the data. |