Package: pydparser
pydparserA 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 ❤️ byJustice Arthurand inspired byOmkar PathakFeaturesExtract name from resumesExtract email from resumesExtract mobile numbers from resumesExtract skills from resumesExtract total experience from resumesExtract college name from resumesExtract degree from resumesExtract designation from resumesExtract company names from resumesExtract skills from job descriptionsExtract experience level from job descriptionsMatch resumes with job descriptions and see ranking for scoresInstallationYou can install this package usingpipinstallpydparserFor NLP operations we use spacy and nltk. Install them using below commands:# spaCypython-mspacydownloaden_core_web_sm# nltkpython-mnltk.downloaderwords
python-mnltk.downloaderstopwordsSupported File FormatsPDF and DOCx files are supported on all Operating SystemsIf you want to extract DOC files you can installtextractfor your OS (Linux, MacOS)Note: You just have to install textract (and nothing else) and doc files will get parsed easilyUsageImport it in your Python projectfrompydparserimportResumeParserdata=ResumeParser('/path/to/resume/file').get_extracted_data()frompydparserimportJdParserdata=JdParser('/path/to/jd/file').get_extracted_data()frompydparserimportMatchingEnginematcher=MatchingEngine('/path/to/jd/file',['/path/to/resume1/file','/path/to/resume2/file','/path/to/resume3/file',])# simple matcherres=matcher.simple_intersection_score()# similarity score with tfidf vectorizerres=matcher.cosine_similarity_with_tfidf()# similarity score with jaccard similarityres=matcher.jaccard_similarity_score()CLIFor running the resume extractor you can also use thecliprovidedusage:pydparser[-h][-fFILE][-dDIRECTORY][-rREMOTEFILE][-reCUSTOM_REGEX][-sfSKILLSFILE][-eEXPORT_FORMAT]optionalarguments:-h,--helpshowthishelpmessageandexit-fFILE,--fileFILEresumefiletobeextracted-dDIRECTORY,--directoryDIRECTORYdirectorycontainingalltheresumestobeextracted-rREMOTEFILE,--remotefileREMOTEFILEremotepathforresumefiletobeextracted-reCUSTOM_REGEX,--custom-regexCUSTOM_REGEXcustomregexforparsingmobilenumbers-sfSKILLSFILE,--skillsfileSKILLSFILEcustomskillsCSVfileagainstwhichskillsaresearchedfor-eEXPORT_FORMAT,--export-formatEXPORT_FORMATtheinformationexportformat(json)Notes:If you are running the app on windows, then you can only extract .docs and .pdf filesResultThe 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 hereSome of the core concepts behind the algorithm have been taken fromhttps://github.com/divapriya/Language_Processingwhich has been summed up in this bloghttps://medium.com/@divalicious.priya/information-extraction-from-cv-acec216c3f48. Thanks to Priya for sharing this concepthttps://www.kaggle.com/nirant/hitchhiker-s-guide-to-nlp-in-spacyhttps://www.analyticsvidhya.com/blog/2017/04/natural-language-processing-made-easy-using-spacy-%E2%80%8Bin-python/Special thanksto dataturks for theirannotated datasetSpecial thanksto jjzha for theirtagged datasetwhich was a research by@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",
}DonationIf 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