Parse resumes into structured JSON using Python and MagicalAPI.
This repository is a simple starter kit for developers who want to add AI-powered resume parsing to recruiting tools, ATS platforms, HR dashboards, and automation workflows.
- Resume parsing pipelines
- Candidate profile extraction
- ATS integrations
- HRTech automation workflows
- Recruiting data enrichment
git clone https://github.com/magicalapi/resume-parser-python.git
cd resume-parser-python
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
Create a .env file:
cp .env.example .envCreate a free account and get your API key:
https://panel.magicalapi.com/api-info
After signing up, copy your API key and add it to your .env file:
MAGICAL_API_KEY=your_api_key_herepython examples/parse_resume_from_url.pyMake sure the resume URL inside the example file points to a real PDF resume.
import asyncio
import os
from dotenv import load_dotenv
from magicalapi.client import AsyncClient
load_dotenv()
async def main():
api_key = os.getenv("MAGICAL_API_KEY")
if not api_key:
raise ValueError("MAGICAL_API_KEY is missing. Add it to your .env file.")
async with AsyncClient(api_key=api_key) as client:
result = await client.resume_parser.get_resume_parser(
url="https://example.com/resume.pdf"
)
print(result)
if __name__ == "__main__":
asyncio.run(main()){
"full_name": "John Doe",
"email": "john@example.com",
"phone": "+1 555 123 4567",
"skills": ["Python", "Machine Learning", "SQL"],
"education": [],
"experience": []
}You can parse multiple resumes using:
python examples/batch_resume_parsing.pyThis repository focuses only on resume parsing.
For all MagicalAPI services, use the official SDK:
https://github.com/magicalapi/magicalapi-python
- Resume Parser
- Resume Checker
- Resume Matcher
- LinkedIn Profile Data
- LinkedIn Company Data
MIT