À propos du projet

job-workbench est un établi local et auditable pour gérer l'intégralité d'une recherche d'emploi, de l'analyse de la description de poste (JD) aux décisions d'offre, en utilisant des fichiers Markdown et CSV simples sur votre propre disque et votre propre outil AI en ligne de commande. Il est écrit en Python et publié sous licence MIT. Le projet considère que la réelle difficulté de la recherche d'emploi réside dans l'éparpillement des informations qui bloquent les décisions : savoir si une entreprise vaut la peine d'être sollicitée, quelle version du CV a été envoyée où, et combien de candidatures sont en cours avec des échéances proches. L'établi transforme ce matériel en fichiers interrogeables et traçables. Trois principes guident la conception. Premièrement, la confidentialité local-first : tout réside sur le disque sous forme de texte brut compatible avec git-diff et les tableurs, sans télémétrie ni serveur. Les données personnelles réelles appartiennent à un répertoire personnel exclu du contrôle de version, de sorte qu'un nouveau clone démarre vide et que le dépôt lui-même ne contient aucune donnée réelle. Deuxièmement, une IA auditable plutôt qu'une automatisation boîte noire : votre propre CLI AI effectue des jugements sémantiques, comme la lecture d'une description de poste et l'évaluation de l'adéquation, tandis que des scripts Python gèrent le travail déterministe tel que les filtres d'éligibilité, la validation des scores, la génération de PDF et les entrées/sorties du tracker. Les verdicts automatisés, y compris la santé de la candidature, les diffs d'importation CSV et le regroupement des échecs, sont accompagnés de raisons explicites vérifiables par l'humain plutôt que d'un simple score. Troisièmement, des protections anti-fabrication : l'importation de CV est décrite comme une extraction plutôt qu'une génération, chaque valeur persistée doit être traçable jusqu'au texte source, les champs non extraits sont signalés, et les suggestions de réécriture par l'IA doivent passer cinq contrôles anti-fabrication locaux avant acceptation. Fonctionnellement, l'outil propose quatre flux de travail en ligne de commande couvrant l'analyse et le scoring des descriptions de poste, la préparation des dossiers de candidature, la gestion du tracker et de l'entonnoir, et la reconstruction de CV avec validation. Une interface Web fournit sept pages partageant les mêmes fichiers de données : tableau de bord, tracker, un atelier de CV avec import en un clic, réécriture IA sécurisée et export Word, une page de progression contenant une banque de questions d'entretien, des rétrospectives, une bibliothèque et des paramètres. Une boucle post-candidature prend en charge les comptes rendus d'entretien avec export calendrier en un clic, les suivis de contacts recruteurs, la comparaison d'offres présentée sous forme de faits côte à côte sans recommandation, la lignée des versions de CV, les rétrospectives de conversion d'étape, le regroupement des échecs et la santé de la candidature exprimée en quatre états, chacun avec des raisons concrètes. Le scoring suit un cadre en deux étapes : un filtre d'éligibilité couvrant le diplôme, la spécialité, la promotion, la langue et la ville, où tout échec signifie qu'aucun scoring n'a lieu, suivi de quatre dimensions pondérées produisant un verdict à cinq niveaux. La modification des règles de scoring se fait en éditant des profils Markdown plutôt que du code. L'architecture est décrite comme une dépendance unidirectionnelle à quatre couches allant des compétences du domaine aux scripts, puis aux données et au contrôle de version, avec une séparation à trois couches entre l'outillage agnostique du domaine, les profils de domaine pluggables et l'espace de travail utilisateur. Le démarrage nécessite Python 3.8 ou ultérieur en utilisant uniquement la bibliothèque standard, avec une bibliothèque PDF optionnelle pour la validation et Chrome ou Edge pour la génération de PDF. Un script d'initialisation crée un espace de travail avec six modules, des modèles de profil et un plugin de domaine ; un second script distribue les compétences aux runtimes AI supportés. Les utilisateurs remplissent ensuite un fichier de configuration d'agent dont la section des faits d'éligibilité stricts est requise, car le filtre de description de poste refuse délibérément de deviner, puis interagissent avec leur CLI AI en langage naturel. Une application de bureau Windows packagée est disponible sur la page des releases pour les utilisateurs sans Python ou Node, stockant les données dans le dossier de données d'application local. Le dépôt inclut des tests servant de passerelle d'intégration continue, un guide d'utilisation, des documents de conception, une feuille de route et des directives de contribution. L'interface utilisateur est actuellement prioritairement en chinois, avec une interface anglaise prévue dans la feuille de route.