Manikanta3776 commited on
Commit
12be0d3
·
verified ·
1 Parent(s): 2ab7f6a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -35
app.py CHANGED
@@ -1,35 +1,50 @@
1
- import streamlit as st
2
- from langchain_community.document_loaders import WebBaseLoader
3
-
4
- from chains import Chain
5
- from portfolio import Portfolio
6
- from utils import clean_text
7
-
8
-
9
- def create_streamlit_app(llm, portfolio, clean_text):
10
- st.title("📧 Cold Mail Generator")
11
- url_input = st.text_input("Enter a URL:", value="https://jobs.nike.com/job/R-33460")
12
- submit_button = st.button("Submit")
13
-
14
- if submit_button:
15
- try:
16
- loader = WebBaseLoader([url_input])
17
- data = clean_text(loader.load().pop().page_content)
18
- portfolio.load_portfolio()
19
- jobs = llm.extract_jobs(data)
20
- for job in jobs:
21
- skills = job.get('skills', [])
22
- links = portfolio.query_links(skills)
23
- email = llm.write_mail(job, links)
24
- st.code(email, language='markdown')
25
- except Exception as e:
26
- st.error(f"An Error Occurred: {e}")
27
-
28
-
29
- if __name__ == "__main__":
30
- chain = Chain()
31
- portfolio = Portfolio()
32
- st.set_page_config(layout="wide", page_title="Cold Email Generator", page_icon="📧")
33
- create_streamlit_app(chain, portfolio, clean_text)
34
-
35
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from langchain_community.document_loaders import WebBaseLoader
3
+ from chains import Chain
4
+ from portfolio import Portfolio
5
+ from utils import clean_text
6
+
7
+ # Initialize backend components
8
+ chain = Chain()
9
+ portfolio = Portfolio()
10
+
11
+ def create_streamlit_app():
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 posting URL:", value="https://jobs.nike.com/job/R-33460")
17
+ username = st.text_input("Enter your name:", value="Computer Engineering Student")
18
+ client_name = st.text_input("Enter the recipient name:", value="Hiring Manager")
19
+
20
+ submit_button = st.button("Generate Email")
21
+
22
+ if submit_button:
23
+ with st.spinner("Processing... Please wait."):
24
+ try:
25
+ # Load job description from URL
26
+ loader = WebBaseLoader([url_input])
27
+ data = clean_text(loader.load().pop().page_content)
28
+
29
+ # Load portfolio data
30
+ portfolio.load_portfolio()
31
+
32
+ # Extract jobs from the job posting page
33
+ jobs = chain.extract_jobs(data)
34
+
35
+ if not jobs:
36
+ st.error("No job postings were found on the provided URL.")
37
+ return
38
+
39
+ for job in jobs:
40
+ skills = job.get('skills', [])
41
+ links = portfolio.query_links(skills)
42
+ email = chain.write_mail(job, links, username=username, client_name=client_name)
43
+ st.subheader(f"Generated Cold Email for {job.get('role', 'Unknown Role')}")
44
+ st.code(email, language="markdown")
45
+
46
+ except Exception as e:
47
+ st.error(f"An Error Occurred: {e}")
48
+
49
+ if __name__ == "__main__":
50
+ create_streamlit_app()