An AI-powered tool that accelerates your job application process by analyzing job descriptions, tailoring your resume, and drafting application answers and cover letters.
- JD Analysis — Extract key skills, requirements, and ATS keywords from job postings
- Resume Tailoring — Intelligently reword your resume to match job descriptions while preserving formatting
- Application Drafting — Generate answers to common questions and tailored cover letters
- Mobile Dashboard — Review and approve applications from your phone with real-time updates
- Background Processing — Process job submissions 24/7 via webhook or background worker
- Experience Bank — Maintain a structured library of your genuine skills and achievements
- Activity Tracking — Monitor every step with a detailed activity log
- Cost Tracking — Real-time API usage and cost monitoring
- Backend: FastAPI + Python 3.11+
- Database: SQLite (activity log, job queue, tracker, experience bank)
- AI: Anthropic Claude API (configurable models for cost optimization)
- Resume Handling:
python-docx(layout-preserving edits) - Background Jobs: APScheduler + WebSocket (real-time mobile updates)
- Mobile: PWA with ServiceWorker caching, responsive design
- Testing: pytest
git clone <repo-url>
cd Job-Application-Accelerator
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txtcp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY
# Edit config.yaml if needed (optional — defaults work for most setups)python app.py
# or: python -m uvicorn app.main:app --reloadOpen http://localhost:8787 in your browser.
- Access the dashboard and upload your master resume (
.docxfile) - The tool extracts your contact info and creates an experience bank from it
- Paste a JD in the dashboard or use the webhook to queue one
- The background worker processes it (tailors resume, drafts answers)
- Review, edit, and approve on the dashboard
Submit jobs programmatically:
curl -X POST http://localhost:8787/api/webhook/submit-jd \
-H "X-API-Token: YOUR_WEBHOOK_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"jd_text": "Job description here...",
"company": "Acme Corp",
"role": "Software Engineer",
"location": "Remote"
}'Set YOUR_WEBHOOK_TOKEN in .env (any random string you choose).
mkdir -p ~/.job-accelerator
cp launchagent/com.accelerator.job-application.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.accelerator.job-application.plistmkdir -p ~/.config/systemd/user/
cp systemd/job-accelerator.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable job-accelerator
systemctl --user start job-acceleratorThe tool uses SQLite with these main tables:
- activity_log — Timestamped log of every action
- job_queue — Submitted JDs awaiting processing
- contact_info — Extracted from active resume
- resume_versions — History of uploaded resumes
- tracker — Application tracking (company, role, status, etc.)
- experience_bank — Structured repository of your genuine skills and achievements
.
├── app/
│ ├── main.py # FastAPI app + endpoints
│ ├── database.py # SQLite schema + operations
│ ├── config.py # Config loading (.yaml + .env)
│ └── logging_setup.py # Logging configuration
├── data/ # Data directory (created at runtime)
│ ├── accelerator.db # SQLite database
│ ├── resumes/ # Uploaded master resumes
│ ├── tailored/ # Tailored resumes (outputs)
│ └── accelerator.log # Application log
├── static/ # CSS, JS, manifest.json
├── templates/ # HTML templates (if needed)
├── tests/ # pytest suite
├── config.yaml # Configuration
├── .env.example # Environment template
├── requirements.txt # Python dependencies
└── BUILD_LOG.md # Phase audit reports
Edit config.yaml to customize:
- Port:
app.port(default: 8787) - Data directory:
data.base_dir(default:./data) - API models:
anthropic.models(with cost-optimized defaults) - Background job interval:
background.job_queue_interval_minutes - Region-aware flags: Customize sensitive question detection per region
Override with environment variables:
export APP_PORT=9000
export DATA_BASE_DIR=~/my-accelerator-dataThis tool is designed to minimize API costs:
- Bulk operations (routine answer drafting) →
claude-haiku-4-5-20251001(cheapest) - Quality operations (resume tailoring, cover letters) →
claude-sonnet-4-6 - Optional:
claude-opus-4-8(user-selectable in dashboard) - Local operations: Keyword extraction, ATS scoring, activity logging, all analytics
The dashboard shows real-time token usage and estimated costs.
- No fabrication — Never add fake experience or keywords; tailor only genuine content
- Preserve layout — Only text changes; formatting, fonts, spacing remain identical
- Human-in-the-loop — Tool prepares; you review and submit
- No auto-submit — Never logs into or auto-submits on LinkedIn, Indeed, Naukri, etc.
- Sensitive questions — Work authorization, visa, salary left for you to answer
- Webhook auth — All submissions require valid
X-API-Tokenheader
pytest
pytest -v # Verbose
pytest --cov # With coverage reportAPI key not found:
# Ensure .env exists and contains ANTHROPIC_API_KEY
cat .env | grep ANTHROPIC_API_KEYDatabase not initializing:
# Check data directory permissions
ls -la data/Background worker not running:
# Check logs
tail -f data/accelerator.logPort already in use:
# Change port in config.yaml or via environment variable
export APP_PORT=9000For issues or feedback, please open an issue on the project repository.
MIT License (see LICENSE file)
Application email: mohammedtawheed9317@outlook.com
Build Status: Phase 0 Scaffold Complete