Privacy policy
The short version.
- The app works with a guest account. You never have to give us your name or email.
- We store your practice progress (which questions you answered, how you rated yourself, your streak, your settings) so it can follow you to a new phone.
- If you ask for AI feedback, the answer you typed or spoke is sent to an AI provider to be graded. We don't store that text, and we don't use it for ads.
- What you do in other apps and what's in your calendar stay on your phone. We never see them.
- No ads. We don't sell your data or track you across other apps.
- You can delete your account and data from inside the app at any time.
1. Who we are
Keep Me Ready is an interview-practice app for software engineers. It is made by Anas Abdullatif ("we", "us"). We are responsible for the personal data described in this policy.
Questions about privacy: [email protected].
2. What we collect and why
Your account
- Account ID. The first time the app connects, it creates a guest account for you automatically. This gives your install a random ID so your progress can be backed up. A guest account has no name or email.
- Email address (optional). Only if you choose "Save progress" or sign in with an email code. We use it to sign you in and to send you the sign-in link or code. We don't send marketing email.
- Google or Apple sign-in (optional). If you choose "Continue with Google" (or "Sign in with Apple" on iPhone), we receive the account details that service shares for sign-in, such as your email address, an account identifier and, depending on the service, your name and profile picture link. We use them only to sign you in.
Your practice progress
So your streak and reviews survive a new phone, the app backs up to our server:
- Answer history: which question you answered, when, your self-rating (Nailed it, Kinda, No idea), where you answered it (app, notification, widget, unlock sheet or drill) and, if you used AI feedback, the score (0 to 10). The text of your answer is not stored.
- Spaced-repetition state for each question you've seen (when it's due again and how well you know it).
- "Review later" bookmarks and any thumbs up, thumbs down or "Report a mistake" reports you give a question.
- Your settings: tracks, seniority, daily goal, reminder on/off and time, theme, app language, your "Show on unlock" windows and quiet rules, and your "When I scroll" settings (on/off, minutes, and which of the listed apps you picked).
- Time zone (for example "Africa/Cairo"), so reminders arrive at your local time. We don't collect your location.
- Plan: whether you have Pro and when it ends.
- AI usage count: how many AI feedback requests you made each day, to apply the daily limit.
Notifications
- Your daily reminder is scheduled on the phone itself.
- If you allow notifications, the app may register a push token (a device address for notifications). We use it only to send an occasional "welcome back" question after a few quiet days (at most three nudges, at your reminder time) and only while your reminder is on. Push messages are delivered through Expo's push service and Google's Firebase Cloud Messaging.
Technical data
When the app talks to our servers, our hosting provider records routine technical logs (such as IP address, time, request type and app version) to keep the service secure and working. These logs are kept for a short period.
3. What stays on your phone
Several features need sensitive Android permissions. All of them are off until you turn them on, and the data they read never leaves your phone.
| Feature | Permission | What it reads, and where it goes |
|---|---|---|
| Show on unlock | Display over other apps (SYSTEM_ALERT_WINDOW), a foreground service, notifications, start at boot |
A small background service notices when you unlock your phone and shows one question on top. It shows a permanent notification while it runs. It checks only the time, your settings and your progress. Nothing about the unlock is sent anywhere. |
| When I scroll | Usage access (PACKAGE_USAGE_STATS) |
Counts how long the app you're using has been one of the short-video apps you picked (for example TikTok or YouTube), so a question can appear after the minutes you set. The app also checks which of those listed apps are installed, so it only offers ones you have. The counting happens on your phone. We never receive your app usage, your screen time or a list of your apps. Only your choice of apps and minutes is saved with your settings. |
| Never during calendar events | Read calendar (READ_CALENDAR) |
If you allow it, the app asks your calendar one yes-or-no question before showing the unlock sheet: "is a busy event happening right now?" It doesn't read event titles, attendees or locations, and it stores and sends nothing. |
| Never during focus modes | None | Checks whether Do Not Disturb is on, on the phone only. |
| Voice answers (Pro) | Microphone (RECORD_AUDIO) |
Turns your spoken answer into text while you hold the mic. The app asks for on-device recognition, so the audio stays on your phone where your phone supports it. On phones that don't, Android's speech service (Google) turns the audio into text under Google's own privacy terms. We never receive or store audio. The text only leaves your phone if you then ask for AI feedback (see below). |
| Home-screen widget | None | Shows today's question from the copy on your phone. |
Questions, model answers and your full history are also kept on the phone, so the app works offline.
4. AI feedback
When you tap to get feedback on an answer, ask for a follow-up question, or use "Explain like I'm new" or "Give me a harder one":
- The app sends the question ID, your answer text (for grading and follow-ups) and your app language to our server.
- Our server adds the question, its model answer and its key points, and sends them to an AI provider to produce the feedback. Depending on availability, the provider is one of: Groq, Z.ai, CodeCraft (a gateway that passes the request to the AI model it hosts) or Anthropic.
- We don't send your name, email or account ID to the AI provider.
- We don't store your answer text on our servers. We keep only the resulting score in your answer history.
- We don't use your answers for advertising, and we don't sell them. Each provider handles the request under its own API terms, which may allow it to keep requests for a limited time for abuse monitoring.
Behavioral questions invite personal stories. Please leave out anything you wouldn't want processed by an AI service, such as other people's names, health details or confidential employer information.
5. Payments
Pro is sold through Google Play (or the App Store on iPhone). Google handles the payment. We never see or store your card or bank details.
We use RevenueCat to check whether you have Pro. RevenueCat receives your account ID and the purchase details from the store (product, price, dates, renewal status) and tells our server when your plan changes. We store only whether you have Pro and when it ends.
6. Analytics and crash reports
When they are switched on in a release, we use:
- PostHog for product analytics: which screens you open and in-app events such as "answer revealed", "question rated", "goal completed" or "paywall viewed", with small details like the question ID, the rating, your track and your plan. These events are linked to your account ID and include basic device information (such as device model, OS version, app version and language). They never include your answer text or email. We use them to understand what helps people practise and what to fix.
- Sentry for crash and error reports: the error, the app version, device model and OS version, and recent app activity leading up to the error. We configure Sentry not to attach personal data.
You can turn product analytics off at any time in Profile → Share usage analytics. While it's off, the app sends nothing to PostHog. Crash reports stay on so we can fix problems.
We don't use either service for advertising, and we don't collect the Android advertising ID.
Feedback you send us
If you use Profile → Send feedback, we store your message with the type you picked (bug, idea or other), your account ID, app version and build, device model, Android version, language, plan (free or Pro) and the screen you sent it from. We use it only to answer you and fix the app, and only our team can read it. It's deleted with your account.
7. Who we share data with
We don't sell your data or share it with third parties for their own advertising or marketing. We use these service providers, which process data on our behalf:
| Provider | What for | What they receive |
|---|---|---|
| Supabase | Hosting, database, sign-in, sending sign-in emails | Everything listed in section 2 |
| Groq, Z.ai, CodeCraft, Anthropic | AI feedback | The question and your answer text, without your identity |
| RevenueCat | Subscription status | Account ID, purchase details |
| Google Play | Payments | Handled by Google under its own terms |
| Expo, Google Firebase Cloud Messaging | Delivering push notifications | Push token and the notification text |
| PostHog (if enabled) | Product analytics | Account ID, app events, device information |
| Sentry (if enabled) | Crash reports | Error details, device information |
| Google or Apple | Sign-in, if you choose it | Handled under their own terms |
We may also disclose data if the law requires it, to protect our users or our service, or as part of a sale or merger of the app (in which case this policy continues to apply).
8. How long we keep data
- Account and progress data: for as long as your account exists. Deleting your account removes it (see below).
- Answer text sent for AI feedback: not stored by us. It passes through our server only while the feedback is produced.
- Server logs: a short period set by our hosting provider.
- Backups: deleted data can remain in encrypted database backups until they roll over, typically within a few weeks.
- Analytics and crash reports: kept for the period set in those services, and deleted sooner on request.
- Purchase records: kept by Google Play and RevenueCat as required for billing, tax and accounting.
9. Deleting your data
In the app: Profile → Account → Delete account → Delete. This deletes your account and all the progress and settings stored with it on our server straight away, and resets the app on your phone.
Without the app: follow the steps on our account deletion page.
Deleting your account doesn't cancel a Google Play subscription. Cancel it in Google Play first.
To stop a single feature instead, turn it off in Profile, or remove the permission in Android Settings.
10. Your rights
Depending on where you live (for example under the GDPR in the EU and UK, or state laws in the US), you can ask to access, correct, delete or receive a copy of your personal data, object to or restrict how we use it, and withdraw consent at any time. Email [email protected]. We'll reply within 30 days. You can also complain to your local data protection authority.
Where the GDPR applies, we rely on: performing our contract with you (running the app, sync, AI feedback you ask for, Pro); your consent (optional permissions such as usage access, calendar and microphone, which you can withdraw in Android Settings); and our legitimate interests (security, fixing crashes, improving the app through analytics).
11. Children
Keep Me Ready is made for adults preparing for job interviews. It is not directed at children under 13, or under 16 in the EEA and UK, and we don't knowingly collect their data. If you think a child has given us data, email us and we'll delete it.
12. Security
All traffic between the app and our servers is encrypted (HTTPS). Database access is restricted so each account can read only its own rows. AI provider keys and server keys never ship in the app. No system is perfectly secure, but we work to protect your data and will tell you about a breach where the law requires it.
13. International transfers
Our providers may process data in countries other than yours, including the United States and, for some AI providers, other regions. Where required, we rely on appropriate safeguards such as standard contractual clauses.
14. Changes to this policy
If we change this policy, we'll update the date at the top. If a change is significant, we'll tell you in the app before it takes effect.
15. Contact
Anas Abdullatif
[email protected]