Privacy and Refunds

Short, plain-language beta policy. If something here is unclear, email [email protected].

What we process

We process the CV, job description, intake answers, and contact details you submit so we can provide the free fit scan, paid CV pack, and related delivery messages you request.

What we will not do

  • We will not sell your personal data.
  • We will not invent internships, employers, degrees, titles, certifications, or metrics. The Fact-Checker stage exists to prevent this.
  • We will not guarantee interviews, offers, recruiter responses, visas, or employment outcomes.
  • We will not autofill or submit any form on your behalf.

AI processing

For the free scan, submitted materials are processed through the 4-stage headline path (R0/R3/R5/R7) of the methodology described on the methodology page. Paid deep-audit packs run the full 11 stages (R0-R10 + R9b). PDF and TXT parsing happens in your browser first. The extracted CV text and the JD text are then sent to our Cloudflare Function, which sends one analysis request to OpenRouter for deepseek/deepseek-chat-v3.1.

We configure the OpenRouter request with provider.data_collection: "deny" and provider.zdr: true. That asks OpenRouter to route the scan only to endpoints it marks as not collecting user data and Zero Data Retention. This is the strongest per-request control currently documented by OpenRouter. Because the scan still goes to a third-party model route, redact phone numbers, national ID or passport numbers, home addresses, and anything else you do not want a model provider to process.

If you paste a JD URL instead of the JD text, our Cloudflare Function makes one GET request to that URL, extracts the visible text from the returned HTML, and uses that as the JD. We do not store the URL or the fetched HTML; only the extracted text is sent to the model along with the rest of the prompt. The fetcher times out after 10 seconds, caps the response at 512 KB, and refuses non-HTML responses. JD pages that require login or are rendered by JavaScript cannot be fetched this way; paste the text instead.

What gets sent to the model provider

For the free scan, we send the CV text you paste or the text extracted from your PDF/TXT, the JD text you paste, the language instruction for the result, and the product prompt that asks for the verdict, missing evidence, risky claims, one rewrite, and next step. We do not send the original file after browser parsing, and we do not send payment-card details.

What we store ourselves is narrower: no CV content, no JD content, no scan markdown, and no account record for the free scan. The production KV floor is only anonymized order ID, timestamp, latency, cost estimate, the scan's language, input mode, verdict, numeric scores, or a failure-class enum for failed scans. To keep the free scan available we also keep a daily rate-limit counter keyed by a salted hash of your connection IP; it stores only a number and expires within 48 hours. Responses use HTTPS and cache-control: no-store.

Optional email capture

If you enter your email on the scan result, we store that email, a timestamp, and the page language in Cloudflare KV so we can contact you about the weekly matching roles beta. This is voluntary. We do not attach CV text, JD text, scan markdown, payment data, or model output to the subscriber record.

You can ask us to delete the subscriber record by emailing [email protected].

Browser-side paid-handoff helper

When you click Get the deep audit (S$79) or Buy the 3-role pack (S$199), your browser saves the CV text, JD text, scan order id, page language, and a timestamp into this tab's sessionStorage under keys prefixed fl_handoff_. This data is written by your browser and read only by your browser when you visit the post-payment thank-you page. Our server never receives it.

Two related tab-only keys support this flow: fl_paid_seen records that this tab has seen a payment-confirmed URL, and fl_handoff_banner_dismissed remembers that you dismissed the scan-page reminder.

The data lives for the lifetime of the tab. Closing the tab clears it. Starting a new scan overwrites it. The thank-you page also shows a Clear from this browser button so you can remove it at any time. We use sessionStorage, not localStorage, so the data does not survive a browser restart.

Deletion requests

You can request deletion of your submitted materials by contacting [email protected]. We delete beta working files unless retention is required for payment, fraud-prevention, or legal records.

Refund policy

If you pay for a tailored role pack and we do not deliver it within the stated beta delivery window, you can request a refund. Job-search outcomes are not guaranteed. Interviews and offers are between you and the employer. If the delivered pack is clearly below standard, we will provide either one revision or a refund, your choice.

Your responsibility

You are responsible for reviewing final wording before submission and confirming that every claim is accurate and defensible in interview. The engine is designed to keep claims truthful, but final ownership of submitted material is yours.

Questions, deletion requests, or refund requests: [email protected].