AlgorithmLens Privacy Policy
This website
The pages on algorithmlens.com set no cookies, run no analytics, and request nothing from third parties. The only data they send anywhere is the launch-list form: when you submit it, your email address and your consent are sent to our launch-list service (a function hosted for us by Supabase) and stored there so that we can send launch news. Nothing is sent until you press the button, and nothing is saved if the service reports a failure.
Your address is used only for launch news and is never sold or shared. To be removed from the list, write to privacy@algorithmlens.com from the address you signed up with.
The example scans shown on this site are fictional. Nothing on this site records your screen or reads your feed.
Last Updated: October 6, 2026 Effective Date: February 22, 2026
AlgorithmLens ("we," "us," or "our") operates the AlgorithmLens mobile application (the "App"). This Privacy Policy explains what information we collect, how we use it, who we share it with, and your rights regarding your data.
We designed AlgorithmLens to help you understand your social media feeds. Because the App captures and analyzes what's on your screen, we take your privacy seriously and want you to fully understand how your data is handled.
1. Information We Collect
1.1 Account Information
When you create an account, we collect:
- Email address: provided via Google OAuth, Apple Sign-In, or direct email registration.
- User ID: a unique identifier generated by our authentication system (Supabase).
- Authentication provider: whether you signed in with Google, Apple, or email/password.
- AI analysis consent: whether you have opted in to AI-powered feed analysis (you can change this at any time in Settings).
- Research participation: whether you have opted in to the research study described in Section 3A, the version of the participation terms you agreed to, the date of that decision, whether and when you later withdrew, and a random participant identifier that is not derived from your account or your email. This is a separate decision from AI analysis consent, it is off unless you turn it on, and you can turn it off at any time in Settings.
- Onboarding status: whether you have completed the App's initial setup flow.
We do not collect your name, phone number, or physical address.
1.2 Screen Recording Data
AlgorithmLens captures frames from your device screen during a scan session. Here is exactly how this works:
- What is captured: JPEG screenshots of your device screen, taken approximately once every 2.5 seconds while a scan is active.
- How it's captured: On iOS, we use Apple's ReplayKit broadcast extension. On Android, we use the MediaProjection API. Both require your explicit permission through a system-level prompt before any capturing begins.
- Imported screenshots: You can also analyze screenshots of your feed by selecting them from your photo library. Only the images you pick are accessed (the system photo picker enforces this), and they are processed and deleted exactly like captured frames. Your originals stay untouched in your photo library.
- On-device processing: Each frame is deduplicated using perceptual hashing (frames that look nearly identical are discarded). Text visible on-screen is extracted using on-device OCR (optical character recognition). Frames are compressed to JPEG at 75% quality.
- Maximum capture: Up to 200 frames per session, with a 10-minute maximum session duration.
- Where frames are stored temporarily: On iOS, in an App Group shared container (
group.com.algorithmlens.broadcast/frames/). On Android, in the app's internal storage (broadcast/frames/). These files exist only on your device. - When frames are deleted: Frames are deleted from your device immediately after they have been processed and sent for analysis. If the app crashes or is force-quit during a scan, leftover frames are cleaned up the next time you start a new scan session.
Important: Screen recordings may incidentally capture sensitive content visible on your screen (such as notifications, messages, or other apps running in the background). These images are processed temporarily and deleted immediately after analysis, they are never stored permanently and are not reviewed by any person. However, they are sent to Google's Gemini API for automated analysis (see Section 3). We strongly recommend closing sensitive apps before starting a scan.
1.3 Scan Results
After your screen frames are analyzed, we store the results of that analysis:
- Extracted feed items: information about individual posts identified in your social media feed, including: creator/account names, content categories (e.g., political, ad/sponsored, entertainment), wellbeing flags, hashtags, and position in feed. We do not store the text of your posts: it is read during analysis and discarded. This text-based data is stored in our database so you can review your scan history.
- Scan metadata: which platform was scanned, when the scan occurred, the scan source type (screen recording, in-app browser, or screenshot import), and the number of items found.
- Aggregated statistics: category breakdowns, ad percentages, and other summary data derived from your scans.
1.4 Usage and Preference Data
We store the following locally on your device:
- Checkup rhythm data: which feeds you have chosen to track, your primary feed, the checkup rhythm you picked per feed (weekly or every two weeks), reminder settings, a short local log of whether recent checkups showed certified changes, and your scan history summaries. If you set up the optional Shortcuts automation, the App also stores locally the time the last due-checkup reminder was posted (so it never reminds you twice in one cycle); a fresh checkup clears it. All of this stays on your device and is not sent to our servers.
- Platform login states: which social media platforms you've logged into within the App's built-in browser, cached for up to 30 days. This only records that you logged in (e.g., "Instagram: logged in"), not your credentials.
- Notification preferences: whether you've enabled scan reminders and how often. We also store your last scan date locally to calculate when to send the next reminder.
- Theme preferences: light or dark mode selection.
- Notification permission status: whether we have already asked you for notification permission (to avoid asking repeatedly).
1.5 Error and Diagnostic Data
We use Sentry for error tracking. When the App encounters an error, Sentry may collect:
- Error details: stack traces, error messages, and the sequence of actions leading to the error.
- User ID: to help us identify patterns in errors. We explicitly strip your email address, username, and name from all Sentry reports before they are sent.
- Device information: device model, operating system version, and app version.
- Performance data: sampled at a 10% rate, including page load times and API response durations.
2. How We Use Your Information
We use your information for the following purposes:
- To provide the App's core functionality: capturing your screen, analyzing your social media feed via AI, and presenting the results to you.
- To maintain your account: authenticating you and syncing your scan history across sessions.
- To improve the App: diagnosing errors, understanding crash patterns, and monitoring performance via Sentry.
- To send you scan reminders: local push notifications, only if you opt in.
- For published research, only if you separately opt in: see Section 3A. We do not use your data for research unless you have opted in to the research study, and using the App is never that opt-in.
We do not use your data for advertising, ad targeting, or selling to third parties. We do not build advertising profiles based on your social media feed analysis.
3. How Screen Recordings Are Processed
This is the most sensitive part of what AlgorithmLens does, so we want to be very clear:
- Capture: When you start a scan, your device captures screenshots of your screen using the operating system's built-in screen recording APIs (ReplayKit on iOS, MediaProjection on Android). You must grant explicit permission through a system dialog before this happens.
- On-device processing: Frames are compressed, deduplicated, and OCR text is extracted, all on your device.
- Sent to Google Gemini for AI analysis: The compressed frame images (as base64-encoded JPEG data) and extracted OCR text are sent to Google's Gemini API (currently the Gemini 3.1 Flash-Lite model) over an encrypted HTTPS connection. Gemini analyzes the visual content to identify and categorize individual posts in your social media feed.
- Results returned: Gemini returns structured data (JSON) describing the feed items it identified, post text, creator names, content categories, etc. No images are returned by Gemini.
- Frames deleted: After analysis is complete, the frame image files are deleted from your device. The base64-encoded frame data held in memory is released. Only the structured analysis results (text data, not images) are stored.
- Results saved: The structured analysis results (text data, not images) are saved by the App directly to our database (hosted on Supabase) and linked to your account so you can view your scan history. No server-side enrichment of your results occurs; the research step below does not change what you see.
- Research step, only for study participants. If you have opted in to the research study (Section 3A), the text extracted in step 3 (the caption or title the model read from each post, the account names shown with it, and its hashtags) is sent once, over an encrypted HTTPS connection, from our server to TypeSafe AI, which returns a probability for each question in a fixed question bank. Only those numbers are stored (Section 3A.2). The text is not stored by us at any point. TypeSafe AI acts as our processor under its Data Processing Agreement (Section 4.5).
- Quick check, only for study participants who choose to answer. After a checkup, the App may show three of the posts it read and ask yes-or-no questions about them, and one question about the checkup as a whole. Answering is optional at every step. Your answers are sent to our server as numbers with the post's position and the question's identifier, and stored under your participant identifier (Section 3A.2). The post's text is shown to you on your own screen and is not sent with the answers.
What Google receives: Google's Gemini API receives the JPEG images of your screen frames and the OCR text extracted from them. We send this data solely for the purpose of AI analysis. Our Gemini API access is configured on a paid billing account, and under Google's paid-tier API terms, data submitted through it is not used to train Google's AI models. The frames are deleted after analysis and are never shared beyond this analysis step. Google processes the data to return results according to their API terms. See Google's Gemini API Privacy Policy for details.
3A. Research Participation (Optional, Off By Default)
You can choose to let your measurements be used as material for published research about social media feeds. This is a separate decision from using AlgorithmLens and from AI analysis consent. It is off unless you turn it on, on a dedicated screen in the App, and every feature of the App works exactly the same whether you take part or not.
Using the App is never consent to research. Neither is accepting our Terms of Service, continuing to use the App after this policy changes, nor granting AI analysis consent. The only thing that enrolls you is the affirmative action on the research screen, and we record which version of the participation terms you agreed to and when.
3A.1 What we record when you opt in
Your choice, the version of the participation terms, the date of your decision, a self-attestation that you are 18 or older and in the United States (we do not verify either), and a random participant identifier. That identifier is not derived from your account, your email, or your device.
3A.2 What can be used for research
Only the scan results described in Section 1.3, and only from scans you ran on or after the day you opted in. Nothing from before that day is included. Specifically, research material can include: the counts (posts read, ads, suggested versus followed), the per-post classifications (ad, origin and how it was determined, content type, topic, political reading and stance guess, tone reading, AI-disclosure flag, position in feed), the account names and hashtags shown on posts, and the scan metadata (platform, date, capture method, duration, frame counts). For checkups you ran after joining, research material also includes a set of numbers per post: the probabilities a second model (TypeSafe AI's Jev) assigned to a fixed bank of yes-or-no and rating questions about the post's text, together with the model version and bank version used. For participants who choose to answer them, research material also includes the answers to a few yes-or-no questions the App may ask after a checkup about three of the posts it read (whether a post is political, whether it carries a feeling, and one question about a visible feature of the text) and one question about whether the checkup matched what you saw. Each answer is stored as a number under your participant identifier, with the position of the post in the checkup and the question's identifier; the post's text is not stored with it. For participants who use the feed receipt, research material also includes any correction they make there: a yes, no or cannot-tell answer about a tag the App showed for a post, stored as a number under the participant identifier with the post's position, the question's identifier and a marker that the answer was given after seeing the tag; the post's text is not stored with it.
3A.3 What is never used for research
The text of your posts, which is read during analysis and, for study participants, read once more by TypeSafe AI, and is never stored at all by us (Section 1.3), and therefore cannot reach a research dataset as text. Nor the sponsored-label text on ads, the links behind posts, the screen frames themselves (deleted after analysis), your email address, your name, your account identifier, or anything from outside a scan.
3A.4 How findings are published
Only as aggregates and contrasts across many participants: shares, averages, and comparisons between platforms or over time. Never one participant's feed, never a quotation from anyone's feed, and never a figure drawn from a group small enough to identify a person. The participant identifier is an internal key used to honor withdrawals; it is never published.
3A.5 Withdrawing
Turn off research participation in Settings at any time. From that moment, nothing further of yours is used for research, and anything of yours already in a research dataset is deleted from it. The participant identifier is retained after you withdraw for that one purpose: it is how we find your contribution in order to remove it. Nothing else about your participation is retained.
A figure that has already been published cannot be recalled. It was a count across many people and identifies no one; removing your rows changes what future figures are counted from, not what is already in print. If a research extract has been shared with a collaborator outside our systems, deleting our copy does not delete theirs, so extracts are kept inside the project and re-cut from live data rather than passed around.
Withdrawing from research is not account deletion, and does not remove your own scan history from the App. Deleting your account (Section 7.2) removes everything, including your research participation record.
3A.6 Where this stands today
As of the Last Updated date at the top of this policy, the research dataset consists of the per-post numbers described in Section 3A.2, filed under participant identifiers: the second reader's probabilities, and, where a participant chose to answer, their own yes-or-no answers. No text, image, name, or account identifier is in it. The second reader's per-post rows are retained for 90 days and then aggregated per checkup; aggregates carry no per-post detail. A participant's own answers are retained as they are until withdrawal or account deletion, since they are the reference the reader is checked against.
3A.7 Who can take part
Research participation is currently offered only to people aged 18 or over who are in the United States. That is a limit on the study, not on the App: anyone may use AlgorithmLens anywhere, without taking part.
4. Third-Party Services
We use the following third-party services. Each receives certain data as described below:
4.1 Google Gemini API (AI Analysis)
- What we send: Base64-encoded JPEG screenshots of your screen and OCR-extracted text.
- Why: To analyze social media feed content and categorize posts.
- Their privacy policy: Google Gemini API Terms and Google Privacy Policy
4.2 Supabase (Authentication and Database)
- What is stored: Your account information (email, user ID, auth provider) and scan results.
- Why: To authenticate you, store your scan history, and manage your profile.
- Where: Supabase hosts data on cloud infrastructure. Your data is stored in a Supabase-managed PostgreSQL database with row-level security, meaning each user can only access their own data.
- Their privacy policy: Supabase Privacy Policy
4.3 Sentry (Error Monitoring)
- What they receive: Error reports including stack traces, your user ID, device model, OS version, and app version. Your email and name are explicitly removed before reports are sent.
- Why: To identify and fix bugs and crashes.
- Their privacy policy: Sentry Privacy Policy
4.4 Apple and Google (OAuth Authentication)
- What they facilitate: When you sign in with Google or Apple, the respective provider handles the authentication flow and shares your email address with us (and, for Apple Sign-In, a relay email if you choose to hide your real email).
- Why: To create and authenticate your account.
- Their privacy policies: Apple Privacy Policy | Google Privacy Policy
4.5 TypeSafe AI (research step only)
- What we send: For study participants only, the text extracted from each post (caption or title, account names shown, hashtags) and, if enabled, a one-sentence description of the post's visual. Never screenshots.
- Why: To answer a fixed bank of questions about the post for the research study (Section 3A).
- Their role: TypeSafe AI is a processor and AlgorithmLens is the controller under their Data Processing Agreement (last updated 2026-04-24, https://typesafe.ai/legal/data-processing). They do not sell or share the data, retain it only as long as necessary to provide the service, and do not use inputs or outputs to train their models (Privacy Policy, last updated 2025-11-19, https://typesafe.ai/legal/privacy-policy; Master Customer Agreement, last updated 2026-09-23, https://typesafe.ai/legal/mca). Zero data retention is available from TypeSafe AI only to enterprise customers, which we are not; we therefore do not promise zero retention on their side.
5. Data Retention
| Data Type | Retention Period |
|---|---|
| Screen recording frames (images) | Deleted from your device immediately after analysis completes. If the app crashes, cleaned up on next session start. |
| In-memory frame data (base64) | Released from memory within 5 minutes of analysis completion or when you leave the results screen. |
| Scan results (text data) | Stored on our servers for as long as your account exists, or until you request deletion. |
| Account information | Retained for as long as your account is active. Deleted upon account deletion request. |
| Streak and preference data | Stored locally on your device. Deleted when you uninstall the App or clear app data. |
| Platform login state cache | Automatically expires after 30 days. Stored locally on your device only. |
| Error and diagnostic data | Retained by Sentry for up to 90 days per their default retention policy. |
| Research participation record | Kept for as long as your account exists, including after you withdraw: the record of the withdrawal and the random participant identifier are what let us keep honoring it. Deleted when your account is deleted. |
| Research dataset rows | Second-reader rows per post: 90 days, then folded into per-checkup totals. Per-checkup totals: for as long as you remain in the study. Your own quick-check answers: for as long as you remain in the study. All rows under your participant identifier are deleted when you withdraw or delete your account. |
6. Data Security
We implement the following security measures:
- Encryption in transit: All data transmitted between the App and our servers, and between the App and third-party services, is encrypted using HTTPS/TLS.
- Secure credential storage: Your authentication tokens are stored using your device's secure storage (iOS Keychain / Android EncryptedSharedPreferences via expo-secure-store).
- Row-level security: Our Supabase database uses row-level security policies, meaning authenticated users can only access their own data.
- Minimal data collection: We collect only the data necessary to provide the App's functionality. Screen frames are processed and deleted, we do not retain the images.
- PII scrubbing: Error reports sent to Sentry have personally identifiable information (email, name) stripped before transmission.
7. Your Rights and Choices
7.1 Access and Export Your Data
You can view all your scan history and results within the App. To request a full export of your data in a machine-readable format, contact us at privacy@algorithmlens.com.
7.2 Delete Your Data
You can request deletion of your account and all associated data by:
- Contacting us at privacy@algorithmlens.com
- Using the account deletion option in the App's settings (when available)
Upon receiving a deletion request, we will delete your account, scan results, and profile data from our Supabase database within 30 days. Note that:
- Data already sent to third-party services (Google Gemini, Sentry, TypeSafe AI) is subject to those services' own retention and deletion policies.
- Locally stored data (streaks, preferences) is deleted when you uninstall the App.
- We may retain certain data where required by law.
7.3 Disable AI Analysis
You can disable AI-powered analysis at any time in the App's Settings by toggling off the AI analysis consent. When disabled, your screen frames will not be sent to Google Gemini for analysis. You can re-enable it at any time.
7.4 Withdraw Consent for Screen Recording
You can stop screen recording at any time by ending the broadcast session from your device's Control Center (iOS) or notification shade (Android). You can also revoke the screen recording permission entirely in your device's system settings.
7.5 Withdraw From Research Participation
If you opted in to the research study (Section 3A), you can withdraw at any time in the App's Settings, under Research participation. There is one confirmation and no questions. Withdrawal stops any further use of your data for research and deletes anything of yours already in a research dataset. See Section 3A.5 for what withdrawal does and does not reach.
7.6 Opt Out of Error Tracking
When crash reporting is configured for a given build, Sentry error tracking runs to help us maintain app stability. Error reports are pseudonymous: they include your user ID so we can identify error patterns, with your email, username, and name stripped before they are sent. If you wish to opt out entirely, contact us at privacy@algorithmlens.com.
7.7 Manage Notifications
You can enable or disable scan reminder notifications within the App's settings or through your device's notification settings at any time.
7.8 Rights for European Users (GDPR)
If you are in the European Economic Area (EEA), you have the right to: access your personal data, rectify inaccurate data, request erasure of your data, restrict processing of your data, data portability, and object to processing. To exercise any of these rights, contact us at privacy@algorithmlens.com. We will respond within 30 days.
Our legal bases for processing your data are: consent (for screen recording, for AI analysis, and separately for research participation), contract performance (for providing the service you signed up for), and legitimate interest (for error monitoring and service improvement). Research participation is offered only to people in the United States, so it is not currently open to users in the EEA.
7.9 Rights for California Users (CCPA)
If you are a California resident, you have the right to: know what personal information we collect, request deletion of your personal information, and not be discriminated against for exercising your rights. We do not sell your personal information to third parties.
8. Children's Privacy
AlgorithmLens is not intended for use by children under the age of 13 (or under 16 in the EEA). We do not knowingly collect personal information from children. If you are a parent or guardian and believe your child has provided us with personal information, please contact us at privacy@algorithmlens.com. If we become aware that we have collected personal information from a child without parental consent, we will take steps to delete that information promptly.
9. International Data Transfers
Your data may be processed in countries other than your own. Specifically:
- Supabase hosts data on cloud infrastructure which may be located in the United States or other regions.
- Google Gemini API processes data on Google's servers, which may be located globally.
- Sentry processes error data on servers that may be located in the United States.
- TypeSafe AI processes research-step data on its servers; see their DPA for locations.
Where data is transferred outside of the EEA, we rely on Standard Contractual Clauses and/or the service provider's compliance frameworks (such as participation in data protection frameworks) to ensure adequate protection of your data.
10. WebView and Third-Party Cookies
The App includes a built-in browser (WebView) that you can use to log into social media platforms for scanning. This browser allows third-party cookies so that you can remain logged into your social media accounts during a scan session. These cookies are managed by the social media platforms themselves and are subject to their respective privacy policies. The App does not read, store, or transmit your social media login credentials, the WebView handles authentication directly with the platform.
11. What We Do NOT Do
To be explicit:
- We do not sell your personal data to anyone.
- We do not use your data for targeted advertising.
- We do not share your scan results with other users.
- We do not store your screen recording images after analysis. Only text-based results are kept.
- We do not record audio. The App declares no microphone usage string and captures video frames only.
- We do not access your camera. The App declares no camera usage string.
- We do not track you across other apps or websites.
- We do not build advertising or behavioral profiles from your data.
- We do not use your data for research unless you separately opted in, and using the App is never that opt-in.
- We do not publish anything that identifies you. Research findings are totals and comparisons across many people.
12. Changes to This Privacy Policy
We may update this Privacy Policy from time to time. When we make changes:
- We will update the "Last Updated" date at the top of this page.
- For significant changes (such as new categories of data collection or new third-party services), we will notify you through an in-app notification or via email.
- Your continued use of the App after changes become effective constitutes your acceptance of the revised Privacy Policy.
Continued use of the App is never acceptance of research participation. If the terms of research participation change, your earlier agreement does not carry over: your data stops being used for research until you have read the new terms and agreed to them again in the App.
We encourage you to review this Privacy Policy periodically.
13. Contact Us
If you have questions about this Privacy Policy, want to exercise your data rights, or have a privacy concern, contact us at:
Email: privacy@algorithmlens.com Website: https://algorithmlens.com/privacy
This Privacy Policy applies to version 1.0.0 and later of the AlgorithmLens mobile application. The terms of research participation referred to in Section 3A are version 2026-10-05.