Ce script Python permet de détecter automatiquement la publication de nouvelles offres de VIE (Volontariat International en Entreprise) postées sur le site Business France mon-vie-via.businessfrance.fr et d'envoyer une notification enrichie via un Webhook Discord.
- Détection automatique : Interroge l'API de Business France pour détecter les nouvelles offres
- Analyse IA avec Gemini : Génère automatiquement une description du poste et des mots-clés pour votre CV
- Tri chronologique : Les offres sont envoyées dans l'ordre de leur publication
- Détails complets : Récupère toutes les informations de l'offre (dates, indemnité, localisation, télétravail, etc.)
- Notifications Discord riches : Envoie des embeds Discord formatés avec toutes les informations utiles
- Logs détaillés : Affichage de logs horodatés pour suivre l'exécution
- Gestion d'erreurs robuste : Fallback automatique si l'API Gemini échoue
- Variables d'environnement : Configuration via fichier .env sécurisé
- Recherche LinkedIn : Génère automatiquement un lien de recherche LinkedIn pour le contact
- Python 3.7 ou supérieur
- Compte Google Cloud avec API Gemini activée (optionnel, pour l'analyse IA)
- Webhook Discord configuré
-
Clonez ce dépôt :
git clone https://github.com/PRFRQ/VIE.git cd VIE -
Installez les dépendances :
pip install -r requirements.txt
-
Créez un fichier
.envà la racine du projet :cp .env.example .env
-
Configurez vos variables d'environnement dans
.env:DISCORD_WEBHOOK_URL=votre_webhook_discord_ici GEMINI_API_KEY=votre_cle_api_gemini_ici # Optionnel SEARCH_QUERY=engineer # Mot-clé de recherche SEARCH_LIMIT=5000 # Nombre max d'offres
- DISCORD_WEBHOOK_URL (obligatoire) : URL de votre webhook Discord
- GEMINI_API_KEY (optionnel) : Clé API Google Gemini pour l'analyse IA des offres
- SEARCH_QUERY (défaut: "engineer") : Mot-clé de recherche pour filtrer les offres
- SEARCH_LIMIT (défaut: 5000) : Nombre maximum d'offres à récupérer
Pour modifier les zones géographiques ou d'autres critères, éditez directement le payload dans vie.py :
"geographicZones": ["2", "3", "4", "6", "5", "8"], # Tous les continents
"countriesIds": [], # IDs de pays spécifiques
"activitySectorId": [], # Secteurs d'activité"2": Europe"3": Asie"4": Amérique du Nord"5": Amérique du Sud"6": Afrique"8": Océanie
- Créez un compte sur Google AI Studio
- Générez une clé API
- Ajoutez la clé dans votre fichier
.env
Si l'API Gemini n'est pas configurée ou échoue, les offres seront quand même envoyées sans l'analyse IA.
- Le script interroge l'API
/api/Offers/searchavec les critères configurés - Il extrait les IDs des offres retournées
- Pour chaque nouvelle offre détectée :
- Récupère les détails complets via l'API
/api/Offers/details/{id} - Analyse l'offre avec Gemini IA pour générer une description et des mots-clés CV
- Formate les données (dates au format DD/MM/YYYY, nom du contact, etc.)
- Récupère les détails complets via l'API
- Trie les offres par ordre chronologique de publication
- Envoie les notifications Discord dans l'ordre chronologique
- Sauvegarde les IDs traités dans
ids.txt
python3 vie.pyConfigurez un cron job pour une vérification automatique :
crontab -eExemples de configurations :
- Toutes les 10 minutes :
*/10 * * * * /usr/bin/python3 /chemin/vers/vie.py >> /chemin/vers/vie.log 2>&1 - Toutes les heures :
0 * * * * /usr/bin/python3 /chemin/vers/vie.py >> /chemin/vers/vie.log 2>&1 - Tous les jours à 9h :
0 9 * * * /usr/bin/python3 /chemin/vers/vie.py >> /chemin/vers/vie.log 2>&1
Utilisez le Planificateur de tâches Windows :
- Ouvrez le Planificateur de tâches
- Créez une nouvelle tâche
- Configurez le déclencheur (ex: toutes les 10 minutes)
- Action : Démarrer un programme →
python.exeavec argument/chemin/vers/vie.py
-
Depuis un salon textuel Discord, accédez à ses paramètres
-
Rendez-vous dans l'onglet Intégrations
-
Cliquez sur Webhooks puis Nouveau Webhook
-
Configurez le nom et l'icône du webhook
-
Copiez l'URL du webhook
-
Collez l'URL dans le fichier
vie.pyà la ligne 10
Chaque nouvelle offre génère une notification Discord contenant :
- 🏭 Entreprise : Nom de l'organisation
- 🌍 Pays : Pays de la mission
- 🏙️ Ville : Ville d'affectation
- 📝 Description IA : Résumé automatique du poste (via Gemini)
- 🔑 Mots-clés CV : Compétences à mettre en avant dans votre CV
- 📅 Durée : Durée de la mission en mois
- 🎬 Début : Date de début de mission (format DD/MM/YYYY)
- 🏁 Fin : Date de fin de mission (format DD/MM/YYYY)
- 📧 Email : Contact de l'entreprise
- 🌐 Business France : Lien vers l'offre complète
- 🔗 LinkedIn : Recherche automatique du contact
- 💼 Télétravail : Disponibilité du télétravail
- 💵 Indemnité : Montant mensuel en euros
- 📆 Date de publication : Date de mise en ligne de l'offre
- ✅ Analyse IA avec Google Gemini : Description automatique et mots-clés CV
- ✅ Tri chronologique : Offres envoyées dans l'ordre de publication
- ✅ Variables d'environnement : Configuration sécurisée via fichier .env
- ✅ Formatage des dates : Format français DD/MM/YYYY
- ✅ Fallback automatique : Notifications envoyées même si l'IA échoue
- ✅ Rate limiting Discord : Délai de 1.5s entre chaque notification
- ✅ Logs détaillés : Suivi complet de l'exécution avec timestamps
- ✅ Gestion d'erreurs robuste : Timeouts, erreurs API, champs manquants
VIE/
├── vie.py # Script principal
├── ids.txt # IDs des offres déjà traitées (auto-généré)
├── .env # Configuration (à créer depuis .env.example)
├── .env.example # Exemple de configuration
├── .gitignore # Fichiers à ignorer par git
├── requirements.txt # Dépendances Python
└── README.md # Documentation
- Vérifiez que
DISCORD_WEBHOOK_URLest correctement configuré dans.env - Assurez-vous que le webhook Discord n'a pas été supprimé
- Consultez les logs pour identifier les erreurs
- Vérifiez que
GEMINI_API_KEYest correctement configuré dans.env - Vérifiez votre quota API sur Google AI Studio
- Note : Les offres sont quand même envoyées sans l'analyse IA
- Vérifiez votre connexion Internet
- L'API Business France peut être temporairement indisponible
- L'API Gemini peut avoir des limites de taux
Ce projet est open source et disponible sous licence MIT.
Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.
Ce script utilise l'API publique de Business France et l'API Google Gemini. Veillez à :
- Respecter les conditions d'utilisation des deux APIs
- Ne pas surcharger les APIs avec des requêtes trop fréquentes
- Garder vos clés API confidentielles (fichier
.envnon versionné) - Respecter les quotas d'utilisation de l'API Gemini

