Spaces:
Sleeping
Sleeping
File size: 2,073 Bytes
fabc63c |
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 |
import sys
import streamlit as st
import pdfplumber
from Resume_scanner import compare
def extract_pdf_data(file_path):
data = ""
with pdfplumber.open(file_path) as pdf:
for page in pdf.pages:
text = page.extract_text()
if text:
data += text
return data
def extract_text_data(file_path):
with open(file_path, 'r') as file:
data = file.read()
return data
# Command-line argument processing
if len(sys.argv) > 1:
if len(sys.argv) == 3:
resume_path = sys.argv[1]
jd_path = sys.argv[2]
resume_data = extract_pdf_data(resume_path)
jd_data = extract_text_data(jd_path)
result = compare([resume_data], jd_data, flag='HuggingFace-BERT')
sys.exit()
# Sidebar
flag = 'HuggingFace-BERT'
with st.sidebar:
st.markdown('**Which embedding do you want to use**')
options = st.selectbox('Which embedding do you want to use',
['HuggingFace-BERT', 'Doc2Vec'],
label_visibility="collapsed")
flag = options
# Main content
tab1, tab2 = st.tabs(["**Home**", "**Results**"])
# Tab Home
with tab1:
st.title("Applicant Tracking System")
uploaded_files = st.file_uploader(
'**Choose your resume.pdf file:** ', type="pdf", accept_multiple_files=True)
JD = st.text_area("**Enter the job description:**")
comp_pressed = st.button("Compare!")
if comp_pressed and uploaded_files:
# Streamlit file_uploader gives file-like objects, not paths
uploaded_file_paths = [extract_pdf_data(
file) for file in uploaded_files]
score = compare(uploaded_file_paths, JD, flag)
# Tab Results
with tab2:
st.header("Results")
my_dict = {}
if comp_pressed and uploaded_files:
for i in range(len(score)):
my_dict[uploaded_files[i].name] = score[i]
sorted_dict = dict(sorted(my_dict.items()))
for i in sorted_dict.items():
with st.expander(str(i[0])):
st.write("Score is: ", i[1])
|