https://github.com/doniarobinson/resume-tool
An AI tool that evaluates the semantic similarity between a résumé and a job posting, then autonomously proposes targeted improvements you can review, refine, and selectively apply.
https://github.com/doniarobinson/resume-tool
artificial-intelligence fast-api python typescript
Last synced: about 1 month ago
JSON representation
An AI tool that evaluates the semantic similarity between a résumé and a job posting, then autonomously proposes targeted improvements you can review, refine, and selectively apply.
- Host: GitHub
- URL: https://github.com/doniarobinson/resume-tool
- Owner: doniarobinson
- License: apache-2.0
- Created: 2026-05-20T16:34:09.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-28T00:46:42.000Z (2 months ago)
- Last Synced: 2026-05-28T02:22:27.050Z (2 months ago)
- Topics: artificial-intelligence, fast-api, python, typescript
- Language: Python
- Homepage:
- Size: 95.7 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Job Application Agent
Tailor your resume to a job posting: semantic match score, prioritized rewrite suggestions, and DOCX download.
## Stack
- **Frontend:** Next.js 16 (npm) — `frontend/`
- **Backend:** FastAPI (Python) — `backend/`
## Prerequisites
- Node.js 20+
- Python 3.11+
- [Google Gemini API key](https://aistudio.google.com/apikey)
## Setup
### 1. Backend
```bash
cd backend
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
cp .env.example .env # then add your GEMINI_API_KEY
```
> **Do not** run `pip install` or `python3 -m pip install` without the venv — macOS/Homebrew Python returns `externally-managed-environment`. Always use `.venv/bin/python -m pip`.
>
> **Cursor note:** You can run the server without `activate`: `.venv/bin/uvicorn app.main:app --reload --port 8000`
### 2. Frontend
```bash
cd frontend
npm install
```
## Run locally
Terminal 1 — API on port 8000:
```bash
cd backend
.venv/bin/uvicorn app.main:app --reload --port 8000
# Or after: source .venv/bin/activate
# uvicorn app.main:app --reload --port 8000
```
Terminal 2 — UI on port 3000 (proxies `/api` to backend):
```bash
cd frontend
npm run dev
```
Open [http://localhost:3000](http://localhost:3000).
## Usage
1. Upload a **DOCX** resume (PDF not supported in v1).
2. Paste the full job description.
3. Review match score and suggestions (high → medium → low).
4. Check changes to accept, then download the tailored DOCX.
## Limitations (v1)
- DOCX in/out only
- Basic DOCX structure preserved (headings, paragraphs, bullets); complex layouts may shift
- Requires Google Gemini API for embeddings and suggestions
- Job description must be pasted (no URL fetching — avoids server-side request risks)
## Environment variables
See [.env.example](.env.example).
## Backend tests
```bash
cd backend
.venv/bin/python -m pip install -r requirements-dev.txt
.venv/bin/python -m pytest
```