Security & data

Your resume, handled with care

Applying for you means holding sensitive information. Here is exactly what we keep, where it lives, who it goes to, and how to delete it.

What we store

Only what’s needed to fill in and submit applications for you, bill you, and keep the service safe:

Account
Your name, email address and profile picture from Google sign-in, plus the sign-in tokens Google returns, which we use only to sign you in.
Sign-in sessions
A random session token, its expiry, and the IP address and browser that signed in.
Resume
The PDF you upload, the text we extract from it, and a structured summary (skills, experience, education).
Profile and answers
Contact details and links, your standing answers (work authorization, sponsorship, salary, notice period…), self-identification choices (default “decline”), answers you’ve saved, your job preferences, saved searches and email settings.
Applications
Each job you queue, the application form as we read it from the employer’s site, the answers we planned, any cover letter we wrote, and the receipt your browser reports back — what was filled in and the confirmation it saw.
Credits and payments
A ledger of every credit added, held and returned, and records of your purchases from Stripe. We never see or store your card number.
Extension connections
For each browser you connect: a hash of its access token (never the token itself), a label, the extension version and when it last checked in.
Emails
A copy of each email we send you, and whether it was delivered.
Activity log
A record of account events — applications queued and their status changes, refunds, payments, sign-up — used for support, accounting and abuse prevention. At sign-up it includes how you first found us (campaign tags, the referring site and the page you landed on), from a first-party cookie.

Where it lives

Database
A managed MySQL-compatible database. The app connects to it over TLS and verifies the server’s certificate.
Files
Resumes and cover letters are kept in private storage — on our server’s disk, readable only by the app, or in a private Cloudflare R2 bucket. They never have a public link: they’re served only to you while you’re signed in, and to your own connected extension for an application it’s submitting.
Payments
Handled by Stripe on its own checkout page. We receive the amount, the pack you bought and Stripe’s reference numbers.
AI processing
To read your resume and draft answers, we send the relevant parts of your resume, profile and saved answers, together with the job posting and its questions, to our AI model provider.
Employers
Each application goes to the employer you chose, through their own Greenhouse, Lever or Ashby application form.

We don’t sell your data or share it for advertising. The full list of service providers is in our privacy policy.

How it’s protected

  • Sign-in is through Google, so there’s no ApplyJobs password to guess or leak.
  • Session cookies are HTTP-only (page scripts can’t read them), sent only over HTTPS and marked SameSite=Lax against cross-site request forgery. Sessions end after 30 days without use.
  • Each extension connection uses a random 256-bit token. We store only its SHA-256 hash, and you can revoke any connection from the Browser extension page.
  • Every request for your data is checked against your account. Your resume and cover letters are served only to you and to your own connected extension. A small number of people who run ApplyJobs can view account records when needed for support and refund reviews.
  • Our pages can’t be embedded in other sites, which blocks click-jacking.
  • Uploads, searches and applying are rate-limited per account.
  • Stripe’s payment notifications are signature-checked, and each payment adds credits exactly once. Credits are an append-only ledger: every change is a new entry.
  • Nothing is submitted until you authorize automated applications, you’re never applied to the same posting twice, and a submission we couldn’t confirm is never retried.

The browser extension

Applications are submitted from your own Chrome by our extension, because job sites flag automated browsers in data centers. It asks for as little as it can:

scripting
To fill in the application form in the tab it opened for that application.
storage
Its connection to your account and the account’s email, its settings (pause, dry run), the application it’s working on, and its last 10 results (company, job title, outcome).
alarms
To wake up about once a minute and check for applications you’ve queued.
notifications
To tell you when a site wants a human check, like a CAPTCHA.
Site access
Only these job sites — job-boards.greenhouse.io, job-boards.eu.greenhouse.io, boards.greenhouse.io, boards.eu.greenhouse.io, jobs.lever.co, jobs.eu.lever.co, jobs.ashbyhq.com — and ApplyJobs itself.
  • On job sites it only acts in the tabs it opens itself; it can’t see other websites, your browsing history or your cookies.
  • On ApplyJobs’ own pages it runs one small script that lets the app connect it to your account — it accepts a connection only from ApplyJobs.
  • It never tries to solve or get around a CAPTCHA. If a site wants a human check, it notifies you and waits for you.
  • Dry run mode fills in forms without submitting them, and you can pause it any time.

Deleting your data

Delete your account any time from the Account page. We first delete your resume and cover letter files, then your account — and with it your profile, applications and receipts, saved searches, credit history, payment records, sessions, extension connections, emails and activity log.

  • Applications you already submitted stay with those employers, under their own privacy policies.
  • Company job boards you added stay in the shared index — they’re public — but are no longer linked to you.
  • Stripe keeps its own records of your payments, as payment processors must.
  • Disconnect the extension from its toolbar popup (that revokes its access), or revoke it from the Browser extension page.

Reporting a problem

If you think you’ve found a security issue, email [email protected] with the details. Please don’t access other people’s data or disrupt the service while testing. We’ll reply as soon as we can and keep you posted while we fix it.