File size: 1,352 Bytes
c412b90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
from components.utils import extract_resume_text, convert_dates_to_datetime, is_valid_email
from components.llm_resume_parser import llm_resume_parser
from components.utils import read_pdf_text


resumes_for_testing = {"resume1": "./resumes_for_testing/resume1.pdf",
                       "resume2": "./resumes_for_testing/resume2.pdf",
                       "resume3": "./resumes_for_testing/resume3.pdf"}

def sidebar_section(job_title):

    with st.sidebar:

        resume_file = st.file_uploader("**Upload Your Resume (PDF, Word)**", type=["pdf","docx"])


        if 'candidate_data' not in st.session_state:
            st.session_state.candidate_data = {}

        if resume_file:
            resume_text = extract_resume_text(resume_file)
            
            parsed_candidate_data = llm_resume_parser.invoke({"job_title": job_title, "resume_text":resume_text})
            
            if "parsed_candidate_data" not in st.session_state:
                st.session_state.parsed_candidate_data = parsed_candidate_data
                st.session_state.candidate_data = convert_dates_to_datetime(parsed_candidate_data)

                if ("email" in st.session_state.candidate_data) and not is_valid_email(st.session_state.candidate_data["email"]):
                    st.session_state.candidate_data["email"] = ""