import os import streamlit as st import google.generativeai as genai import PyPDF2 as pdf_load from dotenv import load_dotenv import json # load all our environment variables load_dotenv() genai.configure(api_key=os.getenv("GOOGLE_API_KEY")) # set model and get response from Gemini model. def get_gemini_repsonse(input): model = genai.GenerativeModel('gemini-pro') response = model.generate_content(input) return response.text # convert pdf into text def input_pdf_text(uploaded_file): reader = pdf_load.PdfReader(uploaded_file) text = "" for page in range(len(reader.pages)): page = reader.pages[page] text += str(page.extract_text()) return text # Prompt Template input_prompt = """ Hey Act Like a skilled or very experience ATS(Application Tracking System) with a deep understanding of tech field,software engineering,data science, Machine Learning, data analyst and data engineer. Your task is to evaluate the resume based on the given job description. You must consider the job market is very competitive and you should provide best assistance for improving the resumes. Assign the percentage Matching based on Jd and the missing keywords with high accuracy resume:{text} description:{jd} I want the response in one single string having the structure {{"JD Match":"%","MissingKeywords:[]","Profile Summary":""}} """ # streamlit app st.title("Smart Resume ATS System") st.text("Improve Your Resume ATS") jd = st.text_area("Paste the Job Description") uploaded_file = st.file_uploader("Upload Your Resume", type="pdf", help="Please uplaod the pdf") submit = st.button("Submit") if submit: if uploaded_file is not None: text = input_pdf_text(uploaded_file) response = get_gemini_repsonse(input_prompt) st.text_area(response) st.info("Shivashankar")