Privacy & Data Boundaries
What is local, what is private, and what leaves your machine.
Local by default
CareerRat's canonical candidate state and local artifacts live on your machine:
.careerrat/db/careerrat.dbis the canonical, gitignored SQLite store in new workspaces..careerrat/candidate/and.careerrat/workspace/are gitignored compatibility exports and local artifacts, including job bodies, tailored documents, recruiter threads, and research.
No CareerRat-operated server receives your data. The package is code + skills, not a service.
The packaged desktop app checks for updates
The packaged Mac app checks GitHub's latest-mac.yml release metadata once a
day. The request carries no candidate data or account identifier. It sends no
unique installation or device identifier, and it sends no cookies. When a newer
release is available, the app downloads the signed and notarized app update.
latest-mac.yml is GitHub-hosted SHA-512 checksum metadata that identifies the
exact updater artifact; it is not an additional signature. The updater verifies
that checksum before installation. It does not upload anything from your
workspace.
Nothing installs during a normal quit. CareerRat waits for you to choose Restart and install, then closes its local services before the native updater runs. Turn automatic checks and downloads off any time from Settings; manual Check for Updates… still works while that preference is off.
This update path is desktop-only. It never runs in the browser dev app, and it has
nothing to do with the npm CLI's own careerrat update, which continues to
check the npm registry for CLI users.
The careerrat.com website
The careerrat.com marketing site and these docs pages use cookieless, anonymous analytics, served through a CodesWhat-operated proxy. Three kinds of events are recorded: page views, clicks on the site's main call-to-action buttons, and Core Web Vitals performance numbers. No cookies are set and no cross-site tracking happens. This is scoped to the public website and docs only: the CareerRat app and CLI you run locally send nothing to it.
What the agent API receives
When your agent generates text (tailoring a résumé, drafting an email), its runtime may call an AI provider. CareerRat supports Claude Code and OpenAI Codex for the complete CareerRat product.
CareerRat owns the workflows and threads locally. An engine is selectable only after local availability, authentication, and the complete readiness check pass. A failed check stops clearly. The app never silently switches providers.
The text sent includes the relevant portions of your candidate profile, JD body, and instructions. Review the selected provider's privacy and retention terms before use.
CareerRat does not send that context to a CareerRat-operated service. The local runtime communicates with its provider under that provider's terms.
Compensation privacy
profile.yml#compensation.current_base is a private gate input. It is used
to inform comp strategy and validate offers but must never appear in any outbound
artifact — résumé, cover letter, recruiter message, interview packet, or any
tracker field that could be shared.
Outbound comp anchors on target_base (or oe_max_base for OE roles).
minimum_base is an internal walk-away reference — never surfaced outbound unless
you explicitly instruct otherwise.
The careerrat gate, careerrat evidence, and careerrat learnings helpers all
refuse to write an entry that contains current_base in any outbound field.
Git safety
The .gitignore in the repo root excludes .careerrat/ (holding candidate/,
workspace/, and all generated runtime files) as a whole. As long as you work
inside a clone of the repo (the canonical install path), your data will not be
committed or pushed accidentally.
If you put CAREERRAT_HOME outside the repo tree, the protection is the same —
the files are simply never in a tracked directory.
Browser automation and credentials
When opt-in browser automation is enabled, CareerRat drives your existing browser session — it does not store credentials. The session browser (Orca, Chrome extension, or a persistent browser profile) holds your logins. CareerRat reads pages and fills forms through that session without copying raw credentials into CareerRat state.
The Activity Pulse is visible
Activity history renders in the local app and is schema-validated for
privacy before every write. The careerrat activity helper refuses any entry that
contains current_base or placeholder residue. Activity events are an audit
trail, not a highlight reel — log only what actually happened.
Research memory
Company intel and comp benchmarks in .careerrat/workspace/research/ are treated
as outbound. The careerrat research helper refuses to write an artifact that
cites no source or contains current_base. Three fact tiers are enforced:
- Verified evidence (
.careerrat/candidate/evidence.yml) - may appear in résumés and cover letters. - Sourced-web facts (cited with
[source: …]) — live in research artifacts only. - Agent-inferred syntheses (
[AGENT-INFERRED from: …]) — live in research artifacts only.
Tiers 2 and 3 are never laundered into evidence claims without your explicit review.