An AI-powered application that automatically generates personalized cold emails for job applications by analyzing job postings and matching them with relevant portfolio projects.
Writing personalized cold emails for job applications is time-consuming and often generic. This project solves that by automatically:
- Reading job requirements from web postings
- Identifying required skills and technologies
- Matching them with your portfolio projects
- Generating tailored cold emails with relevant portfolio attachments
- Web Scraping: Extract job requirements directly from job posting URLs
- AI-Powered Analysis: Uses LangChain and Groq to understand job requirements
- Smart Portfolio Matching: ChromaDB vector database queries to find best matching projects
- Automated Email Generation: Creates personalized cold emails with relevant portfolio links
- Streamlit UI: User-friendly web interface for easy interaction
- LangChain: Framework for building LLM applications
- LangChain Community: Additional LangChain integrations
- LangChain-Groq: Fast inference with Groq API
- Unstructured: Document processing and parsing
- WebBaseLoader: Web scraping and automation
- ChromaDB: Vector database for portfolio storage and retrieval
- Streamlit: Web application framework
- Pandas: Data manipulation and analysis
- Python-dotenv: Environment variable management
Cold_mail_generator/
├── .devcontainer/
├── app/
│ ├── __pycache__/
│ └── resources/
│ ├── my_portfolio.csv
│ ├── chains.py
│ ├── main.py
│ ├── portfolio.py
│ └── utils.py
├── VectorStore/
│ ├── 31259f34... (ChromaDB files)
│ └── chroma.sqlite3
├── .env
├── .gitignore
├── Cold_mail_generator.ipynb
└── requirement.txt
- Input: User pastes a job posting URL
- Scraping: WebBaseLoader extracts the job description and requirements
- Analysis: LangChain processes the text to identify key skills and technologies
- Matching: ChromaDB finds the most relevant portfolio projects based on required skills
- Generation: AI generates a personalized cold email incorporating matched portfolio items
- Output: User receives a tailored email ready to send
- Python 3.8+
- Groq API key
- Chrome browser (for Selenium)
- Clone the repository:
git clone https://github.com/KalashThakare/Cold_Mail_Generator.git
cd Cold_Mail_Generator- Install dependencies:
pip install -r requirement.txt- Set up environment variables:
cp .env.example .env
# Add your Groq API key to .env file- Run the application:
streamlit run app/main.py- Open the Streamlit web interface
- Paste the job posting URL in the input field
- Click "Generate Cold Email"
- Review the generated email with matched portfolio projects
- Copy and customize as needed before sending
This project provided hands-on experience with:
- Building end-to-end AI applications with LangChain
- Implementing vector databases for semantic search
- Web scraping with WebBaseLoader
- Creating interactive web apps with Streamlit
- Integrating multiple AI/ML technologies in a cohesive solution
Feel free to fork this project and submit pull requests for improvements!