CV · STANDARDISATION
TRANSFORMER_
Dépose n'importe quel CV. L'IA en extrait les informations et les place dans un gabarit Word normalisé, prêt à envoyer.
FICHIERS un ou plusieurs CV à transformer
GABARIT format de sortie
FOURNISSEUR IA modèle d'extraction
EN COURS
- Envoi du fichierTransfert vers le serveur
- Lecture du documentExtraction du texte, OCR si besoin
- Analyse par l'IAIdentification des rubriques du CV
- StructurationValidation et normalisation des données
- Génération du WordRemplissage du gabarit
0 s
LOT
ENREGISTRÉS DANS TON HISTORIQUE
CV PRÊT_
ENREGISTRÉ DANS TON HISTORIQUE
CV · RELECTURE
MODIFIER_
Corrige les informations extraites par l'IA. Enregistre tes changements, puis génère un nouveau Word.
CONFIGURATION
FOURNISSEURS_
Choisis le fournisseur d'IA, enregistre ta clé d'API, puis sélectionne le modèle parmi ceux que le fournisseur propose réellement.
FOURNISSEUR clique pour configurer
CLÉ D'API
LA CLÉ N'EST JAMAIS RENVOYÉE AU NAVIGATEUR · STOCKÉE EN LOCAL (.env, DROITS 600)
MODÈLE PAR DÉFAUT & REPLIS si le modèle est à court (quota, erreur), bascule automatique dans l'ordre · jusqu'à 3 replis
| FOURNISSEUR | MODÈLE |
|---|
LOBBY
EN ATTENTE_
MON ESPACE
HISTORIQUE_
Chargement…
SEULES LES DONNÉES EXTRAITES (JSON) SONT CONSERVÉES · LE WORD EST RÉGÉNÉRÉ À CHAQUE TÉLÉCHARGEMENT
GABARIT
FORMAT SOURCE
FOURNISSEUR
PÉRIODE
DATE
AUCUN RÉSULTAT POUR CES FILTRES
ADMINISTRATION
GABARITS_
Ajoute un gabarit Word (.docx) pour qu'il apparaisse dans la liste « Gabarit » de tous les utilisateurs. Il est testé avant d'être enregistré. Comment le construire ?
AJOUTER un fichier .docx
DISPONIBLES
ADMINISTRATION
UTILISATEURS_
Chargement…
| Utilisateur | Rôle | Statut | Connexion | Inscrit le | Dernière visite | Actions |
|---|
DOCUMENTATION
GUIDE DES GABARITS_
Comment fabriquer un gabarit Word (template) sans écrire une ligne de code : tu dessines ton CV dans Word, et tu indiques simplement, avec des balises, où doit apparaître chaque information.
1 · LE PRINCIPE
L'IA lit le CV d'origine et range toutes les informations dans une fiche normalisée (le « JSON canonique »). Ton gabarit Word n'est qu'une maquette avec des trous : chaque trou est une balise entre doubles accolades, qui sera remplacée par l'information correspondante.
Exemple : si tu écris {{ identite.prenom }} dans ton document, le prénom du consultant apparaîtra à cet endroit. Tout le reste (police, couleurs, logo, mise en page, en-tête, pied de page) est de la mise en forme Word normale, tu la gardes telle quelle.
identite.prenom se lit « dans la rubrique identite, le champ prenom ». Le point sépare la rubrique du champ. Pas d'accent, pas d'espace, tout en minuscules : recopie-le exactement (ou clique dessus dans la liste plus bas pour le copier).2 · LES 6 BALISES À CONNAÎTRE
Tu n'as besoin que de ces six cas. Clique sur un exemple pour le copier, puis colle-le dans Word.
A · Afficher une information
{{ identite.prenom }}
Affiche le champ. Si l'information n'existe pas dans le CV, rien ne s'affiche (jamais de « None » ni de « null »).
B · Mettre en majuscules (ou en minuscules)
{{ identite.nom | upper }}
{{ identite.titre | lower }}
Les données sont stockées avec leur casse naturelle (« Dossounou »). C'est le gabarit qui décide de la mettre en | upper (MAJUSCULES) ou | lower (minuscules). Le trait vertical | s'obtient avec AltGr + 6.
C · Afficher une liste sur une seule ligne
{{ identite.domaines | join(', ') }}
{{ identite.fonctions | join(' – ') | upper }}
Beaucoup de champs sont des listes (domaines, fonctions, tâches…). join('…') les met bout à bout, avec le séparateur de ton choix entre les guillemets : virgule, tiret, barre verticale…
D · Afficher seulement si l'information existe
{% if identite.disponibilite %}Disponibilité : {{ identite.disponibilite }}{% endif %}
Tout ce qui est entre {% if … %} et {% endif %} n'apparaît que si le champ est rempli. Indispensable pour les libellés (« Disponibilité : », « Mobilité : »…) qui ne doivent pas rester seuls quand la donnée est absente.
E · Répéter une ligne de tableau (une ligne par élément)
C'est la méthode la plus simple pour les expériences, formations, certifications, langues. Dans un tableau Word, prévois trois lignes :
| Ligne | Contenu (dans la 1ʳᵉ cellule) | Rôle |
|---|---|---|
| 1 | {%tr for f in formations %} | Début de la répétition |
| 2 | {{ f.annee }} · {{ f.diplome }} · {{ f.etablissement }} | La ligne répétée, une fois par formation |
| 3 | {%tr endfor %} | Fin de la répétition |
Les lignes 1 et 3 disparaissent à la génération : seules les lignes « de contenu » restent, une par élément. La lettre f est le nom que tu donnes à « l'élément en cours » : tu peux choisir n'importe quelle lettre ou mot, mais il faut utiliser le même partout entre le for et le endfor.
F · Répéter un paragraphe (hors tableau)
{%p for r in m.responsabilites %}
{{ r }}
{%p endfor %}
Chaque balise {%p …%} doit être seule dans son propre paragraphe. Pour obtenir des puces, mets simplement le paragraphe central ({{ r }}) en liste à puces dans Word.
Bonus · Boucle dans une boucle
Une expérience contient elle-même des listes (tâches, environnement…). Tu les répètes à l'intérieur de la boucle des expériences :
{%p for m in experiences %}
{{ m.poste }} – {{ m.entreprise }} ({{ m.periode.annees }})
{%p for r in m.responsabilites %}
{{ r }}
{%p endfor %}
{%p endfor %}
Bonus · Ne reprendre que les N dernières expériences
La variable missions_recentes contient les 4 expériences les plus récentes. Elle s'utilise comme experiences, mais pour un tableau « missions récentes » en première page.
{{ missions_recentes | map(attribute='poste') | unique | join(' – ') | upper }}
Ci-dessus : la liste des postes des missions récentes, sans doublon, sur une ligne.
3 · LISTE DES CHAMPS DISPONIBLES
Voici tout ce que ton gabarit peut afficher. Clique sur un nom de champ pour copier la balise toute prête. Le type te dit comment l'utiliser :
- TEXTE une valeur simple →
{{ champ }} - NOMBRE un nombre →
{{ champ }} - LISTE DE TEXTES plusieurs valeurs →
| join(', ')ou une boucle (cas F) - LISTE plusieurs éléments, chacun avec ses propres champs → une boucle (cas E ou F)
- AUTO calculé automatiquement, tu n'as rien à fournir
identite Qui est le consultant
| Champ | Type | Contenu |
|---|---|---|
{{ identite.prenom }} | TEXTE | Prénom (vide si CV anonymisé) |
{{ identite.nom }} | TEXTE | Nom de famille (vide si CV anonymisé) |
{{ identite.trigramme }} | AUTO | Trigramme du consultant, calculé à partir du prénom et du nom s'il n'est pas dans le CV |
{{ identite.titre }} | TEXTE | Intitulé principal sous le nom (ex. « Expert cybersécurité ») |
{{ identite.fonctions | join(' – ') }} | LISTE DE TEXTES | Fonctions exercées (Consultant, Architecte…) |
{{ identite.domaines | join(', ') }} | LISTE DE TEXTES | Domaines d'intervention (Réseaux, Cybersécurité…) |
{{ identite.resume }} | TEXTE | Accroche / résumé du profil |
{{ identite.annees_experience_affichage }} ans d'expérience | AUTO | Nombre d'années précédé de sa mention : « + 5 », « plus de 10 », « 8 ». À préférer pour l'affichage : le mot « ans » reste celui de ton gabarit, quelle que soit la façon dont le candidat l'a écrit (« xp », « années »…) |
{{ identite.annees_experience }} | NOMBRE | Le nombre seul (5), sans mention. Utile pour une condition (0 si non indiqué) |
{{ identite.annees_experience_mention }} | TEXTE | La mention seule (« + », « plus de », « environ »), vide s'il n'y en a pas |
{{ identite.disponibilite }} | TEXTE | Disponibilité (« immédiate », « préavis 3 mois »…) |
{{ identite.mobilite }} | TEXTE | Mobilité géographique |
contact Coordonnées du consultant
| Champ | Type | Contenu |
|---|---|---|
{{ contact.email }} | TEXTE | Adresse email |
{{ contact.telephone }} | TEXTE | Téléphone |
{{ contact.ville }} | TEXTE | Ville |
{{ contact.pays }} | TEXTE | Pays |
{{ contact.linkedin }} | TEXTE | Lien LinkedIn |
{{ contact.site_web }} | TEXTE | Site web |
societe La société qui présente le consultant (en-têtes, pieds de page)
| Champ | Type | Contenu |
|---|---|---|
{{ societe.nom }} | TEXTE | Nom de la société |
{{ societe.forme }} | TEXTE | Forme juridique (SAS, GIE…) |
{{ societe.capital }} | TEXTE | Capital |
{{ societe.rcs }} | TEXTE | Numéro RCS |
{{ societe.adresse }} | TEXTE | Adresse |
{{ societe.telephone }} | TEXTE | Téléphone de la société |
{{ societe.email }} | TEXTE | Email de la société |
{{ societe.site_web }} | TEXTE | Site web de la société |
{{ societe.entites_groupe | join(' | ') }} | LISTE DE TEXTES | Entités du groupe affichées dans l'en-tête |
{{ societe.entite_consultant }} | TEXTE | Entité d'appartenance du consultant |
competences Ce que sait faire le consultant
| Champ | Type | Contenu |
|---|---|---|
{%p for g in competences.groupes %} | LISTE | Groupes de compétences clés. Dans la boucle : {{ g.titre }} (titre du groupe) et {{ g.elements | join(', ') }} (ses compétences) ; pour une liste à puces : {%p for e in g.elements %} puis {{ e }} |
{{ competences.secteurs | join(', ') }} | LISTE DE TEXTES | Secteurs d'activité / compétences métiers |
{%p for t in competences.techniques %} | LISTE | Compétences techniques par catégorie. Dans la boucle : {{ t.categorie }} (ex. « SGBD ») et {{ t.valeurs | join(', ') }} (ex. « Oracle, PostgreSQL ») |
{{ competences.comportementales | join(', ') }} | LISTE DE TEXTES | Savoir-être / compétences transverses |
experiences Les missions et postes, du plus récent au plus ancien
On écrit {%tr for m in experiences %} (ou {%p for … %}), puis on utilise m. suivi du champ. missions_recentes fonctionne de la même façon avec les 4 plus récentes.
| Champ (dans la boucle) | Type | Contenu |
|---|---|---|
{{ m.poste }} | TEXTE | Intitulé du poste |
{{ m.entreprise }} | TEXTE | Entreprise où la mission a été réalisée (client final) |
{{ m.employeur }} | TEXTE | Employeur du consultant, seulement s'il diffère de l'entreprise |
{{ m.lieu }} | TEXTE | Lieu |
{{ m.secteur }} | TEXTE | Secteur d'activité |
{{ m.type_contrat }} | TEXTE | CDI, mission, freelance… (si indiqué) |
{{ m.periode.annees }} | AUTO | Période courte : « 2021 - 2022 » |
{{ m.periode.intervalle }} | AUTO | Période précise : « 09/2021 à 06/2022 » |
{{ m.periode.intervalle_lettres }} | AUTO | Période précise, mois en lettres : « septembre 2021 à juin 2022 » (« September 2021 to June 2022 » pour un CV en anglais) |
{{ m.periode.duree }} | AUTO | Durée : « 1 an et 4 mois » |
{{ m.periode.debut }} · {{ m.periode.fin }} | TEXTE | Dates de début et de fin (MM/AAAA). Fin vide si la mission est en cours |
{{ m.taille_equipe }} | NOMBRE | Taille de l'équipe (0 si non indiqué) |
{%p for c in m.contexte %} → {{ c }} | LISTE DE TEXTES | Paragraphes de présentation de la mission |
{%p for p in m.projets %} → {{ p.nom }} | LISTE | Projets de la mission (vide si le CV n'en mentionne pas). Dans chaque projet : p.contexte, p.responsabilites, p.resultats (listes de textes) |
{%p for r in m.responsabilites %} → {{ r }} | LISTE DE TEXTES | Tâches et responsabilités, une par élément |
{%p for r in m.resultats %} → {{ r }} | LISTE DE TEXTES | Résultats obtenus, une par élément |
{{ m.environnement_texte }} | AUTO | Environnement technique en une seule ligne (le plus simple à utiliser) |
{%p for e in m.environnement %} | LISTE | Environnement technique par catégorie : {{ e.categorie }} et {{ e.valeurs | join(', ') }} |
{{ m.mots_cles | join(', ') }} | LISTE DE TEXTES | Mots-clés de la mission |
projets Projets libres hors missions (personnels, open source, associatifs…)
Boucle : {%p for j in projets %} … {%p endfor %}. Même structure qu'une expérience, sans employeur ni entreprise.
| Champ (dans la boucle) | Type | Contenu |
|---|---|---|
{{ j.nom }} | TEXTE | Nom du projet |
{{ j.role }} | TEXTE | Rôle dans le projet (si indiqué) |
{{ j.lieu }} · {{ j.lien }} | TEXTE | Lieu et lien (dépôt, site) si écrits dans le CV |
{{ j.periode.annees }} · {{ j.periode.intervalle }} · {{ j.periode.duree }} | AUTO | Période et durée, comme pour les expériences |
{%p for c in j.contexte %} → {{ c }} | LISTE DE TEXTES | Présentation du projet |
{%p for r in j.responsabilites %} → {{ r }} | LISTE DE TEXTES | Tâches réalisées |
{%p for r in j.resultats %} → {{ r }} | LISTE DE TEXTES | Résultats obtenus |
{{ j.environnement_texte }} | AUTO | Environnement technique en une ligne |
formations Diplômes et formations
Boucle : {%tr for f in formations %} … {%tr endfor %}
| Champ (dans la boucle) | Type | Contenu |
|---|---|---|
{{ f.annee }} | TEXTE | Année d'obtention |
{{ f.diplome }} | TEXTE | Diplôme |
{{ f.etablissement }} | TEXTE | Établissement |
{{ f.lieu }} | TEXTE | Lieu |
{{ f.niveau }} | TEXTE | Niveau (« Bac+5 »), si écrit dans le CV |
certifications
Boucle : {%tr for c in certifications %} … {%tr endfor %}
| Champ (dans la boucle) | Type | Contenu |
|---|---|---|
{{ c.annee }} | TEXTE | Année d'obtention |
{{ c.intitule }} | TEXTE | Intitulé de la certification |
{{ c.organisme }} | TEXTE | Organisme certificateur |
{{ c.identifiant }} | TEXTE | Numéro de certification |
{{ c.date_expiration }} | TEXTE | Date d'expiration |
langues
Boucle : {%tr for l in langues %} … {%tr endfor %}
| Champ (dans la boucle) | Type | Contenu |
|---|---|---|
{{ l.langue }} | TEXTE | Langue |
{{ l.niveau }} | TEXTE | Une des 5 valeurs : Courant(C1), Courant(C2), Intermédiaire(B1), Intermédiaire(B2), Professionnel |
{{ l.cecrl }} | TEXTE | Niveau CECRL (A1 à C2), si indiqué |
autres rubriques
| Champ | Type | Contenu |
|---|---|---|
{%p for ci in centres_interet %} → {{ ci }} | LISTE DE TEXTES | Centres d'intérêt |
{%p for p in publications %} | LISTE | Publications : {{ p.titre }}, {{ p.annee }}, {{ p.support }} |
{{ meta.langue }} | TEXTE | Langue du CV (« fr », « en ») |
Aucun champ ne correspond à cette recherche.
4 · EXEMPLE COMPLET
Voici à quoi ressemble le haut d'un gabarit dans Word. À gauche ce que tu tapes, à droite ce qui sort.
| Dans Word (gabarit) | Dans le CV final |
|---|---|
{{ identite.prenom | upper }} {{ identite.nom | upper }} | RONALD DOSSOUNOU |
{{ identite.titre | upper }} | EXPERT CYBERSÉCURITÉ |
{{ identite.domaines | join(', ') }} | Réseaux, Cybersécurité |
{% if identite.disponibilite %}Disponibilité : {{ identite.disponibilite }}{% endif %} | Disponibilité : immédiate |
{{ m.periode.annees }} {{ m.poste }} – {{ m.entreprise }} | 2021 - 2022 Architecte – Société Générale |
5 · ERREURS FRÉQUENTES
- La balise s'affiche telle quelle dans le CV final. Word a coupé la balise en plusieurs morceaux de mise en forme. Retape-la d'un seul trait, sans changer de police, de gras ou de couleur au milieu. Si le problème persiste : sélectionne la balise entière, applique « Effacer la mise en forme », retape-la, puis mets en forme l'ensemble.
- Les guillemets sont « courbes ». Word transforme parfois
'en’et"en“ ”, ce qui casse la balise. Utilise de préférence le bouton COPIER de ce guide, ou désactive la correction automatique (Options → Vérification → Options de correction automatique → « Remplacer les guillemets droits »). - Une faute de frappe dans un nom de champ.
identite.prenomfonctionne,identité.prénomouidentite.Prenomnon : pas d'accent, pas de majuscule. Le champ inconnu s'affichera simplement vide. - Un
{% for %}sans{% endfor %}(ou un{% if %}sans{% endif %}). Chaque ouverture doit avoir sa fermeture, sinon la génération échoue. - Balise
{%p …%}ou{%tr …%}avec autre chose dans le même paragraphe / la même ligne. Ces balises de bloc doivent être seules : rien d'autre dans leur paragraphe ou dans leur ligne de tableau. - Mauvaise lettre dans une boucle. Si tu écris
{%tr for f in formations %}, il faut ensuite{{ f.diplome }}, pas{{ m.diplome }}. - Un libellé qui reste seul. « Téléphone : » sans numéro : entoure le libellé et la valeur d'un
{% if contact.telephone %}…{% endif %}(cas D).
6 · LIVRER LE GABARIT
- Enregistre ton fichier au format .docx, avec un nom du type « Template - Format 3.docx ». Le nom (sans « Template - ») devient le nom affiché dans la liste « Gabarit ».
- Si tu as le rôle administrateur, ouvre la page Gabarits et dépose le fichier : il est testé (balises, noms de champs) puis ajouté à la liste. Sinon, transmets-le à un administrateur.
- Teste-le avec un CV réel : transforme un CV, choisis ton gabarit, télécharge le .docx et vérifie qu'aucune balise
{{ }}ou{% %}n'est restée visible.