-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
54 lines (43 loc) · 1.69 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import streamlit as st
import google.generativeai as genai
import os
import PyPDF2 as pdf
from dotenv import load_dotenv
load_dotenv() # load all the environment variables
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
# gemini pro response
def get_gemini_pro_response(input_text):
model = genai.GenerativeModel("gemini-pro")
response = model.generate_content(input_text)
return response.text
# taking the pdf and extract the text
def input_pdf_text(uploaded_file):
reader = pdf.PdfReader(uploaded_file)
text = ""
for page in reader.pages:
text += str(page.extract_text())
return text
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 ,data analyst
and AI 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 Job description and
the missing keywords with high accuracy
resume:{text}
description:{job_description}
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")
job_description=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_pro_response(input_prompt)
st.subheader(response)