Privacy Policy & Cookie Information
Last updated: 19 October 2026
On this page
1. Who we are — Controller
MyInterviewer, operated by Maciej Adamczyk, unregistered activity under Art. 5 of the Polish Entrepreneurs' Law is the controller of personal data processed through this service. The operator is a natural person, not a company.
- Address: Lebiodowa 17X, 04-674 Warsaw, Poland
- Privacy and support: support@myinterviewer.ai
We will respond to all privacy-related requests within 30 days.
2. What data we collect and why
| Category | Data | Legal basis | Purpose |
|---|---|---|---|
| Account | Name, email address, an account identifier from the provider you signed in with (Google), profile photo URL | Contract (Art. 6.1.b GDPR) | Authentication; personalising your experience |
| Google sign-in prompt (Google One Tap, where enabled) | When you open the sign-in or registration page, your IP address and browser details are received by Google, which serves the prompt; if you choose an account, Google tells us your email address, name, photo and account identifier. We do not store the IP address Google sees. | Contract (Art. 6.1.b GDPR) for the sign-in you ask for; legitimate interest (Art. 6.1.f) in offering a quick, secure way to sign in | Offering one-click sign-in. Nobody is signed in without choosing to; dismiss the prompt, or use the email and password form, at any time. |
| Account security | If you sign in with a password: a one-way Argon2id hash of it — we never store or have any means to recover the password itself. For every active session: the browser and operating system reported by your device, a truncated network address (we discard the final part, so it indicates an approximate area and not your specific connection), and the times the session was created and last used. | Contract; legitimate interest (Art. 6.1.f GDPR) in account security | Signing you in, showing you every device signed in to your account so you can end any you do not recognise, alerting you by email when your account is used on a new device, and limiting password-guessing attempts |
| CV / profile | CV text you upload, extracted skills & work experience. Encrypted at rest at the application layer with a dedicated key (see section 9) | Contract | Generating interview questions tailored to your background |
| Interview answers — text | Transcripts of your spoken or typed answers | Contract | AI feedback & coaching; stored in your session history so you can review progress |
| Interview answers — audio | Voice recording sent to a transcription service | Contract | Speech-to-text conversion only. Audio is deleted from our servers immediately after transcription. We never store, sell, or share voice recordings. |
| Usage & performance data | Session scores, practice streak, question counts, completion status | Legitimate interest (Art. 6.1.f GDPR) | Showing your progress; improving the product; no profiling for advertising |
| Payment | Subscription tier, Stripe customer ID, billing status; for a one-time pass: what you bought, the amount and currency, its start and end, Stripe payment identifiers, when you asked for it to start immediately, and whether it was refunded or disputed | Contract / Legal obligation | Billing, subscription and one-time purchase management. Card numbers and payment details are handled exclusively by Stripe — we never see or store them. |
| Feature requests & contact messages | What you write, your name and email address if you give them (or your account if you are signed in), and a salted one-way hash of your network address for abuse prevention | Legitimate interest (Art. 6.1.f GDPR) in answering you and improving the product | Replying to you; deciding what to build; preventing spam. We email the message to our team. |
| Ratings of AI output | A thumbs up or down, optional reason chips, which feature produced the output, the prompt version, model, language and role family, and the day. No account, no session, no text and no network address are stored with it. It cannot be linked back to you. | Legitimate interest (Art. 6.1.f GDPR) in checking that AI output is useful and correct. The result is anonymous and aggregate. | Spotting weak prompts or wrong-language output. Rates are only looked at in groups of 10 or more. Nothing is changed automatically. |
| Shared examples (optional) | Only if you tick the consent box: the AI output you choose to share with personal details removed automatically (best effort, so it can still contain personal data), and an optional comment you write. It is stored without your name; a separate record links it to your account only so you can see, export and withdraw it, and reviewers never see who wrote it. | Consent (Art. 6.1.a GDPR), which you can withdraw at any time | Reviewing real examples to fix quality problems. Never used to train models and never sent to an AI provider. Deleted after 6 months, when you withdraw it in Settings, or when you close your account. |
| Technical / logs | Request timestamps, HTTP status codes, anonymised request IDs, and diagnostic error reports and performance traces with personal details scrubbed (Sentry): from our servers always; from your browser only if you chose “Accept” on the cookie banner (section 7) | Legitimate interest (Art. 6.1.f GDPR) in keeping the service secure and working; for the reports from your browser, your consent (Art. 6.1.a GDPR), which you can withdraw in section 7 | Security monitoring; diagnosing errors and outages; keeping the service reliable. No advertising and no cross-site tracking. |
| Sign-up and sign-in protection | DRAFT. When you register or sign in, Cloudflare Turnstile (a bot check) receives a token from your browser and your IP address. When you choose a password, we send Have I Been Pwned only the first 5 characters of its SHA-1 hash (a k-anonymity check), never the password or your email, to see whether it appeared in a known leak. | Legitimate interest (Art. 6.1.f GDPR) in keeping accounts secure and blocking bots | Stopping automated abuse and the use of leaked passwords. Cloudflare and Have I Been Pwned process this data under their own terms. |
Features you use with other people (where available)
People you invite to review. When you choose to share a practice session or a prep report with a person you invite, that person becomes a recipient of that item. We send them one email containing the display name you chose, a sign-in link, a link to stop invitations and a link to this policy, and nothing from your practice. They see the item only after signing in with an account whose verified email is the address you typed, only read-only, for at most 30 days. You can cancel at any time. You can see when they opened it and what they wrote.
If someone invited you to review (you may not have an account). We (MyInterviewer, the controller named in section 1) hold the email address the sender typed, the display name they chose, and a record that we sent you one message. The source of your address is the sender. We use it only to deliver that invitation, to keep a list of addresses that asked not to be invited, and to limit abuse: our legitimate interest, and the sender's, in letting someone ask a person they know for feedback while honouring objections (Art. 6.1.f GDPR). You can object at any time: stop all invitations to your address in one click, without an account, with the link in the email; we then keep only a scrambled fingerprint (a salted hash) of your address on that list, so nobody can invite you again. You can also report an invitation; the sender is not told it was you. If you accept, we create or use your account, keep the comments you write so the sender can read them (your consent, Art. 6.1.a GDPR, withdrawn by withdrawing your comments or leaving), and show the sender when you opened the review, not your account details. We delete your comments when you withdraw them or delete your account, and when the sender deletes the item or their account. Invitations are removed 90 days after they end. If you delete your account, or write to us even without one, we remove your address from every invitation at once. The list of addresses that asked not to be invited has no expiry unless you ask us to remove your address. You can ask us for access, correction or erasure, and complain to the Polish supervisory authority (UODO, section 8).
Cohorts. Joining a cohort is optional, and your organiser is not told whether you joined or left. If you join, our legal basis is your consent (Art. 6.1.a GDPR), which you withdraw by leaving: your practice stops counting at the next daily update, within 24 hours. We keep a record of your consent: which cohort, when, which wording version, and when you left. The organiser sees only group figures computed from the practice of everyone who joined, and only when at least 10 people have joined, never anything that identifies you; you can see the same figures, every time the organiser looked, and your own record. The organisation is a separate controller of its own use of the figures, and our terms forbid it from using them to evaluate or make decisions about any one person. We keep your consent record for 90 days after the cohort closes, and the list of organiser views for 180 days after each view, then delete them.
3. How your data is used — AI processing
My Interviewer uses AI to provide its core service. Here is exactly what gets sent to which AI provider and why:
- Anthropic Claude, Groq and OpenAI — process text-model requests: your CV text, job description, answer transcripts and coach messages, to generate interview questions and coaching feedback. Which one handles a request depends on the provider order we configure, with the others used as fallbacks. Only text is sent to Anthropic; audio is never forwarded to Anthropic. Groq is also our default speech-to-text provider, so it additionally receives your voice recording for transcription; OpenAI receives audio only if we switch transcription providers (see below).
- Microsoft Azure AI Foundry — where enabled, used as a fallback text model when the text models above are unavailable. Receives the same text as Anthropic (CV text, job description, answer transcripts); never audio. It runs in our Microsoft Azure subscription, which stores data at rest in the EU, but a request may be processed in any Azure region worldwide, including outside the EU/EEA (see section 10).
- Google Vertex AI (Anthropic Claude) — where enabled, used as a fallback text model when Anthropic's own service is unavailable: the same Claude model, run by Google Cloud in our Google Cloud project. Receives the same text as Anthropic (CV text, job description, answer transcripts); never audio. Requests go to Google's
europe-west1regional endpoint and are processed within the EU (see section 10). - Mistral AI (France) — where enabled, used as a fallback text model. Receives the same text as Anthropic; never audio. Processed in the EU.
- Groq Whisper / OpenAI Whisper — receives your voice recording solely to convert it to text. Groq is used by default; OpenAI Whisper only if we switch transcription providers. The audio file is deleted from our servers immediately after the transcript is returned. OpenAI does not retain the audio under its API terms; Groq may keep inference data for up to 30 days for abuse monitoring.
- Google Cloud Text-to-Speech — on a paid plan, interview question text is sent to Google to be read aloud in a natural voice (see section 4).
- Langfuse (EU) — where LLM monitoring is enabled, receives operational metadata: model name, token counts, latency, and fallback rate. Only if you turn on Help improve My Interviewer in Settings, it also receives a masked excerpt (up to 2,000 characters) of each prompt, which can include parts of your CV, the job description or your answers. Automatic masking removes obvious personal details but cannot catch everything. Turn the setting off at any time. Hosted in the EU.
AI coach chat. When you use the Coach, the messages you write and the coach's replies are stored in your account so you can come back to a conversation. To answer, each message is sent to the AI text providers listed above, together with a short summary of your CV profile, saved roles and recent practice feedback. Your raw CV text, name and email address are not included. Coach conversations are kept until you delete them or close your account, and are deleted automatically after 12 months without activity. They are included when you download your data.
Coach memory (optional, off by default). If you switch it on in Settings, the coach can remember up to 10 short notes (120 characters each) about how you like replies written, for example “short summaries” or “call me Ola”. A note is saved only when you add it or confirm it yourself; we never save one silently or guess one from your messages, and we reject notes about health, beliefs, origin or other sensitive topics. While it is on, your notes are sent to the AI text providers with your messages as style hints only; they cannot change safety, scoring or what the coach may do. You can edit, delete or forget all notes and switch the memory off at any time. Notes are kept until you delete them or close your account, are included when you download your data, are not used for analytics or profiling, and are never shared with other users.
AI panel debrief (where available). If you ask for it, the text of your own session or prep report (questions, your answers with contact details masked, scores and feedback) is sent to the AI text providers listed above to write three short reviews, each labelled as written by AI, not a person. The debrief is private to you and is deleted with its session or report, or your account. If your own answers sound distressed, we do not send them and show you support information instead; that check happens in memory, nothing about it is stored with your account or logged, and we only count how often support information was shown, without your words or who you are.
Interview debrief (where available). After a real interview you can type or dictate short notes. Before anything is saved or sent to an AI provider, our server removes the names, contact details and sensitive remarks it recognises (rule-based, so it can miss some, and you see what was removed). The scrubbed text is sent to the AI text providers to write a structured note, labelled as AI-written, which you check and edit. Only the note you save is kept, with that interview round, until you delete it, the round, the role or your account; your raw words exist only in your browser and in our server's memory during the request. Dictation audio is handled like voice answers (section 4). Mention other people by their role, not their name.
Job links you paste. When you paste a link to a job posting, our server fetches that page to set up your practice. If it cannot read the page itself, it asks Jina AI to read it, and Jina receives the address of the page (not your account details). Links to a site whose terms forbid reading its pages this way are refused before any request, and we do not forward a page that asks for a sign-in.
We do not use your data to train AI models. No automated decisions with legal or similarly significant effects are made solely on the basis of your interview performance.
AI transparency (EU AI Act, Art. 50). Interview questions, scores, and feedback are generated by an AI system and are intended purely as practice and self-coaching. They are advisory only — they are not professional, legal, or career advice, and they are never used to make hiring, recruitment, or employment decisions about you. You can flag feedback you believe is inaccurate at any time.
4. Voice data — special notice
When you record a voice answer, the audio is sent over an encrypted (TLS) connection to a speech-to-text provider (Groq by default, or OpenAI Whisper if we switch providers) solely to produce a text transcript. The audio file is deleted from our servers immediately after transcription. We do not keep, analyse, sell, or share voice recordings (the provider's own retention is described in section 3). Only the resulting text transcript is stored as part of your interview session history.
Read-aloud functionality. On a paid plan (Pro or Max), interview question text is sent over an encrypted (TLS) connection to Google Cloud Text-to-Speech to be synthesised into a natural voice. The generated audio is streamed back to your browser and played. To avoid synthesising the same question twice we cache only the generated audio (for up to 30 days), keyed by a one-way hash — never the text. Answer feedback read-aloud, and all read-aloud on the free plan, use your browser's built-in text-to-speech engine (Web Speech API) and transmit nothing to any server.
5. Third-party processors
We use Data Processing Agreements (DPAs) with our processors. A few are still being finalised (currently Notion and Sentry).
| Processor | Purpose | Data sent | Privacy policy |
|---|---|---|---|
| Google LLC | Sign-in / OAuth identity | OAuth token (no content). Where the optional Google One Tap prompt is enabled, on the sign-in and registration pages only: your browser also loads Google's sign-in script from Google, so Google receives your IP address and browser details and sees that you opened that page and, if you choose an account, the sign-in. Google may set its own cookies. We set no additional cookie for this beyond the short-lived one listed below, and we load nothing from Google on any other page. | policies.google.com |
| Anthropic Ireland, Limited (our contracting entity as an EEA customer; processing may take place in the United States under SCCs) | Text model: AI question generation & answer analysis (primary or fallback, depending on the provider order we configure) | CV text, job description, answer transcripts | anthropic.com/privacy |
| Groq UK Limited (our contracting entity as an EEA customer; processing may take place in the United States under SCCs) | Speech-to-text (default) & text model: AI question generation & answer analysis (primary or fallback, depending on the provider order we configure) | Voice recording (audio), CV text, job description, answer transcripts | groq.com/privacy-policy |
| Microsoft Ireland Operations Ltd. (Azure AI Foundry) | LLM fallback, where enabled (question generation & answer analysis when the main text models are unavailable). Data at rest in the EU; requests may be processed in any Azure region worldwide. | CV text, job description, answer transcripts | privacy.microsoft.com |
| Google LLC (Google Cloud Vertex AI) | LLM fallback, where enabled: Anthropic Claude run by Google Cloud (question generation & answer analysis when Anthropic is unavailable). Processed in the EU (europe-west1 regional endpoint). | CV text, job description, answer transcripts | cloud.google.com/terms/cloud-privacy-notice |
| Mistral AI SAS (France) | LLM fallback, where enabled (question generation & answer analysis). Processed in the EU. | CV text, job description, answer transcripts | legal.mistral.ai |
| OpenAI Ireland Ltd. (our contracting entity as an EEA customer; may transfer data to OpenAI affiliates outside the EEA, including in the United States, under SCCs or an EU adequacy decision) | Text-model fallback: AI question generation & answer analysis, depending on the provider order we configure; speech-to-text (Whisper) only if we switch from Groq | CV text, job description, answer transcripts; voice recording (audio) only when used for speech-to-text | openai.com/policies |
| Stripe Inc. | Payment processing for subscriptions and one-time purchases | Email, billing details (card data handled by Stripe only) | stripe.com/privacy |
| Plus Five Five, Inc. (Resend) | Transactional email (welcome messages, sign-in and security notices, payment receipts, and a review invitation when you ask us to send one) | Email address, first name; for a review invitation, the invited person's address and the display name you chose (never your practice content) | resend.com/legal/privacy-policy |
| Cloudflare, Inc. | Domain, edge network & security — DNS, TLS termination, traffic routing, and protection against attacks for myinterviewer.ai | All web traffic passes through Cloudflare's edge; connection metadata and security logs (IP address, request headers). No application data stored at rest. | cloudflare.com/privacypolicy |
| Microsoft Ireland Operations Ltd. (Microsoft Azure) | Application hosting & compute (Azure Container Apps), container images, secret storage (Key Vault), request logging | All application data in transit; processed in an EU region (Frankfurt, Germany 🇩🇪) | privacy.microsoft.com |
| Google LLC (Google Cloud Text-to-Speech) | Natural-voice question read-aloud (paid tiers) | Interview question text only | cloud.google.com |
| Supabase, Inc. | Managed PostgreSQL database — the store for your account, profile, and interview history | All data at rest (EU region) | supabase.com/privacy |
| Functional Software, Inc. (Sentry) | Error monitoring & performance tracing: on our servers; in your browser only after you choose “Accept” (section 7) | Error context and performance traces with personal details scrubbed (no CV text, transcripts, or feedback) | sentry.io/privacy |
| Langfuse GmbH | LLM monitoring — only where enabled | Model name, token counts, latency. With your opt-in only: masked prompt excerpts (up to 2,000 characters). Hosted in the EU. | langfuse.com |
| Jina AI GmbH (data processing governed by Elastic's data processing terms) | Reading a job-posting page you paste a link to, when our server cannot read it itself (section 3) | The address (URL) of that page | jina.ai/legal |
| Notion Labs, Inc. | Doc-sync connector (optional, Pro/Max) — only if you connect a Notion account: send a coaching report to a Notion page you choose, or import a Notion page as answer-library drafts | The report content you choose to export; the content of the Notion page you choose to import. Requires a separate, explicit OAuth consent — never granted at sign-in. | notion.so/privacy |
| Google LLC (Google Calendar API) | Google Calendar sync (optional, Pro/Max) — only if you connect your Google Calendar and press “Sync now”: read-only, we never write anything back to your calendar. We read your primary calendar only, and only events whose title or description looks like an interview (an English/Polish keyword check) are ever shown to you — nothing is saved until you individually confirm one. | The title, time, and location/meeting-link of an event you confirm, stored as an interview round in your account. Requires a separate, explicit OAuth consent — never granted at sign-in, and separate from the Google account you may use to sign in. | policies.google.com/privacy |
Connections and AI agents. You can connect other software to your account — our Chrome extension, or an AI agent such as Claude or ChatGPT that supports the Model Context Protocol. An app gets access only after you approve it on a My Interviewer consent screen that names the app, shows where you will be sent back to, and lists exactly what it may do. The connected app then acts on your behalf within those permissions: it can read or change the data you allowed, and requests it makes to your AI coach or practice sessions count toward your plan's allowance as if you had made them (Contract, Art. 6.1.b GDPR). Our Chrome extension can read the title, address and text of a page you are viewing only after you explicitly add it — by clicking the extension's icon in Chrome's toolbar on that page, or by picking it from the extension's own list of your open tabs — and it shows you what it read before anything is sent. You can attach up to five pages at once (for example to ask the coach to compare a few job postings), and they stay attached for the rest of that conversation until you remove them, not just for one message. Unlike your own typed messages, page content is not saved afterward: only your messages and the coach's replies are kept in the conversation. We do not block any site, so please check that a site's terms allow you to save its pages. The extension reads a page only through one of those explicit actions, or “Save this job” (which opens a pre-filled form for you to review) — never automatically, and never a page you have not added, even while the panel is open. What an app does with the data it receives is governed by that app's own terms and privacy policy — it is a separate controller that you chose, not our processor. An AI agent receives only what the permissions you approved let it read (for example your saved roles, a summary of your CV or recent practice feedback), and its provider processes that data, including with its own AI models, under its own terms. We store which apps you connected, the permissions granted, and when each connection was made and last used, together with one-way hashes of its access credentials, never the credentials themselves. You can see and remove them at any time in Settings, under Connections (the Chrome extension) or AI agents; access also ends when you change or reset your password, sign out everywhere, or delete your account.
Chrome extension, limited use (DRAFT). Data the extension reads from a page you add is used only to provide the feature you asked for in your own conversation. We do not sell it, use it for advertising, or use it to train AI models, and people at MyInterviewer do not read it except where needed for security, to follow the law, or with your permission.
6. Data retention
- Account data: retained while your account is active. When you delete your account it is erased from live systems immediately; any residual copies in encrypted database backups are overwritten within the backup-retention window (up to 30 days).
- Interview sessions & transcripts: retained until you delete them individually or close your account.
- AI coach conversations: retained until you delete them or close your account; deleted automatically after 12 months without activity.
- Coach memory notes (optional): retained until you delete them, use “Forget everything”, or close your account.
- Audio recordings: deleted immediately after transcription. Not stored.
- CV / profile data: retained until you delete your profile or close your account; encrypted at rest at the application layer (see section 9).
- Payment records: Stripe keeps its own record of each payment, refund and invoice under its own legal obligations. Any sales records that Polish tax law requires us to keep are kept until the tax limitation period ends: 5 years from the end of the calendar year in which the tax payment deadline passed (Polish Tax Ordinance, art. 86 § 1 with art. 70 § 1), then deleted. When you delete your account we delete our own billing identifiers (Stripe customer and subscription ids, pass records) at once.
- Erasure record: when you delete your account we keep, for 40 days, a keyed one-way fingerprint of your account id and the time of deletion, without your email, name or any content. Its only use is to delete your account again if we ever have to restore a database backup taken before your deletion (backups live up to 30 days). Legal basis: our legal obligation to honour your erasure (Art. 6.1.c with Art. 17 GDPR).
- Sign-in sessions: kept while the session is active, and removed once it expires or you end it. Ended sessions are purged within 30 days.
- Connections and AI agents: kept while the connection is active; a removed or expired connection and its credential hashes are purged within 30 days.
- Email confirmation and password-reset links: valid for 24 hours and 1 hour respectively, and deleted once used or expired.
- Feature requests & contact messages: deleted after 12 months (the network-address hash after 30 days), or when you close your account.
- Ratings of AI output: anonymous (no account or content is attached), so they are kept as aggregate statistics and are not part of your export or erasure. For 7 days the browser that sent a rating can change or undo it with a random key we store only as a hash; after that the key is deleted. Shared examples: deleted after 6 months, when you withdraw them in Settings or here, or when you close your account. They are linked to your account through a separate record so you can see, export and withdraw them; the people who review examples never see who wrote one.
- Review invitations (where available): removed 90 days after they end; the invited person's address is removed at once if they delete their account or ask us. Comments a reviewer wrote: until they withdraw them, or the item or either account is deleted. Addresses that asked not to be invited: only a salted hash, until the address owner asks us to remove it.
- Cohort consent records (where available): until 90 days after the cohort closes, or until you delete your account; the list of organiser views: 180 days.
- AI panel debriefs and interview debrief notes (where available): with their session, report or interview round, until you delete them or your account.
- Server logs: 30 days, then automatically purged.
- Usage events: for every signed-in user we record basic product events (for example signing up or finishing a session) with your account ID and no content, whatever your analytics setting. They are deleted after 13 months, or when you close your account.
- Guest trial: where the try-without-an-account trial is enabled, the job text and answer you enter are sent to an AI text provider, and the trial data is deleted after 24 hours.
7. Cookies & local storage
Cookies
We set only cookies that are strictly necessary for signing in and security, plus one functional cookie that remembers the language you chose. No advertising or tracking cookies are set.
| Cookie name | Purpose | Type | Duration |
|---|---|---|---|
next-auth.session-token(or __Secure-next-auth.session-token on HTTPS) | Keeps you signed in — stores an encrypted session reference. Required for the service to function. | Strictly necessary | 30 days, or until you sign out |
next-auth.csrf-token | Prevents cross-site request forgery on sign-in / sign-out actions. | Strictly necessary | Session (deleted when browser closes) |
next-auth.callback-url | Remembers where to redirect you after Google login completes. | Strictly necessary | Session |
__Host-ia_at | Keeps you signed in to the application itself. Cannot be read by any script on the page (HttpOnly) and is never sent to other websites. | Strictly necessary | 15 minutes, renewed automatically while you are using the service |
__Secure-ia_rt | Renews the cookie above so you are not asked to sign in repeatedly. AlsoHttpOnly. Ending a session from your settings invalidates it immediately. | Strictly necessary | 60 days, or until you sign out or end the session |
ia_ot_nonce | Used only while Google One Tap is offered on the sign-in pages: a random, single-use value that ties a Google sign-in to the browser that asked for it, so a sign-in cannot be forced onto someone else's browser. Contains no personal data and is removed after sign-in. | Strictly necessary | 15 minutes |
ia_csrf | Protects against cross-site request forgery: the page reads this value and sends it back with each request that changes something, proving the request came from our own site. Contains no personal data. | Strictly necessary | 60 days, or until you sign out |
__Secure-ia_oauth_install | Set only when you connect our Chrome extension. A random identifier (HttpOnly, sent only to the app-connection page) that recognises this browser, so signing the extension in again replaces its previous access instead of adding another entry. We store only a one-way hash of it, alongside that connection. It grants no access by itself. | Strictly necessary | 400 days, renewed each time you connect an app |
mi_guest | Set only if you try the guest trial: a random ID (HttpOnly) that ties the trial to this browser. No personal data. | Strictly necessary | 24 hours |
NEXT_LOCALE | Remembers your language (English or Polish) so pages load in that language. It is set when you pick a language, and also when we detect that your browser is set to Polish and take you to the Polish pages. Contains only en or pl — no personal data. | Functional | 1 year |
We load no advertising pixels and no cross-site tracking.
Your choice: “Essential only” or “Accept”
The banner offers two equal choices. With Essential only, only what is strictly necessary for the service you asked for runs: the cookies above and the local storage below. Nothing optional runs until you press Accept, which turns on these optional items, each of which reads from or stores on your device for our own purposes:
- Crash and speed reports from your browser (Sentry). Errors and a small sample of page timings, with personal details and the query part of web addresses removed. Sets no cookies. Sent through our own domain to Sentry's EU data region.
- Visit counter (described below), where we have switched it on.
- App install helper (a service worker): keeps a copy of our app icons and manifest on your device so you can install the site as an app.
- Google's one-tap sign-in prompt on the sign-in pages, where we have switched it on (section 5).
The legal basis for these items is your consent (Art. 6.1.a GDPR, and art. 399 of the Polish Electronic Communications Law for access to your device). You can change your choice or withdraw it at any time, as easily as you gave it: the optional items stop at once, and the app install helper and its copies are removed.
You have not chosen yet on this device.
Local storage
We use your browser's local storage (not cookies) for the following purposes. Except where noted, this data never leaves your device.
| Key | Purpose | Cleared when |
|---|---|---|
interview-ai-auth | Stores basic profile details (name, plan) so pages render without waiting for the server. It holds no sign-in credential — the session is kept in the cookies above, where page scripts cannot reach it. | When you sign out |
interview-setup-draft | Saves your in-progress interview setup form (job title, description) so it survives page refreshes. | When you start a session or clear manually |
daily-session-goal | Your chosen daily practice goal (1–5 sessions). Set in account settings. | When you change the setting or clear browser storage |
dashboard-prefs | Your weekly practice goal and the optional upcoming-interview countdown date, both set in account settings. | When you clear them in settings or clear browser storage |
session-note-{id} | Your personal reflection notes for each session (key takeaways). Stored locally only. | When you clear browser storage |
mi:last-signin-method | Which sign-in method you used last on this device (Google or password), so we can mark it “Last used”. Only the method name is stored, never your email or any identifier, and it is never sent to us. | When you clear browser storage |
ia_fb_… | A random key that lets this browser change or undo a thumbs up or down you gave an AI reply. It is not linked to your account, and it is useless without the matching anonymous rating. | After 7 days, when you undo the rating, when you sign out, or when you clear browser storage |
interviewai-locale | Your language preference (EN or PL). | When you change language or clear browser storage |
cookie-consent | Records your choice on the cookie / storage banner (“Accept” or “Essential only”) and the time you made it. | When you change it above or clear browser storage |
| Other keys for features you use (local and session storage) | Small items that make a feature you are using work on this device: drafts of answers you are typing, view and layout choices (for example a compact list or the question font size), reminders you dismissed, items you starred or flagged, your theme, and recent practice settings and scores shown on your own screens. They are not used for tracking and are sent to us only as part of using that feature. | When you sign out (except your theme and cookie choice), when you delete your account, or when you clear browser storage |
Service worker cache (workbox-precache-…) | Optional, only after “Accept”: our app icons and manifest, so the site can be installed as an app. No personal data. | When you choose “Essential only” or “Ask me again” above, or clear browser storage |
You can clear all local storage data at any time via your browser settings (Developer Tools → Application → Local Storage → Clear All) or by signing out.
Visit statistics (optional)
Where we have switched it on, we count visits and key steps (for example viewing the pricing page, or finishing a practice session) in our own database, to understand which parts of the site work and where people drop off. Your browser sends a count only if you chose “Accept” on the cookie banner. This is aggregate counting only:
- It sets no cookies and uses no local or session storage, and it uses no identifier. We cannot tell whether two counts came from the same person, and no count is linked to an account.
- Each count holds only: the day (UTC), the kind of event, the type of page (a template such as “pricing”, never the address you visited, a query string or an id), your language, a coarse device class (phone, tablet or desktop, from the window width) and a coarse referrer category (direct, search, social, internal or other, never the referring address). We do not store your IP address, browser details, location, name or e-mail, nor any of your CV, answers or coach messages.
- Steps that happen on our servers, such as completing sign-up, saving a first role, finishing a practice session or a payment, are counted without the account they belong to.
- If your browser sends Do Not Track or Global Privacy Control, the site sends nothing and we do not count your visit.
- Counts are kept in aggregate for 13 months (396 days) and then deleted. There are no per-visit records.
Because no count can be linked to a person, we treat these statistics as non-personal. To the extent they were personal data, our basis would be our legitimate interest in understanding and improving the service (Art. 6(1)(f) GDPR). Separately, the network and hosting providers in front of the service process technical request data, such as IP addresses, to deliver and protect it; we do not use that data for these statistics.
Cloudflare Web Analytics: not used in your browser
We do not run Cloudflare's page-view and load-time script in your browser. Our Content Security Policy does not allow its source (static.cloudflareinsights.com), so even if it were added to a page, your browser would not load it.
8. Your rights (GDPR Art. 15–22)
- Access (Art. 15) — request a copy of all personal data we hold about you.
- Rectification (Art. 16) — correct inaccurate or incomplete data.
- Erasure (Art. 17) — delete your account and all associated data (“right to be forgotten”).
- Portability (Art. 20) — receive your data in a structured, machine-readable format (JSON).
- Objection (Art. 21) — object to processing based on legitimate interest.
- Restrict processing (Art. 18) — limit how we use your data in certain circumstances.
- Withdraw consent — for any processing based on consent, you may withdraw at any time without affecting prior lawful processing.
To exercise any right, email support@myinterviewer.ai. We will respond within 30 days. You also have the right to lodge a complaint with the Polish data protection supervisory authority: Prezes Urzędu Ochrony Danych Osobowych (UODO), uodo.gov.pl, ul. Stawki 2, 00-193 Warszawa.
Data you shared (withdraw a shared example)
AI replies you chose to share with us. They are linked to your account only so you can see and withdraw them here; reviewers never see who wrote them.
9. Security
All data is transmitted over TLS (HTTPS). Database access is restricted by role-based permissions. Your CV/profile content (CV text, extracted skills, work experience and education) is encrypted at rest with a dedicated key, separate from your account credentials — in addition to our database provider's own storage-level encryption. This protects that content if our database or a backup were ever compromised; it does not mean we cannot access it ourselves, since our service decrypts it to generate your interview questions. API keys and secrets are stored in environment variables, never in source code. Authentication tokens are signed with HS256. We conduct security reviews before significant releases. If a personal-data breach occurs, we will notify the UODO within 72 hours of becoming aware of it where the breach is likely to result in a risk to your rights and freedoms (GDPR Art. 33), and we will inform affected users without undue delay where the breach is likely to result in a high risk to them (GDPR Art. 34).
10. International transfers
Our application runs on Microsoft Azure (Azure Container Apps) in an EU region (Frankfurt, Germany). The database that stores your account, profile, and interview history is managed by Supabase and hosted in an EU region. Langfuse (LLM monitoring), where enabled, is also EU-hosted.
Traffic to myinterviewer.ai passes through Cloudflare, a U.S. company operating a global network; a request may be handled at a location outside the EU while in transit. Cloudflare only processes data in transit (it stores nothing about you at rest), and the transfer is covered by Standard Contractual Clauses.
Some processors (Google as OAuth and text-to-speech provider, Anthropic, OpenAI, Groq, Stripe, Resend, Sentry and Jina AI) process data in the United States or may do so. Transfers to these processors rely on Standard Contractual Clauses (SCCs) approved by the European Commission, supplemented by each processor's own technical and organisational measures and, where applicable, their certification under the EU–U.S. Data Privacy Framework. Microsoft may also carry out limited support and administration of our hosting from outside the EU under the same safeguards.
Where the Microsoft Azure AI Foundry fallback text model is enabled, it stores data at rest in the EU, but Microsoft may process a request in any Azure region worldwide, including outside the EU/EEA. Such processing is covered by Microsoft's Data Protection Addendum, which includes the Standard Contractual Clauses.
Where the Google Vertex AI fallback text model (Anthropic Claude) is enabled, requests are sent to Google Cloud's europe-west1 regional endpoint, where Google processes them within the EU. This processing is covered by the Google Cloud Data Processing Addendum, which includes the Standard Contractual Clauses for any access from outside the EU/EEA.
If you choose to connect the optional Notion doc-sync feature, the report or page content you send there is processed by Notion Labs, Inc. in the United States, under the same SCC-based safeguards. Nothing is sent to Notion unless you explicitly connect it and choose to export or import.
If you choose to connect the optional Google Calendar sync feature, we read events from your primary Google Calendar only when you press “Sync now”, and only the title, time and location of an event you individually confirm is stored, as an interview round in your account — we never write anything back to your calendar. Nothing is read from your calendar unless you explicitly connect it.
11. Changes to this policy
We will notify you by email at least 14 days before material changes take effect and update the “Last updated” date above. Continued use after the effective date constitutes acceptance. For minor clarifications the date is updated without notification.
12. Contact
For any privacy or data-related question:
- Email: support@myinterviewer.ai
- Post: Maciej Adamczyk, Lebiodowa 17X, 04-674 Warsaw, Poland