MansoorSarookh's picture
Create app.py
f027b54 verified
import streamlit as st
import pandas as pd
import sqlite3
from transformers import pipeline
# Database Setup
conn = sqlite3.connect("career_coach.db", check_same_thread=False)
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS users (name TEXT, skills TEXT, experience TEXT, education TEXT, goals TEXT)''')
conn.commit()
# Hugging Face Setup
interview_model = pipeline("text-generation", model="gpt2") # You can replace with a more suitable model
resume_model = pipeline("text-classification", model="distilbert-base-uncased")
# Career Profile Class
class CareerProfile:
def __init__(self, name, skills, experience, education, goals):
self.name = name
self.skills = skills
self.experience = experience
self.education = education
self.goals = goals
def save_to_db(self):
c.execute("INSERT INTO users VALUES (?, ?, ?, ?, ?)",
(self.name, self.skills, self.experience, self.education, self.goals))
conn.commit()
# Job Recommender Class
class JobRecommender:
def __init__(self, user_skills):
self.user_skills = user_skills
self.jobs_df = pd.read_csv("jobs_data.csv") # Load job dataset
def recommend_jobs(self):
return self.jobs_df[self.jobs_df['Skills'].str.contains(self.user_skills, case=False, na=False)].head(5)
# Interview Coach Class
class InterviewCoach:
def __init__(self, question):
self.question = question
def get_feedback(self, response):
prompt = f"Evaluate the following response for a job interview question '{self.question}': {response}"
result = interview_model(prompt, max_length=200, num_return_sequences=1)
return result[0]['generated_text']
# Resume Enhancer Class
class ResumeEnhancer:
def __init__(self, resume_text):
self.resume_text = resume_text
def analyze_resume(self):
prompt = f"Analyze this resume and suggest improvements for ATS compatibility: {self.resume_text}"
result = resume_model(prompt)
return result[0]['label'] # Assuming the model returns the label for the analysis
# Streamlit UI
st.sidebar.title("Virtual Career Coach")
page = st.sidebar.radio("Navigation", ["Home", "Job Recommendations", "Interview Coach", "Resume Enhancer", "Career Growth"])
if page == "Home":
st.title("Career Profile Setup")
name = st.text_input("Name")
skills = st.text_area("Skills")
experience = st.text_area("Experience")
education = st.text_area("Education")
goals = st.text_area("Career Goals")
if st.button("Save Profile"):
profile = CareerProfile(name, skills, experience, education, goals)
profile.save_to_db()
st.success("Profile saved successfully!")
elif page == "Job Recommendations":
st.title("Job Recommendations")
user_skills = st.text_input("Enter your skills for job matching")
if st.button("Find Jobs"):
recommender = JobRecommender(user_skills)
jobs = recommender.recommend_jobs()
st.write(jobs)
elif page == "Interview Coach":
st.title("AI-Powered Interview Coach")
question = st.text_input("Enter a job interview question")
response = st.text_area("Your Response")
if st.button("Get Feedback"):
coach = InterviewCoach(question)
feedback = coach.get_feedback(response)
st.write(feedback)
elif page == "Resume Enhancer":
st.title("Resume & Cover Letter Enhancer")
resume_text = st.text_area("Paste your resume text")
if st.button("Analyze Resume"):
enhancer = ResumeEnhancer(resume_text)
feedback = enhancer.analyze_resume()
st.write(feedback)
elif page == "Career Growth":
st.title("Career Growth Suggestions")
st.write("Coming Soon: Personalized Learning Paths, Networking Strategies, and Industry Insights!")