# Directory structure: # - app.py # - utils.py # - job_api.py # - requirements.txt # - assets/ (for optional icons/images) # app.py import streamlit as st from utils import parse_resume, get_recommendations, load_models, generate_career_insights from job_api import fetch_jobs st.set_page_config(page_title="Universal CV Analyzer", layout="wide") st.title("📄 Universal Smart CV Analyzer & Career Roadmap") uploaded_file = st.file_uploader("Upload your CV (PDF)", type="pdf") if uploaded_file: with st.spinner("Analyzing your CV. Please wait..."): nlp, llm = load_models() text, parsed = parse_resume(uploaded_file, nlp) st.success("✅ Resume parsed successfully") st.header("🔍 CV Summary & Score") st.json(parsed) score, feedback = get_recommendations(parsed) st.metric(label="CV Score (out of 100)", value=score) st.write("**Suggestions to improve:**") st.write(feedback) st.header("💼 Live Job Listings") jobs = fetch_jobs(parsed) for job in jobs: st.markdown(f"**{job['title']}** at {job['company']}\n\n{job['location']} - {job['salary']}\n\n[Apply]({job['url']})") st.header("🎓 Certification & Higher Education Suggestions") certs = generate_career_insights(parsed, llm, suggestion_type="certifications") degrees = generate_career_insights(parsed, llm, suggestion_type="degrees") st.write("**Recommended Certifications:**") st.write(certs) st.write("**Higher Education Paths:**") st.write(degrees) st.header("🧭 Personalized Career Roadmap & Visa Advice") roadmap = generate_career_insights(parsed, llm, suggestion_type="roadmap") st.write(roadmap) st.header("🧠 Career Counselor Advice") advice = generate_career_insights(parsed, llm, suggestion_type="counselor") st.write(advice)