CV_Analyze / app.py
Danial7's picture
Update app.py
1f73927 verified
import streamlit as st
from utils.parser import parse_cv
from utils.scoring import get_skill_score, classify_cv
from utils.suggestions import (
get_certification_suggestions,
get_higher_education_suggestions,
get_visa_recommendations,
get_job_listings,
get_career_advice
)
from utils.roadmap import generate_roadmap_chart
from utils.report import generate_downloadable_report
st.set_page_config(page_title="Smart CV Analyzer", layout="wide")
st.title("🧠 Universal Smart CV Analyzer")
uploaded_file = st.file_uploader("Upload your CV (PDF format)", type=["pdf"])
if uploaded_file:
with st.spinner("Parsing CV..."):
parsed_text, education_level = parse_cv(uploaded_file)
field_type = classify_cv(parsed_text)
skill_score = get_skill_score(parsed_text)
st.success("CV Analyzed Successfully!")
st.subheader("πŸ“š Education Level")
st.write(education_level)
st.subheader("πŸ› οΈ CV Type")
st.write(field_type)
st.subheader("πŸ“ˆ Skill Score (ILO Standards)")
st.metric("Skill Score", f"{skill_score}/100")
st.subheader("βœ… Personalized Certifications")
certs = get_certification_suggestions(parsed_text)
st.write(certs)
st.subheader("πŸŽ“ Higher Education Opportunities")
degrees = get_higher_education_suggestions(parsed_text)
st.write(degrees)
st.subheader("🌍 Visa Opportunities")
visas = get_visa_recommendations(parsed_text)
st.write(visas)
st.subheader("πŸ’Ό Job Listings")
jobs = get_job_listings(parsed_text)
st.write(jobs)
st.subheader("🧭 Career Counselor Advice")
advice = get_career_advice(parsed_text)
st.write(advice)
st.subheader("πŸ›£οΈ Personalized Roadmap Timeline")
roadmap_fig = generate_roadmap_chart(parsed_text)
st.plotly_chart(roadmap_fig)
st.subheader("πŸ“₯ Download Full Report")
report_bytes = generate_downloadable_report(
parsed_text, education_level, field_type, skill_score, certs,
degrees, visas, jobs, advice
)
st.download_button("Download Report", report_bytes, file_name="career_report.pdf")