Initial commit
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
# Importing flask module in the project is mandatory
|
||||||
|
# An object of Flask class is our WSGI application.
|
||||||
|
from flask import Flask, request
|
||||||
|
|
||||||
|
# Flask constructor takes the name of
|
||||||
|
# current module (__name__) as argument.
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
# The route() function of the Flask class is a decorator,
|
||||||
|
# which tells the application which URL should call
|
||||||
|
# the associated function.
|
||||||
|
@app.route('/')
|
||||||
|
# ‘/’ URL is bound with hello_world() function.
|
||||||
|
def hello_world():
|
||||||
|
return 'Hello World'
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/resume/score', methods=['GET'])
|
||||||
|
def get_resume_score():
|
||||||
|
print(request.data)
|
||||||
|
return request.data
|
||||||
|
|
||||||
|
# main driver function
|
||||||
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
# run() method of Flask class runs the application
|
||||||
|
# on the local development server.
|
||||||
|
app.run()
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,35 @@
|
|||||||
|
import pdfreader
|
||||||
|
import textdistance
|
||||||
|
from pdfreader import PDFDocument, SimplePDFViewer
|
||||||
|
|
||||||
|
# Preparing resume parsing
|
||||||
|
file_name = "example_resume.pdf"
|
||||||
|
fd = open(file_name, "rb")
|
||||||
|
doc = SimplePDFViewer(fd)
|
||||||
|
doc.render()
|
||||||
|
|
||||||
|
# Getting the string content from the file
|
||||||
|
resume_content_dump = " ".join(doc.canvas.strings)
|
||||||
|
sucky_resume_content = " ".join(doc.canvas.strings[:5])
|
||||||
|
# print(resume_content_dump)
|
||||||
|
|
||||||
|
# Example inputs from the company
|
||||||
|
previous_roles = ["technical product manager", "product manager"]
|
||||||
|
previous_skills = ["react", "sql"]
|
||||||
|
previous_roles.extend(previous_skills)
|
||||||
|
client_interests = previous_roles
|
||||||
|
print(client_interests)
|
||||||
|
|
||||||
|
# Test of text distance algo
|
||||||
|
print(textdistance.levenshtein.normalized_similarity('ass', 'a s s'))
|
||||||
|
|
||||||
|
# Finding total final score for words
|
||||||
|
list_norm_scores = [textdistance.jaro_winkler(resume_content_dump, word) for word in client_interests]
|
||||||
|
avg_normalized_score = sum(list_norm_scores) / len(list_norm_scores)
|
||||||
|
|
||||||
|
# sucky resume
|
||||||
|
sucky_list_norm_scores = [textdistance.jaro_winkler(sucky_resume_content, word) for word in client_interests]
|
||||||
|
sucky_avg_normalized_score = sum(sucky_list_norm_scores) / len(sucky_list_norm_scores)
|
||||||
|
|
||||||
|
print('stud resume: ', avg_normalized_score * 100)
|
||||||
|
print('sucky: ', sucky_avg_normalized_score * 100)
|
||||||
Reference in New Issue
Block a user