CV personnel en Next.js et Tailwind CSS. Les contenus vivent dans 4 fichiers sous data/cv/ : profile.json (identité/contact), tech-catalog.json (dictionnaire techno), experience.json (missions/études/projets par ids) et locales/{fr,en}.json (textes localisés). L'app les compose au runtime via lib/cv-compose.ts. Le catalogue de matching (ids + tokens texte) est dérivé des mêmes fichiers côté serveur (lib/match-catalog-from-bundle.ts), sans artefact JSON séparé.
Créer un .env si besoin (ex. déploiement statique) :
STATIC_DEPLOYMENT=trueLancer le serveur de dev :
npm run devOuvrir http://localhost:3000.
Build production :
npm run build- Paramètres lisibles :
/{lang}?company=…&requirement=Libellé:mots&contract=cdi - JSON compact base64 :
/{lang}?spec=… - Type de contrat :
?contract=cdiadapte les textes profil/domaines pour un poste permanent ;freelancepar défaut. - Mode enseignement :
?mode=teachingbascule sur la variante CV enseignement (profil/domaines reformulés, missions d'enseignement et proposition de module Product Builder visibles, lien Malt masqué). Voirletters/pour les lettres associées. - Présentation (écran et PDF) :
?detail=full|summary|minimal(densité des expériences —fullpar défaut),?photo=0(masque la photo, affichée par défaut),?age=0(masque l'âge, affiché par défaut sous le rôle). - Liste complète des paramètres d'URL : voir
docs/cv-rendering-rules.md§8 — dont?print,?ats=1,?entriesLayout=inline|stacked,?headerAlign=right,?subtitle(_fr|_en),?edu=1,?maxJobShown=N,?job=<slug>(répétable). - Guide LLM dynamique :
GET /api/llm-guide— markdown auto-généré, point d'entrée recommandé pour les agents LLM. Liste tous les endpoints publics (/api/profile,/api/openapi.yaml,/{lang}), le catalogue de technos complet et des exemples d'URLs.
Plafonds (longueurs, nombre d’exigences) : lib/dynamic-offer-spec.ts, lib/query-offer-params.ts. URLs limitées à ~2k caractères par le navigateur ; au-delà, préférer spec base64.
Encodage CLI : npm run encode-offer-spec -- path/to/offer.json
| Ressource | Chemin / URL |
|---|---|
| Données CV (structure) | data/cv/profile.json, tech-catalog.json, experience.json |
| Textes localisés (FR/EN) | data/cv/locales/fr.json, data/cv/locales/en.json |
| Spec OpenAPI (API profile) | data/api/openapi.yaml — GET /api/openapi.yaml |
| API profile (JSON) | GET /api/profile?lang=fr|en — snapshot complet du profil + catalogue techno. Voir spec OpenAPI ci-dessus. |
| Types offre (interfaces TS) | data/offers/types.ts |
| Guide LLM | GET /api/llm-guide |
| Storybook maison (dev) | http://localhost:3000/{lang}/dev/components |
| Storybook (local) | http://localhost:6006 (npm run storybook) |
| Rendus PDF / screenshots | renders/ -- renders/index.html |