Privacy & legal notice

Last updated: 16 October 2026

Audience measurement

This site measures its audience for strictly statistical purposes (understanding which pages, sections and features interest visitors). No cookie is set, and no data is sold or used for advertising. No consent banner is therefore required.

1. Cloudflare Web Analytics · page views

Privacy-⁠respecting audience measurement: no cookie, no individual identifier, no browser fingerprint. The data (page views) is aggregated and anonymous. In accordance with the recommendations of the CNIL (the French data protection authority), this tool does not require consent.

2. First-⁠party event measurement · cookieless

Interactions (sections viewed, buttons and links clicked, downloads, use of the AI tools, reading time while the tab is visible, page display speed, responsiveness and visual stability) and technical incidents (page not found and the page the link came from, JavaScript error with its message and its location in the site’s code) are sent to my own server (a Cloudflare Worker) and stored in aggregate form. No cookie and no storage on your device, no IP address retained. Besides the event and the page, what is recorded is: the country and region (provided by Cloudflare), the language, the theme, and coarse categories of your environment (mobile or desktop, browser and operating system family without their version, one of four screen width classes). The raw text your browser sends (User-⁠Agent) is not kept.

Counting visitors without tracking them. To tell ten visitors apart from one visitor reading ten pages, my server computes a fingerprint valid for a single day: an irreversible hash (SHA-⁠256) of your IP address and User-⁠Agent, mixed with a random number drawn each day and automatically destroyed, at most 48 hours later. Neither the IP address nor the User-⁠Agent is recorded, only this truncated hash. Once the day’s number is destroyed, nobody, myself included, can recompute the fingerprint from a known address. The same visitor gets a different fingerprint every day: no tracking from one day to the next, nor across sites, is possible. This measurement falls under the consent exemption provided by the CNIL for audience measurement.

Opting out. If your browser sends the Do Not Track or Global Privacy Control signal, none of these events is sent.

AI tools & job-⁠offer retrieval

The AI tools (the assistant and the job-⁠offer evaluation) process your input through third-⁠party language models: Anthropic (Claude) first, then Google (Gemini) and NVIDIA as fallbacks and, for the assistant only, Mistral AI as a last resort. Google also receives your question, or the search the assistant derives from it, to compute a numerical representation of it (an embedding) used to find the relevant passages of my publications and background. On Gemini’s free tier, Google may use inputs to improve its services: do not write any personal data there. For the job-⁠offer evaluation, your inputs are not retained beyond processing.

Where the assistant is hosted. The assistant runs on a server I operate at OVHcloud, in France. The records described below are kept there, including in an observability tool (Langfuse) self-⁠hosted on that same server: no trace is entrusted to a third-⁠party observability service. They follow the same 90-⁠day purge. If that server is unavailable, a reduced version of the assistant answers from Cloudflare’s infrastructure.

The assistant is an exception, and a deliberate one: the question asked, the answer returned and the technical trace of the search (tools called, durations) are recorded on my server, in order to measure the quality of the answers and to spot what the assistant cannot answer. No cookie, no identifier, and no IP address: only an irreversible fingerprint of it is kept, to cap abuse. Do not write personal data in the assistant; if you wish to reach me, the contact form is there for that. These records are purged after 90 days. Until then, I may reread these conversations in a private tool to improve the assistant; some questions, reworded and stripped of any personal data, may join the assistant’s test set. These reworded questions are not subject to the 90-⁠day purge, since they no longer relate to any visitor.

Sharing a conversation. At the bottom of your conversation with the assistant, you can get a link to it. That link opens the entire exchange: all your questions and all the answers, including those asked before you decided to pass it on. So read over what you send. The link contains a random identifier that cannot be guessed, and it alone gives access; the page shows the questions, the answers and the technical trace, never the fingerprint of your address. To link together the questions of a single conversation, an identifier drawn at random when the assistant opens is attached to them: it does not designate you, it changes on every new visit, and it allows no tracking from one visit to the next. Nothing is published unless you pass the link on yourself, the page is not indexed by search engines, and each exchange disappears 90 days after the question that produced it. Sharing does not extend that period.

The conversation’s memory. To keep track of an exchange, the assistant keeps the state of the current conversation on my server, filed under the same identifier drawn at random when the assistant opens. That state contains your questions, the answers and the results of the tools called, that is, what is already recorded elsewhere, and nothing more: no cookie, no address, no personal identifier. No page exposes it. It is purged on the same 90-⁠day schedule, and it also disappears as soon as the exchanges it relates to have disappeared.

The thumb under an answer. Under each answer from the assistant, you can indicate with one click whether it helped you or not. That click records two things and nothing else: the internal identifier of the rated answer, and your opinion reduced to a number (+1 or −1). No text, no free-⁠form comment, no data about you accompanies that opinion. It is used solely to measure the quality of the answers. You can change your mind: the new click replaces the previous one, it is not added to it. That opinion is attached to the answer it rates and disappears with it, on the same 90-⁠day schedule.

For job-⁠offer evaluation by URL, when the page cannot be retrieved directly (anti-⁠bot protection, JavaScript rendering: WTTJ, LinkedIn, Indeed…), the public URL is sent to a third-⁠party reader service (Jina AI), which returns its text. The extracted text is cached for up to 24 hours to avoid repeating the call, then deleted; no lasting retention. If the URL leads to a PDF, my server downloads it and has it read like an imported PDF (next paragraph), without going through Jina; the text read is cached the same way, for up to 24 hours, and the PDF is not kept.

For job-⁠offer evaluation from a PDF, the file goes from your browser to my server, which passes it as is to Anthropic (Claude) to read its text, images included (a scanned document is read too), and to Google (Gemini) if Claude does not answer. The text read is then evaluated like a pasted offer. My server neither stores nor logs the PDF: it only exists for the duration of the request. These providers process it under their API terms; so do not import a job ad that carries personal data you do not want to pass on.

Job market observatory. To track how artificial intelligence and data job offers evolve in France, my server collects publicly published job offers from LinkedIn every day: title, company, location, date, displayed criteria (level, contract type, industry), pay when shown, and the text of the posting. This data does not concern the site’s visitors. A posting may nonetheless mention the name of a recruiter or contact: this is neither sought nor used. Legal basis: legitimate interest (Art. 6(1)(f) GDPR) in producing statistics on the job market. Only aggregates may be published: no posting, no person’s name, no individual company name. The text of the postings is deleted after 18 months; the structured fields feed the long-⁠run series. The data is stored with Cloudflare, in Western Europe. For any request about it, write to contact@baptisteblouin.fr.

Forms & email sending

Three forms on the site send an email: the contact form, the résumé by email request, and the AI Digest subscription. Unlike the audience measurement described above, these processing operations involve identifying data, and your rights apply to them in full.

  • Contact form: name, email address, subject and message. Legal basis: pre-⁠contractual measures and legitimate interest (Art. 6(1)(b) and 6(1)(f) GDPR) in responding to a request. The message is forwarded to my inbox and kept for the duration of the exchange.
  • Résumé by email: email address only. The résumé is sent to that address and to that address only. Legal basis: pre-⁠contractual measures (Art. 6(1)(b)).
  • AI Digest subscription: email address and chosen language. Legal basis: your consent (Art. 6(1)(a)), obtained through double opt-⁠in: nothing is sent until the link received by email has been confirmed. Every mailing includes a one-⁠click unsubscribe link, which constitutes withdrawal of consent.

Processors. Emails are delivered by Resend (Amazon SES infrastructure, eu-⁠west-⁠1 region, Ireland). Reception and anti-⁠bot protection (Cloudflare Turnstile, no tracking cookie) are provided by Cloudflare. No data is resold or used for advertising.

Retention. The technical log of sent emails, used solely to limit abuse, is purged after 30 days. Addresses subscribed to the digest are kept until you unsubscribe, then flagged as unsubscribed so that they are never contacted again.

Your rights. You may at any time request access to, rectification, erasure or portability of this data by writing to contact@baptisteblouin.fr. For the digest, the unsubscribe link included in every mailing is enough.

Private pages

A few pages of the site are reserved for me and open with an access code. They do not concern visitors: browsing the rest of the site leaves no trace there. To block rapid-⁠fire code guessing, a failed attempt is counted under an irreversible fingerprint (SHA-⁠256) of the IP address, never the address itself, and that fingerprint is deleted after 15 minutes. A successful login sets a strictly necessary session cookie, valid for 90 days, which holds nothing but a signed date.

Legal basis & your rights

This section concerns audience measurement only; the forms above are governed by the legal bases and rights described in their own section. This audience measurement relies on legitimate interest (Art. 6(1)(f) GDPR) in knowing the site’s traffic, without setting any cookie or processing identifying data.

The data collected is aggregated and contains no cookie, no IP address and no lasting identifier: the daily fingerprint described above can no longer be linked to an address once the day’s random number is destroyed, within 48 hours. It therefore cannot be used to identify you or to find the events that concern you. In accordance with Article 11 GDPR, the rights of access, rectification, erasure and portability therefore cannot apply to this data: it is technically impossible for me to re-⁠identify you within it. You remain free to refuse all measurement by enabling Do Not Track or Global Privacy Control in your browser, which this site honours, or with a blocker.

For any question about this processing, write to BaptisteBlouin@proton.me. You may also lodge a complaint with the CNIL.

Legal notice

Publisher & director of publicationBaptiste Blouin
ContactBaptisteBlouin@proton.me
Sitebaptisteblouin.fr (personal, non-⁠commercial portfolio)
HostCloudflare, Inc. · 101 Townsend Street, San Francisco, CA 94107, United States · cloudflare.com
Host of the assistantOVH SAS · 2 rue Kellermann, 59100 Roubaix, France · ovhcloud.com

All content (text, visuals, code) is the property of Baptiste Blouin, unless otherwise stated.