PHPackages                             sohagsrz/resume-parser - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. sohagsrz/resume-parser

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

sohagsrz/resume-parser
======================

A robust PHP package for extracting structured data from resume PDFs.

v1.0.0(11mo ago)144↓50%MITPHPPHP &gt;=7.4

Since May 31Pushed 11mo agoCompare

[ Source](https://github.com/Sohagsrz/resume-parser)[ Packagist](https://packagist.org/packages/sohagsrz/resume-parser)[ RSS](/packages/sohagsrz-resume-parser/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

🚀 Resume Parser
===============

[](#-resume-parser)

[![Packagist](https://camo.githubusercontent.com/4cafed3a5c92083a315493cb431f94a296446a4c8bd18e9d47c9e371df049d6b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736f68616773727a2f726573756d652d7061727365723f636f6c6f723d726564)](https://packagist.org/packages/sohagsrz/resume-parser)[![License](https://camo.githubusercontent.com/366a7d127014ba0d793073aa022ece9fe617233e29a57bea4f81b69a904b018d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f736f68616773727a2f726573756d652d7061727365723f636f6c6f723d677265656e)](LICENSE)[![GitHub stars](https://camo.githubusercontent.com/1b160c1fdb4b0cced4c9510724ba2d232abb65b2d7580e45dec7df053bf77f15/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f736f68616773727a2f726573756d652d7061727365723f7374796c653d736f6369616c)](https://github.com/sohagsrz/resume-parser/stargazers)

> **A modern PHP package to extract structured data from resume PDFs — with both classic and OpenAI-powered AI parsing!**

Easily extract names, emails, phone numbers, social handles, skills, education, experience, certifications, and languages from any resume PDF. Use classic parsing for speed, or unleash the power of OpenAI for even more robust results.

---

✨ Features
----------

[](#-features)

- Extracts name, email, phone, address
- Detects and normalizes global phone numbers
- Extracts all major social handles (LinkedIn, GitHub, Twitter/X, Facebook, Instagram, Stack Overflow, Dribbble, Behance, Medium, YouTube, TikTok, Pinterest, Telegram, WhatsApp, blog, website)
- Parses skills (technical, soft, and unique skills)
- Extracts education, experience, certifications, and languages
- Section-based parsing for high accuracy
- Optional: AI-powered parsing using OpenAI for even more robust extraction
- Outputs structured JSON/array

---

📦 Installation
--------------

[](#-installation)

```
composer require sohagsrz/resume-parser
```

---

⚡ Usage
-------

[](#-usage)

### Manual/Classic Parsing

[](#manualclassic-parsing)

```
require 'vendor/autoload.php';
use Sohagsrz\ResumeParser\ResumeParser;

$result = ResumeParser::parse('path/to/resume.pdf');
echo json_encode($result, JSON_PRETTY_PRINT);
```

### AI-Powered Parsing (OpenAI)

[](#ai-powered-parsing-openai)

```
require 'vendor/autoload.php';
use Sohagsrz\ResumeParser\OpenAIResumeParser;

$apiKey = 'sk-...'; // Your OpenAI API key
$result = OpenAIResumeParser::parse('path/to/resume.pdf', $apiKey);
echo json_encode($result, JSON_PRETTY_PRINT);
```

---

📝 Example Output Structure
--------------------------

[](#-example-output-structure)

```
{
  "name": "Md Sohag Islam",
  "email": "mdsohagislam25@gmail.com",
  "phone": "+8801798965122",
  "address": "Niyamotpur, Saidpur, Bangladesh",
  "linkedin": ["https://linkedin.com/in/sohagbd"],
  "github": ["https://github.com/sohag-dev"],
  "twitter": [],
  "facebook": [],
  "instagram": [],
  "stackoverflow": [],
  "dribbble": [],
  "behance": [],
  "medium": [],
  "youtube": [],
  "tiktok": [],
  "pinterest": [],
  "telegram": [],
  "whatsapp": [],
  "blog": [],
  "website": [],
  "skills": ["PHP", "Laravel", "React", "Tailwind CSS"],
  "education": [
    {
      "degree": "BSc in Computer Science",
      "institution": "AIUB",
      "year": "2026"
    }
  ],
  "experience": [
    {
      "job_title": "Backend Developer",
      "company": "Ujjol Lab",
      "duration": "2022-2024",
      "description": "Developed REST APIs, maintained Laravel applications."
    }
  ],
  "certifications": ["AWS Cloud Practitioner", "Meta Frontend Certificate"],
  "languages": ["English", "Bangla"]
}
```

---

💻 Example Demos
---------------

[](#-example-demos)

- `example/parse_example.php` — Manual/classic parsing
- `example/bootstrap_upload.php` — Manual/classic parsing with Bootstrap upload form
- `example/bootstrap_ai_upload.php` — AI-powered parsing with Bootstrap upload form and OpenAI API key

---

🔑 OpenAI API Key
----------------

[](#-openai-api-key)

To use the AI-powered parser, you need an OpenAI API key. You can get one from [OpenAI](https://platform.openai.com/account/api-keys). **Keep your API key secure and do not expose it publicly.**

---

🤝 Contributing
--------------

[](#-contributing)

Contributions, issues, and feature requests are welcome! Feel free to [open an issue](https://github.com/sohagsrz/resume-parser/issues) or submit a pull request.

If you like this project, please ⭐ star it and [follow me](https://github.com/sohagsrz) for more cool open-source tools!

---

📄 License
---------

[](#-license)

MIT

👤 Author
--------

[](#-author)

- [sohagsrz](https://github.com/sohagsrz)

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance50

Moderate activity, may be stable

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

352d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0b54fd787bf38b3fbe6d0e4b5334b36ae7d1775c071acbb2e755aa483067b1a1?d=identicon)[sohagsrz](/maintainers/sohagsrz)

---

Top Contributors

[![Sohagsrz](https://avatars.githubusercontent.com/u/39012004?v=4)](https://github.com/Sohagsrz "Sohagsrz (5 commits)")

### Embed Badge

![Health badge](/badges/sohagsrz-resume-parser/health.svg)

```
[![Health](https://phpackages.com/badges/sohagsrz-resume-parser/health.svg)](https://phpackages.com/packages/sohagsrz-resume-parser)
```

###  Alternatives

[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k191.2M65](/packages/sabberworm-php-css-parser)[jms/metadata

Class/method/property metadata management in PHP

1.8k152.8M88](/packages/jms-metadata)[jms/serializer-bundle

Allows you to easily serialize, and deserialize data of any complexity

1.8k89.3M627](/packages/jms-serializer-bundle)[hassankhan/config

Lightweight configuration file loader that supports PHP, INI, XML, JSON, and YAML files

97513.5M170](/packages/hassankhan-config)[meyfa/php-svg

Read, edit, write, and render SVG files with PHP

54613.9M42](/packages/meyfa-php-svg)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
