Job Application Assistant — Setup & Usage Guide
A step-by-step walkthrough — environment setup, API keys, the daily search pipeline, assisted apply and progress tracking.

01
What it does — and never does
It does
- Search live job listings via the Adzuna API
- Score every job 0–100 against your real skills
- Draft tailored cover letters & resume notes
- Pre-fill application forms in a visible browser
- Track status: Saved → Applied → Interview → Offer
- Generate a daily summary report
It never does
- Auto-submit any application, anywhere
- Log into any account or bypass CAPTCHA/OTP
- Scrape LinkedIn or Naukri (against their ToS)
- Fabricate skills, employers, or achievements
- Click Submit/Apply on your behalf
02
One-time environment setup
| # | Action | Command |
|---|---|---|
| 1 | Open a terminal in the project folder | cd job_app_assistant |
| 2 | Create a virtual environment | python -m venv venv |
| 3 | Activate it (Windows) | venv\Scripts\activate |
| 4 | Install dependencies | pip install -r requirements.txt |
One extra step for the Assisted Apply feature: playwright install chromium
03
Configure your API keys
Copy .env.example to .env in the project folder, then fill in your keys.
ADZUNA_APP_ID=your_app_id_here # required ADZUNA_APP_KEY=your_app_key_here # required ANTHROPIC_API_KEY=your_key_here # optional
- Never commit your real .env — it's already excluded via .gitignore.
- The Anthropic key is optional; cover letters still work with built-in templates.
04
Your daily job search pipeline
Step 1
jobs
Find & score
Step 2
list
Review results
Step 3
add-job
Add manual finds
Step 4
prepare
Draft materials
Step 5
assist-apply
Pre-fill form
Step 6
confirm-apply
Record it
Step 7
report
Daily summary
05
Search & score new jobs
Step 3
python -m src.cli jobs- Searches Adzuna for every title in your profile, across every preferred location
- Scores each result 0–100 against your skills, experience and location fit
- Saves everything into data/jobs.csv — safe to open in Excel any time
- Prints a results table in the terminal, sorted by match score
Run this once a day — existing jobs are never duplicated.
06
Review results in Excel
Step 4
python -m src.cli list --min-score 75- Filters saved jobs by minimum match score directly in the terminal
- Or open data/jobs.csv in Excel to browse, sort and filter visually
- Green = 75%+ match · Yellow = 50–74% · Red = below 50%
Focus your time on the green rows first.
07
Draft your application materials
Step 6
python -m src.cli prepare <job_id>- Flags keywords from the job post that are missing in your resume
- Drafts a tailored cover letter and a short recruiter message
- Saves everything to prepared_applications/<job_id>/ for review
- Asks for confirmation before marking the job “Ready to Apply”
Nothing is fabricated — tailoring only reorders and rephrases what's genuinely on your resume.
08
Assisted apply — browser pre-fill
Step 7
python -m src.cli assist-apply <job_id>- Opens the company's application page in a real, visible browser window
- Best-effort fills name, email, phone, LinkedIn, portfolio & cover letter
- Leaves the resume upload and Submit button for you to handle
- Refuses outright on linkedin.com / naukri.com, or if a login page is detected
The browser never clicks Submit — you review every field, then apply yourself.
09
Confirm & track your progress
Step 8
confirm-apply <job_id> → status <job_id> Interview- confirm-apply records that you personally submitted the application
- It never submits anything itself — it's a note-taking step, after the fact
- status moves a job through: Saved → Applied → Interview → Offer/Rejected
- Your full history lives in data/tracker.csv, always editable by hand
Your personal CRM for the job hunt — nothing more.
010
Your daily summary
Step 9
python -m src.cli report- Jobs found today, and how many crossed the 75% match threshold
- Applications prepared vs. actually submitted
- Interviews in progress and total rejections, at a glance
- Highlights your single best opportunity, plus any follow-ups now due
A 30-second check-in — run it first thing to plan your day.
11
Common setup mistakes
Wrong folder
Commands fail with “No module named src” — always cd into the project folder first.
venv not activated
Your prompt must show (venv) before running any python -m src.cli command.
File permission errors
Close jobs.csv in Excel and remove any read-only flag before re-running jobs.
Pasting job_id wrong
Copy the plain ID only — never include the < > angle brackets from examples.
A note on safety
Every feature was built around one rule: it prepares, you decide. It never logs in anywhere, never bypasses anti-bot protection, never touches sites that prohibit automation, and never clicks Submit on your behalf.
- No auto-submit
- No LinkedIn/Naukri automation
- No fabricated skills
- No account risk