Back to all guides
Design GuideWorkflow · Tooling

Job Application Assistant — Setup & Usage Guide

A step-by-step walkthrough — environment setup, API keys, the daily search pipeline, assisted apply and progress tracking.

Job Application Assistant — Setup & Usage Guide

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

#ActionCommand
1Open a terminal in the project foldercd job_app_assistant
2Create a virtual environmentpython -m venv venv
3Activate it (Windows)venv\Scripts\activate
4Install dependenciespip 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
Download full guide (PDF)