Privacy Policy
Effective date:
1. About this policy
This policy explains what personal information Jalees ("we", "us") collects when you use the Jalees website and application (the "Service"), how we use that information, who we share it with, and the choices and rights you have.
The Service is operated by Jalees LLC, a Wyoming limited liability company with a mailing address at 30 N Gould St Ste 7128, Sheridan, WY 82801, USA. Jalees LLC is thecontroller of personal information processed through the Service. Where we use third-party providers to process information on our behalf, they act asprocessors and are listed in section 5.
2. Information we collect
We collect the following categories of information:
2.1 Account information
- Your email address.
- If you sign up with a password: a salted Argon2id hash of your password. We never store your password in clear text and cannot recover it for you.
- If you sign in with Google: your Google account identifier (the OAuth "sub" claim), your email address as reported by Google, and your display name and avatar URL if you provide them.
- An optional display name.
2.2 Content you upload and create
- Files you upload (typically PDFs of books or other study materials), their original filenames, MIME types, and sizes.
- The Markdown text that our optical-character-recognition ("OCR") worker extracts from each upload, used to ground chat responses in the page you are reading.
- Your chat conversations with the assistant: the prompts you send, the streamed responses you receive, any image attachments captured from your current reader viewport, and the titles you assign to chats.
2.3 Billing information
- Your Stripe customer identifier, subscription identifier, plan, status, current period end, cancellation flag, and trial-used flag.
- A token-usage ledger recording, for each chat exchange, the number of input and output tokens, the underlying model used, and a pointer back to the chat message that consumed them. We use this ledger to enforce per-plan rate and volume quotas and to support billing analytics.
- We do not store your card number, CVV, or any other payment-card data. Payment data is collected directly by Stripe under their privacy policy. We only ever see your Stripe customer identifier.
2.4 Technical information
- The IP address, user-agent string, and timestamps of your requests, used for abuse prevention, rate limiting, and security investigations. These appear in server logs.
- A security log entry records your email address or account ID, yourIP address and the time whenever you sign up, sign in, fail to sign in, sign out, or the app renews your session (when you open it, and about every 15 minutes while you use it), and when something happens to your account, such as verifying your email, a password reset, a profile change or a deletion. We use these entries to investigate security incidents and abuse. They are kept for 12 months (see section 7).
- Authenticated session cookies (see our Cookie Policy for the complete list).
- If you accept analytics, Cloudflare Web Analytics measures page views and page performance on our website (jalees.io) and in the app (app.jalees.io): the page address, referrer, browser type, load timings, and the country Cloudflare derives from your IP address, counted in aggregate. Cloudflare Web Analytics does not use cookies or browser local storage to collect analytics. It is not loaded at all unless you accept analytics (Cloudflare's privacy policy; provider documentation).
- If you accept analytics cookies, a randomly-generated PostHog "distinct id" and session identifier; PostHog also records its standard properties (page URL, referrer, viewport, device class, web vitals) and, where session replay is enabled, a masked screen recording of your interactions. When you sign in with analytics consent, we associate these analytics with your internal account ID, email address and display name so we can recognize your account across visits. Sensitive inputs (passwords, email fields, anything inside our
[data-ph-mask]attribute) are masked at the source before upload. - If something goes wrong on our backend or in your browser, our error-monitoring provider captures the exception, a stack trace, the URL, your IP, and limited request metadata. We strip request and response bodies before upload to avoid leaking your content.
- Where you are in each book, video and recording, so you can carry on from another device. With each saved position we store a random identifier for the browser that saved it and a short label naming the browser and operating system (for example "Chrome · Android"), so that another of your devices can tell you where you left off and on which one. The identifier is generated in your browser and is not derived from the device.
2.5 Record of your consent choices
When you answer the cookie banner while signed in, we keep a copy of that answer on your account as well as in your browser. We are required to be able to demonstrate that consent was given (GDPR Art. 7(1)), and a setting stored only in one browser cannot show that. It also means you are not asked again on every device you sign in on.
Each entry holds:
- Which categories you chose — essential (always on, and recorded as such so an old entry stays readable), analytics, andmarketing.
- The policy version you were shown, so the record identifies the text you agreed to rather than whichever text is current now.
- The version of the optional purposes and providers your choice covers. When these change, optional scripts stay off until you make a new choice.
- The date and time, taken from our database's clock rather than from your browser or our application.
- Your IP address and user-agent string at that moment, as corroboration. Both may be absent — a missing one never blocks recording the choice itself, because the choice is the evidence and these only support it.
The record is append-only: changing your mind writes a new entry and withdrawing consent writes an entry with the categories switched off. Nothing is edited or removed, because the obligation is to show what was agreed at a given moment, not to report what is set today. If you are not signed in, your choice stays in your browser only, and is added to your account the first time you sign in afterwards.
2.6 Problem reports
A problem report is something you choose to send: by shaking your device, holding the Jalees button, or choosing “Report a problem”. It contains:
- the message you write;
- a screenshot of the screen you were on, unless you switch it off before sending;
- technical details about your device, browser or app and about the app itself, such as its version, the screen you were on, requests that were slow, recent error messages (which can contain text from what you were working on) and when the page last loaded and, if you allowed analytics cookies, what caused a reload. These are sent whether or not you include the screenshot.
When a tool fails during a chat, the assistant can offer to file a report. It is sent only if you approve it in the chat, and it contains the assistant’s description of the problem and a link to that conversation.
A report does not attach your materials (the books, documents and other files you add to Jalees, and their text), but a screenshot, an error message or the assistant’s description can still show part of what you were working on. When a report links to a conversation and you allowed analytics cookies, Jalees administrators and the AI assistants we use to investigate it may read that conversation, including the passages and page images from your materials that it used, and when an AI assistant reads it, its model provider receives that conversation too. If you did not allow analytics cookies, we do not read the linked conversation.
We use reports to find and fix problems. Jalees administrators and the AI assistants we use to investigate reports can process report content, and when we use an AI assistant its model provider receives that content. To track a problem we may copy parts of a report into our private issue tracker. A report, including its screenshot, is deleted from the active service when your account is deleted. Copies in the issue tracker, and the copies the AI assistants that investigated it worked from, are not deleted with it; database backups follow the backup retention in section 7.
3. How we use your information
We use your information for the purposes below. Under the EU GDPR and the UK GDPR, each purpose has a corresponding lawful basis (Article 6).
- To provide the Service — create your account, store and OCR your uploads, run your chats, persist conversation history. Lawful basis: performance of a contract with you (Art. 6(1)(b)).
- To bill you and manage your subscription — create a Stripe customer, record your plan and status, enforce quotas, issue invoices. Lawful basis: contract (Art. 6(1)(b)); compliance with tax and accounting obligations (Art. 6(1)(c)).
- To keep the Service secure — rate-limit abusive traffic, block bots, detect credential stuffing, investigate incidents (using the sign-in security logs in 2.4). Lawful basis: our legitimate interest in operating a secure service (Art. 6(1)(f)).
- To send service emails. We use your email address to send transactional messages — account verification, password reset, billing receipts — and important security notices. Lawful basis: contract (Art. 6(1)(b)). These emails are not marketing and you cannot unsubscribe from them while your account is active.
- To measure how the Service is used — aggregate analytics on signup conversion, feature adoption, and performance. Lawful basis: your consent (Art. 6(1)(a)), which you can withdraw at any time via the cookie settings link in our footer.
- To show that you consented — keep the record described in 2.5. Lawful basis: compliance with a legal obligation (Art. 6(1)(c)); Art. 7(1) requires a controller relying on consent to be able to demonstrate that it was given. Note the consequence: this record is not itself kept with your consent, so declining analytics does not remove it — declining is one of the things it exists to evidence.
- To improve the Service — debug errors using captured stack traces, and measure the speed, reliability and cost of our answers, including when we compare one version of how we prepare an answer against another. We do this in two ways.
- Aggregated statistics. Counts such as how many chat exchanges took place, how many named a source the assistant had actually retrieved, how often a request failed and with which error, and how these differ between the AI models we offer. They are computed from your conversations, but they contain no part of them — no prompt, no reply, no document title, no page number, and no identifier for the account the exchange belonged to.
- A technical record of each chat exchange, sent to PostHog. For every exchange with the assistant, whoever you are and whether or not you accepted analytics cookies, our server sends PostHog a record. It holds the AI model used and the settings it ran with (such as reasoning effort or deep research), how long the answer took, token counts, the cost, whether an answer came back or which error stopped it, and which version of answer preparation the exchange ran under. It also holds a code for the conversation. We compute that code with a secret key that only we hold, so it is not your account ID, your email address or the chat's own identifier, and it cannot be reversed to any of them. It carries no part of the conversation, no account identifier, no email address, and no location derived from your IP address. PostHog keeps no profile for it, and it is not linked to the analytics profile you may have if you accepted analytics cookies. Because we can recompute the code for a conversation we know, we treat these records as pseudonymous personal data, not as anonymous data. They are sent from our server, so they set no cookie and read nothing from your device, and your cookie choice does not switch them off. Lawful basis: legitimate interests (Art. 6(1)(f)) in measuring and improving the speed, reliability and cost of the answers we give you; this basis does not depend on your consent. PostHog keeps these records for 1 year. You can object to this processing by writing to privacy@jalees.io. We then exclude your account from these records, and we delete the records already sent where we can identify them.
- To investigate and resolve problems you report — investigating and resolving reported problems: we read and investigate the reports you send (2.6), including through the AI assistants we use. Lawful basis: your consent (Art. 6(1)(a)), which you give by sending a report or by approving one the assistant offers. You can withdraw it by contacting us (section 12), and we then delete the report from the active service; the copies described in 2.6 follow 2.6.
- We do not read your conversations. No member of our staff reviews the content of your chats, your uploads, or the text extracted from them as a matter of routine, and no internal tool exposes that content for review. We would access an individual conversation only where we are legally required to, or where you ask us to in order to resolve a support request you have raised. If we ever intend to review conversation content for quality purposes, we will change this policy and its effective date first, tell you as described in section 11, and give you a way to object.
We do not use your uploads or chat content to train any machine-learning model of ours, and we do not sell or licence it to anyone for that purpose. What an AI provider may do with a chat turn we forward to it is governed by that provider's own terms, which differ between them — section 4 sets out what each one commits to.
4. AI processing
When you send a chat message, we forward the message, the relevant excerpt of your book's OCR'd text, and any attached image to a large-language-model provider, which generates the response. Which provider receives it depends on the model you select in the chat model picker. Unless you change it, the turn goes to Google's Gemini API. Selecting one of the GPT-5.6 models sends that turn to OpenAI instead; selecting one of the DeepSeek models sends it to DeepSeek; selecting a Qwen model sends it to Alibaba Cloud Model Studio. Only the provider behind the model you selected receives that turn’s message, excerpt and attached image — we do not send a copy to the others. The search embeddings described in the next paragraph are a separate use of Google’s Gemini API. The streamed response is sent back to your browser and persisted with your chat history.
To let the tutor search a subject’s materials by meaning, not only by exact words, we send the text of the materials and notes you add to a subject, and the searches the tutor runs in that subject’s chats, to Google’s Gemini API to compute embeddings (lists of numbers that represent meaning). This happens whichever chat model you selected. We store the embeddings with your materials and delete them when you delete the material or your account.
Each of these providers processes that content under its own terms and privacy policy, as our processor:
- Google. Per its currentGemini API additional terms, paid-tier content is not used to train Google's models.
- OpenAI. Per its currententerprise privacy commitments, API inputs and outputs are not used to train OpenAI's models by default, and may be retained for up to 30 days to detect abuse.
- DeepSeek. Operated by Hangzhou DeepSeek Artificial Intelligence Co., Ltd., which states in itsprivacy policy that it processes and stores data in the People's Republic of China. Please read section 6 on international transfers before selecting one of its models.
- Alibaba Cloud Model Studio (Qwen). Qwen prompts, attached media, tool calls, and responses are processed under Alibaba Cloud'sprivacy policy when you select a Qwen model.
Separately, when a guided-study lesson is read aloud, we send the text of that lesson to Google's Cloud Text-to-Speech API to synthesise the audio. Nothing else from your library is sent for synthesis.
5. Who we share information with
We share your information only with the processors below, and only to the extent each needs to perform the function listed.
- Google (Gemini API)
- Generating chat responses from your prompt, book excerpt, and viewport image — the default, and whenever you select a Gemini model. Computing search embeddings of your subject materials, notes and the tutor’s searches, whichever chat model you select.
- OpenAI
- The same, when you select one of the GPT-5.6 models in the chat model picker.
- DeepSeek (Hangzhou DeepSeek Artificial Intelligence Co., Ltd., China)
- The same, when you select one of the DeepSeek models in the chat model picker.
- Alibaba Cloud Model Studio (Qwen)
- The same, when you select one of the Qwen models in the chat model picker.
- Anthropic
- Investigating problem reports (2.6), through the AI assistants we use to investigate them.
- Google (Cloud Text-to-Speech)
- Synthesising the spoken audio for a guided-study lesson.
- Google (OAuth)
- "Sign in with Google" authentication, when you choose it.
- Google (Cloud Storage)
- Storing the files you upload.
- Stripe
- Subscription billing, checkout, customer portal, webhook delivery.
- Resend
- Sending transactional email — account verification, password reset, and important security notices.
- Cloudflare
- Turnstile bot-mitigation challenge on signup, login, and other write endpoints. On our website and in the app, and only if you accept analytics, Cloudflare Web Analytics: cookieless, aggregate page-view and performance measurement.
- PostHog (PostHog Inc., EU region)
- Product analytics, session replay, and automatic capture of errors and crashes in the app — all three only after you accept analytics cookies. Separately, our server sends PostHog a pseudonymous technical record of each chat exchange, with no account identifier and no conversation content, whether or not you accepted analytics cookies. This is described under “To improve the Service” in section 3. PostHog acts as our processor for it, in the EU region, and keeps these records for 1 year.
We may also disclose information when required by law, to enforce our Terms of Service, or in connection with a merger or asset sale. We will tell you about a material change in control before your data is transferred.
6. International transfers
Some of our processors are based in the United States or operate globally. Where we transfer personal data of users in the European Economic Area, the United Kingdom, or Switzerland to a country that has not received an adequacy decision, we rely on the European Commission's Standard Contractual Clauses (and, where applicable, the UK International Data Transfer Addendum) plus supplementary measures appropriate to the transfer. You can request the relevant clauses from us using the contact below.
One transfer is under your control and worth calling out. DeepSeek states that it processes and stores data in the People's Republic of China, which has not received an adequacy decision from the European Commission, and which affords rights of access to state authorities that differ materially from those in the EEA and the UK. A chat turn reaches DeepSeek only if you select one of its models in the chat model picker; if you would rather no content leave for China, use the default Gemini model or one of the GPT-5.6 models, and no DeepSeek transfer takes place.
7. How long we keep information
- Account, books, chats: for as long as your account is active.
- Server logs: 30 days, then deleted.
- Sign-in security logs (2.4): every entry, that is the email address or account ID, IP address and time of each sign-up, sign-in, failed sign-in, sign-out, session renewal and account event, is kept for 12 months after it was written, for security and abuse investigation, then deleted. Deleting your account does not remove them sooner.
- Consent records (2.5): for as long as your account exists, and deleted with it. They are not pruned on a schedule: an entry proving what you agreed to is only useful for as long as we might be asked to produce it, which is for as long as we are processing on the strength of it.
- Problem reports (2.6): for as long as your account exists, and deleted from the active service with it. Copies in our issue tracker, and the copies the AI assistants that investigated a report worked from, are not deleted with your account; backup copies follow the backup retention below.
- Billing records: invoices and payment records (amounts, dates, country, tax ID and Stripe identifiers, never your study materials) are kept for 10 years after the end of the tax year of the transaction, for every transaction, wherever you are, even after you close your account.
- Backups: encrypted database snapshots are scheduled for deletion 365 days after their snapshot date. Backup file storage includes an additive archive retained indefinitely. Deleting an account or file does not remove its copies from these backups. Retention periods run from the snapshot date, not the date of an account-deletion request; lifecycle deletion is asynchronous, and deleted backup objects have an additional seven-day recovery window.
- After you delete your account: we delete or anonymise your account, books, OCR text, chat history, and stored files within 30 days, except where we are required to retain billing records (see above) or limited information for security and abuse-prevention purposes (including the sign-in security logs, every entry of which is kept for 12 months as above). This removes information from the active service; backup copies remain subject to the backup retention described above.
- Files stored once and shared: when two accounts upload the identical file, we store its contents once and each account holds a reference to it. Deleting your account removes your reference, and the active-service stored copy is erased once no account references it any more. If another account independently uploaded the same file, their own live access continues. Backup copies remain subject to the backup retention described above.
8. Your rights
If you are in the EEA, the UK, or Switzerland, you have the right under the GDPR / UK GDPR to:
- access the personal data we hold about you;
- correct inaccurate or incomplete data;
- delete your data ("right to erasure");
- restrict or object to certain processing;
- port your data to another service in a structured, machine-readable format;
- withdraw consent at any time where processing is based on consent;
- lodge a complaint with your supervisory authority.
If you are a California resident, you have rights under the CCPA / CPRA to know, delete, correct, and (where applicable) opt out of "sale" or "sharing" of your personal information. We do not sell personal information and do not "share" it for cross-context behavioural advertising as those terms are defined under California law.
You can exercise most rights directly from your account settings: download your data, update your profile, and delete your account. For other requests, write to us using the address in section 12. We will respond within the time required by applicable law (one month for GDPR requests, 45 days for CCPA requests, extendable where permitted).
9. Children
Jalees is not directed to children. We do not knowingly collect personal information from anyone under 16 (or under 13, where that lower threshold applies). If you believe a child has provided us with personal information, contact us and we will delete it.
10. Security
We protect your account with industry-standard measures: TLS in transit, encrypted storage at rest, Argon2id password hashing, short-lived access tokens, rotation of long-lived refresh tokens, and audit logging of authentication events. No system is perfectly secure, and we cannot guarantee absolute security — if you believe your account has been compromised, change your password and contact us immediately.
11. Changes to this policy
We will update this policy from time to time. When we make a material change, we will update the effective date above and, where the change is significant, notify you by email or via an in-app banner. Continued use of the Service after a change takes effect means you accept the updated policy.
12. Contact
For privacy questions, requests, or complaints, write toprivacy@jalees.io, or by post to Jalees LLC, 30 N Gould St Ste 7128, Sheridan, WY 82801, USA.