Inspiration
Court-ordered property auctions in France are public, but the information is scattered: each listing lives on a lawyer's site or an aggregator, the documents are PDFs, and the price a property finally sold for is hard to find. Buyers bid without knowing what similar properties reached.
What it does
MdB Scanner collects auction listings from several sources, merges the listings of the same sale, attaches the public case documents and compares each property with nearby sales from the French DVF open data. It publishes the results of past auctions and offers a public calculator that works out a maximum bid from local prices, renovation costs and auction fees.
How we built it
Python scrapers with one adapter per source, a matching step that merges listings of the same sale, PostgreSQL, enrichment with DVF data and geocoding, and a FastAPI + Jinja2 site styled with Tailwind CSS. A single formula and its inverse compute the bid ceiling everywhere on the site. End-to-end tests run with Playwright.
Challenges we ran into
Two lots of the same procedure can share an address and still be two different sales, while one sale can appear under several addresses. Some documents describe another property than the listing. And the personal data of the people involved in a seizure must never be published.
What we learned
The starting price of a court auction is not a bargain signal: it is often set by the debt, and the final price is made in the courtroom.
What's next
More case documents for upcoming sales and wider coverage of past results.
Built With
- fastapi
- jinja
- playwright
- postgresql
- python
- tailwindcss
Log in or sign up for Devpost to join the conversation.