The situation
Listing prices vary wildly between portals, the same flat appears three times under different names, and neighbourhood names are spelled ten ways. A model trained on that raw mess learns the mess.
Data and ML · Real estate
Advisors needed a fair price estimate before visiting a property. We built the whole chain: scrapers across several property portals, a cleaning and deduplication pipeline, and a model served as an API that answers with a range and an honest reliability rating.
The situation
Listing prices vary wildly between portals, the same flat appears three times under different names, and neighbourhood names are spelled ten ways. A model trained on that raw mess learns the mess.
What changed
The pipeline collects, cleans and deduplicates listings across sources and maps them to a curated list of neighbourhoods. The model returns a price range, a probable sale price after negotiation, and a reliability rating that drops where data is thin.
How it works
Scrapers gather listings from 7 sources across several property portals.
Exact and cross-source duplicates are removed; prices and surfaces are normalised.
Each listing is matched to a curated gazetteer of 410 neighbourhoods in 6 cities.
A gradient-boosted model learns from the 22,371 listings kept.
A stateless API returns a range, a likely sale price and a reliability rating.
Where the AI stops
The model
The code
By the numbers
Built with
Built for
Real estateSaafkaA network of real-estate advisors: buy, sell, rent and appraise anywhere in Morocco.Read the client storyMore use cases
Contact
Write to usWe answer the same working day.