Skip to content

Repository files navigation

AI Resume Analyzer

A portfolio-ready FastAPI backend that extracts text from PDF, DOCX, and TXT resumes, detects technical skills, compares a resume with a job description, calculates a match score, identifies missing skills, and returns actionable recommendations.

Features

  • User registration and JWT authentication
  • PDF, DOCX, and TXT resume uploads
  • Resume text extraction
  • Technical skill detection
  • Job-description keyword matching
  • Match score and missing-skills analysis
  • Saved analysis history
  • SQLite by default; SQLAlchemy can use PostgreSQL
  • Docker, pytest, Swagger UI, and GitHub Actions CI

Technology Stack

Python, FastAPI, SQLAlchemy, JWT, SQLite/PostgreSQL, Docker, pytest, GitHub Actions, pypdf, and python-docx.

Run Locally

git clone https://github.com/YOUR_USERNAME/ai-resume-analyzer.git
cd ai-resume-analyzer
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Copy-Item .env.example .env
uvicorn app.main:app --reload

Open:

API Workflow

  1. Register at POST /api/v1/auth/register.
  2. Log in at POST /api/v1/auth/login.
  3. Copy the token and click Authorize in Swagger.
  4. Upload a resume at POST /api/v1/resumes/analyze.
  5. Optionally include a target job description.

Example Registration

{
  "email": "gerald@example.com",
  "full_name": "Gerald Evan Johnson",
  "password": "StrongPass123!"
}

Tests

pytest -q

Docker

Copy-Item .env.example .env
docker compose up --build

GitHub Push Commands

cd ai-resume-analyzer
git init
git add .
git commit -m "Build AI resume analyzer API"
git branch -M main
git remote add origin https://github.com/YOUR_USERNAME/ai-resume-analyzer.git
git push -u origin main

Replace YOUR_USERNAME with your GitHub username. GitHub will request your username and personal access token if you use HTTPS authentication.

Project Structure

app/
├── api/routes/
├── core/
├── db/
├── models/
├── schemas/
├── services/
└── main.py
tests/
.github/workflows/ci.yml
Dockerfile
docker-compose.yml
requirements.txt
HANDSHAKE_PROJECT_DATA.txt

Security Notes

Change SECRET_KEY before deployment, never commit .env, use HTTPS, and add rate limiting and malware scanning before accepting public uploads.

License

MIT

About

AI-powered FastAPI backend for resume analysis, job matching, skill extraction, JWT authentication, Docker, automated testing, and GitHub Actions CI/CD.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages