ApplyOptics

Privacy Policy

This policy describes what the ApplyOptics site does with information. It matches the product as it runs today: transcription, not scoring. The public demo sends resume files to the configured vision provider, or to both Gemini and Anthropic when cross-checking is on. A zero-data-retention arrangement is not in place.

Effective September 29, 2026. ApplyOptics by AnchorForged.

What this product is

We transcribe, not score!

  • We transcribe resume fields. We do not score, rank, filter, or recommend candidates.
  • The public demo submit is simulated. It does not post to an employer ATS.
  • On resume extract, the file is sent to the vision provider so it can be read. A zero-data-retention arrangement with that provider is not in place.
  • ATS connectors that are not configured fail closed. They do not pretend a write succeeded.

Who we are

ApplyOptics is a product of AnchorForged. This policy covers the ApplyOptics website, including the public demo, hosted apply, and the design-partner form. Contact [email protected] for privacy questions about ApplyOptics.

AnchorForged also offers Chiefly, a sibling product. Chiefly is not ApplyOptics. This policy does not describe Chiefly. Chiefly’s own App Store listing is the place to read how that product handles information. An ApplyOptics upload is not sent to Chiefly.

The short version

We transcribe, not score! We do not score, rank, filter, or recommend candidates, and we do not sell personal information.

If you upload a resume, we send it to the configured vision provider so it can be read for that request and return a transcript for you to confirm. When both Gemini and Anthropic are configured on the host, and cross-checking is not turned off, the same file is sent to both. Fields they disagree on are flagged for you to confirm. A zero-data-retention arrangement is not in place. Each provider may keep API inputs under its own terms. We do not train ApplyOptics models on the upload.

The public demo submit is simulated. It does not create an application and it is not posted to an ATS. A hosted apply write happens only when a connector is configured and you confirm the fields. If it is not configured, the write fails closed.

Resume files

When you upload a resume on the demo or on hosted apply, we handle it like this:

  1. Your browser sends the filename, file type, and file contents to our server.
  2. We check the type and size. The extract cap is 8 MB. Allowed types include PDF, Word (.docx), JPEG, PNG, and WebP. The demo also accepts common phone-photo types.
  3. We send the file to the configured vision provider so it can transcribe fields. PDF and images go as file parts. A Word file is converted to text on our server, then sent as text. When both Gemini and Anthropic keys are set and cross-checking is not turned off, we send that same content to both.
  4. We return a transcript for you to confirm. Treat the upload as shared with each provider that received it. A zero-data-retention arrangement is not in place. Fields the providers disagree on are flagged for you to confirm.

Anthropic and Google Gemini are both implemented. With one key, or with cross-checking turned off (`CROSS_PROVIDER=0` on the host), only the selected provider receives the file. With both keys and cross-checking left on, both receive it.

Anthropic’s commercial API terms say they do not train on API inputs by default, and that they delete inputs within a limited period, with legal and policy exceptions. We have not confirmed a zero-data-retention agreement, so we do not promise one. When Gemini receives the file, Google’s terms for that API tier apply, and an unpaid Gemini tier can allow submitted content to be used to improve Google products. Do not assume a given deployment is on a paid tier that turns that off.

We do not use resume uploads to train an ApplyOptics model. We do not use them to build a score or a rank.

Public demo

/demo runs a real transcription on the file you upload, as described above. The sample employer on that page is fictional. When you submit, the confirmed transcript stays in that simulated demo. We do not create an application record and we do not post it to Greenhouse, Lever, or any other ATS.

Hosted apply

/apply can list jobs and submit a candidate-confirmed application only when the server has a connector configured. Greenhouse Job Board is the live write path. The payload is the fields you confirmed, answers to that posting’s questions, and, where the connector sends it, the resume file. We do not attach a score or a rank. Greenhouse-style custom answers that look like a score or rank are dropped.

If credentials are missing, the request fails closed. We do not store a pretend successful application to paper over that. Workday, Taleo, and Rippling do not become live writes by being named in the product.

A successful write is delivered to the employer’s ATS. From that point the employer and the ATS vendor handle it under their own terms. Some Greenhouse postings ask for consent flags (including GDPR-style processing or retention consent). We pass through the choice you make on that form. We do not treat those checkboxes as a full privacy program of our own.

If the host requires an access token for /apply, that token can be kept in this browser’s session storage so you do not retype it on every action. It is not a marketing identifier.

Design-partner requests

If you ask about a design-partner seat, we collect your name, work email, company, the page you submitted from, and the browser user-agent string. When our database is connected, those fields are stored in Postgres (Supabase) so we can reply. We use them to contact you about that conversation. We do not use them to score you.

If the database is not connected, the page says so and may keep the request in this browser’s local storage only. An optional notification webhook, if the host has set one, receives the name, email, and company after a new stored request. That webhook is operational mail, not a resume archive.

Email [email protected] to ask us to delete a design-partner request we stored.

Security checks and operations

When Cloudflare Turnstile is configured, extract, the design-partner form, and hosted submit require a completed bot check. We send the token to Cloudflare to verify it. We do not use that check to build an advertising profile. If Turnstile is required and the check fails, the request fails closed.

We rate-limit some requests. Counters can include an IP address and a count, held in process memory, or in Redis or Upstash when the host is configured for more than one replica. Those counters are for abuse control, not for candidate ranking.

The internal test lab and premise-check pages can store accuracy checklists (how well a transcription matched a known sample). Those rows are about the harness. They are not candidate scores, and they are not a place to upload a real person’s resume.

Collateral duty suggestions

On the military skills translator, wording help for a duty you describe is built in your browser from the words you type. It does not leave your browser. A duty you add stays in this browser tab (session storage). A refresh keeps it. Closing the tab clears it. We do not write it into a reviewed translation from your browser.

If you choose “Send this duty for review,” we send the duty name, and any civilian title, bullets, skills, abbreviation, branch, notes, and primary job code you included, plus the time of the suggestion. We do not ask for your name or email on that form. When the host has set a place for those suggestions to go, the fields are posted there so a person can review them before a reviewed translation. We do not add every suggestion. Your browser does not write the reviewed translations. If that path is not set up, the page says the suggestion was not sent. We do not fill in a title or an impact figure you left blank. The technical path, when configured, is a collateral-suggestion webhook. It receives only the fields above.

Blank fields stay blank. A suggestion is not a curated mapping, not hiring eligibility, and not a Department of Defense endorsement. The translator does not state an accuracy percentage.

What stays in the browser

ApplyOptics does not set advertising cookies. The site can use browser storage for the product itself:

  • local storage, for a design-partner request when the database is unavailable, and for internal lab notes on that browser.
  • session storage, for a hosted-apply access token when one is required, and for unverified collateral duties you type on the military skills translator.

You can clear that storage in your browser. Clearing it does not delete a row we already stored in our database.

Who else receives data

Depending on what you do, and on how the host is configured:

  • Anthropic — vision transcription when that provider is selected, and whenever cross-checking with Gemini is on. Receives resume content.
  • Google (Gemini API) — vision transcription when that provider is selected, and whenever cross-checking with Anthropic is on. Receives resume content.
  • Supabase — Postgres for design-partner requests and harness rows.
  • Railway — hosts the site and serves the extract request.
  • Cloudflare — Turnstile bot check, when enabled.
  • Redis or Upstash — shared rate-limit counters, when enabled. IP and counts, not the resume.
  • A notification webhook — only if the host set one. Name, email, and company from a new design-partner request.
  • A collateral-suggestion webhook — only if the host set one. The duty name and any civilian title, bullets, skills, abbreviation, branch, notes, and job code from a suggestion you chose to send. Not a resume file, and not your name or email.
  • The employer’s ATS — Greenhouse Job Board, only when a hosted apply is configured and you confirm a submit.

This list is how the current product is built. It is not a signed subprocessor addendum. A design partner who needs a data processing agreement should ask for one in writing. We will not pretend this page is that agreement.

How long we keep it

Resume extract: the file is sent to the configured vision provider or providers for transcription. A zero-data-retention arrangement is not in place. How long each provider keeps API inputs follows that provider’s terms, as described above. Data handling past this public demo is a design-partner conversation, not a retention guarantee on this page.

Design-partner requests: kept so we can follow up, until you ask us to delete them or we no longer need them for that conversation.

Browser storage: until you clear it, or until the session ends for session storage.

Collateral suggestions: sent to the webhook when one is configured, and kept by whatever system receives that webhook. We do not store them in the ApplyOptics database. The draft copy in session storage lasts until you close the tab or clear it.

Rate-limit counters: short-lived.

Your choices

You do not have to upload a resume. If you do, it will be sent to the configured vision provider, or to both Gemini and Anthropic when cross-checking is on. Use the demo only if you are comfortable with that. Do not upload someone else’s resume unless you are allowed to.

You can use the military skills translator without suggesting a duty. Custom draft entries stay in the browser tab until you remove them or close the tab.

You can skip the design-partner form. If you already submitted one and want it removed, email [email protected].

We do not sell personal information. We do not share it for cross-context behavioral advertising. We do not use it to score or rank candidates.

Children

ApplyOptics is a hiring-transcription demo and an early employer product. It is not directed at children under 16, and we do not knowingly collect their personal information. If you believe a child submitted information, email us and we will delete a design-partner row we can identify.

Changes

We will update this policy when the product’s data handling changes, and we will change the effective date. The current effective date is September 29, 2026. The Terms of Service describe the product rules that sit next to this policy.

Contact

ApplyOptics privacy contact, AnchorForged: [email protected].