Skip to main content

ResumeMiner

A lightweight Python library for extracting structured information from PDF resumes.

Features

  • PDF text extraction via pypdf
  • Email and phone number extraction
  • LinkedIn, GitHub, and portfolio URL extraction
  • Configurable skill matching against a bundled default list
  • Simple API and command-line interface
  • Structured dictionary output with raw extracted text

Installation

pip install resumeminer

Requires Python 3.9 or newer.

Development

git clone https://github.com/alixaprodev/resumeminer.git
cd resumeminer
pip install -e ".[dev]"

Quick Start

from resumeminer import ResumeParser

parser = ResumeParser("resume.pdf")
result = parser.parse()

print(result["email"])
print(result["skills"])
from resumeminer import parse_resume

result = parse_resume("resume.pdf")
print(result)

Optional custom skills list:

parser = ResumeParser("resume.pdf", skills=["Python", "Rust", "Go"])
result = parser.parse()

CLI Usage

Parse a resume:

resumeminer parse resume.pdf

Human-readable output (default):

Email:     jane.developer@example.com
Phone:     +1 (555) 123-4567
LinkedIn:  https://linkedin.com/in/jane-developer
GitHub:    https://github.com/janedev
Portfolio: https://janedeveloper.dev
Skills:    Python, Django, React, Docker, AWS

Full JSON output (includes raw_text):

resumeminer parse resume.pdf --json

Print version:

resumeminer --version

Output Example

{
    "email": "jane.developer@example.com",
    "phone": "+1 (555) 123-4567",
    "links": {
        "linkedin": "https://linkedin.com/in/jane-developer",
        "github": "https://github.com/janedev",
        "portfolio": "https://janedeveloper.dev"
    },
    "skills": ["Python", "Django", "React", "Docker", "AWS"],
    "raw_text": "..."
}

Supported Files

  • PDF resumes with extractable text

Scanned or image-only PDFs are not supported in v0.1.0.

Limitations

  • Extraction quality depends on PDF structure and formatting
  • Regex-based parsing may miss or misread fields on unusual layouts
  • Skill detection uses a fixed default list unless a custom list is provided
  • Phone and portfolio URL extraction may return imperfect matches on some resumes

Roadmap

  • OCR support for scanned resumes
  • DOCX and TXT file support
  • Name, education, and experience extraction
  • Section-based parsing
  • Custom skill dictionary file path
  • JSON schema output
  • Batch parsing CLI

Contributing

Contributions are welcome.

  1. Fork github.com/alixaprodev/resumeminer
  2. Create a feature branch
  3. Add tests for behavior changes
  4. Run pytest
  5. Open a pull request

Report issues on GitHub Issues.

License

MIT License. See LICENSE.

Author

H. Ali

Metadata

Release files for resumeminer 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for resumeminer 0.1.0
File Size Uploaded Provenance Actions
resumeminer-0.1.0.tar.gz 368.7 kB Without provenance Details for resumeminer-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for resumeminer 0.1.0
File Interpreter ABI Platform Actions
resumeminer-0.1.0-py3-none-any.whl Python 3 none any Details for resumeminer-0.1.0-py3-none-any.whl

Total release size: 379.4 kB

Release files / resumeminer-0.1.0.tar.gz

Download URL resumeminer-0.1.0.tar.gz
Size 368.7 kB
Tags Source
SHA-256 checksum
How to use checksums
02b6961890fff9cc704d1d8032b7a92fd21dfa8e4262c1027d30a364ac55e3f1
BLAKE2b-256 checksum
How to use checksums
733d62971917edafd4e493bdc70bf69d11605eeb6f2d2b8ebde41be93dcec0f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / resumeminer-0.1.0-py3-none-any.whl

Download URL resumeminer-0.1.0-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b5744de19e2ce2fdbed91e3b2bfb5cbf3c78a50bd59ec569fa6fde8336d93b8a
BLAKE2b-256 checksum
How to use checksums
c9d38c869f779de797c0785f1b45b04745a81f2905353077e1b64793247b62cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for resumeminer 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page