J’ai transformé ma RTX 4060 en usine à CV grâce à une IA locale
Comment j’ai construit, chez moi, une brique d’extraction de CV on-premise avec OCR, Ollama, Qwen, Pydantic, JSON Resume et Europass.
TL;DR
Dans le cadre de HackAVP 2026, j’ai développé CV Forge, une brique capable de transformer un CV en données structurées réutilisables par d’autres services.
L’objectif de CV Forge est simple : extraire, interpréter, valider et standardiser les informations contenues dans un CV afin de les rendre exploitables par d’autres briques HackAVP.
Démo :
Écosystème du projet
Mon projet s'intègre dans un ensemble de solutions indépendantes, développées par les étudiants de notre promotion de Master MIAGE, avec pour objectif de former un écosystème interopérable.
Le défi : un CV n’est pas une base de données
Un humain lit un CV presque instantanément.
Il repère naturellement :
- le nom du candidat,
- ses expériences,
- ses diplômes,
- ses compétences,
- ses coordonnées.
Mais pour une machine, le problème est beaucoup plus compliqué.
Un CV peut être :
- en une ou deux colonnes,
- très graphique,
- composé d’images,
- exporté depuis Word, Canva ou un autre outil,
- organisé différemment d’un document à l’autre.
Le problème est donc double : extraire le contenu du document, puis comprendre ce contenu sans inventer d’informations. Une mauvaise extraction ne devient pas correcte simplement parce qu'elle passe dans un LLM.
🏠 Mon laboratoire IA : du on-premise chez moi
J'ai choisi d'héberger ma solution sur mon ordinateur perso. Les CV comportent des informations personnelles : identité, coordonnées, formations et parcours professionnel. Exécuter l'OCR et le modèle d'IA localement me permet de maîtriser le traitement sans envoyer ces documents à une API d'IA cloud.
Cela ne veut pas dire que le on-premise est automatiquement sécurisé ou conforme au RGPD. Il faut aussi protéger les accès, les fichiers et les journaux, et définir des règles de conservation. En revanche, je maîtrise mieux mon environnement et je peux expérimenter sans facturation par requête.
Mon setup
| Composant | Choix |
|---|---|
| GPU | NVIDIA GeForce RTX 4060 |
| VRAM | 8 Go |
| Prix de ma carte en Nouvelle-Calédonie | Environ 60 000 F CFP |
| Hébergement | Local, chez moi |
| Moteur IA | Ollama |
| Modèle | Qwen léger 3 4B |
| Services | Python / FastAPI |
| Validation | Pydantic |
| Orchestration | n8n |
| Format d'échange | JSON Resume |
| Autre format ciblé | Europass |
Je n'ai pas essayé de faire tourner le modèle le plus volumineux possible. J'ai sélectionné une approche adaptée à mon besoin : identifier et structurer des données de CV.
Le défi n'est pas de disposer du plus gros GPU, mais de tirer le meilleur parti de celui que j'ai.
⚙️ Sous le capot : de l'OCR au JSON Resume
J'ai découpé mon traitement en briques spécialisées. Chacune a sa propre responsabilité : extraire, interpréter, valider, puis partager.
- Le workflow n8n reçoit le CV à traiter.
- Un service OCR / extraction récupère les informations du document.
- Le contenu extrait est analysé par Qwen via Ollama, exécuté localement.
- Le résultat est normalisé selon une structure attendue.
- Pydantic contrôle les types, la structure et certaines règles métier.
- Le profil est transformé en JSON Resume.
- Ce format peut être consommé par les autres services HackAVP et servir de point de départ à une conversion Europass.
Diagramme de séquence du traitement
Pourquoi séparer les services ?
Je ne veux pas que le modèle d'IA fasse tout car on ne peux pas le faire confiance à 100 % : l'OCR est chargé d'extraire, Qwen d'interpréter, Pydantic de valider la structure et le convertisseur de produire un format d'échange. Cette modularité permet de remplacer un composant sans réécrire l'ensemble de la chaîne, tant que ses interfaces restent compatibles.
🧪 Banc d'essai : une RTX 4060 face à une RTX 5080
Mes collègues chargé de CV Generator utilisent une RTX 5080 avec 16 Go de VRAM. Sa machine peut accueillir des modèles plus volumineux, selon la quantification et la mémoire nécessaire, ce qui peut être intéressant pour la génération de documents et certaines tâches de compréhension plus complexes.
De mon côté, ma carte graphique me pousse à privilégier un modèle Qwen léger et un traitement spécialisé.
| Critère | Mon projet CV Forge | Projet CV Generator |
|---|---|---|
| Carte graphique | RTX 4060 | RTX 5080 |
| Mémoire vidéo | 8 Go | 16 Go |
| Prix indicatif en NC | ~60 000 F CFP | ~300 000 F CFP |
| Modèle LLM | Qwen3-4B | Qwen3-14B |
| Priorité | Extraction et structuration | Génération de candidatures |
| Approche | Modèle léger + validation Pydantic | Modèle plus volumineux pour la génération |
| Exécution | On-premise | On-premise |
| Évolutivité | Modèle et GPU remplaçables | Possibilité de tester des modèles plus puissants |
Un modèle plus grand peut mieux réussir certaines tâches et produire moins d'erreurs, mais ce n'est pas automatique : il faut le vérifier avec les mêmes documents et les mêmes critères, même si les erreurs sont moins présente. Une carte plus puissante n'élimine pas magiquement les hallucinations.
Et si je change de GPU demain ?
L'architecture peut monter en puissance. Avec davantage de VRAM, je pourrais tester des modèles plus gros tout en conservant le même enchaînement :
OCR → Ollama / Qwen → Pydantic → JSON Resume → Autres applications
Il faudrait bien sûr adapter la configuration, vérifier les performances et retester la précision. Mais on ne repart pas de zéro : le principe de séparation des composants reste le même.
Aujourd'hui je privilégie une IA spécialisée sur du matériel accessible. Demain je peux faire évoluer le matériel et le modèle, sans renoncer au format d'échange.
🔧 Retour d'expérience : stop aux rustines !
Pendant le développement, j'ai parfois tenté de corriger les erreurs en ajoutant des nœuds n8n, des conditions ou des instructions au prompt.
Le problème ? À force de donner des coups de clé à molette, le workflow devient une usine à gaz ! 😅
Avec ma RTX 4060, il faut que j'accepte les limites du LLM, on ne peut pas forcer une imprimante à faire de la vidéo, il faut upgrade ses composants.
🐛 Un exemple concret
Sur certains CV, mon pipeline retrouvait :
- ✅ Les expériences professionnelles
- ✅ Les formations et compétences
- ✅ Les coordonnées
- ❌ Mais parfois… pas le nom du candidat !
💡 Dix rustines ne transformeront jamais un petit LLM en modèle booster. Mieux vaut une architecture propre et évolutive qu'une accumulation de correctifs.
✅ Qualité des données : une IA sous contrôle
Avec mon modèle Qwen, j'obtiens des résultats encourageants et peu d'erreurs visibles sur les CV.
Mais une IA peut toujours halluciner ! C'est pourquoi je contrôle plusieurs points :
- ✅ Structure : JSON conforme grâce à Pydantic.
- 🎯 Exactitude : informations fidèles au CV original.
- 📄 Complétude : données essentielles récupérées.
- ⚡ Performance : environ 24 secondes sur un test.
Un JSON valide ne signifie pas forcément que les informations sont exactes !
🔗 HackAVP : l'interopérabilité avant tout !
Le véritable enseignement de HackAVP ? Faire communiquer plusieurs applications indépendantes autour d'un objectif commun.
Avec CV Forge, je transforme les CV en JSON Resume, un format standardisé que les autres équipes peuvent directement exploiter.
🔄 Un format, plusieurs possibilités
- 📄 CV Forge → Extraction et structuration.
- 🎯 CV Matching → Correspondance candidat/poste.
- ✍️ CV Generator → Génération de candidatures.
- 🇪🇺 Europass → Interopérabilité avec un standard européen.
Chaque brique possède sa propre technologie, mais toutes peuvent communiquer grâce à un format de données commun.
🇪🇺 Europass : un CV au-delà de HackAVP
Europass est une initiative de l'Union européenne qui permet aux citoyens de présenter leurs compétences, leurs qualifications et leurs expériences professionnelles dans un cadre reconnu à l'échelle européenne.
La plateforme propose notamment un outil de création de CV standardisés, facilitant la présentation et la compréhension des parcours professionnels auprès des recruteurs.
Avec CV Forge, j'ai donc travaillé sur la conversion des données extraites vers une structure compatible avec le modèle de données Europass : identité, expériences, formations, langues et compétences.
🎯 L'intérêt ? Permettre à un candidat de réutiliser les informations de son CV au-delà de HackAVP, sans devoir tout ressaisir.
Il s'agit d'une compatibilité technique avec le format de données, et non d'une certification officielle Europass.
L'interopérabilité prend ici tout son sens : une information structurée une seule fois peut être réutilisée par plusieurs systèmes indépendants.
🚀 Et après ? Les prochaines évolutions de CV Forge
CV Forge fonctionne aujourd'hui sur des CV classiques, mais plusieurs pistes pourraient faire évoluer le projet :
🌍 Explorer d'autres métiers : tester des CV issus de la santé, du BTP, de l'administration ou du commerce, avec leurs vocabulaires spécifiques.
✍️ Lire les CV manuscrits : intégrer des capacités de reconnaissance de l'écriture manuscrite (HTR).
🧠 Expérimenter des modèles OCR intelligents : comparer l'OCR classique avec des modèles spécialisés dans la compréhension de documents, comme PaddleOCR-VL ou Qwen2.5-VL.
💻 Faire évoluer mon matériel : tester des LLM plus volumineux avec davantage de VRAM.
📊 Mesurer la fiabilité : constituer un jeu de CV variés pour comparer la précision, les hallucinations et le temps de traitement.
🤝 Les acteurs derrière HackAVP
Ce projet a été rendu possible grâce à plusieurs acteurs engagés dans l'innovation et la formation en Nouvelle-Calédonie :
- 🏢 OPT-NC — Pour avoir proposé une problématique concrète et mis à disposition les données nécessaires au challenge.
- 🚀 Station N — Pour l'organisation de HackAVP et la mise en avant de l'innovation locale.
- 🎓 IAE / Université de la Nouvelle-Calédonie — Pour l'accompagnement pédagogique et l'opportunité de participer à ce type de projet dans le cadre du Master MIAGE.
- 🤖 Commission DATA & IA - OPEN NC : Pour son implication, son soutien et sa contribution, ainsi que pour son engagement dans la promotion de l'intelligence artificielle et de l'innovation en Nouvelle-Calédonie.
- 💻 Barrau Business Systems (BBS) — Mon entreprise, qui m'a formé et accompagné dans le développement de mes compétences techniques et professionnelles.
Un grand merci également à M. Adrien SALES de l'OPT-NC, pour son accompagnement et pour nous avoir sensibilisés à un concept essentiel tout au long de ce challenge.
Au-delà du développement technique, HackAVP a surtout été une belle occasion d'apprendre, d'expérimenter et de collaborer autour d'un objectif commun.
🏁 Conclusion : l'interopérabilité avant tout !
Avec CV Forge, j'ai démontré qu'une IA locale, même sur une RTX 4060 de 8 Go, peut devenir une brique utile dans un écosystème plus large.
Mais le véritable enseignement de HackAVP reste l'interopérabilité : apprendre à faire communiquer des applications indépendantes, malgré leurs technologies et leurs architectures différentes.
La force d'un projet ne réside pas seulement dans ce qu'il sait faire, mais aussi dans sa capacité à fonctionner avec les autres.
Projet : HackAVP 2026 — CV Forge
Développement : Florian Jean-Baptiste Dit Doudoute
Formation : Master MIAGE — Université de la Nouvelle-Calédonie
Stack : Python · FastAPI · OCR · Ollama · Qwen · Pydantic · n8n · JSON Resume · Europass




Top comments (0)