Privacy Policy
Last updated 28 October 2026
This policy explains what the Kwela app and website ("Kwela", "we") collect about you, why, and what you can do about it. We have tried to say it in plain words. If anything is unclear, send us a message on the Support page.
What we collect
| Information | Why | Where it lives |
|---|---|---|
| Your email address | To create your account and verify your sign-in request. | Our database, and on your phone. |
| Sign-in codes and sessions | To check it is you. We store a keyed hash of each code and a hash of each session token. The associated email address is stored with the code. | Our Cloudflare database. During the closed test, the app displays a fixed, non-expiring code only after an allow-listed address requests one; no email is sent. Each request creates a one-use sign-in challenge. Real email codes stop working after 10 minutes or after use. Expired code records may remain until replaced or the account is deleted. Session records stop working after 180 days and may remain until sign-out or account deletion. |
| Messages you send and files you attach (CVs, job descriptions, photos) | To write your replies and documents. They pass through our Cloudflare Worker to OpenAI's API for processing. | Your phone and temporary Cloudflare task storage while Kwela works. Successful task inputs are deleted when the result is ready. Failed inputs expire after 24 hours and are removed by a cleanup that runs every 15 minutes. A compact conversation summary stays on your phone and is sent as part of a task when needed. OpenAI says API abuse-monitoring logs may contain prompts and responses and are kept for up to 30 days by default, with exceptions for legal or security needs. See OpenAI's API data controls. |
| Your CV profile (name, contact details, education, work history, skills that Kwela reads from your CV) | So you do not have to upload your CV again for each job. | Our database, until you delete your account. A copy is kept on your phone. |
| Documents Kwela writes for you | So you can read, share and save them. | Your phone. A temporary server copy of a completed reply and its documents remains available until the app confirms it saved them. We then delete that server copy. Deleting your account also removes outstanding task inputs and results. |
| Usage records (an internal account ID, the time of each request and its estimated cost) | To enforce free-use limits and stop abuse. | Our database. |
| Tester sign-up (the email address and phone number you give on the Try Kwela early page, and the time you agreed to be contacted) | To invite you to test Kwela and to contact you by email, phone call or WhatsApp, including to ask for your feedback and how you look for jobs. You choose to give it by submitting the form, which says so next to the button, and you can ask us to delete it at any time. | Our Cloudflare database. Only we can read it. It is not shared with anyone, not used for advertising, and not linked to your Kwela account. We keep it until the test ends or you ask us to delete it, whichever is first. Send a message on the Support page, from the address you signed up with. A keyed hash of your IP address is kept in the rate-limit table below to stop repeated sign-ups. |
| Messages to Support (the email address and message you send on the Support page) | To answer you. We do not use them for anything else. | Our Cloudflare database. Only we can read it. It is not shared with anyone and not linked to your Kwela account. We keep a message until we have answered it and any follow-up is finished, then delete it. Ask us to delete yours at any time with another message. A keyed hash of your IP address is kept in the rate-limit table below to stop repeated messages. |
| Sign-in rate-limit keys (keyed hashes based on your email address and, when available, IP address) | To limit repeated code requests and prevent abuse. | Our database. The source email address and IP address are not stored in this rate-limit table, but rate-limit rows do not yet have an automatic deletion job. |
| Signing in with Google (your Google account email, name and profile photo) | To sign you in and show your profile. Google provides your verified email, name and, when available, a link to your profile photo. Kwela does not receive your Google password or contacts. | Your email is stored with your account. Your name and photo link are kept on your phone; the app loads the photo from Google. Signing out removes the saved link. |
| Usage statistics (which parts of Kwela are used: for example that a message was sent, a CV was written, a PDF was saved or shared, how long a reply took, and whether it failed) | To find out what works and what breaks, so we can improve Kwela. These records never contain your CV, your messages, your files, your name or your email. They are linked to a random account ID, not to your identity. | PostHog, in the United States. PostHog also receives your phone's IP address with each record and uses it to work out your country. You can turn usage statistics off at any time in Settings, and the app then stops sending them. Deleting your account stops further records, and you can ask us to erase the records already linked to your account ID. |
| Technical data (such as your IP address and request details) | Our hosting provider handles these to deliver the service and keep it secure. We do not use them to profile you. | Our hosting provider. |
We do not use advertising tools, we do not sell your information, and the only analytics we use are the usage statistics described above.
Service providers
These providers process information for us so Kwela can work. Google Play's Data safety rules treat transfers to service providers acting on a developer's behalf as collection, not sharing.
- OpenAI receives your messages and attached files so its AI models can write replies and documents. OpenAI processes API data for the service and says API data is not used to train its models by default. See its API data controls.
- PostHog receives the usage statistics described above, and the IP address that comes with them, so we can see how Kwela is used. It does not receive your CV, messages or files. See PostHog's privacy policy.
- Google checks your account when you choose to sign in with Google. See Google's privacy policy.
- Cloudflare hosts Kwela's servers and database. Your requests and account data pass through its network. The closed-test code is returned only to allow-listed accounts in the app; no email service currently receives it.
We may also disclose information if the law requires it.
Notifications
If you allow notifications, Kwela tells you when a reply you asked for is ready while you are away from the app. The notification shows Kwela's message, and you can reply or mark it as read from there. If your phone is locked and you have chosen to hide sensitive notification content, Android shows only "New message from Kwela". You can turn replies off in Settings, or mute Kwela in your phone's notification settings. We never send reminders or marketing.
How long we keep it
- The closed-test code does not expire, but each sign-in challenge can be used once. Real email codes stop working after 10 minutes or after use. Their hashed database records may remain until replaced or account deletion.
- A session stops working after 180 days, or earlier if you sign out or delete your account. Its hashed database record may remain until sign-out or account deletion.
- Your account and CV profile stay until you delete your account.
- Task inputs are deleted on success. Failed inputs expire after 24 hours, with cleanup every 15 minutes. Completed replies remain available until the app saves and acknowledges them, or you delete your account. Minimal task records stay until account deletion. Cloudflare Workflow execution metadata is retained for 26 hours after an attempt finishes.
- Usage records are kept for as long as we need them to enforce limits. They use an internal account ID and stay after you delete your account so that deleting and re-creating an account cannot be used to get around those limits.
- Tester sign-ups are kept until the test ends or you ask us to delete them.
- Messages to Support are kept until we have answered them and any follow-up is finished, or you ask us to delete them.
- Rate-limit records contain keyed hashes and request counts. They have no automatic deletion job yet.
- Chats and documents on your phone stay there until you delete them, delete your account in the app, or uninstall Kwela.
Your choices and rights
Kenya's Data Protection Act, 2019 gives you rights that include access to your personal data, objection to processing, correction of false or misleading data, and deletion of false or misleading data. The Data Protection Regulations also set out how to request erasure. See the Office of the Data Protection Commissioner's guidance or email us for help.
- Delete your account: in the app, open your profile, then Settings, then Delete account and data. Or use our deletion page if you no longer have the app.
- Anything else: send a message on the Support page, using the address on your account, and we will reply.
- Complaints: you can complain to the Office of the Data Protection Commissioner (Kenya): https://www.odpc.go.ke.
Where your data is processed
Our service providers run servers in several countries, so your information may be processed outside Kenya. We use providers that apply their own security and data-protection commitments.
Security
Connections to Kwela are encrypted. Sign-in codes and session tokens are stored in hashed form in the database. During the closed test, the fixed test code is available only to allow-listed email addresses through the app. No system is perfectly secure, so please use a device lock and keep your email account safe.
Children
Kwela is for people aged 18 and over. We do not knowingly collect information from anyone younger. If you think a child has given us information, tell us and we will delete it.
Changes
If we change this policy in a way that matters, we will update the date above and tell you in the app.
Contact
Kwela · Support page