Skip to content

Repository files navigation

CRIBLE

En ligne : https://cvcrible.vercel.app

Agrégateur d'offres d'emploi (France Travail + Adzuna + Meteojob) avec analyse de CV, classement des offres, brouillons de lettres de motivation et adaptation de CV à une offre, le tout via l'API DeepSeek (la lecture du CV en PDF reste chez Claude). Front en HTML/CSS/JS sans framework, back en fonctions serverless Vercel.

Déployer sur Vercel

  1. Sur vercel.com : Add New → Project → Import Git Repository, choisir ce dépôt.
  2. Laisser les réglages par défaut : Vercel détecte /api et sert la racine en statique. Ni build command ni output directory à renseigner.
  3. Ajouter les 5 variables d'environnement ci-dessous (Settings → Environment Variables), sur les trois environnements (Production, Preview, Development).
  4. Déployer. Chaque git push sur main redéploie automatiquement.

Variables d'environnement

Aucune clé ne figure dans le code. Les cinq premières sont obligatoires côté serveur :

Variable Où l'obtenir Sert à
ANTHROPIC_API_KEY console.anthropic.com Lecture du CV en PDF (toujours), et tout le reste si IA_PROVIDER=anthropic
DEEPSEEK_API_KEY platform.deepseek.com Classement, lettres, adaptation — fournisseur par défaut
FT_CLIENT_ID francetravail.io Offres France Travail
FT_CLIENT_SECRET francetravail.io Offres France Travail
ADZUNA_APP_ID developer.adzuna.com Offres Adzuna
ADZUNA_APP_KEY developer.adzuna.com Offres Adzuna

Meteojob est interrogé sans clé.

Choix du fournisseur d'IA — variable facultative IA_PROVIDER :

Valeur Effet
absente, ou deepseek DeepSeek V4 Flash (tri, analyse) et V4 Pro (réécriture du CV) — essai en cours
anthropic Retour à Claude Haiku / Sonnet, comme avant

La lecture du CV en PDF (/api/profile) reste sur Claude dans les deux cas : DeepSeek ne sait pas lire un PDF envoyé en pièce jointe. ANTHROPIC_API_KEY reste donc nécessaire.

Développement local

Les routes /api ont besoin d'un runtime serverless : un simple serveur de fichiers statiques ne suffit pas, l'interface se chargera mais tous les appels API renverront 404.

npm i -g vercel
vercel dev

vercel dev récupère les variables d'environnement du projet lié et exécute les fonctions localement sur http://localhost:3000.

Structure

index.html      interface
app.js          état, traductions FR/EN, rendu, enchaînement des appels
styles.css      thème « rapport d'analyse » (fond graphite, rampe de mesure unique)
api/
  _claude.js    helpers partagés (appel Anthropic ou DeepSeek, parsing JSON, langue)
  search.js     agrégation France Travail + Adzuna + Meteojob
  profile.js    CV PDF -> profil + expériences structurées   (Claude Haiku, toujours)
  match.js      notation des offres selon le profil          (rapide)
  letter.js     brouillon de lettre de motivation            (rapide)
  tailor.js     adaptation du CV à une offre, en 3 étapes    (rapide + soigné)

Adaptation du CV — les 3 étapes

Le bouton « Adapter mon CV » enchaîne trois appels distincts, avec affichage progressif :

  1. Regard du recruteur — le modèle joue un recruteur senior de l'entreprise de l'offre et renvoie les 5 mots-clés manquants et les 3 signaux d'alerte repérables en 10 secondes.
  2. Réécriture XYZ — les expériences sont réécrites selon la formule de Google (« Accompli X, mesuré par Y, en faisant Z »), en intégrant les mots-clés et en supprimant les signaux d'alerte. C'est l'étape confiée au modèle le plus soigné, là où la qualité rédactionnelle compte.
  3. Filtre ATS — le modèle joue un ATS et un recruteur qui lit 200 CV d'affilée : score, verdict, passages qui seraient ignorés, réécritures qui accrochent.

Le résultat s'affiche en comparatif avant / après. Le modèle a interdiction d'inventer un fait absent du CV : les chiffres qu'il ne connaît pas apparaissent comme [à chiffrer], à remplir soi-même.

Un résultat est mis en cache par offre : re-cliquer ne relance aucun appel. Coût indicatif : environ 0,04 € par adaptation.

Confidentialité

Le PDF du CV n'est stocké nulle part. Il est transmis une seule fois à l'API Claude (jamais à DeepSeek) pour en extraire un profil et les expériences, puis oublié côté serveur. Le profil extrait reste uniquement dans le navigateur de l'utilisateur (localStorage) et s'efface via « Oublier mon CV ».

About

CRIBLE — trois sources d'offres d'emploi (France Travail, Adzuna, Meteojob) et ton CV en guise de filtre : chaque offre est notee contre ton profil, avec brouillon de lettre et adaptation du CV a l'offre.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages