This page precisely describes the data collected by the Marvin V2 Chrome extension, who it is transmitted to, and how long it is retained. It is kept up to date with every material change to the scope of processing.
Data Controller
Marvin SAS — marvin-recruiter (France). The extension is a professional tool intended for an authenticated recruiter user with an account on app.marvins.ai. No processing is performed for an unauthenticated user.
Data Collected
The extension collects the following categories of data, only when the user has explicitly initiated an action (opening the side panel, importing a profile, sending a message):
| Category | Content | Source |
| ------------------- | --------------------------------------------------------------------- | --------------------------- |
| Account identifiers | userId, tenantId, user email | SSO cookie app.marvins.ai |
| LinkedIn profiles | Name, title, company, profile URL viewed, education, work experiences | LinkedIn DOM, via Unipile |
| Technical data | Extension version, browser locale, session identifier | Browser |
| Telemetry | Usage events (sidepanel_opened, profile_imported, errors) | Extension runtime |
The extension does not collect: browsing history outside LinkedIn, private LinkedIn messages (outside threads opened via a Marvin outreach), payment data, geolocation.
Recipients and Outbound Flows
Data leaves the extension only to the following recipients. All flows are encrypted with TLS 1.2+.
| Recipient | Data | Hosting |
| ----------------------------- | -------------------------------------- | ------------------ |
| Marvin API (api.marvins.ai) | Identifiers, imported profiles, events | Google Cloud (EU) |
| Unipile | LinkedIn auth, profile operations | EU (sub-processor) |
| Sentry | Runtime errors, stack traces | EU (sentry.io EU) |
| Grafana Cloud | Technical traces and metrics | EU |
| LaunchDarkly | Feature flag evaluation (userId) | US (DPF-certified) |
No data is sold. No advertising sharing. No data is transmitted to LinkedIn outside the user's normal browser traffic.
Legal Basis
- Contract performance (GDPR art. 6.1.b) for the recruiter user: providing the Marvin service.
- Legitimate interest (GDPR art. 6.1.f) for the LinkedIn profiles processed: allowing the recruiter to organize their professional prospecting in accordance with LinkedIn's public purpose. The candidate is informed at the first outbound interaction.
Retention Period
| Data | Period |
| ---------------------------- | ------------------------------------------- |
| Local JWT (chrome.storage) | Until logout or 7 days (automatic rotation) |
| Imported profiles | Tenant lifetime (deletion on request) |
| Sentry logs | 90 days |
| Grafana traces | 30 days |
| Telemetry events | 13 months maximum (analytics) |
Rights of Individuals
Any concerned individual may exercise their rights of access, rectification, erasure, restriction, portability and objection:
- Recruiter user — via the
app.marvins.aiinterface or by writing toprivacy@marvins.ai. - Candidate / imported profile — by writing to
privacy@marvins.ai. An identity verification procedure is in place before processing.
Complaints may be addressed to the CNIL (www.cnil.fr).
Local Storage
The extension uses chrome.storage.local (browser API, isolated per extension) to persist:
- The authentication JWT (encrypted at rest by Chrome).
- User preferences (locale, last opened panel).
No third-party cookies are set. chrome.storage does not leave the user's machine.
LinkedIn Cookies (li_at / li_a)
When the user clicks Connect in the side panel to link their LinkedIn account, the extension reads the li_at (LinkedIn session) and, if present, li_a (Premium token) cookies via the chrome.cookies API — and only at that specific moment. They are never read in the background, never stored in chrome.storage, never persisted on the extension side.
These values transit encrypted via TLS to the Marvin API, which immediately forwards them to Unipile to provision the session server-side. The Marvin API never stores li_at / li_a in database: only the Unipile identifier (account_id) is persisted after the exchange. The user can revoke the connection at any time from Settings > Integrations.
Chrome Permissions Requested
| Permission | Usage |
| ------------------- | ------------------------------------------------------------------------------ |
| storage | JWT and preferences persistence |
| sidePanel | Display of the Marvin interface in the browser side panel |
| cookies | Reading the app.marvins.ai SSO cookie (JWT) and, at click-time, li_at/li_a |
| activeTab | Contextual reading of the active LinkedIn page |
| Host linkedin.com | Content script injection on LinkedIn pages |
| Host *.marvins.ai | Authenticated API calls |
No broad <all_urls> permission is requested.
Changes
Any material change to this policy is the subject of a new version of the extension and an in-panel notification on first startup after the update.
Contact: privacy@marvins.ai.