Intelligence de prospection d'entreprises - Application web pour rechercher, analyser et exporter les données d'entreprises françaises avec intelligence financière intégrée.
- Recherche avancée : Recherche d'entreprises par ville, code postal, rue ou nom d'entreprise via l'API INSEE Sirene officielle
- Enrichissement financier automatique : Scores de solvabilité, évaluation des risques, estimation de croissance et classification de viabilité
- Enrichissement IA optionnel : Intégration DeepSeek pour des analyses détaillées des entreprises
- Export CSV enrichi : Export avec jusqu'à 25 colonnes de données enrichies
- Système de cache intelligent : Cache en mémoire et sur disque pour optimiser les performances
- Streaming temps réel : Affichage des résultats en temps réel via WebSocket
- Filtres avancés : Filtrage par effectif, secteur, score, risque, viabilité, CA, croissance
- Interface moderne : Design sobre et professionnel adapté aux entreprises B2B
- Node.js >= 14.0.0
- npm >= 6.0.0
- Clé API INSEE Sirene (obtenue sur api.insee.fr)
- Clé API DeepSeek (optionnelle, obtenue sur platform.deepseek.com)
npm install- Copiez le fichier
env.exampleen.env:
cp env.example .env- Éditez le fichier
.envet configurez vos clés API :
# Port du serveur
PORT=3000
# API INSEE Sirene (OBLIGATOIRE)
INSEE_API_KEY=your_insee_api_key_here
INSEE_API_BASE_URL=https://api.insee.fr/api-sirene/3.11
# API DeepSeek (OPTIONNEL)
DEEPSEEK_API_KEY=your_deepseek_api_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
DEEPSEEK_MODEL=deepseek-chat
DEEPSEEK_ENABLED=true
# Configuration DeepSeek
DEEPSEEK_BATCH_SIZE=50
DEEPSEEK_DELAY_MS=1000
DEEPSEEK_MAX_RETRIES=3
# Limites de sécurité
MAX_COMPANIES=50000
MAX_PAGES=50
WARN_THRESHOLD=10000
# Configuration du cache (en heures)
CACHE_MAX_AGE_HOURS=24# Mode production
npm start
# Mode développement (avec nodemon)
npm run devL'application sera accessible sur http://localhost:3000
- Ouvrez votre navigateur et accédez à
http://localhost:3000 - Utilisez l'onglet Recherche Optimisée pour rechercher par :
- Ville
- Code postal
- Nom de rue
- Nom d'entreprise
- Configurez les filtres avancés selon vos besoins
- Lancez la recherche et visualisez les résultats en temps réel
- Exportez les résultats en CSV depuis la section "Fichiers CSV générés"
curl -X POST http://localhost:3000/search-optimized \
-H "Content-Type: application/json" \
-d '{
"postalCode": "75001",
"filters": {
"maxCompanies": 1000,
"scoreMin": 60,
"effectifMin": 10
}
}'curl -X POST http://localhost:3000/search-stream \
-H "Content-Type: application/json" \
-d '{
"location": "Paris",
"filters": {
"maxCompanies": 5000
},
"socketId": "your_socket_id"
}'prospectiq/
├── server.js # Serveur Express principal
├── package.json # Dépendances et scripts
├── .env # Variables d'environnement (à créer)
├── env.example # Exemple de configuration
├── .gitignore # Fichiers ignorés par Git
├── README.md # Documentation
├── public/ # Fichiers statiques
│ ├── index.html # Interface utilisateur
│ ├── style.css # Styles
│ └── script.js # Logique frontend
├── cache/ # Cache sur disque (généré automatiquement)
└── exports/ # Fichiers CSV exportés (généré automatiquement)
| Variable | Description | Défaut | Obligatoire |
|---|---|---|---|
PORT |
Port du serveur | 3000 |
Non |
INSEE_API_KEY |
Clé API INSEE Sirene | - | Oui |
INSEE_API_BASE_URL |
URL de base de l'API INSEE | https://api.insee.fr/api-sirene/3.11 |
Non |
DEEPSEEK_API_KEY |
Clé API DeepSeek | - | Non |
DEEPSEEK_ENABLED |
Activer DeepSeek | true |
Non |
DEEPSEEK_BATCH_SIZE |
Taille des lots DeepSeek | 50 |
Non |
DEEPSEEK_DELAY_MS |
Délai entre lots (ms) | 1000 |
Non |
MAX_COMPANIES |
Limite max d'entreprises | 50000 |
Non |
MAX_PAGES |
Limite max de pages API | 50 |
Non |
CACHE_MAX_AGE_HOURS |
Durée de validité du cache | 24 |
Non |
L'application inclut des limites de sécurité configurables pour éviter les surcharges :
- MAX_COMPANIES : Limite maximale d'entreprises par recherche (défaut: 50000)
- MAX_PAGES : Limite maximale de pages API par recherche (défaut: 50)
- WARN_THRESHOLD : Seuil d'avertissement pour les gros volumes (défaut: 10000)
Les fichiers CSV exportés contiennent les colonnes suivantes :
- SIRET
- SIREN
- Dénomination
- Code NAF
- Secteur d'activité
- Adresse complète
- Code postal
- Commune
- Nombre d'employés
- Date de création
- Ancienneté (années)
- Score de solvabilité (/100)
- Classe de risque
- Note de crédit
- Viabilité
- Croissance estimée
- CA estimé (€)
- État administratif
- Catégorie juridique 20-25. Colonnes DeepSeek (si enrichissement IA activé)
- Aucune clé API en dur : Toutes les clés API sont stockées dans des variables d'environnement
- Fichier .env ignoré : Le fichier
.envest exclu du contrôle de version via.gitignore - Limites de sécurité : Protection contre les requêtes excessives
- Validation des entrées : Validation des paramètres de recherche
- Backend : Node.js, Express.js
- WebSocket : Socket.IO pour le streaming temps réel
- HTTP Client : Axios pour les requêtes API
- CSV : csv-writer pour l'export
- Frontend : HTML5, CSS3, JavaScript vanilla
- APIs externes :
- INSEE Sirene (données officielles)
- DeepSeek (enrichissement IA optionnel)
POST /search-optimized- Recherche optimisée (recommandé)POST /search-stream- Recherche avec streaming WebSocket
GET /exports- Liste des fichiers CSV générésGET /download/:filename- Télécharger un fichier CSV
GET /- Page d'accueil de l'API avec documentation
Les contributions sont les bienvenues ! Pour contribuer :
- Fork le projet
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- API INSEE : Respectez les limites de taux de l'API INSEE Sirene
- DeepSeek : L'enrichissement IA peut consommer des crédits API. Surveillez votre quota.
- Cache : Le cache est valide pendant 24h par défaut. Ajustez
CACHE_MAX_AGE_HOURSselon vos besoins. - Limites : Les limites de sécurité sont importantes pour éviter les surcharges. Ne les désactivez pas sans précaution.
Pour toute question ou problème, veuillez ouvrir une issue sur GitHub.
- INSEE pour l'API Sirene officielle
- DeepSeek pour l'API d'enrichissement IA
- La communauté open source pour les outils utilisés
ProspectIQ - Intelligence de prospection d'entreprises © 2025