Repository navigation
Configuration Reference
gysosin edited this page Oct 8, 2026
·
1 revision
| Setting | Default | Meaning |
|---|---|---|
| Minimum fit score | 60 | Roles scored below this are not drafted |
| Drafts per run | 8 | The most drafts one daily search writes (best first) |
| Minimum company size | 500 | Employees; smaller companies are skipped before scoring. 0 turns it off |
| Keep unknown sizes | off | Keep companies whose size can't be found |
| Triage model | claude-haiku-4-5-20251001 |
First pass over every scraped posting |
| Scoring model | claude-sonnet-5-5 |
Scores postings; also classifies Gmail replies |
| Drafting model | claude-opus-5-5 |
Writes CVs, cover letters, answers and interview prep |
| Send notifications / ntfy topic | off / generated | Schedules and Notifications |
| Check Gmail / address / app password | off | Gmail Tracking |
Everything above, plus secrets, is stored in ~/.config/applydesk/config.json (mode 600, outside the repo). Keys:
| Key | Notes |
|---|---|
min_score, max_drafts, min_company_size, keep_unknown_size
|
as above |
models.triage, models.score, models.draft
|
model IDs |
notify_enabled, ntfy_topic
|
phone alerts |
gmail_enabled, gmail_user, gmail_app_password
|
Gmail check |
cv_email |
optional: an email that must appear in each CV's text layer, checked after compiling |
auth |
the dashboard login (salted PBKDF2 hash); set with python -m app set-password
|
| File | What |
|---|---|
CLAUDE.md |
your identity, target roles, location, deal-breakers |
.claude/skills/job-application-assistant/01-candidate-profile.md |
the facts every draft may use |
app/prompts/claim_bank.txt |
pre-approved CV bullets |
app/store.py → ANSWERS
|
standard form answers on the dashboard |
app/boards.py → BOARDS
|
company career boards |
app/pipeline.py → LINKEDIN_QUERIES, FREEHIRE_QUERIES, AGGREGATORS
|
search queries and blocklist |
app/instahyre.py → QUERIES, YEARS
|
Instahyre search |
app/data/banned_names.txt |
names that must never appear in drafts or be read from email |
app/prompts/*.md |
the prompts for each step |
| Variable | Use |
|---|---|
ANTHROPIC_API_KEY |
use an API key instead of a subscription |
CLAUDE_CODE_OAUTH_TOKEN |
a subscription token from claude setup-token
|
TZ |
timezone for schedules |
CLAUDE_CONFIG_DIR |
where the Claude login lives (Docker sets it) |
| Path | Contents |
|---|---|
job_search_tracker.csv |
every application; the dashboard's source of truth |
job_scraper/seen_jobs.json |
every job already seen, so it isn't scored twice |
app/data/runs.json, app/data/runs/*.log
|
run history (last 300) and logs |
app/data/schedules.json |
schedules |
app/data/replies.json |
job-related emails shown on Today |
app/data/gmail_state.json, gmail_seen.json, gmail_backfilled
|
Gmail check progress |
app/data/company_sizes.json |
company size cache (90 days) |
Apply Desk · MIT · Built on AI Job Search · Screenshots use fictional demo data
Get started
Using it
- Dashboard Tour
- Daily Search Pipeline
- Job Sources
- Gmail Tracking
- Drafts and Interview Prep
- Schedules and Notifications
Reference
Help