SaaS B2B · programmes partenaires pour startups

Plateforme de repérage et de prospection de startups : des sources de lancement publiques à un premier contact personnel et vérifié

Un pipeline quotidien qui repère de jeunes startups dans des sources de lancement publiques, vérifie leurs contacts et mène une prospection personnalisée à débit limité, avec désinscriptions, suivi des réponses et transfert au CRM.

Client
Client confidentiel
Secteur
SaaS B2B · programmes partenaires pour startups
Année
2026
01 02 03

Le défi

Un éditeur SaaS propose son produit à des conditions spéciales à de jeunes startups, dans le cadre d'un programme dédié. Chaque jour, de nouvelles startups apparaissent sur des plateformes de lancement, dans des communautés de développeurs, dans des annuaires de startups et sur des sites régionaux, et les repérer à la main prend du temps. Les contacter n'était acceptable que si chaque message était personnel, envoyé dans des limites strictes, identifiait clairement l'expéditeur et pouvait être refusé par une simple réponse.

La solution

Nous avons construit un pipeline quotidien qui collecte les nouveaux lancements, explore le site web de chaque startup pour y trouver ses canaux de contact, vérifie les adresses, attribue un score au lead et met en file d'attente un premier message localisé et testé en A/B. L'envoi respecte des limites par jour, par heure et par domaine, avec une montée en charge progressive (warm-up). Les réponses et les rebonds sont lus via IMAP : toute réponse arrête la séquence, l'IA la classe et les leads positifs sont transmis au CRM du client. Les responsables travaillent dans un tableau de bord avec gestion des rôles : files d'approbation, gestion des modèles et des expéditeurs, statistiques par variante et export CSV.

Comment tout s'enchaîne

  1. 01 Collecter les nouveaux lancements
  2. 02 Explorer les sites, extraire les contacts
  3. 03 Vérifier les adresses
  4. 04 Scorer et dédoublonner
  5. 05 Validation par un responsable
  6. 06 Envoi personnel à débit limité
  7. 07 Suivi des réponses et transfert au CRM

Ce que nous avons livré

  • Connecteurs vers des plateformes de lancement publiques, des communautés de développeurs, des annuaires de startups et des sites régionaux
  • Robot d'exploration qui extrait les canaux de contact des sites web, avec rendu headless en option pour les sites entièrement en JavaScript
  • Validation et vérification des adresses e-mail, scoring et dédoublonnage des leads
  • Séquences de prospection localisées et testées en A/B, avec montée en charge progressive et limites d'envoi
  • Suivi des réponses et des rebonds via IMAP, classification des réponses par l'IA et transfert vers le CRM
  • Tableau de bord avec rôles (lecteur, responsable, administrateur), files d'approbation et statistiques par variante
  • Commande de vérification préalable qui contrôle le DNS de l'expéditeur (SPF, DMARC, MX), les identifiants et les limites avant la mise en service
  • Environ 160 tests automatisés exécutés en CI, ainsi que les migrations de schéma

Fonctionnalités

  • Exécutions quotidiennes idempotentes : clés uniques sur la source, le domaine, l'élément de file et le message envoyé, et réservation atomique qui empêche les doubles envois
  • Dédoublonnage par domaine normalisé, avec un délai minimal avant tout nouveau contact
  • Robot d'exploration qui respecte robots.txt, reste sur le domaine ciblé et applique des délais d'expiration et des limites de tentatives
  • Chaque modèle doit comporter une adresse postale et une ligne de désinscription, contrôlées à l'enregistrement
  • Demandes de désinscription reçues par réponse traitées automatiquement
  • Contacts de certaines juridictions orientés vers une vérification manuelle au lieu d'un envoi automatique
  • Montée en charge qui se fige et recule quand le taux de rebond augmente, avec synchronisation des statuts de distribution depuis le fournisseur d'e-mail
  • Phrases d'accroche rédigées par l'IA limitées à une ligne sans lien, avec une formule neutre de repli ; l'étiquette posée par l'IA ne remplace jamais celle d'un responsable
  • Tableau de bord en mode fail-closed, qui refuse de démarrer publiquement sans authentification ; mots de passe hachés, verrouillage après échecs de connexion et actions d'écriture réservées à certains rôles

Intégrations

  • API de vérification d'e-mails (OAuth 2.0, client credentials)
  • API REST du CRM du client (OAuth 2.0, client credentials)
  • Envoi SMTP et suivi des réponses et des rebonds via IMAP
  • Synchronisation des statuts de distribution depuis le fournisseur d'e-mail
  • API Google Gemini pour la classification des réponses et les phrases d'accroche

Technologies

  • Python 3.12
  • FastAPI
  • SQLAlchemy 2 + Alembic
  • PostgreSQL 16
  • Jinja2
  • httpx + BeautifulSoup
  • APScheduler
  • Playwright (headless Chromium)
  • Docker Compose
  • Nginx + Let's Encrypt
  • pytest
  • GitHub Actions

Résultat

La plateforme est en production chez le client. L'exécution quotidienne est idempotente : un redémarrage ne peut pas envoyer deux fois le même message. La plateforme est aussi devenue le socle commun de trois autres systèmes pour le même client, chacun exploité comme une instance isolée.

Un socle, quatre instances isolées

Cette plateforme est le socle de prospection de trois autres systèmes développés pour le même client : un moteur de sourcing d’agences partenaires, un système de réactivation d’affiliés et un moteur de recrutement d’affiliés. Chaque instance dispose de sa propre base de données, de son propre tableau de bord et de sa propre identité d’expéditeur : les données et la réputation d’envoi ne se mélangent jamais. Un seul élément est partagé, volontairement : une liste d’exclusion globale. Une désinscription, un refus ou un rebond enregistré par l’une des instances est respecté par toutes les autres.

Parlons de votre projet

Présentez-nous votre projet