Editorial illustration of a CV being anonymized at the Quebec border before crossing to a cloud AI

A CV anonymizer that strips identity before any AI reads it

Raw resumes stop at a Montreal server. The cloud AI only ever sees the scrubbed skills and experience, and the candidate's privacy never leaves Canadian soil.

What this could do for your organization

If your HR function or recruiting team wants to use AI on candidate data — for summarization, shortlisting, or parsing resumes at scale — Law 25 is sitting in the middle of that ambition. A candidate's resume is personal information. The moment you paste it into a cloud chatbot, the raw document crosses a border and lands on a server in another jurisdiction. The Law 25 compliance conversation gets uncomfortable fast — with your privacy officer, with counsel, and potentially with Québec's Commission d'accès à l'information.

This is the shape of what I do: I build a privacy boundary on Canadian soil. The raw resume stops at a Montreal server. Everything that identifies a specific person — name, contact info, employers, postal code, national IDs — gets scrubbed out before anything touches a cloud AI. What crosses the border is a blind profile: the skills, the experience, the Quebec credentials (CCQ, OIIQ, CPA, Sceau Rouge, Classe 1) your recruiter actually needs to evaluate. The candidate's identity never leaves the country.

The practical effect: your team gets AI for the parts it's genuinely good at — summarizing, comparing, shortlisting — without the regulatory risk, and without losing the Quebec-specific details that general-purpose AI tools drop on the floor.

What your team gets back

What you get is a service, not a box. An email-based anonymization agent runs on Canadian soil, configured for your document type and your team's workflow — your recruiter forwards a CV to a dedicated address; a bilingual blind profile comes back in their inbox, ready for the cloud AI tool they already use. Priced monthly at a reasonable rate that scales with volume; customized for your sector — the five default category templates (IT, Finance, Production, Executive, General) cover most roles, but I'll build a new one if your hiring shape is different. And the same pattern extends to the next private document your team needs to run through AI — client correspondence, support tickets, case files.

If cloud delivery is a blocker — confidentiality rules, air-gapped networks, partner sensitivities — the same PII-scrubbing tech runs offline as a desktop app on Windows. See the transcript anonymizer for that variant: same rulebook, different document, runs on your laptop.

How I did it

Under Quebec's Law 25, you can't just paste a candidate resume into a cloud chatbot. The raw document would cross a border and sit on a server in another jurisdiction. I built a tool that scrubs identity out of the resume on a Montreal server first, then hands only the skills-and-experience to a cloud summarizer on the other side. I built it as a proof of concept — no customers, no sales push, just a Law 25 story I can show instead of talk about.

The raw resume never crosses the border. Only a scrubbed version does.

Canadian soil
Montréal, QC
Inbox
raw resume
Scrubber
identity stripped here
Names, email, phone, employer, postal codes — stay here.
Cloud AI
scrubbed payload only
CLOUD · AI
shape the blind profile
Blind profile
FR · EN
Skills and experience — cross over. Nothing else.

A resume is the worst document I've handed to a PII pipeline. It hits every edge case at once.

Before
raw CV · synthetic

Jean-Philippe Côté, Senior Developer at Groupe Aérospatiale Nord, reachable at jean-philippe.cote@example.com or +1 514 555 0198 (postal H3A 1B1). 12 years building distributed systems in C++ and Rust, specialized in fault-tolerant telemetry pipelines and real-time orbit correction.

Before joining, he led the reliability team at Laboratoires Rosemont, where he shipped a CI/CD overhaul and authored the internal Rust coding standard.

After
scrubbed payload

[CANDIDATE_1], Senior Developer at [EMPLOYER_A — large aerospace firm], reachable at [EMAIL_1] or [PHONE_1] (postal [MONTREAL REGION]). 12 years building distributed systems in C++ and Rust, specialized in fault-tolerant telemetry pipelines and real-time orbit correction.

Before joining, he led the reliability team at [EMPLOYER_B — research laboratory], where he shipped a CI/CD overhaul and authored the internal Rust coding standard.

identity — will be removed
replaced with a reference token
skills — survive the scrub

Quebec credentials — CCQ, OIIQ, CPA, Sceau Rouge, Classe 1 — have to survive. A general-purpose tagger reads them as organizations and drops them.

Profil · Profile
Candidat A · Candidate A
Category
IT · Senior developer
Français
Profil de candidat

Développeur senior avec 12 années d’expérience en systèmes distribués, spécialisé dans les pipelines de télémétrie à tolérance de panne et la correction d’orbite en temps réel.

Compétences
  • Systèmes distribués en C++ et Rust
  • Pipelines de télémétrie à tolérance de panne
  • Correction d’orbite en temps réel
  • Normes internes de codage Rust
Années
12
Langues
FR · EN
English
Candidate profile

Senior developer with 12 years building distributed systems, specialized in fault-tolerant telemetry pipelines and real-time orbit correction.

Skills
  • Distributed systems in C++ and Rust
  • Fault-tolerant telemetry pipelines
  • Real-time orbit correction
  • Internal Rust coding standards
Years
12
Languages
FR · EN
Aucune identité · No identity
Profil anonymisé · Blind profile

One scrubber, five category templates. The shape of the output depends on the kind of role.

01
IT
Skills first
Strip Name · employer
Keep Languages · frameworks
02
Finance
Certifications first
Strip Firm · clients
Keep CPA · audit scope
03
Production
Throughput first
Strip Plant · team names
Keep Tonnage · uptime
04
Executive
Team size first
340
Direct
Indirect
Strip Company · board
Keep Span · P&L size
05
General
Narrative first
Strip Names · places
Keep Story · skills

The reusable part is the anonymization method — a set of rules I built up for what to strip, what to keep, and how to stay consistent across one candidate's document. The rules now shape every project in my portfolio that touches private data. The interview transcript anonymizer on the other side of this site is the most recent example. Different document, same rulebook.

If you run a recruiting agency or an HR function with the Law 25 problem this tool was built for, drop me a line. I can spin the scrubber up and show you what it does on one of your own documents — or a synthetic one, if you'd rather.

Let's talk →

Related projects