IMO
IMO est un outil d'intelligence immobilière pour les investisseurs particuliers et semi-professionnels. Il automatise les analyses fastidieuses qui précèdent un achat : le marché, la rentabilité, les risques et les travaux. Faites à la main, ces analyses demandent plusieurs heures. Avec IMO, l'investisseur décide d'un achat en quelques minutes. L'application web est en production sur imoscore.fr, et elle est ouverte à un premier cercle de bêta-testeurs.
- Rôle
- Product · Fondateur
- Terrain
- Proptech · data · IA
- Stack
- React · FastAPI · PostgreSQL
- Statut
- En prod · bêta privée

Le problème, et la cible
Analyser un investissement immobilier à la main demande plusieurs heures. IMO fait la même analyse en quelques minutes.
IMO s'adresse à une cible précise : une communauté d'investisseurs déjà formés, à l'aise avec la donnée et prêts à payer pour gagner du temps. Les données publiques françaises existent : DVF (les prix des ventes immobilières, publiés par l'État), DPE (les diagnostics de performance énergétique des logements) et Géorisques (la base publique des risques naturels et technologiques). Ces données sont dispersées et brutes. La valeur d'IMO vient de l'interprétation de ces données : IMO les résume en un score et un verdict clairs.
Un entonnoir en trois rapports
J'ai structuré le produit comme un entonnoir de décision : chaque rapport répond à une question et prépare le rapport suivant. Le Rapport Ville indique rapidement si une ville mérite d'être étudiée. Le Rapport Marché détaille les prix, les loyers et les secteurs. Le Rapport Bien rend un verdict sur un bien précis, à partir de son annonce et d'une analyse de ses photos par l'IA. Ce verdict a trois valeurs possibles : Go, à vérifier, ou No-go.
Où ça en est
L'application web est en production sur imoscore.fr. Elle est construite avec FastAPI, React et PostgreSQL. Les trois rapports sont en ligne. Les rapports Ville et Marché sont gratuits. Le Rapport Bien est réservé à l'offre Fondateur, et la monétisation reste à venir. Le Score IMO sur 100 repose sur 6 critères et il est 100 % déterministe : les mêmes données donnent toujours le même score. L'IA n'intervient jamais dans ce calcul. L'IA sert à analyser les photos d'un bien et à rédiger les synthèses en prose du rapport. Si le modèle d'IA ne répond pas, le produit affiche un texte de repli déterministe (un texte construit par des règles fixes). IMO croise les sources publiques officielles avec un flux d'annonces du marché en temps réel.
- IMO s'adresse à des investisseurs déjà formés. Ces investisseurs sont à l'aise avec la donnée et ils sont prêts à payer pour gagner du temps.
- J'ai organisé le produit en entonnoir de décision, avec 3 rapports qui se suivent : Ville, puis Marché, puis Bien. Chaque rapport répond à une question et prépare le rapport suivant.
- Chaque analyse se termine par un verdict clair et lisible. La monétisation est prévue après la validation du produit.
- J'ai séparé le travail de l'IA et le calcul du score. Le Score sur 100 repose sur 6 critères et il est 100 % déterministe : les mêmes données donnent toujours le même score. L'IA n'intervient jamais dans ce calcul.
- Un modèle Vision de Claude (une IA qui sait lire des images) analyse les photos d'une annonce. Le modèle rend sa réponse dans un format JSON strict (un format de données structuré, que le produit peut lire sans ambiguïté). L'analyse fournit des observations, un budget travaux poste par poste et une liste de points à vérifier pendant la visite.
- Un modèle Mistral rédige les synthèses en prose du rapport. Si le modèle ne répond pas, le produit affiche un texte de repli déterministe (un texte construit par des règles fixes, sans IA). L'utilisateur ne voit donc jamais une panne du modèle de langage.
- J'ai posé quatre garde-fous autour de l'IA. Le premier détecte les hallucinations (les informations inventées par le modèle) : tout nombre cité dans une synthèse doit venir des données fournies au modèle, sinon le produit affiche le texte de repli. Le deuxième est une liste de mots interdits dans les textes produits. Le troisième est un cache par hash (un hash est une empreinte du contenu), qui sert à réutiliser une réponse déjà produite pour les mêmes données. Le quatrième est la dégradation gracieuse : quand l'IA est indisponible, le rapport continue de s'afficher.
- Le produit complet (interface et serveur) est en production sur Railway (un hébergeur d'applications). Le serveur est écrit avec FastAPI, l'interface avec React 18, et les données sont stockées dans PostgreSQL. Le rendu est hybride : il combine une application exécutée dans le navigateur (SPA) et des pages générées par le serveur (SSR).
- Le code compte environ 175 fichiers Python (dont environ 65 fichiers de tests) et environ 175 fichiers TypeScript (TS/TSX). Il est organisé en 8 modules. Il comprend aussi une vingtaine de scripts SQL (dont les migrations, qui font évoluer la base de données) et 12 workflows CI/CD (les automatisations qui testent et déploient le code).
- J'organise le travail de plusieurs agents IA en trois étapes : le cadrage, l'implémentation, puis la validation. Les décisions du projet sont consignées dans une documentation versionnée, tenue à jour au fil du travail (environ 65 fichiers). Le projet compte aussi 7 skills IA réutilisables (des procédures écrites que les agents suivent).
- La surveillance du produit repose sur 2 outils. Sentry m'alerte quand une erreur se produit. PostHog me sert ensuite à comprendre ce qui s'est passé. Les tests du serveur sont écrits avec pytest. Les tests de l'interface sont écrits avec Playwright, et ils rejouent un parcours utilisateur de bout en bout.
- IMO rassemble des sources publiques officielles : DVF (les prix des ventes immobilières, publiés par l'État), DPE (les diagnostics de performance énergétique des logements), Géorisques (la base publique des risques naturels et technologiques), la carte des loyers de l'ANIL (l'Agence nationale pour l'information sur le logement) et l'INSEE (l'institut national de la statistique). IMO croise ces sources avec un flux d'annonces du marché en temps réel.
- Le Score IMO est une note sur 100, attribuée à une ville. Il repose sur 6 critères pondérés : la demande locative, la rentabilité brute, la dynamique des prix et des loyers, la qualité énergétique des logements, le profil de risques et la liquidité du marché.
