Manikanta3776 commited on
Commit
2aff931
Β·
verified Β·
1 Parent(s): f42a553

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -89
app.py CHANGED
@@ -8,20 +8,20 @@ from utils import 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
 
@@ -59,17 +59,15 @@ def create_streamlit_app(llm, portfolio, clean_text):
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,77 +75,3 @@ def create_streamlit_app(llm, portfolio, clean_text):
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)
 
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
+ # Dropdown to select number of emails to generate
21
+ num_emails = st.selectbox("Select Number of Emails to Generate", options=[1, 2, 3], index=0)
22
 
23
+ # Dropdown to select email style
24
+ email_style = st.selectbox("Choose Email Style", options=["Formal", "Casual", "Persuasive"], index=0)
25
 
26
  submit_button = st.button("Generate Cold Emails")
27
 
 
59
  skills_list = job.get("skills", [])
60
  portfolio_links = [link for link in portfolio.query_links(skills_list) if link]
61
 
62
+ # Generate multiple cold emails based on user selection
63
+ for i in range(num_emails):
64
+ st.subheader(f"πŸ“© Email {i+1} ({email_style} Style)")
65
+ email = llm.write_mail(job, portfolio_links, username, client_name, email_style)
66
+
 
 
67
  if email:
68
  st.code(email, language="markdown")
69
  else:
70
+ st.error("⚠️ Email generation failed.")
71
 
72
  except Exception as e:
73
  st.error(f"❌ An Error Occurred: {str(e)}")
 
75
 
76
  if __name__ == "__main__":
77
  create_streamlit_app(chain, portfolio, clean_text)