Built inside a team. The product direction, the editorial and the ranking methodology are not mine; the data pipeline and the application are.
The scrape looked finished and was not. The source returned a random slice on every full pass while reporting a fixed total, so a normal run completed, matched the number it was told to expect, and silently missed a third of the catalogue. I only caught it because the unique count moved between runs. Trusting the total a source reports about itself is the mistake; the fix was to keep scraping until new records stopped appearing and let the data say when it was done.