You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Build and run
docker-compose up --build
# Or manually
docker build -t resumeai .
docker run -p 8005:8005 resumeai
API Endpoints
Method
Endpoint
Description
GET
/api/health
Health check
POST
/api/parse
Parse resume text (full analysis)
POST
/api/ats-score
Get ATS compatibility score only
POST
/api/match
Match resume against a specific job
POST
/api/match-all
Match resume against all jobs
GET
/api/resumes
List recently parsed resumes
GET
/api/resumes/:id
Get a specific resume analysis
GET
/api/jobs
List available job postings
GET
/api/sample
Get sample resume text
GET
/api/skills/categories
List skill categories and counts
Parse a Resume
curl -X POST http://localhost:8005/api/parse \
-H "Content-Type: application/json" \
-d '{"text": "John Doe\nSoftware Engineer\nEmail: john@example.com\n5 years of experience\nSkills: Python, Flask, AWS, Docker\nBachelor of Science in CS\nLeadership, Communication"}'
Response:
{
"name": "John Doe",
"email": "john@example.com",
"phone": null,
"sections": {},
"skills": {
"Programming": ["Python"],
"Frameworks": ["Flask"],
"Cloud": ["AWS", "Docker"]
},
"experience_years": 5.0,
"experience_level": "Mid",
"education": "Bachelor of Science",
"ats_score": 62,
"ats_breakdown": {
"contact_email": 10,
"contact_phone": 0,
"skills_count": 8,
"skill_diversity": 9,
"education": 10,
"experience": 15,
"formatting": 10
},
"suggestions": [
"Include a phone number for direct communication with hiring managers.",
"Add a professional summary or objective at the top of your resume."
]
}
ATS Score
curl -X POST http://localhost:8005/api/ats-score \
-H "Content-Type: application/json" \
-d '{"text": "resume text here..."}'
# Run all tests
python -m pytest tests/ -v
# With coverage report
python -m pytest tests/ -v --cov=. --cov-report=term-missing
# Run specific test file
python -m pytest tests/test_services.py -v
Development
# Install dev dependencies
pip install -r requirements.txt
# Run with debug mode
FLASK_DEBUG=1 python app.py
# Lint
flake8 . --max-line-length=120
# Verify syntax
python -c "import ast; [ast.parse(open(f).read()) for f in __import__('glob').glob('**/*.py', recursive=True)]"