import streamlit as st import google.generativeai as genai import os import PyPDF2 as pdf from dotenv import load_dotenv import json load_dotenv()##loas all the environment variables genai.configure(api_key=os.getenv("GOOGLE_API_KEY")) ##Gemini pro response def get_gemini_response(input): model=genai.GenerativeModel('gemini-pro') response=model.generate_content(input) return response.text def input_pdf_text(uploaded_file): reader=pdf.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 jobtitle given.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 resume.Assign the percentage matching based on job description and the missing keywords with high accuracy resume:{text} description:{jd} jobtitle:{jt} I want the response in one single string having the structure {{"JD Match":"%","MissingKeywords:[]","Profile Summary":""}} """ ##streamlit app st.title("Smart ATS") st.text("Improve your Resume ATS") jd=st.text_area("Paste the job description") jt=st.text_area("Paste the job title") uploaded_file=st.file_uploader("Upload your Resume",type="pdf",help="Please upload your resume") submit=st.button("Submit") if submit: if uploaded_file is not None: text=input_pdf_text(uploaded_file) response=get_gemini_response(input_prompt) st.subheader(response)