Étude de cas

Un moteur de prospection qui dit à une équipe commerciale qui appeler, et pourquoi aujourd'hui

Des leads trouvés dans les données publiques françaises, notés sur 100, accompagnés d'un brief rédigé par une IA qui n'a pas le droit d'inventer, et suivis dans un CRM intégré.

Mon rôle

Celui-ci est mon propre produit, construit avec un premier client : un distributeur de copieurs et de télécoms d'entreprise en France. Je l'ai conçu et j'en écris la totalité, seul.

La situation

Dans ce métier, il y a une seule vraie raison pour laquelle une entreprise change de copieur ou de fournisseur de téléphonie : le contrat en cours arrive à échéance. Le produit, le prix et l'argumentaire comptent bien moins que le fait d'appeler au bon moment. Un conseiller commercial avec une liste de noms d'entreprises n'a aucun moyen de savoir laquelle est à trois mois de ce moment. Le travail n'a donc jamais été d'écrire de meilleurs messages commerciaux. C'était de trouver le bon moment, dans des données que tout le monde peut lire et que personne n'a le temps de lire, et de le poser devant un conseiller sous la forme d'une courte liste pour aujourd'hui.

La contrainte

Tout ce qui s'affiche devait être réel. Avant d'écrire la moindre ligne de code, j'ai testé chaque source de données avec une vraie requête et j'ai conservé les réponses. Deux sources publiques sur lesquelles je comptais se sont révélées inutilisables, donc le plan a changé avant le début du développement. La règle depuis : un champ que je n'ai pas vu dans une vraie réponse n'est jamais utilisé dans le code.

Il n'était pas question de laisser l'IA inventer. Un brief d'appel qui cite un chiffre faux coûte l'appel au conseiller. Le modèle ne reçoit qu'une liste fixe de faits, doit écrire « inconnu » quand une information manque, et un contrôle sur mon serveur rejette tout brief contenant un chiffre ou un nom qui ne figurait pas dans ces faits.

Chaque service externe payant est plafonné par jour et consigné dans un journal des coûts, pour qu'une équipe très active ne puisse pas faire grimper une facture surprise.

Ce que j'ai construit

Une seule application web, en français, utilisée sur téléphone ou sur ordinateur :

  • La recherche de leads dans les données publiques. Pour les entreprises, l'application compare deux instantanés du registre français des entreprises et garde ce qui a changé (un déménagement, un nouvel établissement, une évolution de l'effectif), chaque fois avec sa date réelle. Pour les acheteurs publics, elle lit les marchés publics publiés et estime la date de fin de chacun.
  • Une note sur 100 dont le détail est affiché ; 70 est le seuil pour « qualifié ». Les leads anciens et les leads mal notés sortent avec le temps, donc la liste se regarnit toute seule.
  • Uniquement des leads que l'on peut appeler : pour chaque lead qualifié, l'application vérifie qu'il a un numéro de téléphone français avant qu'il n'arrive dans la liste.
  • Un brief d'appel sur n'importe quel lead : pourquoi appeler maintenant, ce que l'on sait et d'où ça vient, et une phrase d'accroche.
  • Un CRM intégré : une grille triable avec des vues enregistrées, des cartes sur téléphone, des statuts, des dates de relance que l'IA propose et que le conseiller décide, une liste d'appels du jour, une vue planning et un tableau de bord.
  • Les appels : toucher pour appeler, enregistrer en haut-parleur après une mention légale ou coller une transcription ; l'application rédige le compte rendu d'appel et note l'appel. Le conseiller modifie et valide tout.
  • Des limites par utilisateur : un administrateur fixe combien de nouveaux leads chaque personne peut prendre par jour, et une page des coûts montre ce qui a été dépensé.

Les chiffres

  • 70 / 100la note qu'il faut à un lead pour compter comme qualifié
  • 46points d'entrée serveur derrière les écrans
  • 101cas d'auto-vérification dans un seul script
  • 209commits, du 24 septembre au 9 novembre 2026

Chaque chiffre ci-dessus est compté depuis les fichiers et l'historique du projet. Il n'y a ici aucun chiffre de leads, d'appels ou de chiffre d'affaires : ils appartiennent au client, et je ne les publie pas.

Ce que c'est, et ce que ce n'est pas

C'est un produit qui fonctionne, avec un seul client, pas une plateforme avec un marché derrière elle. Je n'ai aucun résultat commercial à montrer pour cette équipe, donc je n'en montre aucun.

Une partie de ce qui est listé plus haut est construite et attend encore sa mise en production, et la liaison avec le système téléphonique du bureau a été écrite à partir de la documentation du fournisseur : elle n'a jamais reçu un vrai appel.

Il n'y a ni framework de test automatisé ni déploiement automatique : un script d'auto-vérification, un build, une vérification des types et un coup d'œil dans un navigateur en largeur de téléphone, puis une mise en production à la main. L'interface n'existe qu'en français.

Ce que je ferais autrement : automatiser la mise en production dès la première semaine. Des fonctionnalités terminées en octobre attendaient encore une mise en production manuelle en novembre.

Stack technique

  • Next.js
  • TypeScript
  • Claude API
  • Google Speech-to-Text
  • Google Places API
  • Firebase Auth
  • Firestore
  • Cloud Storage
  • Firebase App Hosting
  • Tailwind CSS

À voir

Vous voulez la même chose ?

Dites-moi ce que vous construisez, ou ce que vous faites encore à la main, et je vous dirai comment je m'y prendrais. Sans engagement.