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.
importasyncioimportosfromdotenvimportload_dotenvfrommagicalapi.clientimportAsyncClientload_dotenv()
asyncdefmain():
api_key=os.getenv("MAGICAL_API_KEY")
ifnotapi_key:
raiseValueError("MAGICAL_API_KEY is missing. Add it to your .env file.")
asyncwithAsyncClient(api_key=api_key) asclient:
result=awaitclient.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