ats-fill

Privacy

ats-fill — Terms, Privacy & Security

Published from docs/PRIVACY.md in the repository, which is the file referred to below as authoritative.

Document version: 1.3
Last updated: October 21, 2026
Applies to: the ats-fill browser extension ("the extension") in this repository.

This is the canonical, public statement of the extension's Terms of Use (EULA), Privacy Policy, Security posture, and your data rights. The same content is surfaced in-app under Help & privacy. If the two ever differ, this file is authoritative for the corresponding release.


Summary (TL;DR)


Terms of Use (EULA)

By accepting consent in the extension, you agree to the following:

  1. Review before you submit. The extension only drafts and fills form fields. It never submits an application on your behalf — you review every field and click submit yourself.
  2. You are responsible for accuracy. Auto-filled and AI-drafted answers are suggestions. You are solely responsible for the truthfulness and content of anything you submit to an employer.
  3. Bring your own key (BYOK). Optional AI features run through your own Google Gemini API key; optional extra job sources (Adzuna, USAJOBS, Reed, Jooble, and any custom RSS source you add) and the optional LinkedIn/Google profile import run through your own credentials. Your use of those third-party services is governed by their terms, not ours.
  4. No warranty. The extension is provided "as is", without warranty of any kind, express or implied. To the maximum extent permitted by law, the authors are not liable for any damages, lost opportunities, or rejected applications arising from its use.
  5. Acceptable use. Do not use the extension to submit fraudulent or misleading applications, or to violate the terms of any job board or ATS.
  6. Open source. The extension is distributed under the license in this repository (LICENSE); that license governs the software itself.

Privacy Policy

We run no servers

There is no ats-fill account and no backend. Your data is never transmitted to us, and we have no infrastructure capable of receiving it.

What is stored, and where

The following are stored only in your browser's local extension storage (chrome.storage.local) on the current device/browser profile:

Nothing syncs to the cloud. Uninstalling the extension or using Delete all local data removes it.

What leaves your device

Data leaves your device only when you trigger an optional network action:

Action Destination Sent Auth
Resume parsing / answer drafting / summarize Google Gemini API the relevant resume/JD/answer text your Gemini key
Job search Nine keyless boards (Remotive, Arbeitnow, The Muse, Remote OK, Jobicy, Working Nomads, HN Who's Hiring, We Work Remotely, remote.co); Indeed and Hackajob (no key); Adzuna, USAJOBS, Reed, Jooble (your keys); any custom RSS source you add your search query your keys where applicable
LinkedIn session job search (optional) LinkedIn Voyager API your search query, via your active browser session your existing LinkedIn sign-in
LinkedIn / Google profile import (optional) LinkedIn or Google OAuth/OIDC OAuth handshake your own app credentials + your sign-in
Custom job source fetch (optional) whatever URL you add your search query (appended as a param when the feed doesn't already encode one) none — a one-time browser permission prompt scoped to that site
Submitting an application (you press Submit; ats-fill never does) that employer's application site the answers ats-fill filled in, including any opt-in disability, salary or location answers, and the attached resume file none — the employer's own form

Without a Gemini key, autofill still works fully using deterministic, on-device logic and sends nothing anywhere. Each request sends only what is needed to fulfill that request.

Optional AI assistant access

Off by default. When you turn on Settings → AI assistant access, ats-fill checks about once a minute with a small helper program you installed on your own computer (ats-fill setup), and applies tracker changes your AI assistant queued there: adding or updating applications, never deleting them. The helper only moves files inside ~/.ats-fill/bridge/ on your computer. Nothing goes online, and the helper can't see your profile, keys, other extension data or any website. Turn the setting off, or run ats-fill uninstall-helper, to stop.

Sensitive / demographic data

Race, gender, veteran, and disability fields are opt-in, stored locally only, and are never included in AI requests.

Third parties

The only third parties that can receive your data are the services listed in the table above, and only for requests you explicitly initiate with your own credentials. There is no analytics, advertising, tracking, or telemetry of any kind.


Security


Your rights (GDPR & CCPA)

Because all data lives locally on your device and we never receive it, you are the sole controller of your information and can exercise every right directly:


Data controls — what each action removes

🧹 Clear temp cache — removes only short-lived working data: cached page drafts (in-progress form values), the last generated answer set, the last fill report, and the "recently filled" pointer. Your profile, resume, saved memory, tracker, settings, and keys are kept.

🗑 Delete all local data — wipes everything the extension stores on your device: profile and resume, saved answer defaults & ignore list, the entire application tracker, all settings (including your Gemini API key and recorded consent), plus everything the temp cache covers. This cannot be undone.


Changes to this document

Material changes will bump the Document version and Last updated date above, and update the in-app Help panel to match. Continued use after a change constitutes acceptance of the revised terms.

Contact

This is an open-source, local-first project. Questions and reports go through the repository's issue tracker / the process described in SECURITY.md.