Skip to content

Configuration

Configuration lives in .env at the repo root (start from .env.example). docker-compose.yml forwards these into the backend container.

VariableMeaning
ANTHROPIC_API_KEYYour Claude API key. Without it the app runs but every call to Claude fails.

Each kind of call runs on a model chosen for that kind of work. Calls whose output you review, and the web-research calls, run on Sonnet; calls that only read structured fields out of a previous call’s notes run on Haiku.

Call siteDefaultWhat it does
selection_rewriteSonnet 5Selection + Rewrite for a Generation
selection_previewSonnet 5Selection-only preview
cover_letterSonnet 5Cover letter drafting
ral_researchSonnet 5Salary-range research
ral_extractionHaiku 4.5Pulling the range out of those notes
application_method_inferenceHaiku 4.5How one applies
contact_researchSonnet 5Contact research
contact_extractionHaiku 4.5Pulling the contact out of those notes

Override one call site, or all of them:

Terminal window
SUMISURA_MODEL_SELECTION_REWRITE=claude-opus-5 # try Opus on Rewrite alone
SUMISURA_MODEL_DEFAULT=claude-haiku-4-5 # everything at once

A per-call-site variable beats SUMISURA_MODEL_DEFAULT, which beats the built-in default. Values are passed to the API unchanged — an unknown model id does not stop the backend starting, the affected call just fails with the API’s own error.

Restart the backend after changing .env.

The app tracks usage and estimated cost per Generation and in total — see the usage view. Estimates come from a price table in the repo; a model missing from it estimates at $0 and logs a warning. Your actual bill is whatever Anthropic charges your key.

VariableMeaning
BIND_ADDR127.0.0.1 by default. See LAN-reachable mode.
LAN_AUTH_TOKENShared token required in LAN mode. Unset means the check is off.
DATA_DIR, PROJECT_ROOTWhere records and templates live; the defaults suit a normal checkout.