Manikanta3776 commited on
Commit
8c30cd3
Β·
verified Β·
1 Parent(s): 8536f4a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +93 -12
app.py CHANGED
@@ -8,16 +8,22 @@ from utils import clean_text
8
  chain = Chain()
9
  portfolio = Portfolio()
10
 
 
 
 
11
  def create_streamlit_app(llm, portfolio, clean_text):
12
  st.set_page_config(layout="wide", page_title="Cold Email Generator", page_icon="πŸ“§")
13
  st.title("πŸ“§ Cold Mail Generator")
14
 
15
  # User Inputs
16
  url_input = st.text_input("Enter a Job URL:", value="https://atliq.keka.com/careers/jobdetails/70996")
17
- username = st.text_input("Your Name (Default: John)", value="John")
18
- client_name = st.text_input("Recipient's Name (Default: Hiring Manager)", value="Hiring Manager")
 
 
 
19
 
20
- submit_button = st.button("Generate Cold Email")
21
 
22
  if submit_button:
23
  try:
@@ -53,16 +59,17 @@ def create_streamlit_app(llm, portfolio, clean_text):
53
  skills_list = job.get("skills", [])
54
  portfolio_links = [link for link in portfolio.query_links(skills_list) if link]
55
 
56
- # Generate cold email
57
- email = llm.write_mail(job, portfolio_links, username, client_name)
58
-
59
- # Debugging: Show raw email output
60
- st.write(f"**Generated Email:**")
61
 
62
- if email:
63
- st.code(email, language="markdown")
64
- else:
65
- st.error("⚠️ Email generation failed.")
 
 
 
 
66
 
67
  except Exception as e:
68
  st.error(f"❌ An Error Occurred: {str(e)}")
@@ -70,3 +77,77 @@ def create_streamlit_app(llm, portfolio, clean_text):
70
 
71
  if __name__ == "__main__":
72
  create_streamlit_app(chain, portfolio, clean_text)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  chain = Chain()
9
  portfolio = Portfolio()
10
 
11
+ # Define available email styles
12
+ EMAIL_STYLES = ["Formal", "Casual", "Persuasive"]
13
+
14
  def create_streamlit_app(llm, portfolio, clean_text):
15
  st.set_page_config(layout="wide", page_title="Cold Email Generator", page_icon="πŸ“§")
16
  st.title("πŸ“§ Cold Mail Generator")
17
 
18
  # User Inputs
19
  url_input = st.text_input("Enter a Job URL:", value="https://atliq.keka.com/careers/jobdetails/70996")
20
+ username = st.text_input("Your Name:", value="John")
21
+ client_name = st.text_input("Recipient's Name:", value="Hiring Manager")
22
+
23
+ # Select number of email variations
24
+ num_emails = st.slider("How many email variations do you want?", 1, 3, 1)
25
 
26
+ submit_button = st.button("Generate Cold Emails")
27
 
28
  if submit_button:
29
  try:
 
59
  skills_list = job.get("skills", [])
60
  portfolio_links = [link for link in portfolio.query_links(skills_list) if link]
61
 
62
+ # Generate cold emails based on user selection
63
+ selected_styles = EMAIL_STYLES[:num_emails]
 
 
 
64
 
65
+ for style in selected_styles:
66
+ st.subheader(f"πŸ“© {style} Email")
67
+ email = llm.write_mail(job, portfolio_links, username, client_name, style)
68
+
69
+ if email:
70
+ st.code(email, language="markdown")
71
+ else:
72
+ st.error(f"⚠️ Failed to generate {style} email.")
73
 
74
  except Exception as e:
75
  st.error(f"❌ An Error Occurred: {str(e)}")
 
77
 
78
  if __name__ == "__main__":
79
  create_streamlit_app(chain, portfolio, clean_text)
80
+
81
+
82
+ # import streamlit as st
83
+ # from langchain_community.document_loaders import WebBaseLoader
84
+ # from chains import Chain
85
+ # from portfolio import Portfolio
86
+ # from utils import clean_text
87
+
88
+ # # Initialize backend services
89
+ # chain = Chain()
90
+ # portfolio = Portfolio()
91
+
92
+ # def create_streamlit_app(llm, portfolio, clean_text):
93
+ # st.set_page_config(layout="wide", page_title="Cold Email Generator", page_icon="πŸ“§")
94
+ # st.title("πŸ“§ Cold Mail Generator")
95
+
96
+ # # User Inputs
97
+ # url_input = st.text_input("Enter a Job URL:", value="https://atliq.keka.com/careers/jobdetails/70996")
98
+ # username = st.text_input("Your Name (Default: John)", value="John")
99
+ # client_name = st.text_input("Recipient's Name (Default: Hiring Manager)", value="Hiring Manager")
100
+
101
+ # submit_button = st.button("Generate Cold Email")
102
+
103
+ # if submit_button:
104
+ # try:
105
+ # st.info("πŸ”„ Extracting job details...")
106
+
107
+ # # Load and clean job description
108
+ # loader = WebBaseLoader([url_input])
109
+ # page_content = loader.load().pop().page_content
110
+ # cleaned_data = clean_text(page_content)
111
+
112
+ # # Extract job details
113
+ # jobs = llm.extract_jobs(cleaned_data)
114
+
115
+ # if not jobs:
116
+ # st.warning("⚠️ No job postings found. Please check the URL.")
117
+ # return
118
+
119
+ # # Process extracted jobs
120
+ # for idx, job in enumerate(jobs, start=1):
121
+ # job_title = job.get("role", "Unknown Role")
122
+ # experience = job.get("experience", "Not Specified")
123
+ # skills = ", ".join(job.get("skills", [])) if job.get("skills") else "Not Specified"
124
+ # job_description = job.get("description", "No description available.")
125
+
126
+ # # Display job details
127
+ # st.subheader(f"πŸ“Œ Job {idx}: {job_title}")
128
+ # st.write(f"**Experience Required:** {experience}")
129
+ # st.write(f"**Skills:** {skills}")
130
+ # st.write(f"**Description:** {job_description}")
131
+ # st.divider()
132
+
133
+ # # Fetch relevant portfolio links
134
+ # skills_list = job.get("skills", [])
135
+ # portfolio_links = [link for link in portfolio.query_links(skills_list) if link]
136
+
137
+ # # Generate cold email
138
+ # email = llm.write_mail(job, portfolio_links, username, client_name)
139
+
140
+ # # Debugging: Show raw email output
141
+ # st.write(f"**Generated Email:**")
142
+
143
+ # if email:
144
+ # st.code(email, language="markdown")
145
+ # else:
146
+ # st.error("⚠️ Email generation failed.")
147
+
148
+ # except Exception as e:
149
+ # st.error(f"❌ An Error Occurred: {str(e)}")
150
+
151
+
152
+ # if __name__ == "__main__":
153
+ # create_streamlit_app(chain, portfolio, clean_text)