honeyangelhp commited on
Commit
cebe82a
·
verified ·
1 Parent(s): 58d0c14

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -9
app.py CHANGED
@@ -15,12 +15,13 @@ if "resume_data" not in st.session_state:
15
  if "jobdescription" not in st.session_state:
16
  st.session_state.jobdescription = ""
17
 
18
- #Upload Resumes (Multiple PDFs)
19
  st.session_state.jobdescription = st.text_area("Paste the job description below:")
20
 
21
- #Input Job Description
22
  pdf_files = st.file_uploader("Upload your resumes (PDF only):", type="pdf", accept_multiple_files=True)
23
 
 
24
  if pdf_files:
25
  st.session_state.resume_data = []
26
  for pdf in pdf_files:
@@ -28,9 +29,9 @@ if pdf_files:
28
  st.session_state.resume_data.append({"name": pdf.name, "text": extracted_text})
29
  st.success(f"{len(pdf_files)} resumes uploaded and processed successfully!")
30
 
 
31
  submit = st.button("Submit")
32
 
33
-
34
  # Define start function
35
  def start():
36
  if st.session_state.resume_data and st.session_state.jobdescription:
@@ -43,27 +44,28 @@ def start():
43
  ATS_score = calculateATSscore(resume["text"], st.session_state.jobdescription)
44
 
45
  if ATS_score is None:
46
- st.warning(f"Warning: Unable to calculate ATS score for {resume['name']}.")
47
  continue # Skip this resume if ATS score is None
48
 
49
  resume["ATS_score"] = ATS_score # Add ATS score to resume data
50
 
51
- resume["model_feedback"] = modelFeedback(resume["text"]) # Generate feedback
 
52
 
53
- # Sort resumes based on ATS score in descending order
54
- sorted_resumes = sorted(st.session_state.resume_data, key=lambda x: x["ATS_score"], reverse=True)
 
55
 
56
  # Display the results
57
  for rank, resume in enumerate(sorted_resumes, 1):
58
  st.write(f"##### Resume: {resume['name']}")
59
- st.write(f"**ATS Score:** {int(resume['ATS_score']*100)}%")
60
  st.write(f"**Ranking:** {rank}")
61
  st.write(f"**Summary:** {resume['model_feedback']}")
62
  st.write("---")
63
  else:
64
  st.info("Please upload resumes and provide a job description.")
65
 
66
-
67
  # Process when submit button is clicked
68
  if submit:
69
  start()
 
15
  if "jobdescription" not in st.session_state:
16
  st.session_state.jobdescription = ""
17
 
18
+ # Input Job Description (Fixed position to ensure it's initialized correctly)
19
  st.session_state.jobdescription = st.text_area("Paste the job description below:")
20
 
21
+ # Upload Resumes (Multiple PDFs)
22
  pdf_files = st.file_uploader("Upload your resumes (PDF only):", type="pdf", accept_multiple_files=True)
23
 
24
+ # Handle PDF file upload
25
  if pdf_files:
26
  st.session_state.resume_data = []
27
  for pdf in pdf_files:
 
29
  st.session_state.resume_data.append({"name": pdf.name, "text": extracted_text})
30
  st.success(f"{len(pdf_files)} resumes uploaded and processed successfully!")
31
 
32
+ # Submit button
33
  submit = st.button("Submit")
34
 
 
35
  # Define start function
36
  def start():
37
  if st.session_state.resume_data and st.session_state.jobdescription:
 
44
  ATS_score = calculateATSscore(resume["text"], st.session_state.jobdescription)
45
 
46
  if ATS_score is None:
47
+ st.warning(f"Warning: Unable to calculate ATS score for {resume['name']}. Skipping this resume.")
48
  continue # Skip this resume if ATS score is None
49
 
50
  resume["ATS_score"] = ATS_score # Add ATS score to resume data
51
 
52
+ # Generate feedback (only summary)
53
+ resume["model_feedback"] = modelFeedback(resume["text"]) # Generate summary feedback
54
 
55
+ # Sort resumes based on ATS score in descending order, skip resumes without an ATS score
56
+ sorted_resumes = sorted([resume for resume in st.session_state.resume_data if resume.get("ATS_score")],
57
+ key=lambda x: x["ATS_score"], reverse=True)
58
 
59
  # Display the results
60
  for rank, resume in enumerate(sorted_resumes, 1):
61
  st.write(f"##### Resume: {resume['name']}")
62
+ st.write(f"**ATS Score:** {int(resume['ATS_score'] * 100)}%")
63
  st.write(f"**Ranking:** {rank}")
64
  st.write(f"**Summary:** {resume['model_feedback']}")
65
  st.write("---")
66
  else:
67
  st.info("Please upload resumes and provide a job description.")
68
 
 
69
  # Process when submit button is clicked
70
  if submit:
71
  start()