Open-source ATS resume optimizer for LaTeX and DOCX resumes.
TailorTom helps users adapt resumes to a job description while preserving structure and readability. It provides:
- Resume optimization jobs (API + worker queue)
- LaTeX compile/preview + diff endpoints
- DOCX-to-LaTeX conversion
- Web UI for creating, tracking, and reviewing jobs
Created by: Ryan Amiri · LinkedIn · GitHub
- Backend API: FastAPI
- Worker: Celery
- Queue/Broker: Redis
- Database: Postgres
- Frontend: Next.js
- Resume rendering: LaTeX toolchain
- Python 3.10+
- Node.js 18+
- Redis
- Postgres
- LaTeX installed (
xelatexavailable) - OpenAI API key
Backend env:
cd backend
cp .env.example .envSet required values in backend/.env:
OPENAI_API_KEYDATABASE_URLREDIS_URLJWT_SECRET
Install dependencies:
# repo root
python -m venv .venv
source .venv/bin/activate
cd backend && pip install -r requirements.txt
cd ../frontend && npm installRun migrations:
cd backend
source ../.venv/bin/activate
alembic upgrade headFrom repo root:
docker compose up -d redis postgresnpm run devThis runs API + worker + web concurrently from repo root.
Open: http://localhost:3000
If you need to run services separately, use:
npm run dev:apinpm run dev:workernpm run dev:web
Backend lint/check:
cd backend
ruff check .Frontend lint:
cd frontend
npm run lintIssues and PRs are welcome. Keep changes focused, test locally, and include migration notes for DB changes.
MIT (see LICENSE).