Privacy and safety¶
JobScout handles the most sensitive data a person has about their career. These are the guarantees, where they are enforced, and what they do not cover.
Where your data is¶
| Data | Location | In git? | Leaves the machine? |
|---|---|---|---|
| Postings, statuses, plans, runs | data/jobs.db |
no | no |
| Profile, master resume, skills inventory, preferences, fit profile, tailored output | resume/ |
no | only inside prompts to Claude via your own subscription (claude -p) |
| API keys, Discord webhook, settings | config/local.yaml |
no | Adzuna key to Adzuna; webhook URL to Discord |
| Board list, scoring profile, presets | config/*.yaml |
yes | no |
The repository's .gitignore excludes the first three. The CI and the review bot check PRs
for personal data; the maintainers reject any that carries it.
Outbound connections¶
- The configured job sources (ATS APIs, employer careers endpoints, aggregators).
- Discord, only if you set a webhook, only the digest.
claude -pthrough your Claude subscription: fit-scoring prompts (rules, inventory, preferences, job excerpts), tailoring prompts, profile rewrites.
Nothing else. The server binds 127.0.0.1 and ::1 only; there is no telemetry.
The filler's rules¶
Enforced in .claude/skills/apply-queue/SKILL.md and apply.py, not by settings:
- Fills only values from the approved plan; reads every field back before moving on.
- Prefill never clicks Submit. Unattended submits only when the live form matches the
plan exactly; any extra required field, changed option set, captcha or login wall →
held. - Never solves a captcha, never logs in, never creates an account, never types a password, never guesses an answer. A plan value that is not one of the form's options is a bug and is left for you.
- Runs in your Chrome with your sessions through the Claude in Chrome extension, which grants access per interactive session - it cannot run headlessly or in the background.
- Marking a job applied removes its plan from the queue, so nothing is submitted twice.
Legitimate sources only¶
No scraping of LinkedIn or Indeed, no bypassing bot protection or logins - in fetching or in applying. Employers behind those walls are reached through aggregators or listed on the Watchlist. This is a project rule, repeated in CONTRIBUTING and in the review bot's prompt.
Truthfulness¶
The tailoring skill claims only what master-resume.md and skills-inventory.md support;
familiar appears as familiarity, dont-have never appears. The fit scorer judges against
the inventory's levels. Resolvers never fabricate: unresolved fields are shown, referral
questions never resolve to your own name, EEO answers match the form's option wording or are
declined.
What this does not protect you from¶
- Employers' own data handling once you submit.
- Mistakes in your
profile.yaml- every value there can end up on a form. - Anyone with access to your machine. There is no encryption at rest beyond what your OS does.
Reporting¶
Private reports via GitHub's "Report a vulnerability" or the maintainer's email (see SECURITY.md). Never post personal data in a public issue.