Générateur de CV

VérifiéPrudence

Génère votre CV au format HTML et PDF, adapté à un poste spécifique. Utilise votre profil complet et votre historique.

Spar Skills Guide Bot
ProductiviteIntermédiaire
22/07/2026
Claude Code
#cv-generation#resume-tailoring#pdf-export#headless-chrome#versioned-history

Recommandé pour

Synthèse automatique

Régénère un CV au format HTML puis PDF à partir d'un profil prédéfini, en l'adaptant à une offre d'emploi précise ou en actualisant la version de base.

Points forts

  • Conserve un historique horodaté des versions HTML (`YYYY-MM-DD_<contexte>.html`) avant chaque modification, ce qui rend les retours en arrière faciles
  • Réécrit le résumé, l'ordre des compétences et la mise en avant des puces selon les mots-clés de l'offre, sans jamais inventer de chiffres ou de faits
  • Pipeline PDF éprouvé qui contourne le blocage des URL `file://` par Chrome headless via un petit serveur HTTP local
  • Nommage de sortie daté et numéroté (`date_NN_Nom.pdf`) qui garde les exports triables et trace l'ordre de génération

Limites

  • Fortement lié à macOS : chemin Chrome codé en dur, ouverture dans Preview, dossiers `~/Documents` et `~/Desktop`
  • Le bloc « Who You Are » contient des placeholders à remplir manuellement avant tout usage utile
  • Ne fait que réordonner et reformuler le contenu réel du dernier HTML : la qualité du résultat dépend entièrement du CV source existant
  • Aucune vérification de compatibilité ATS ni de mise en page au-delà du contrôle de taille du PDF (~150 Ko)
Quand l'utiliser

À utiliser quand vous voulez actualiser votre CV ou le décliner pour une entreprise/offre spécifique et obtenir un PDF daté prêt à envoyer.

Quand l'éviter

À éviter sur une machine non macOS, ou si vous n'avez pas encore de CV HTML source dans l'historique du skill.

Analyse de sécurité

Prudence
Score qualité80/100

The skill uses powerful tools (bash, a local HTTP server, Chrome headless) but for a coherent, legitimate purpose: rendering an HTML CV to PDF locally. There is no obfuscation, no curl|sh, no secret exfiltration, no destructive deletion, and it explicitly says not to use file:// URLs — it never sends data outbound. Concerns are limited to the broad `pkill`, the default-all-interfaces HTTP server exposing /tmp briefly, and general local-file writes. Hence 'caution' rather than 'safe' or 'risky'.

Points d'attention
  • •Starts `python3 -m http.server 9292` from /tmp, which by default binds to 0.0.0.0 and exposes /tmp contents on the local network while running (ends only via `kill %1`).
  • •`pkill -f "http.server"` is overly broad and could kill unrelated Python HTTP servers the user is running.
  • •Launches Chrome headless and writes files to /tmp, ~/Documents/CVs, and ~/Desktop (local filesystem writes, expected but broad).
  • •Invokes `open -a Preview` on generated PDFs.
Comment cette analyse est faite

Exemples

Tailor to a vacancy
Adapt my CV for this backend role at Stripe — here's the job description: [paste JD]. Emphasize TypeScript, Node.js and payments work.
Refresh the base CV
Regenerate my base CV: I just wrapped up a contract at Acme as a senior backend engineer and want it reflected.
Company-specific variant
Make a version of my CV targeted at Nango, backend focus, and save it with the right history and PDF names.

name: job:cv description: Regenerate your CV. Knows your full profile, stack, and experience. Adapts the CV for a specific vacancy or context if provided, or refreshes the base version. Invoke when you ask to update, adapt, or regenerate the CV. argument-hint: "[vacancy description or company name, optional]" user-invocable: true disable-model-invocation: false allowed-tools: Bash(cat *), Bash(open *), Bash(cp *), Bash(ls *), Bash("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" *)

CV Generator

Who You Are

<!-- Fill in your profile. This is used to adapt bullets and summary for each role. -->

Your Name — Senior [Role], [N]+ years, based in [City, Country] (UTC[offset]).

Core stack: [e.g. TypeScript, Node.js, NestJS, Fastify, React, Next.js, Prisma, PostgreSQL] AI/agents: [e.g. Mastra, OpenAI, RAG pipelines, pgvector, LangChain — if applicable] Mobile/platforms: [e.g. React Native, Telegram Mini Apps — if applicable] DevOps: [e.g. Docker, GitHub Actions, AWS] English: [level]. Location: [city], remote only.

Current role: [Company] ([Start]–present) — [brief product description]. Stack: [tech stack].

Previous roles:

  • [Company] ([dates]): [one-line description]
  • [Company] ([dates]): [one-line description]
  • [Company] ([dates]): [one-line description]

CV Files

  • HTML source (canonical): ~/.claude/skills/job-cv/history/ — always use the latest *.html in history as source of truth.
  • Working copy: /tmp/cv.html — write here before generating PDF
  • PDF output: ~/Documents/CVs/YYYY-MM-DD_NN_YourName.pdf — date + sequence number for today (01, 02…), sortable
  • History archive: ~/.claude/skills/job-cv/history/

History naming convention

YYYY-MM-DD_<context>.html — where <context> is either base (no target company) or a slug of the company/role (e.g. stripe, nango-backend).

ls -lt ~/.claude/skills/job-cv/history/

How to regenerate PDF

⚠️ Do NOT use file:// URLs with Chrome headless — Chrome sandbox blocks local file access and silently renders an error page (~23KB PDF).

Correct workflow:

  1. Write HTML to /tmp/cv.html using the Write tool
  2. Serve via Python HTTP server from /tmp
  3. Chrome headless fetches from localhost
  4. Copy PDF to output folder
pkill -f "http.server" 2>/dev/null; sleep 1
cd /tmp && python3 -m http.server 9292 &
sleep 1
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --headless=new --disable-gpu \
  --no-margins --no-pdf-header-footer \
  --print-to-pdf="/tmp/cv_out.pdf" \
  "http://localhost:9292/cv.html" 2>&1 | tail -3
kill %1 2>/dev/null
DATE=$(date +%Y-%m-%d)
N=$(ls ~/Documents/CVs/${DATE}_*.pdf 2>/dev/null | wc -l | tr -d ' ')
N=$(printf "%02d" $((N + 1)))
OUTFILE=~/Documents/CVs/${DATE}_${N}_YourName.pdf
cp /tmp/cv_out.pdf "$OUTFILE"
cp /tmp/cv_out.pdf ~/Desktop/${DATE}_${N}_YourName.pdf
open -a Preview "$OUTFILE"

A valid PDF is ~150KB+. If output is ~23KB it's still an error page.

Instructions

  1. Read the latest HTML from history: ls -lt ~/.claude/skills/job-cv/history/ → read the newest file.
  2. Archive before edits: save current HTML to history as YYYY-MM-DD_<context>.html using the Write tool.
  3. Edit the HTML (Write tool to /tmp/cv.html):
    • Summary: rewrite to match the company's vibe and keywords from their JD
    • Skills section: surface the most relevant technologies first, add keywords from JD naturally
    • Bullets: keep all real content, only reorder emphasis — never invent metrics or facts
  4. If no arguments — user wants to update/refresh the base CV. Ask what changed.
  5. Never fabricate metrics or details. Only use information confirmed by the user or verifiable from the project.
  6. After editing, regenerate the PDF using the workflow above and open it in Preview.
  7. Show the user what changed (diff summary, not the full HTML).

CV style rules

  • Bold only outcomes and scale (e.g. 1M+ MAU, all interns promoted) — not tech keywords
  • No build tooling in bullets (Turborepo, pnpm workspaces — too narrow)
  • Keep real tech depth: PostgreSQL, Redis, SSE, Prisma ORM, Supabase — these are real experience worth keeping
  • No LLM model version strings in CV (write "OpenAI" or "LLMs", never "GPT-4" / "GPT-4o")
  • "Maintained and extended" not "Shipped" if you inherited a running service

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/cv-generator-mrwakbj0/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/cv-generator-mrwakbj0' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/cv-generator-mrwakbj0/download' --output '.skill-downloads/cv-generator-mrwakbj0/SKILL.md.part' && mv '.skill-downloads/cv-generator-mrwakbj0/SKILL.md.part' '.skill-downloads/cv-generator-mrwakbj0/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash(cat *), Bash(open *), Bash(cp *), Bash(ls *), Bash("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" *)

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Le fichier ne fournit pas un en-tête name/description exploitable pour cette procédure native. Le téléchargement reste disponible pour lecture ; utilisez le mode manuel ci-dessous.

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/cv-generator-mrwakbj0/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires