Spaces:
Running
Running
import streamlit as st | |
from database import get_db, Candidate | |
from resume_parser import extract_text_from_pdf | |
from ai_model import analyze_resume | |
from pdf_generator import generate_summary_pdf | |
from sqlalchemy.orm import Session | |
st.title("AI-Powered Resume Screening") | |
uploaded_files = st.file_uploader("Upload Resumes", type=["pdf"], accept_multiple_files=True) | |
if uploaded_files: | |
db: Session = next(get_db()) | |
candidates = [] | |
for file in uploaded_files: | |
resume_text = extract_text_from_pdf(file) | |
analysis_result = analyze_resume(resume_text) | |
score = int(analysis_result.get("score", 0)) | |
summary = analysis_result.get("summary", "No summary available") | |
new_candidate = Candidate(name=file.name, score=score, summary=summary, resume_text=resume_text) | |
db.add(new_candidate) | |
candidates.append(new_candidate) | |
db.commit() | |
# Generate shortlist | |
shortlisted = sorted(candidates, key=lambda x: x.score, reverse=True)[:5] | |
pdf_path = generate_summary_pdf(shortlisted) | |
st.success("Top candidates shortlisted!") | |
st.download_button("Download Shortlist PDF", open(pdf_path, "rb"), file_name="shortlisted_candidates.pdf") | |
# the link expiration time is set to 24 hours |