Skip to main content

A simple resume and job description parser used for extracting information from resumes and job descriptions and compatible with python 3.10 upwords

Project description

pydparser

A simple resume and job description parser used for extracting information from resumes and job descriptions.
It also allows you to compare a set of resumes with a job description. 

Built with ❤️ by Justice Arthur and inspired by Omkar Pathak

Features

  • Extract name from resumes
  • Extract email from resumes
  • Extract mobile numbers from resumes
  • Extract skills from resumes
  • Extract total experience from resumes
  • Extract college name from resumes
  • Extract degree from resumes
  • Extract designation from resumes
  • Extract company names from resumes
  • Extract skills from job descriptions
  • Extract experience level from job descriptions
  • Match resumes with job descriptions and see ranking for scores

Installation

  • You can install this package using
pip install pydparser
  • For NLP operations we use spacy and nltk. Install them using below commands:
# spaCy
python -m spacy download en_core_web_sm

# nltk
python -m nltk.downloader words
python -m nltk.downloader stopwords

Supported File Formats

  • PDF and DOCx files are supported on all Operating Systems
  • If you want to extract DOC files you can install textract for your OS (Linux, MacOS)
  • Note: You just have to install textract (and nothing else) and doc files will get parsed easily

Usage

  • Import it in your Python project
from pydparser import ResumeParser
data = ResumeParser('/path/to/resume/file').get_extracted_data()
from pydparser import JdParser
data = JdParser('/path/to/jd/file').get_extracted_data()
from pydparser import MatchingEngine
matcher = MatchingEngine(
    '/path/to/jd/file',
    [
        '/path/to/resume1/file',
        '/path/to/resume2/file',
        '/path/to/resume3/file',
     ]
)

# simple matcher
res = matcher.simple_intersection_score()

# similarity score with tfidf vectorizer
res = matcher.cosine_similarity_with_tfidf()

# similarity score with jaccard similarity
res = matcher.jaccard_similarity_score()

CLI

For running the resume extractor you can also use the cli provided

usage: pydparser [-h] [-f FILE] [-d DIRECTORY] [-r REMOTEFILE]
                   [-re CUSTOM_REGEX] [-sf SKILLSFILE] [-e EXPORT_FORMAT]

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  resume file to be extracted
  -d DIRECTORY, --directory DIRECTORY
                        directory containing all the resumes to be extracted
  -r REMOTEFILE, --remotefile REMOTEFILE
                        remote path for resume file to be extracted
  -re CUSTOM_REGEX, --custom-regex CUSTOM_REGEX
                        custom regex for parsing mobile numbers
  -sf SKILLSFILE, --skillsfile SKILLSFILE
                        custom skills CSV file against which skills are
                        searched for
  -e EXPORT_FORMAT, --export-format EXPORT_FORMAT
                        the information export format (json)

Notes:

  • If you are running the app on windows, then you can only extract .docs and .pdf files

Result

The module would return a list of dictionary objects with result as follows:

[
  {
    'college_name': ['Marathwada Mitra Mandal’s College of Engineering'],
    'company_names': None,
    'degree': ['B.E. IN COMPUTER ENGINEERING'],
    'designation': ['Manager',
                    'TECHNICAL CONTENT WRITER',
                    'DATA ENGINEER'],
    'email': 'omkarpathak27@gmail.com',
    'mobile_number': '8087996634',
    'name': 'Omkar Pathak',
    'no_of_pages': 3,
    'skills': ['Operating systems',
              'Linux',
              'Github',
              'Testing',
              'Content',
              'Automation',
              'Python',
              'Css',
              'Website',
              'Django',
              'Opencv',
              'Programming',
              'C',
              ...],
    'total_experience': 1.83
  }
]
[{'all_skills': [
                 'building a connected and superior experience for  patients',
                 'PHP',
                 'Laravel',
                 'Object - Oriented Programming',
                 'to mentor and coach',
                 'contributing to the implementation of',
                 'mobile experience',
                 'healthcare platform',
                 'features',
                 'contribute to architectural decisions',
                 'on product excellence',
                 'building robust',
                 'PHP',
                 'Laravel',
                 'humility',
                 'celebrating bold thinking',
                 'HSA',
                 ],
  'domain': ['health', 'Public Sector', 'health service', 'mental health'],
  'experience': '5 years',
  'occupation': 'Senior Software Engineer',
  'skills': ['Mobile',
             'Budget',
             'Technical',
             'Distribution',
             'Expenses',
             'Automation',
             'Api',
             'Design',
             'Health',
             'Architectures',
             'System',
             'Access',
             'Communication',
             'Programming',
             'Php',
             'Healthcare',
             'Testing',
             'Ansible',
             'Phpunit']}]

References that helped me get here

@inproceedings{green-etal-2022-development,
    title = "Development of a Benchmark Corpus to Support Entity Recognition in Job Descriptions",
    author = "Green, Thomas  and
      Maynard, Diana  and
      Lin, Chenghua",
    booktitle = "Proceedings of the Thirteenth Language Resources and Evaluation Conference",
    month = jun,
    year = "2022",
    address = "Marseille, France",
    publisher = "European Language Resources Association",
    url = "https://aclanthology.org/2022.lrec-1.128",
    pages = "1201--1208",
}

Donation

If you find this useful you don't hesitate to leave a start a something small. This encourage us to spend the Christmas creating this 😄.

PayPal Donate via PayPal!

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

pydparser-1.0.4.tar.gz (19.2 MB view details)

Uploaded Source

Built Distribution

pydparser-1.0.4-py3-none-any.whl (19.2 MB view details)

Uploaded Python 3

File details

Details for the file pydparser-1.0.4.tar.gz.

File metadata

  • Download URL: pydparser-1.0.4.tar.gz
  • Upload date:
  • Size: 19.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for pydparser-1.0.4.tar.gz
Algorithm Hash digest
SHA256 e0b24031726b69d4f61e7c8e666511869de0149f4288e80ce822049dc2ab384a
MD5 036aef9b4241c320a76472610bded426
BLAKE2b-256 8bdb5a30fc338ed6d1cb9a95d9c7b22514f1f183f69795328782d14f5101b4a0

See more details on using hashes here.

File details

Details for the file pydparser-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: pydparser-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 19.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for pydparser-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0e8e732500b4c0a46e7b48210b689fa6198ee1e2eadf43cfecf5b21d9332b8e2
MD5 ffef1708ba5129ccf32585dd142ad8e5
BLAKE2b-256 58c2616fd32fed98c49d3fa5afe2b7967575db10c2781fbf19565b9985f0c0ad

See more details on using hashes here.

Supported by

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