Privacy Policy
Last updated: October 12, 2026 · Version 1.9
Pluck ("we", "us", "our") operates the Pluck mobile application (the "App") and the Pluck website at pluckrecipes.com (the "Website"). This Privacy Policy explains how we collect, use, disclose, and protect your personal data when you use our App and Website.
We are committed to protecting your privacy and processing your data in compliance with the General Data Protection Regulation (GDPR), the California Consumer Privacy Act (CCPA/CPRA), and applicable data protection laws.
1. Data Controller
The data controller responsible for your personal data is:
Hjers Consulting AB
Email: privacy@pluckrecipes.com
For the purposes of GDPR, Hjers Consulting AB is a small-scale data controller and is not required to appoint a Data Protection Officer (DPO). You may direct all privacy inquiries to the email address above.
2. Personal Data We Collect
We collect and process the following categories of personal data:
2.1 Account Data
- Authentication data - email address, display name, and avatar URL provided by your Google or Apple account when you sign in. If you use the App as a guest, we create an account without an email address.
- Age declaration - your confirmation that you are at least 16 years old, and when you gave it
- App language - the language you use the App in, so notifications we send reach you in that language
- Grocery units - whether your grocery lists show amounts as the recipe wrote them or converted to metric
2.2 Recipe Data
- Recipes - titles, descriptions, ingredients, instructions, cook times, servings, cuisine, tags, notes, favourites, and which ingredients each step uses
- Source URLs - links you provide for recipe extraction
- Recipe images - photos you upload or that are extracted from source pages. We remove location and device information (EXIF metadata) from photos you upload before storing them.
- Pantry scan photos - photos of your fridge, pantry or ingredients that you take to find recipes you can cook. They are used only to spot the ingredients and are not kept (section 4.4).
- Extraction details - the AI provider's structured answer for each extracted recipe, kept with the recipe
- Video transcripts - when we extract a recipe from a video, the text transcript of its audio, kept with the processing record
- Recipe groups - the names of groups you create and which recipes are in them
- Cook history - each time you finish cooking a recipe or mark it as cooked: which recipe, when, and how many servings. We use it to show how often and how recently you have cooked each recipe, and Fill my week uses it to suggest meals (section 4.5); it is not used for analytics.
2.3 Meal Plans and Grocery Lists
- Meal plans - the recipes and notes you place on each day and meal, and the number of servings
- Grocery lists - the items on your lists, their quantities, and whether you have checked them off. If you share a list, the people on it see and edit its items (section 2.11).
2.4 AI Conversation Data
- Chat messages - messages you send to the AI cooking assistant and the AI responses
2.5 Subscription and Usage Data
- Subscription status - your current subscription tier (Free, Light, Plus, or Pro), subscription platform (Apple or Google), and expiry date
- Purchase history - a record of each subscription event we receive from RevenueCat: the product, the store, the price (in US dollars), purchase and expiry dates, and whether it renewed, was cancelled, expired, was refunded or was moved to another account. We keep this after a subscription ends so we can give you the right features and answer billing questions.
- Transaction identifiers - app store transaction IDs used to verify your purchase. We do not store payment card details, billing addresses, or other financial information - all payment processing is handled by Apple App Store or Google Play Store.
- Usage counts - how many recipe extractions, AI messages, shared links, pantry scans and Fill my week plans you have used each month, so we can apply your plan's limits
2.6 Notifications
- Push token - the address your device gives us for push notifications, and whether the device is iOS or Android
- Notification history - the notifications we have sent you (for example, "your recipe is ready"), shown in the App's notification list
- Notification settings - which notifications you have turned on, and whether you want a dinner reminder and at what time. Dinner reminders and cooking timers are scheduled on your device; they are not sent from our servers.
2.7 Feedback
- Feedback you send - the category you choose (bug, idea, or other) and your message, linked to your account so we can follow up
2.8 Consent Records
- Consent preferences - your choices regarding analytics and error tracking, and the policy version you agreed to
- Consent audit log - each consent change with its time, what changed, and the IP address it came from (retained for compliance)
2.9 Device Identifier and Device Usage Counters
- Device ID - a randomly generated identifier stored on your device, used solely to prevent abuse of free-tier usage limits (for example, deleting an account and creating a new one to get more free extractions). This identifier is not linked to your personal identity, cannot be used to identify you across apps, and is not shared with any third party.
- Device usage counters - for each device ID, the number of recipe extractions and pantry scans made from that device in each calendar month, and the start times of video extractions still in progress. We do not store your account ID, email, or any other identifier with these counters.
2.10 Shared Recipe Links
- Shared recipe snapshots - when you share a recipe, we store a copy of it at that moment (title, description, ingredients, steps, times, servings, cuisine, course, difficulty, whether it was created by AI, and a link to its image) behind a public link that anyone with the link can open. If the image is a photo you uploaded, the link to it works for up to one year. The snapshot does not include your name, email, notes, tags, or the recipe's source link. We also count how many times the link was viewed and saved.
2.11 Shared Grocery Lists
- Who is on a list - when you share a grocery list, we record its owner and each member who joins (up to five). Everyone on the list sees the display name and profile photo of everyone else on it, never their email address. Everyone on the list can see, add, edit, tick off and delete its items. Members do not see which of the owner's recipes an item came from.
- Invite links - anyone who opens an invite link, before joining, sees the owner's display name and profile photo, the list's name and how many people are on it, but not its items. We store only a scrambled form (a hash) of the link's code. An invite expires after 7 days, or earlier if the owner revokes it, and expired invites are deleted 30 days later. The web page an invite link opens in a browser does not use analytics.
- Live updates - when someone changes a shared list, the other people on it are told through a private channel of our database provider, Supabase, so their App can update.
- Leaving - members can leave a list and the owner can remove members or stop sharing at any time. Items a member added stay on the list after they leave, without their name.
2.12 Optional Data (Only With Your Consent)
- Usage analytics - app usage events (via PostHog), such as screens viewed, features used, and links you extract recipes from, linked to your account ID but not to your email or name. Collected only if you opt in.
- Error reports - crash reports and device information (via Sentry), linked to your account ID, collected only if you opt in
2.13 Website
- Waitlist and feature suggestions - if you join a waitlist or suggest a feature on the Website, your email address, the platform you chose (iOS or Android), and your message if you write one. We use them only to tell you when the feature or app is available and to read your suggestion.
- Website recipe extractor - the link you paste. We fetch that page and, if it does not already describe its recipe in a standard format, send the page's content to Anthropic to find the recipe. Extracted recipes are reused for 7 days, tied to the link and not to you, so the same link loads faster next time.
- Extractor limits - to limit each visitor to 5 recipes a day, we count your extractor requests using your IP address. We do not store the address. We store only a scrambled form (a keyed hash) of the address and the date, with that day's count. The hash is different every day, so two days cannot be linked, and it is deleted once its day is over, within two days at the latest.
- Web share links - if you share a recipe from the website extractor, we store the recipe and its source link behind a public link that works for 90 days. It contains nothing about you.
3. Purpose and Legal Basis for Processing
| Purpose | Data Used | Legal Basis |
|---|---|---|
| Provide the recipe extraction service | Account, recipes, images, source URLs, video transcripts | Contract performance |
| Recipe box, groups, meal planning and grocery lists | Recipes, groups, meal plans, grocery lists | Contract performance |
| AI cooking assistant | Chat messages, recipe context | Contract performance |
| Pantry scan and recipe ideas | Pantry scan photos, detected ingredients, your meal choices and note | Contract performance |
| Fill my week meal suggestions | Recipe summaries, tags, favourites, cook history, meal plans | Contract performance |
| Sharing recipes you choose to share | Shared recipe snapshots | Contract performance |
| Shared grocery lists | List members and invites, display names, profile photos, list items | Contract performance |
| Notifications | Push token, notification settings, app language | Contract performance |
| User authentication | Email, OAuth tokens | Contract performance |
| Subscription management and plan limits | Subscription status, transaction IDs, purchase history, usage counts | Contract performance |
| Responding to your feedback | Feedback messages | Legitimate interest |
| Analytics | App usage events | Consent |
| Error tracking and bug fixing | Crash reports, device info | Consent |
| Fraud prevention and abuse protection | Device identifier, device usage counters, a daily hash of website extractor visitors' IP addresses | Legitimate interest |
| Website recipe extractor | Links you paste | Legitimate interest (providing the tool you asked to use) |
| Website waitlist and feature suggestions | Email address, platform, message | Consent |
| Compliance with legal obligations | Consent records, audit logs | Legal obligation |
4. AI Data Processing
To provide recipe extraction and the AI cooking assistant, we send data to third-party AI providers. We take the following precautions:
- Only the minimum necessary data is sent to AI providers - recipe text, image content, video frames, audio, chat messages, or for Fill my week a summary of your recipes and cooking history, as needed for the specific task
- We never send your email address, user ID, authentication tokens, or other personal identifiers to AI providers
- AI providers are prohibited from using your data to train their models under their API terms of service
4.1 AI Providers
Each task has a main provider and backup providers. If the main provider is unavailable, the same request is sent to a backup instead. The specific models we use from each provider change as providers release new versions; the providers and their roles are listed below.
- Anthropic (Claude) - main provider for extracting recipes from links, photos and videos, for more involved cooking questions, for spotting ingredients in pantry scans and creating recipes from them, and for Fill my week. We also use it to tidy ingredient names so recipes can be searched and combined into grocery lists, to check images and contributed corrections in the shared recipe cache (section 4.3) for inappropriate content, and for the Website's recipe extractor. Data processing under Anthropic's API terms (no training on API data by default).
- OpenAI (GPT, Whisper) - main provider for simpler cooking questions; backup provider for recipe extraction, more involved questions, pantry scan, recipe creation, Fill my week and ingredient name clean-up; and transcription of the audio in recipe videos (Whisper). No user identifiers are included in API requests. We have opted out of training data usage via API settings.
- Google (Gemini) - backup provider for recipe extraction, the cooking assistant, pantry scan, recipe creation, Fill my week and ingredient name clean-up. Uses the Gemini API with data processing terms that exclude training.
All AI providers are based in the United States. Data transfers are covered by Data Processing Agreements (DPAs) and Standard Contractual Clauses (SCCs) as required by GDPR.
4.2 Recipes From Links and Videos
To extract a recipe from a link, we fetch the page or post the link points to, and for some platforms the post's public caption or captions. If a video post does not contain enough recipe text, our video service on Google Cloud Run (EU, Belgium) downloads the public video, takes still frames from it and transcribes its audio, then sends the frames and transcript to the AI provider. Because many video sites block downloads from data centres, the download goes through IPRoyal, a proxy network; the proxy handles the public video and its link, but nothing that identifies you. The downloaded video and audio are deleted as soon as processing ends. The frames are deleted after extraction, and automatically within 24 hours if that fails. The transcript is kept with the processing record until you delete your account.
4.3 Shared Recipe Cache
When you extract a recipe from a public link, we keep the extracted recipe in a shared cache tied to that link, so the next person who adds the same link gets it straight away. The cache stores the recipe, not who added it. If you choose to contribute your corrections to a cached recipe when the App offers it, the changed parts are checked by Anthropic for offensive or non-recipe content, and if accepted your version is what other people get when they add the same link. We record your account ID against that version; the link to your account is removed when you delete your account, but the corrected recipe stays in the cache.
4.4 Pantry Scan
When you scan your fridge or pantry, the photos are uploaded and sent to the AI provider only to spot the ingredients in them, with the same AI-processing consent as recipe extraction. The photos are deleted immediately after the ingredients are detected, and automatically within 1 hour if that fails. The ingredients found are kept only on your device, not on our servers. If you ask the App to create a recipe from them, the ingredient names, your meal type and time choices, and any note you add are sent to the AI provider for that request only; the note is never stored. A recipe you save is an ordinary recipe in your recipe box.
4.5 Fill My Week
When you ask the App to fill the empty days of your meal plan, we send the AI provider a summary of the recipes it can choose from: each recipe's title, cuisine, course, total time, tag names, ingredient names in a standard form, whether it is a favourite, how many times you have cooked it and how many days ago you last did, plus the titles of meals already in your plan that week and the week before. Notes, ingredient amounts and steps are not sent. The suggestions are not stored: the meals you keep become ordinary entries in your meal plan.
5. Third-Party Processors
We use the following sub-processors to operate the App:
| Processor | Purpose | Location |
|---|---|---|
| Supabase | Database, authentication, file storage, backend functions, live updates for shared grocery lists | EU (Frankfurt) |
| Anthropic | AI recipe extraction, cooking assistant, pantry scan, recipe creation, Fill my week, ingredient name clean-up, cache checks, Website recipe extractor | United States |
| OpenAI | AI cooking assistant, video audio transcription, backup provider for the other AI features | United States |
| Google (Gemini) | Backup AI provider for recipe extraction, the cooking assistant, pantry scan, recipe creation, Fill my week and ingredient name clean-up | United States |
| Google Cloud Platform | Video processing for recipe extraction (Cloud Run) | EU (Belgium) |
| IPRoyal | Proxy network for downloading public recipe videos (handles the video and its link, nothing that identifies you) | United Arab Emirates |
| PostHog | Usage analytics (only with your consent) | EU |
| Sentry | Error tracking (only with your consent) | EU |
| RevenueCat | Subscription management and purchase verification | United States |
| Expo | Mobile app build and update delivery; push notification delivery (passed on to Apple Push Notification service or Google Firebase Cloud Messaging) | United States |
| Plausible Analytics | Website analytics (cookie-free, no personal data collected) | EU |
| Netlify | Website hosting, waitlist and feature-suggestion forms, Website recipe extractor storage and limits | United States |
6. Data Retention
| Data Type | Retention Period | Deletion Trigger |
|---|---|---|
| Profile data | Until account deletion | User deletes account |
| Recipes and images | Until deletion | User deletes recipe or account |
| Cook history | Until the recipe or account is deleted | User deletes the cook, the recipe or the account |
| Recipe groups, meal plans and grocery lists | Until deletion | User deletes them or the account |
| Shared grocery list memberships | While you are on the list | You leave, the owner removes you or stops sharing, or either of you deletes your account |
| Grocery list invites | Until used or revoked, and at most 7 days; expired invites are deleted 30 days later | Joining, the owner revoking the invite, or automatic |
| Fill my week suggestions | Not stored | - |
| AI conversations | Until deletion | User deletes conversation or account |
| Video transcripts | Until account deletion | User deletes account |
| Downloaded videos and video frames | Until processing ends; frames at most 24 hours | Automatic |
| Pantry scan photos | Deleted immediately after detection; at most 1 hour | Automatic |
| Notifications, push tokens and notification settings | Until account deletion | User deletes account |
| Feedback | Until account deletion | User deletes account |
| Subscription data, usage counts and purchase history | Until account deletion | User deletes account |
| Shared recipe links | Until removed on request (not deleted with the recipe or account) | Email request to remove the link |
| Consent records | While in effect, then 3 years after withdrawal or replacement by a newer choice | Automatic (compliance requirement) |
| Analytics data | 12 months | Automatic (PostHog retention) |
| Error reports | 90 days | Automatic (Sentry retention) |
| Auth sessions | Until you sign out or your account is deleted | Sign-out or account deletion |
| Guest accounts | 30 days after the guest last used the App | Automatic (inactive guest accounts and all their data are deleted) |
| Website waitlist and feature suggestions | Until you ask us to delete them | Email request |
| Website extractor limits | A daily count under a hash of the IP address: two days at most | Automatic |
| Website extractor results and web share links | Results reused for 7 days; share links work for 90 days | Automatic (no longer served) |
| Database backups | Kept by Supabase for a limited period, then overwritten | Automatic |
| Device usage counters | Kept as evidence of free-tier abuse; not deleted automatically | Not linked to your account, so not removed by account deletion |
When you delete your account, we remove all personal data linked to your account from our database and file storage as soon as you confirm, and in every case within 72 hours. At the same time we ask PostHog, Sentry and RevenueCat to delete the data they hold under your account ID. Copies can remain in Supabase's encrypted database backups until those are overwritten. The following are kept after account deletion:
- Consent audit logs - kept with your user ID removed (set to null) for compliance purposes, for 3 years
- Shared recipe links - links you created keep working, because other people may have saved or bookmarked them. The snapshot contains no information about you (section 2.10). If the image was one you uploaded, it is deleted with your account and no longer shows. To have a link taken down, email us the link, before or after deleting your account.
- Device usage counters - kept as described in section 2.9; they contain no account information
- Shared recipe cache - recipes extracted from public links stay in the cache (section 4.3), with any link to your account removed
- Shared grocery lists - if you own a shared list, it is deleted for everyone on it. If you are a member of someone else's list, you are removed from it, and items you added stay on that list without your name.
7. Your Rights
Under GDPR and applicable data protection laws, you have the following rights:
7.1 Right to Access (Art. 15)
You can see a summary of your data in the App under Settings > Privacy > View My Data: your profile information, recipe count, conversation count, consent choices, and account creation date. For a copy of your data, use Export My Data (section 7.4) or contact us at privacy@pluckrecipes.com.
7.2 Right to Rectification (Art. 16)
You can edit your profile data (display name, avatar) and your recipes at any time within the App.
7.3 Right to Erasure (Art. 17)
You can delete your account and all associated data from Settings > Privacy > Delete My Account. Deletion takes effect as soon as you confirm, and in every case within 72 hours. It removes all personal data from our systems, with the exceptions listed in section 6, and we ask PostHog, Sentry and RevenueCat to delete the data they hold about you. You can also delete individual recipes, conversations, groups, meal plan entries and grocery items, and leave a shared grocery list, at any time.
Shared recipe links are not removed when you delete a recipe or your account. To have a shared link taken down, email us the link at privacy@pluckrecipes.com.
7.4 Right to Data Portability (Art. 20)
You can export your data in JSON format from Settings > Privacy > Export My Data. The export includes your profile, all recipes (with ingredients, instructions, which ingredients each step uses, and tags), all AI conversations, your current consent choices, your purchase history, and your cook history (each cook's recipe title, date, and whether it was recorded from cook mode or by hand). Recipe images are not included in the export. For a copy of any other data described in section 2, contact us at privacy@pluckrecipes.com.
7.5 Right to Restriction of Processing (Art. 18)
You can request restriction of processing by contacting us at privacy@pluckrecipes.com. When restricted, we will retain your data but stop all processing (no AI calls, no analytics).
7.6 Right to Object (Art. 21)
You can object to analytics and error tracking processing by toggling these off in Settings > Privacy. Core service processing cannot be objected to without deleting your account, as it is necessary for contract performance. You can object to processing based on legitimate interest (such as abuse prevention) by contacting us.
7.7 How to Exercise Your Rights
Most rights can be exercised directly in the App under Settings > Privacy. For requests that cannot be handled in-app, contact us at privacy@pluckrecipes.com. We will respond to all requests within 30 days.
8. International Data Transfers
Your primary data is stored in the EU (Supabase, Frankfurt region). Video processing runs on Google Cloud Platform in the EU (Belgium); the public videos it downloads pass through IPRoyal's proxy network (United Arab Emirates), which receives nothing that identifies you. That transfer is covered by the Standard Contractual Clauses in IPRoyal's Data Processing Agreement. When we transfer data to processors in the United States (Anthropic, OpenAI, Google for the Gemini API, RevenueCat, Expo, Netlify), these transfers are protected by:
- The EU-US Data Privacy Framework, where applicable, for providers who are certified participants
- Standard Contractual Clauses (SCCs) as included in each provider's Data Processing Agreement
- Each provider's API terms of service, which include data processing provisions and prohibit training on API data
- Data minimization - only the minimum necessary data is transferred, and no personal identifiers are sent to AI providers
9. Data Security
We implement the following security measures to protect your data:
- All data in transit is encrypted using TLS 1.2 or higher
- All data at rest is encrypted in our database
- AI provider API keys are stored securely on the server and never exposed to the client app
- Rate limiting is implemented to prevent abuse
- Row-level security ensures you can only access your own data, and the shared grocery lists you are on
- Access to personal data is logged for audit purposes
10. Tracking and Analytics
10.1 App Analytics
The App does not use cookies. The App may use PostHog for usage analytics and Sentry for error tracking, but only if you explicitly opt in during the consent flow or in Settings > Privacy. These services are not initialized until you grant consent. Both identify you by your account ID only, never by your email or name. Withdrawing consent immediately stops data collection.
10.2 Website Analytics
Our Website uses Plausible Analytics, a privacy-friendly analytics service. Plausible does not use cookies, does not collect personal data, and does not track you across websites. All data is aggregated and cannot be used to identify individual visitors. Data is processed and stored in the EU. Because Plausible does not collect personal data or use cookies, no consent is required under GDPR or the ePrivacy Directive. The other data the Website handles (waitlist, feature suggestions and the recipe extractor) is described in section 2.13.
11. CCPA/CPRA Notice (California Residents)
If you are a California resident, you have additional rights under the CCPA/CPRA:
Categories of Personal Information Collected
- Identifiers - email address, display name, account ID, push token, IP address (recorded with consent changes; the Website's recipe extractor uses it to count requests and stores only a daily hash of it), device identifier (random, not linked to identity)
- Internet activity - app usage data (only with consent)
- User-generated content - recipes, images, recipe groups, meal plans, grocery lists (including shared lists), chat messages, feedback, shared recipe snapshots, Website waitlist sign-ups and suggestions
- Audio-derived content - transcripts of recipe videos you ask us to extract
- Commercial information - your subscription purchase history (no payment card details)
Sources of Personal Information
- Directly from you (account creation, recipe input, chat messages, planning, feedback, Website forms)
- From other users, when they share a grocery list with you (their display name and profile photo, and the items they add)
- From third-party authentication providers (Google, Apple)
- From the app stores, through RevenueCat (subscription purchases)
- Automatically from your device (device identifier, push token, and error reports only with consent)
Sale of Personal Information
We do not sell your personal information. We do not share your personal information for cross-context behavioral advertising. We have not sold or shared personal information in the preceding 12 months.
Non-Discrimination
We will not discriminate against you for exercising your privacy rights. You will receive the same quality of service regardless of your consent choices.
12. Age Restrictions
Pluck is not intended for users under 16 years of age. We require all users to confirm they are at least 16 years old during the sign-up process. We do not knowingly collect personal data from children under 16. If we become aware that a user is under 16, we will delete their account and all associated data.
13. Changes to This Policy
We may update this Privacy Policy from time to time. When we make material changes to how we process your data, we will notify you through the App and ask you to review and accept the updated policy. Non-material changes (such as clarifications) will be posted here with an updated date.
14. Supervisory Authority
If you are in the EU/EEA, you have the right to lodge a complaint with your local data protection supervisory authority if you believe your data is being processed unlawfully. As a Swedish company, our lead supervisory authority is:
Integritetsskyddsmyndigheten (IMY)
www.imy.se
Email: imy@imy.se
15. Contact Us
For any questions about this Privacy Policy or to exercise your rights, contact us at:
privacy@pluckrecipes.com