Extraction d'emploi alimentée par AI et générateur de courriels à froid
Ce projet tire parti d'outils et de cadres d'IA de pointe pour automatiser le processus d'extraction des offres d'emploi à partir des pages Web et de générer des e-mails de froid personnalisés pour les applications d'emploi en fonction de la saisie des utilisateurs et d'un portefeuille personnalisable de compétences. Il intègre LLM (modèle d'apprentissage des langues), les invites Langchain, le grattage Web et les bases de données vectorielles pour rationaliser le processus de bout en bout de la création d'applications d'emploi.
Caractéristiques
- Stracage Web: extrait automatiquement les affectations de travaux à partir de pages Web dynamiques à l'aide
WebBaseLoader et nettoie les données extraites pour éliminer le bruit. - Extraction de la publication de l'emploi: utilise les chaînes invites LLM de Langchain pour extraire et formater les détails du travail pertinents (rôle, expérience, compétences, description) dans des objets JSON valides.
- Emails froids personnalisés: génère des e-mails froids sur mesure à l'aide d'un LLM alimenté par GROQ, personnalisable avec les compétences du candidat et les liens de portefeuille pertinents.
- Intégration de la base de données vectorielle: stocke les métadonnées de la pile technologique et du portefeuille à l'aide de ChromAdB pour une requête efficace des liens pertinents pour l'e-mail froid.
- Génération par e-mail dynamique: crée des e-mails personnalisés et axés sur les résultats qui s'alignent sur les descriptions de travail et mettent en évidence l'expérience et les projets les plus pertinents.
Technologies utilisées
- LLM Intégration (GROQ): ChatGroq (LLAMA-3.1-70B) pour la génération de texte à haute performance.
- Langchain: utilisé pour créer des modèles d'invite dynamiques et des LLM de chaînage pour générer des réponses.
- FLASK: Backend Server pour gérer les demandes de génération de messagerie et gérer le grattage de travail et l'interaction LLM.
- React.js: frontend pour la collecte des entrées utilisateur (par exemple, nom d'utilisateur) et déclencheur le processus de génération de messagerie.
- ChromAdb: base de données vectorielle pour le stockage et la requête des métadonnées efficaces.
- PANDAS: Utilisé pour gérer les données CSV du portefeuille et les traiter pour le stockage dans ChromAdB.
- Flask-Cors: activer les COR pour le backend Flask.
Instructions de configuration
Condition préalable
- Python 3
- Node.js et NPM (pour React Frontend)
- Clé API GROQ (pour l'intégration LLM)
Installation
Clone le référentiel:
git clone https://github.com/IMRANDIL/cold_email_generator_llm.git
cd cold_email_generator_llm
Configuration du backend (FLASK):
- Créer et activer un environnement virtuel:
python3 -m venv venv
source venv/bin/activate
- Installez les dépendances Python requises:
pip install -r requirements.txt
- Configurer des variables d'environnement pour la clé API GROQ:
export GROQ_API_KEY= " your-api-key "
- Démarrez le serveur FLASK:
Configuration du frontend (React):
- Accédez au répertoire
frontend : - Installez les dépendances:
- Démarrez le serveur de développement React:
Usage
- Visitez l'interface Frontend pour saisir le nom d'utilisateur et déclenchez le processus de génération de messagerie.
- Le backend grattera les affectations de l'emploi, les traitera avec des invites Langchain, interrogera la base de données vectorielle et générera des e-mails froids personnalisés pour chaque emploi.
- Les e-mails sont renvoyés au format JSON et sont affichés dans un bloc de code bien formulé avec une fonctionnalité "Copier dans le presse-papiers".
Exemple de sortie
{
"subject" : " Application for Lead Software Engineer at XYZ Inc. " ,
"body" : " Dear Hiring Manager, I am writing to express my interest in the Lead Software Engineer position... "
}Améliorations futures
- Stracage Web dynamique: étendre les capacités de grattage Web pour gérer des sites Web plus complexes et dynamiques de publication de travaux.
- Interrogation avancée: améliorez le mécanisme de requête de la base de données vectorielle pour gérer plusieurs ensembles de compétences plus efficacement.
- Améliorations de l'interface utilisateur: Améliorez davantage le frontend React.js pour une meilleure expérience utilisateur et une meilleure prise en charge de plusieurs modèles de messagerie.
- Intégration multiple de l'API: explorez l'intégration avec d'autres modèles LLM (OpenAI, etc.) pour une polyvalence accrue.
Licence
Ce projet est autorisé sous la licence du MIT. Voir le fichier de licence pour plus de détails.