{"id":30767947,"url":"https://github.com/sureshbeekhani/cold-email-automations","last_synced_at":"2026-04-12T02:36:28.390Z","repository":{"id":300347358,"uuid":"850545067","full_name":"SURESHBEEKHANI/Cold-Email-Automations","owner":"SURESHBEEKHANI","description":"A full-stack web application that automates the extraction of job postings from career websites and generates personalized cold emails using AI agents. Built with React frontend and FastAPI backend powered by CrewAI and LangChain.","archived":false,"fork":false,"pushed_at":"2025-06-21T06:11:25.000Z","size":1283,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-21T07:21:52.494Z","etag":null,"topics":["langchain","langchain-python","language-model","llama3","llm","llmmodel","nlp-machine-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SURESHBEEKHANI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-01T04:46:52.000Z","updated_at":"2025-06-21T06:16:48.000Z","dependencies_parsed_at":"2025-06-21T07:22:03.483Z","dependency_job_id":"7bfa5a4c-01df-458f-b702-ad4d79cd268e","html_url":"https://github.com/SURESHBEEKHANI/Cold-Email-Automations","commit_stats":null,"previous_names":["sureshbeekhani/cold-email-automations"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/SURESHBEEKHANI/Cold-Email-Automations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SURESHBEEKHANI%2FCold-Email-Automations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SURESHBEEKHANI%2FCold-Email-Automations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SURESHBEEKHANI%2FCold-Email-Automations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SURESHBEEKHANI%2FCold-Email-Automations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SURESHBEEKHANI","download_url":"https://codeload.github.com/SURESHBEEKHANI/Cold-Email-Automations/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SURESHBEEKHANI%2FCold-Email-Automations/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273666284,"owners_count":25146345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["langchain","langchain-python","language-model","llama3","llm","llmmodel","nlp-machine-learning"],"created_at":"2025-09-04T20:15:47.694Z","updated_at":"2026-04-12T02:36:23.352Z","avatar_url":"https://github.com/SURESHBEEKHANI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Cold Email Automations\n\nA full-stack web application that automates the extraction of job postings from career websites and generates personalized cold emails using AI agents. Built with React frontend and FastAPI backend powered by CrewAI and LangChain.\n\n![Cold Email Automation](https://img.shields.io/badge/Python-3.8+-blue.svg)\n![React](https://img.shields.io/badge/React-18.2.0-blue.svg)\n![FastAPI](https://img.shields.io/badge/FastAPI-0.100+-green.svg)\n![CrewAI](https://img.shields.io/badge/CrewAI-Latest-orange.svg)\n\n## 📋 Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Architecture](#architecture)\n- [Tech Stack](#tech-stack)\n- [Quick Start](#quick-start)\n- [Installation](#installation)\n- [Usage](#usage)\n- [API Documentation](#api-documentation)\n- [Development](#development)\n- [Contributing](#contributing)\n- [License](#license)\n\n## 🎯 Overview\n\nThis project combines web scraping, AI-powered job analysis, and automated email generation to streamline the process of reaching out to potential clients. The system uses multiple AI agents working together to:\n\n1. **Extract job postings** from career websites\n2. **Analyze job requirements** and match them with portfolio data\n3. **Generate personalized cold emails** using AI agents\n4. **Provide a modern web interface** for easy interaction\n\n## ✨ Features\n\n### 🔍 Job Extraction\n- **Web Scraping**: Extract job postings from any career website URL\n- **Text Processing**: Clean and structure raw web content\n- **Job Analysis**: Identify roles, skills, experience requirements, and work types\n- **JSON Output**: Structured data extraction for further processing\n\n### 🤖 AI-Powered Email Generation\n- **Multi-Agent System**: Uses CrewAI with specialized agents for different tasks\n- **Portfolio Matching**: Automatically matches relevant portfolio projects with job requirements\n- **Personalized Content**: Generates context-aware, professional cold emails\n- **Skill-Based Recommendations**: Suggests relevant team compositions and experience\n\n### 🌐 Modern Web Interface\n- **React Frontend**: Clean, responsive UI built with React 18\n- **Tailwind CSS**: Modern styling with utility-first approach\n- **Real-time Processing**: Live email generation with progress indicators\n- **History Tracking**: Save and review previously generated emails\n\n### 🔧 Backend API\n- **FastAPI**: High-performance, async API with automatic documentation\n- **CORS Support**: Cross-origin resource sharing enabled\n- **Error Handling**: Comprehensive error handling and logging\n- **Health Checks**: API health monitoring endpoints\n\n## 🏗️ Architecture\n\n```\n┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐\n│   React         │    │   FastAPI       │    │   CrewAI        │\n│   Frontend      │◄──►│   Backend       │◄──►│   Agents        │\n└─────────────────┘    └─────────────────┘    └─────────────────┘\n         │                       │                       │\n         ▼                       ▼                       ▼\n┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐\n│   Tailwind CSS  │    │   Web Scraping  │    │   ChromaDB      │\n│   UI Components │    │   \u0026 Cleaning    │    │   Vector Store  │\n└─────────────────┘    └─────────────────┘    └─────────────────┘\n```\n\n### Agent Roles\n\n1. **Job Analyst Agent**: Extracts and structures job postings\n2. **Portfolio Analyst Agent**: Matches portfolio data with requirements\n3. **Email Writer Agent**: Generates personalized cold emails\n4. **Team Coordinator Agent**: Orchestrates the entire workflow\n\n## 🛠️ Tech Stack\n\n### Frontend\n- **React 18.2.0** - Modern UI framework\n- **React Router DOM** - Client-side routing\n- **Tailwind CSS** - Utility-first CSS framework\n- **Axios** - HTTP client for API calls\n- **Lucide React** - Icon library\n\n### Backend\n- **FastAPI** - Modern, fast web framework\n- **Uvicorn** - ASGI server\n- **Pydantic** - Data validation\n- **CrewAI** - Multi-agent orchestration\n- **LangChain** - LLM framework\n- **ChatGroq** - Language model service\n- **ChromaDB** - Vector database\n- **Pandas** - Data manipulation\n- **Selenium** - Web scraping\n\n### AI/ML\n- **Groq API** - High-performance LLM inference\n- **Vector Embeddings** - Semantic search and matching\n- **Prompt Engineering** - Structured AI interactions\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Python 3.8+\n- Node.js 16+\n- Groq API key\n\n### 1. Clone the Repository\n```bash\ngit clone https://github.com/yourusername/Cold-Email-Automations.git\ncd Cold-Email-Automations\n```\n\n### 2. Backend Setup\n```bash\ncd backend\npython -m venv .venv\nsource .venv/bin/activate  # On Windows: .venv\\Scripts\\activate\npip install -r requirements.txt\n\n# Create .env file\necho \"GROQ_API_KEY=your_groq_api_key_here\" \u003e .env\n\n# Start the backend server\npython main.py\n```\n\n### 3. Frontend Setup\n```bash\ncd frontend\nnpm install\nnpm start\n```\n\n### 4. Access the Application\n- Frontend: http://localhost:3000\n- Backend API: http://localhost:8000\n- API Docs: http://localhost:8000/docs\n\n## 📦 Installation\n\n### Detailed Backend Installation\n\n1. **Environment Setup**\n```bash\ncd backend\npython -m venv .venv\nsource .venv/bin/activate  # Windows: .venv\\Scripts\\activate\n```\n\n2. **Install Dependencies**\n```bash\npip install -r requirements.txt\n```\n\n3. **Environment Variables**\nCreate a `.env` file in the backend directory:\n```env\nGROQ_API_KEY=your_groq_api_key_here\n```\n\n4. **Run Tests**\n```bash\npython test.py\n```\n\n### Detailed Frontend Installation\n\n1. **Install Dependencies**\n```bash\ncd frontend\nnpm install\n```\n\n2. **Configuration**\nThe frontend is configured to proxy API calls to `http://localhost:8000` (see `package.json`).\n\n3. **Start Development Server**\n```bash\nnpm start\n```\n\n## 💻 Usage\n\n### Web Interface\n\n1. **Navigate to the Application**\n   - Open http://localhost:3000 in your browser\n\n2. **Generate Emails**\n   - Go to the \"Generate Emails\" page\n   - Enter a career website URL or paste a job description\n   - Click \"Generate Emails\"\n   - View the generated personalized cold emails\n\n3. **Review History**\n   - Check the \"History\" page to see previously generated emails\n\n### API Usage\n\n#### Generate Emails from URL\n```bash\ncurl -X POST \"http://localhost:8000/generate-emails\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"url\": \"https://example.com/careers\"\n  }'\n```\n\n#### Generate Emails from Job Description\n```bash\ncurl -X POST \"http://localhost:8000/generate-emails\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"job_description\": \"We are looking for a Python developer with 3+ years of experience in machine learning and data analysis.\"\n  }'\n```\n\n#### Health Check\n```bash\ncurl \"http://localhost:8000/health\"\n```\n\n## 📚 API Documentation\n\n### Endpoints\n\n#### `POST /generate-emails`\nGenerate cold emails from job URLs or descriptions.\n\n**Request Body:**\n```json\n{\n  \"url\": \"https://example.com/careers\",\n  \"job_description\": \"Optional job description text\"\n}\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"message\": \"Successfully generated 2 emails\",\n  \"emails\": [\n    {\n      \"job_title\": \"Senior Python Developer\",\n      \"job_description\": \"We are looking for...\",\n      \"required_skills\": [\"Python\", \"Django\", \"Machine Learning\"],\n      \"experience_level\": \"3+ years\",\n      \"email_content\": \"Dear Hiring Manager...\",\n      \"portfolio_matches\": [\"project1\", \"project2\"],\n      \"location\": \"Remote\",\n      \"work_type\": \"Full-time\"\n    }\n  ],\n  \"total_jobs\": 2\n}\n```\n\n#### `GET /health`\nHealth check endpoint.\n\n**Response:**\n```json\n{\n  \"status\": \"healthy\",\n  \"message\": \"API is running\"\n}\n```\n\n#### `GET /`\nAPI information endpoint.\n\n**Response:**\n```json\n{\n  \"message\": \"Cold Email Generator API\",\n  \"version\": \"1.0.0\",\n  \"usage\": \"POST /generate-emails with URL or job_description\"\n}\n```\n\n## 🔧 Development\n\n### Project Structure\n```\nCold-Email-Automations/\n├── backend/\n│   ├── src/\n│   │   ├── agents.py          # CrewAI agents implementation\n│   │   ├── portfolio.py       # Portfolio management\n│   │   ├── prompt.py          # Prompt templates\n│   │   └── utils.py           # Utility functions\n│   ├── main.py                # FastAPI application\n│   ├── requirements.txt       # Python dependencies\n│   └── test.py                # Test suite\n├── frontend/\n│   ├── src/\n│   │   ├── components/        # React components\n│   │   ├── pages/            # Page components\n│   │   └── App.js            # Main app component\n│   ├── package.json          # Node.js dependencies\n│   └── tailwind.config.js    # Tailwind configuration\n└── README.md                 # This file\n```\n\n### Running Tests\n```bash\n# Backend tests\ncd backend\npython test.py\n\n# Frontend tests\ncd frontend\nnpm test\n```\n\n### Code Style\n- **Python**: Follow PEP 8 guidelines\n- **JavaScript**: Use ESLint configuration\n- **React**: Follow React best practices\n\n## 🤝 Contributing\n\n1. **Fork the repository**\n2. **Create a feature branch**\n   ```bash\n   git checkout -b feature/amazing-feature\n   ```\n3. **Commit your changes**\n   ```bash\n   git commit -m 'Add some amazing feature'\n   ```\n4. **Push to the branch**\n   ```bash\n   git push origin feature/amazing-feature\n   ```\n5. **Open a Pull Request**\n\n### Development Guidelines\n- Write clear commit messages\n- Add tests for new features\n- Update documentation as needed\n- Follow the existing code style\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](backend/LICENSE) file for details.\n\n## 🆘 Support\n\nIf you encounter any issues:\n\n1. Check the [Architecture Fixes](backend/ARCHITECTURE_FIXES.md) document for known issues\n2. Review the API documentation at http://localhost:8000/docs\n3. Check the logs for detailed error messages\n4. Open an issue on GitHub with detailed information\n\n## 🙏 Acknowledgments\n\n- **CrewAI** for the multi-agent orchestration framework\n- **LangChain** for the LLM integration tools\n- **Groq** for high-performance language model inference\n- **FastAPI** for the modern Python web framework\n- **React** for the frontend framework\n\n---\n\n**Made with ❤️ for automating cold email outreach** ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsureshbeekhani%2Fcold-email-automations","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsureshbeekhani%2Fcold-email-automations","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsureshbeekhani%2Fcold-email-automations/lists"}