Kontakly GTM.
Moteur de prospection B2B autonome propulsé par l'IA qui trouve, qualifie et contacte les leads sans intervention humaine.

Le Bug de Dédoublonnement à Zéro Lead
Après les premiers cycles de traitement, les lancements suivants renvoyaient 0 lead. La cause était une requête de dédoublonnement trop agressive en base de données qui excluait toutes les entreprises déjà vues, y compris celles rejetées par l'IA. J'ai corrigé chirurgicalement la requête pour que seuls les prospects validés (is_prospect=True) bloquent les détections futures, maintenant les pistes rejetées visibles pour transparence dans le CRM sans polluer les scans.
Blocage Infini du Pipeline en Production (K8s Hangs)
L'étape d'enrichissement des contacts se bloquait indéfiniment sur le cluster Kubernetes. Avec 50 threads de crawling concurrents, une seule connexion TCP non fermée bloquait toute la file d'attente de ThreadPoolExecutor.map(). J'ai réécrit l'exécuteur pour appliquer des limites de temps strictes de 90 secondes sur chaque tâche Future et configuré un arrêt non bloquant avec cancel_futures=True, éliminant tout blocage.
Régression Silencieuse des Mots-Clés de Ciblage
Le scraper ABG retombait silencieusement sur les mots-clés génériques de l'axe solutions à cause d'une manipulation de sys.path capturée dans un bloc try/except. J'ai nettoyé les imports du projet en utilisant des imports relatifs Python standard, révélant la véritable erreur et rétablissant un ciblage dynamique précis par axe.
Perte Silencieuse de Leads en Exécution Parallèle
Lorsque les scrapers ABG et Freelancermap s'exécutaient en parallèle, le scraper ABG atteignait seul la limite de 250 leads. Une opération de découpe (slice) après fusion éliminait alors tous les leads de Freelancermap. J'ai supprimé cette limite globale superflue puisque chaque scraper gère déjà sa propre limite en amont.



Un écosystème d'accessibilité numérique en 3 tiers délivrant des solutions WCAG natives à grande échelle.