The Cold Email Synthesizer is an AI-powered web application designed to help businesses generate tailored cold emails for outreach based on a provided context, job requirements, and portfolio. The app leverages advanced NLP (Natural Language Processing) techniques to extract information from webpages and generate effective emails using AI. It features a clean, user-friendly interface with custom styling for an engaging user experience.
- Context Initialization: Define your company's context, services, and offerings to guide email generation.
- Portfolio Synchronization: Upload your portfolio in CSV format to link relevant project experiences with job requirements.
- AI-Driven Email Generation: Automatically extract job requirements from a target webpage and generate a custom cold email.
- Custom Styling: A futuristic theme to make the interface visually appealing.
- Error Handling: Comprehensive error handling and logging to ensure a smooth user experience.
-
Frontend:
- Streamlit for the web interface and user interaction.
- Custom CSS for a unique and engaging user experience.
-
Backend:
- Python: Core language for logic and AI integration.
- LangChain: For AI processing and job requirement extraction.
- ChromaDB: As a vector database for storing and querying skills and portfolios.
- WebBaseLoader: For extracting webpage content.
-
File Handling:
Pandas: For processing uploaded CSV files and portfolio data.ioandcsv: For handling file uploads and downloads.
Follow these steps to set up the Cold Email Synthesizer locally:
-
Clone the Repository:
git clone https://github.com/your-username/Cold_Email_Generator.git cd Cold_Email_Generator -
Set Up a Virtual Environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Run the Application:
streamlit run main.py
-
Access the Application:
- Open your browser and navigate to
http://localhost:8501.
- Open your browser and navigate to
-
Open the application in your browser.
-
Navigate to the Configuration Matrix tab.
-
Provide a detailed description of your company and its offerings in the "Initialize Your Context" text area.
Example:We are AdityaTechLabs, a leading AI consulting firm specializing in automation and process optimization for businesses of all sizes. -
Optionally, click the "Access Example Context" button to load a pre-defined example.
-
Upload your portfolio file in CSV format via the "Upload Your Portfolio" section.
- File format:
Techstack,Links React | Node.js | MongoDB,https://example.com/react-portfolio Angular | .NET | SQL Server,https://example.com/angular-portfolio
- File format:
-
Ensure the file contains two columns:
Techstack: Technologies used in the project, separated by|.Links: URL pointing to the project details.
-
Review errors, if any, and correct the file before re-uploading.
-
Once uploaded successfully:
- Preview and edit the data in the Portfolio Preview section.
- Click "Commit Synchronization" to save the portfolio data.
-
Download the example portfolio template if needed by clicking "Download Example Template".
- Switch to the Email Synthesizer tab.
- Enter the target webpage URL where job requirements are listed.
- Example:
https://example.com/job-posting
- Example:
- Click "Synthesize Email".
- The AI will:
- Extract job details from the URL.
- Match job requirements with your portfolio.
- Generate a cold email using the context and matched portfolio items.
- The AI will:
- Review the generated email under the "Synthesized Cold Email" section.
- Copy the email for use.
Scenario:
AdityaTechLabs wants to apply for a project requiring AI-based process automation.
- Context:
We are AdityaTechLabs, experts in AI automation solutions for medium to large enterprises. Our solutions reduce operational costs by up to 40%. - Portfolio:
- Uploaded a CSV with projects in AI, automation, and software development.
- Target URL:
https://client-website.com/ai-project-requirements - Outcome:
- Generated an email emphasizing AdityaTechLabs' expertise in automation, referencing relevant portfolio projects.
-
Error: "Portfolio Synchronization Failed":
- Ensure the uploaded file has exactly two columns:
TechstackandLinks. - Ensure the
Techstackfield contains technologies separated by|. - Ensure the
Linksfield contains valid URLs.
- Ensure the uploaded file has exactly two columns:
-
Error: "Target Web Page URL Required":
- Verify that you have entered a valid URL in the target URL field.
-
"No Jobs Could Be Extracted" Warning:
- Check the target webpage URL to ensure it contains clear job descriptions.
-
General Issues:
- Check the application logs for detailed error messages.
- Ensure all dependencies are installed and up to date.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or features.
Developed by Aditya Nalawade | GitHub