Adrien Guillon
Active
·PythonFastAPISQLAlchemyPostgreSQL

Corpus Intel

Plateforme d'intelligence économique 100 % sources publiques (Etalab 2.0) : 1,17 M sociétés françaises, 472 k offres d'emploi, 17 ans de bilans BCE/INPI, marchés publics, score de pérennité 0-100. Trois interfaces (candidat, B2B intelligence, admin) sur un même socle RBAC.

1,17 M
Sociétés FR
472 k
Offres d'emploi
15
Scrapers actifs
17 ans
Historique bilans

Problème

Les données du marché du travail français sont fragmentées entre une vingtaine de sources publiques (INSEE, INPI, Bodacc, France Travail, ADEME) et plusieurs APIs payantes (Pappers, Société.com). Les agrégateurs commerciaux ferment leur catalogue, scrapent LinkedIn/Indeed au mépris du droit sui generis (sanction Kaspr de 240 k€ en décembre 2024), et facturent ce qui est en réalité de la donnée publique. Aucune solution ouverte ne fusionne tout ça avec un scoring de pérennité et une couche d'observabilité RBAC.

Solution

Plateforme AGPLv3 qui agrège uniquement des sources publiques officielles et des ATS publics (Greenhouse, Lever, SmartRecruiters, Ashby, Recruitee). Un pipeline Gold en 9 étapes fusionne 7 connecteurs de référence (INSEE, INPI, Annuaire-Entreprises, Bodacc, Pappers, Société.com, SEC EDGAR) selon une priorité stricte. Trois interfaces RBAC servent candidats freemium, agences B2B et admin sur un même socle FastAPI + JWT, exposées en MCP-natif pour les agents IA.

Architecture

Scrapers : 15 sources actives (France Travail, Greenhouse, Lever, SmartRecruiters, WTTJ, Free-Work)
Pipeline Gold : dedup → NER → ROME → SIRET → health → fraud → INSEE → Pappers → SEC EDGAR
Connectors : INSEE, INPI, Annuaire-Entreprises, Bodacc, Pappers, Société.com, SEC EDGAR
API : FastAPI + JWT cookies httpOnly + RBAC à 3 rôles
Dashboard : Jinja2, design Fraunces + Inter + JetBrains Mono, dark mode persisté
DB : SQLAlchemy sur SQLite (WAL) ou PostgreSQL, migrations Alembic

Pivot stratégique

Le projet est né en interne sous le nom TalentPulse (lead gen B2B simple sur 3 APIs, 50 €/mois) puis a buté sur 4 conflits de marque. Le pivot vers Corpus Intel a accompagné un changement d'ambition : passer d'un outil de prospection à une plateforme d'intelligence économique multi-publics, AGPL-licensable, déposable INPI, et cohérente avec un positionnement éditorial.

Score de pérennité 0-100

Composite éditable utilisé à la fois pour le lead scoring B2B et le conseil de carrière candidat : ancienneté (+20), tendance CA (+20), effectif (+20), niveau CA (+15), rentabilité (+10), recrutement actif (+10), complétude (+5), avec un malus distressed (-50) déclenché par Bodacc (liquidation, redressement, sauvegarde). Recalculé à chaque enrich Gold.

Trois interfaces, un même socle

Rôle encodé dans le JWT et re-vérifié côté backend via require_b2b et require_role([...]). URLs strictement namespacées (/candidate/*, /b2b/*, /admin/*). L'interface candidat offre moteur d'offres, CV Match IA et kanban candidatures. La B2B Intelligence donne Intel Explorer, détection de stack technique et scoring pérennité. L'admin pilote les scrapers et l'audit.

Conformité juridique

Uniquement sources publiques officielles et ATS publics — pas de scraping LinkedIn, Indeed ou Pappers protégés par le droit sui generis (CPI L.342-1, sanction Kaspr 240 k€ déc. 2024). Table UserConsent avec audit IP et user-agent, opt-in explicite RGPD, respect des robots.txt avec polite delays par domaine, User-Agent identifiant SEC EDGAR conforme.

Stack complète

PythonFastAPISQLAlchemyPostgreSQLJWTRBACMCPINSEEFrance TravailAGPL v3