Spaces:
Sleeping
Sleeping
import streamlit as st | |
from cv_evaluator import profile | |
import logging | |
import warnings | |
# Ignore all warnings | |
warnings.filterwarnings("ignore") | |
# Set up logging configuration | |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') | |
# Streamlit setup | |
st.header("CV Assistant for Recruiters & Applicants", divider="blue") | |
# Display the formatted output | |
st.markdown(''' | |
*Introducing a GenAI-powered app designed to aid the hiring process for both recruiters and applicants.* | |
- **For Recruiters:** The app automatically analyzes resumes against job descriptions, generates ATS (Applicant Tracking System) compatibility scores, and helps recruiters quickly identify candidates to move forward in the hiring process. | |
- **For Applicants:** It evaluates resume alignment with the job description, provides actionable recommendations for improvement, and even generates an updated, optimized resume to enhance selection chances. | |
''') | |
# User Type Selection | |
st.subheader("Select your Role ( Recruiter or Applicant)",divider=True) | |
user_type = st.radio( | |
" Select anyone :", | |
options=["Recruiter", "Applicant"] | |
) | |
st.subheader("Upload Resume (in PDF form)",divider=True) | |
pdf_doc = st.file_uploader("Upload Resume in PDF format:", type=['pdf']) | |
st.subheader("Enter the Job Description π", divider=True) | |
job_desc = st.text_area("Paste the Job Description Below:", max_chars=10000) | |
if st.button("Invoke CV Assistant"): | |
try: | |
logging.info("Processing user input.") | |
if not pdf_doc: | |
st.error("Please upload a resume.") | |
elif not job_desc.strip(): | |
st.error("Please enter the job description.") | |
else: | |
# Call profile function with user_type | |
result = profile(pdf_doc=pdf_doc, job_desc=job_desc, user_type=user_type) | |
st.markdown(result) | |
logging.info("Results displayed successfully.") | |
except Exception as e: | |
st.error(f"An error occurred: {str(e)}") | |
logging.error(f"Error processing input: {e}") | |