-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
83 lines (67 loc) · 3.01 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from dotenv import load_dotenv
load_dotenv()
import streamlit as st
import os
import io
import base64
from PIL import Image
import pdf2image
import google.generativeai as genai
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
def get_gemini_response(input, pdf_content, prompt):
model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content([input, pdf_content[0], prompt])
return response.text
def input_pdf_setup(uploaded_file):
if uploaded_file is not None:
st.write("PDF uploaded successfully")
images = pdf2image.convert_from_bytes(uploaded_file.read())
first_page = images[0]
img_byte_arr = io.BytesIO()
first_page.save(img_byte_arr, format='JPEG')
img_byte_arr = img_byte_arr.getvalue()
pdf_parts = [
{
'mime_type': 'image/jpeg',
'data': base64.b64encode(img_byte_arr).decode()
}
]
return pdf_parts
else:
return FileNotFoundError("NO file uploaded")
st.set_page_config(page_title="ATS Resume Expert")
st.header("ATS Tracking System")
input_text = st.text_area('Job Desciption', key='input')
uploaded_file = st.file_uploader("Uplaod your resume(PDF).....", type=['PDF'])
submit1 = st.button("Tell me About the Resume")
submit2 = st.button("Percentage match")
# submit3 = st.button("How can i improvise my skills")
input_prompt1 = '''
You are an experienced HR with Tech Experience in the field of any job role from Data Science, Full Stack web development, Big Data Engineering,
Data Analyst.Your task is to review the provided resume against the job description for these profiles.
please share your professional evaluation on whether the candidate's profile aligns with this role.
Highlight the strengths and weaknesses of the applicant in relation to the specified job requirements.
'''
input_prompt2 = '''
You are an skilled ATS(Applicant Tracking System) Scanner with deep understanding of Data Science, Full Stack web development, Big Data Engineering,
Data Analyst and ATS functionality.
Your task is to evaluate the resume against the provided job description. give me the percentage of match if the resume matches with job
description.First the output should come as percentage and then keywords missing in the resume.
'''
if submit1:
if uploaded_file is not None:
pdf_content = input_pdf_setup(uploaded_file)
print(pdf_content)
response = get_gemini_response(input_text, pdf_content, input_prompt1)
st.subheader("The Response is")
st.write(response)
else:
st.write("Please upload the resume")
elif submit2:
if uploaded_file is not None:
pdf_content = input_pdf_setup(uploaded_file)
response = get_gemini_response(input_text, pdf_content, input_prompt2)
st.subheader("The Response is")
st.write(response)
else:
st.write("Please upload the resume")