File size: 1,880 Bytes
26ed1c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import google.generativeai as genai
import os
from PyPDF2 import PdfReader

# import PyPDF2 as pdf

from dotenv import load_dotenv

load_dotenv() ## load all the environments variables

genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))

## Gemini Response
def get_gemini_response(input):
    model = genai.GenerativeModel('gemini-pro')
    response = model.generate_content(input)
    return response.text

## PDF Reader
def input_pdf_text(uploaded_file):
    reader = PdfReader(uploaded_file)
    text = ""
    for page in reader.pages:
    #for page in reader(len(reader.pages)):
        #page = reader.pages[page]
        #text += str(page.extract_text())
        text += 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 ,data analyst

and big 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 thr 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 ATS")
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_response(input_prompt)
        st.subheader(response)