-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.py
More file actions
146 lines (119 loc) · 4.66 KB
/
setup.py
File metadata and controls
146 lines (119 loc) · 4.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
import os
import pandas as pd
def setup_project():
"""Setup the Cold Email Generator project structure"""
# Create necessary directories
directories = ["resources", "chroma_db", "templates", "static"]
for directory in directories:
os.makedirs(directory, exist_ok=True)
print(f"Created directory: {directory}")
# Create default portfolio CSV
portfolio_data = {
'Techstack': [
'React, Node.js, MongoDB',
'Python, FastAPI, PostgreSQL',
'AWS, Docker, Kubernetes',
'Machine Learning, TensorFlow, PyTorch',
'JavaScript, HTML5, CSS3, Bootstrap',
'Java, Spring Boot, MySQL',
'Python, Django, Redis, Celery',
'Vue.js, Express.js, SQLite',
'Flutter, Dart, Firebase',
'Angular, TypeScript, GraphQL',
'PHP, Laravel, Apache',
'Ruby on Rails, PostgreSQL',
'Go, Gin, Docker',
'C#, .NET Core, SQL Server',
'Scala, Akka, Cassandra'
],
'Links': [
'https://github.com/example/ecommerce-platform',
'https://github.com/example/api-gateway-microservices',
'https://github.com/example/cloud-infrastructure-automation',
'https://github.com/example/ml-recommendation-system',
'https://github.com/example/responsive-web-dashboard',
'https://github.com/example/enterprise-inventory-system',
'https://github.com/example/real-time-chat-application',
'https://github.com/example/task-management-suite',
'https://github.com/example/mobile-banking-app',
'https://github.com/example/analytics-dashboard',
'https://github.com/example/cms-blog-platform',
'https://github.com/example/social-media-platform',
'https://github.com/example/payment-processing-api',
'https://github.com/example/healthcare-management-system',
'https://github.com/example/data-pipeline-framework'
]
}
df = pd.DataFrame(portfolio_data)
df.to_csv('resources/my_portfolio.csv', index=False)
print("Created default portfolio CSV")
# Create .env template
env_template = """# Groq API Configuration
GROQ_API_KEY=your_groq_api_key_here
# Optional: Other configurations
DEBUG=True
LOG_LEVEL=INFO
"""
with open('.env.template', 'w') as f:
f.write(env_template)
print("Created .env template")
# Create README
readme_content = """# Cold Email Generator
A powerful tool for service companies to streamline business outreach by generating personalized cold emails based on job listings.
## Features
- **Web Scraping**: Extract job listings from company career pages
- **AI-Powered**: Uses Llama 3.1 LLM via Groq for intelligent email generation
- **Portfolio Integration**: ChromaDB-powered portfolio matching
- **User-Friendly**: Streamlit web interface
- **Customizable**: Upload your own portfolio and templates
## Setup
1. Install dependencies:
```bash
pip install -r requirements.txt
```
2. Set up the project:
```bash
python setup.py
```
3. Get your Groq API key from https://console.groq.com/
4. Run the application:
```bash
streamlit run app.py
```
## Usage
1. Enter your Groq API key in the sidebar
2. Input a company's career page URL
3. Extract job listings automatically
4. Generate personalized cold emails for each position
5. Download and use the generated emails
## Project Structure
```
cold-email-generator/
├── app.py # Main Streamlit application
├── requirements.txt # Python dependencies
├── setup.py # Project setup script
├── resources/ # Portfolio and templates
│ └── my_portfolio.csv # Your portfolio data
├── chroma_db/ # ChromaDB vector database
└── demo.html # Demo HTML file
```
## Technologies Used
- **Llama 3.1 LLM**: Advanced language model for email generation
- **Groq**: High-performance inference platform
- **LangChain**: Framework for LLM applications
- **Streamlit**: Web application framework
- **ChromaDB**: Vector database for portfolio matching
- **BeautifulSoup**: Web scraping capabilities
## License
MIT License
"""
with open('README.md', 'w') as f:
f.write(readme_content)
print("Created README.md")
print("\n✅ Project setup complete!")
print("\nNext steps:")
print("1. Install dependencies: pip install -r requirements.txt")
print("2. Get your Groq API key from https://console.groq.com/")
print("3. Run the app: streamlit run app.py")
if __name__ == "__main__":
setup_project()