J'ai transformé mon CV en chatbot IA
— Quentin Roger
Un CV, c'est un PDF que les recruteurs survolent en 30 secondes, quand ce n'est pas un algo qui le keyword-matche avant même qu'un humain ne l'ouvre.
Du coup, je me suis dit : et si au lieu de lire mon CV, on pouvait discuter avec ? Lui demander « c'est quoi tes projets Azure OpenAI chez Bouygues Telecom ? » ou « tu prendrais quelle stack pour un produit GenAI ? » et obtenir une vraie réponse, streamée token par token. C'est exactement ce que fait qroger.com, et voilà comment c'est construit sous le capot.
La stack
- SvelteKit 2 + Svelte 5 pour le site : rendu côté serveur, avec la nouvelle API runes (
$state,$props). Une fois qu'on y a goûté, difficile de revenir en arrière. - Groq pour l'inférence, via le Vercel AI SDK. Leurs puces LPU sortent le premier token en moins d'une seconde, et pour l'effet « waouh » d'une interface de chat, ça change tout.
- Firebase pour l'authentification, et Firestore pour les quotas.
- Tailwind CSS 4 + GSAP pour le côté visuel : le fond fluide animé et les grilles de points tournent sur le GPU.
- Vercel pour l'hébergement et les stats.
Un seul fichier pour les gouverner tous
Le truc dont je suis le plus content, c'est l'architecture de la donnée. Tout mon parcours (expériences, compétences, certifs) vit dans un seul module TypeScript, et ce module alimente trois choses à la fois :
- Le system prompt envoyé au LLM, comme ça l'assistant répond avec des faits au lieu de m'inventer une carrière chez la NASA.
- La section CV de la page d'accueil, rendue côté serveur pour que Google voie tout le contenu.
- Un endpoint
/llms.txt, un résumé markdown de tout le CV servi tout propre aux crawlers IA.
Je modifie une expérience ? Le chatbot, la page et le fichier pour les robots sont à jour. Zéro duplication, zéro oubli.
Pas de compte, pas de friction (mais pas open bar non plus)
Personne ne va créer un compte pour regarder un CV. Donc chaque visiteur récupère automatiquement une session anonyme Firebase, suffisante pour discuter avec un petit quota quotidien. Et si vous vous connectez avec Google ou GitHub, vous débloquez un quota plus généreux… et mes vraies coordonnées.
Parce que oui, les coordonnées affichées publiquement sont floutées et volontairement bidon. Les scrapers peuvent toujours écrire à nice.try.robots@gmail.com.
Côté quota, c'est minimaliste : un document Firestore par session avec un identifiant, une date et un compteur. Les conversations, elles, ne sont stockées nulle part. Ça part chez Groq pour l'inférence, la réponse revient en streaming, et rien n'est conservé.
Le streaming sans les galères
La route API utilise streamText du AI SDK et renvoie la réponse en flux. Côté client, chaque chunk passe par markdown-it puis DOMPurify avant de toucher le DOM. Re-rendre le markdown à chaque chunk, sur le papier ça a l'air d'un gâchis, mais pour des messages de taille chat c'est imperceptible, et l'assistant peut sortir des listes, des liens et des blocs de code proprement.
Le truc que tout le monde zappe : être trouvable par les IA
Une part croissante des recherches se fait maintenant dans ChatGPT, Claude ou Perplexity. Si votre site est invisible pour leurs crawlers, vous n'existez tout simplement pas dans leurs réponses. Voilà les trois choses peu coûteuses que j'ai mises en place :
- Un
robots.txtqui autorise explicitement GPTBot, ClaudeBot, PerplexityBot et compagnie, y compris leurs variantes search. - Le fameux
/llms.txtqui sert le CV complet en markdown propre, plutôt que de laisser un LLM se dépatouiller avec une soupe de<div>. - Du JSON-LD (schémas
Person+WebSite) pour les moteurs de recherche classiques.
Le tout m'a pris moins d'une heure, et c'est probablement le meilleur ratio effort/résultat de tout le site niveau référencement.
À vous de jouer
Si vous voulez faire pareil : gardez vos données de CV dans un seul module structuré et dérivez tout le reste à partir de là, rendez le chat utilisable sans friction (auth anonyme) mais rate-limitez dès le premier jour, et traitez les crawlers IA comme un public de première classe. C'est eux, le nouveau moteur de recherche des recruteurs.
Des questions ? Posez-les directement au chatbot, il connaît mon CV mieux que moi.
Transparence : cet article a été co-écrit avec une IA. Pour un site dont la vedette est un chatbot, ça aurait été un comble de prétendre le contraire.