Spaces:
Running
Running
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"] = "" |