Privacy Policy

Effective

CVFriend helps you find jobs and write tailored applications. To do that we process your career data. This policy says exactly what we collect, why, who else touches it, and how you get it out or delete it - no vague reassurances. The data controller is Janne Lundberg Innovation AB (org. no. 559106-0495), which provides CVFriend. Questions: privacy@cvfriend.com.

What we collect

  • Account: your email, name, and a hashed password (handled by our auth provider - we never see the plain password). If you sign in with Google, we receive your email and name from Google.
  • Career data you give us: your CV, work history, skills, achievements, and the answers you give to tailoring questions. This is the heart of the product and it's sensitive - we treat it that way.
  • Generated documents: the CVs and cover letters the service produces for you.
  • Profile photo (optional): if you add one, it appears only on the CV and letter designs that have a photo slot. We crop and re-save it on upload, which also removes camera metadata such as location, we never analyse it, and it is never sent to the AI model. Remove it any time from your profile; deleting your account deletes it.
  • Usage & billing: token counts and the cost of each AI action (for metering) - never the content of prompts or responses. Payment is handled by Stripe; we store your customer and subscription IDs, not your card number.

Trying it before you have an account

You can upload a CV and see how it scores against a real job before you sign up. No AI model sees anything in this step: the score and the match are worked out by our own code. The upload is checked by Cloudflare Turnstile to keep bots out (see sub-processors below). While you try it, we keep:

  • What you upload and choose: the text of your CV and its score, the region and role you pick, the job ad you pick from our feed or paste in, and the match result for that job.
  • Where you came from: your answer to "where did you hear about us", if you give one; any utm_ tags, gclid or fbclid in the link you arrived by; and the name of the site that sent you (only its host name, never the full address).
  • When you reached each step, so we can see where people stop.
  • "Delete what I uploaded" is on every step after the upload. It removes the trial record straight away, with no account needed.
  • One cookie, cvf_trial, which holds only the id of your trial record. See Cookies below.
  • A PDF of pictures: if your PDF holds only pictures of its pages, you can have the text read from them, and that reading runs in your own browser. The pictures are never sent to us; only the text you check and send is kept, as above.

Why we're allowed to process it (lawful basis)

  • To provide the service (contract): generating, scoring, and storing your applications, and billing you for it.
  • Before you have an account: scoring your CV and matching it to a job are steps you ask us to take before entering a contract with us (GDPR Art. 6(1)(b)). Recording where you came from and which steps you reached is our legitimate interest in knowing which channels and steps work (Art. 6(1)(f)).
  • Your consent: processing your career data with AI. You give this explicitly at signup and can withdraw it by deleting your account. The job-match email digest is not part of this consent: it is on by default on the plans that include it, and you turn it off from the link in any digest email or in your account.
  • Legitimate interest: keeping the service secure and preventing abuse (rate limiting, fraud and abuse prevention).

How AI processing works

To write and analyse your applications, we send the relevant career data to Anthropic (the maker of Claude). Anthropic processes it to return the generated text and nothing more. Our API access is configured so your data is excluded from training their models. We don't store the model's intermediate reasoning or the raw prompt/response bodies; we keep the final documents, which are yours.

Who else processes your data (sub-processors)

We use a small set of vetted providers to run the service. Each is bound by a data processing agreement, and for transfers outside the EU, by Standard Contractual Clauses.

ProcessorPurposeLocationSafeguard
AnthropicAI generation (CV, cover letter, analysis)United StatesDPA + SCCs; API configured to exclude data from model training
SupabaseDatabase, authentication, file storageEU (Frankfurt)DPA; EU data residency
VercelApplication hosting & deliveryEU region preferred; US edgeDPA + SCCs
StripePayment processing & billingUnited States / EUDPA + SCCs; PCI-DSS Level 1
ResendTransactional & digest emailUnited StatesDPA + SCCs
CloudflareBot protection (Turnstile) on sign-up and on the CV upload before an account. Receives your IP address, browser user agent and similar technical signals. Cloudflare uses them to tell people from bots, and on its own account to improve that bot detection.Global network; United StatesDPA + SCCs; EU-U.S. Data Privacy Framework
Google Ireland Limited (Google Tag Manager and Google Analytics 4)Website traffic analytics (consent-gated; loads only if you accept cookies)Ireland (EU); United States (Google LLC)DPA + SCCs; EU-U.S. Data Privacy Framework; loaded only on opt-in

How long we keep it

  • Uploaded source CVs are deleted after we extract their content, unless you choose to keep them.
  • Your profile, applications, and documents are kept until you delete them or close your account.
  • Your profile photo is kept until you remove it or delete your account.
  • Trial records (before an account) expire 7 days after you start. If no account has taken the record over by then, a daily clean-up deletes all of it by the next day. If you create an account, or log in to one you already have, the job ad moves into it; a new account also gets your CV, region and role, while an account that is already set up keeps its profile as it is. The CV text, the job text, the score and the match are then removed from the trial record, at the latest when the 7-day trial expires. What is left (the region, role and feed job you picked, the page language, where you came from and when you reached each step) is kept 90 days after the record joined your account, to measure the sign-up flow, then deleted. If you delete your account sooner, that record is unlinked from you and still deleted on the same schedule.
  • Billing records are retained by Stripe for as long as tax and accounting law requires, even after you delete your account.
  • After you delete your account we keep one value for 12 months: a one-way hash (SHA-256) of your email address, with the date the account was deleted. It holds nothing else, and we can only use it to recognise the same address if it signs up again. If the same address (ignoring capital letters, a +tag, and dots in a Gmail address; googlemail.com counts as gmail.com) signs up within those 12 months, the new account works as usual but does not get the free application given at signup. After 12 months the hash is deleted.

Your rights

Under the GDPR you can exercise all of the following - most of them directly in the app, today:

  • Access & portability: download a complete copy of your data from Account → Your data → Export.
  • Erasure: permanently delete your account and all associated data (except the email hash described under How long we keep it) from the same page. This cascades through our database, purges your stored documents, and cancels any subscription.
  • Rectification: edit your profile and documents at any time.
  • Withdraw consent / object: withdraw your consent by deleting your account. The digest is not consent-based: you turn it off from the link in any digest email or in your account.

You also have the right to complain to a supervisory authority. In Sweden that's Integritetsskyddsmyndigheten (IMY).

How we protect it

Your data is isolated at the database level - row-level security means one user's rows are never reachable by another, even if application code had a bug. Data is encrypted in transit, documents are served only through short-lived signed links, and AI keys live exclusively on the server, never in your browser.

Cookies

  • Essential cookies keep you signed in and secure the session. These are always on - the service can't work without them - and need no consent.
  • cvf_trial (essential): holds only the id of your trial record, so the steps you take before signing up stay together. It is HttpOnly (no script on the page can read it), lasts 7 days, and is set only when you upload a CV, never when you just visit. It is removed when you delete the trial or when an account takes it over. Because it is strictly necessary for the service you asked for, it needs no consent (Swedish Electronic Communications Act, LEK 9 kap. 28 §).
  • NEXT_LOCALE (essential): remembers the language you chose, Swedish or English, and holds only that language code. It lasts 1 year. It is strictly necessary to show the site in the language you asked for, so it needs no consent.
  • cvf_authed (essential): tells the site header that you are signed in, so it can show a link to your applications instead of Log in. It holds only the value 1 (no identity, no token), lasts up to 400 days (the lifetime of the sign-in session) and is removed on your next visit after the session ends. It needs no consent.
  • Analytics cookies (Google Analytics 4, through Google Tag Manager): we use these to measure traffic and see which steps of the product work. Google Tag Manager (container GTM-P6S92DBX) loads only after you accept on the cookie banner, and it sends data to Google Analytics 4 (property G-R7LRLZ5X0S). Decline and no Google script ever runs.
  • Provider: Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Ireland. Google LLC in the US also processes the data, under the EU-US Data Privacy Framework and standard contractual clauses.
  • Cookies Google sets: _ga tells returning browsers apart and lasts 2 years. _ga_R7LRLZ5X0S keeps the session state and lasts 2 years.
  • What is collected: the pages you view, the product steps you take (such as uploading a CV, getting a match or downloading a document), your approximate location derived from your IP address (Google Analytics 4 does not store the address itself), your device and browser type, and the page that sent you here.
  • What is never sent: your name, your email, the content of your CV, or anything else from your account.
  • Advertising: advertising storage stays denied, so Google sets no advertising cookies.
  • Retention: Google deletes the event data after the retention period set in our Analytics property, 14 months at most.
  • Withdrawing your consent: use the "Cookies" link in the footer at any time. You can also install Google's browser opt-out add-on, read how Google uses data from sites that use its services and read Google's privacy policy.

We use no third-party advertising or cross-site ad-tracking cookies. Your analytics choice is stored locally in your browser, not in an account.

Children

The service isn't intended for anyone under 16, and we don't knowingly collect their data.

Changes & contact

If we change this policy we'll update the effective date and, for material changes, tell you in the app or by email. Reach us any time at privacy@cvfriend.com or by post: Janne Lundberg Innovation AB, c/o Lundberg, Dalgårdsvägen 24, 121 33 Enskededalen, Sweden.