Skip to main content

Resume Parser Written in Python3 . The module supports .pdf and .docx files

Project description

Introduction

pyresumize is a python module to extract useful information from resume and generate a json string out of it. Currently it supports only pdf,docx files as input .

Todo

  • Proper Logging to be added
  • Support for other formats
  • Performance Improvements
  • Bug Fixes
  • Custom configuration of input data

Notes

The Skills , Employers and Education is given as .csv inputs to the engine and you can see a reference implementation in the data folder.

Design

Class Diagram

Alt text

Package Diagram

Alt text

I have changed the Design in such a way that the developers can create own parsing rules and set those to the Parser to bring in flexibility.

Currently we have the below interfaces exposed and the developers can override the process method to bring in custom processing rules.

  • EmployerBaseInterface:

Searches for company information in the resume and identifies the employment information from resume. The builtin module uses NER model from a set of 1500+ employers . I already have a plan to list all the employers based on countries (Future Releases)

  • EducationBaseInterface

Process Education Details together with universities .Similarly the data is very primitive , I need to update the input csv files based on countries(future releases)

  • EmailBaseInterface

Check for email addresses in the resume and returns if found one.

  • PhoneBaseInterface

Process phone numbers in the resume text, if there are more than one phone number found , returns a concatenated string with commas.

  • NameBaseInterface

Proces the Name of the candidate .

  • SkillBaseInterface:

Process the skills section . returns a list of identified skills in a resume. I used a linked in scrapped input for this module.

Sometimes you will be in a need to extend there interfaces , Then create a class like below to have custom parsing.

class RemoteCompaniesChecker (EmployerBaseInterface):
    def process(self,resumetext):
    #Call a remote API and pass the text info
    return list[]

The ResumeEngine class has below member functions and with one of these you can apply your custom engine

set_skills_engine(self, engine):    
set_name_engine(self, engine):    
set_name_engine(self, engine):    
set_email_engine(self, engine):    
set_education_engine(self, engine):    
set_employer_engine(self, engine):

Currently the Engine supports PDF and DOCX File extensions . Incase if you want to use a different parsing mechanism for a particular type of file, you can extend AbstractFileProcessor and use add_custom_text_processor method to register your own text processing features.

Usage

https://pypi.org/project/pyresumize/ . The module can be installed using

pip install pyresumize

Then do the below

python -m spacy download en_core_web_lg    
python -m nltk.downloader words    
python -m nltk.downloader stopwords    
from pyresumize import ResumeEngine    
r_parser=ResumeEngine()    
r_parser.set_custom_keywords_folder("data")    
json=r_parser.process_resume(file)    
print(json)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyresumize-0.2.2.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyresumize-0.2.2-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file pyresumize-0.2.2.tar.gz.

File metadata

  • Download URL: pyresumize-0.2.2.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for pyresumize-0.2.2.tar.gz
Algorithm Hash digest
SHA256 b0d51120e0af6a317dcf6b3110575e9d5561a79072d51bffc7599d45ec528143
MD5 6de4c47bcfaf7f9ec14ba42eb2fbe3ce
BLAKE2b-256 b89e44e056e8175b01010b0a143dd2df25a45b191332c5a87cfd2eaad5fd8d3d

See more details on using hashes here.

File details

Details for the file pyresumize-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pyresumize-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for pyresumize-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 526b785b4c46691a5157ee5fe917fa01930e653882ac588a896bd0327b38b2d4
MD5 ee4661b5de1a1301ac710adee8fdd803
BLAKE2b-256 cd206e15a02a0e7b5015660d49b7555eeec98f069d12405f30cfb4658b7ce32a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page