About this project

job-workbench is a local-first, auditable workbench for running an entire job search, from job-description analysis to offer decisions, using plain Markdown and CSV files on your own disk and your own AI command-line tool. It is written in Python and released under the MIT license. The project frames the real difficulty of job hunting as scattered information that blocks decisions: whether a company is worth applying to, which resume version was sent where, and how many applications are in flight with deadlines approaching. The workbench turns that material into queryable, traceable files. Three principles guide the design. First, local-first privacy: everything lives on disk as plain text that is git-diffable and spreadsheet-friendly, with no telemetry and no server. Real personal data belongs in a personal directory that is excluded from version control, so a fresh clone starts empty and the repository itself ships no real data. Second, auditable AI rather than black-box automation: your own AI CLI performs semantic judgment such as reading a job description and scoring fit, while Python scripts handle deterministic work such as eligibility gates, score validation, PDF generation and tracker input and output. Automated verdicts, including application health, CSV import diffs and failure clustering, come with explicit human-checkable reasons rather than a bare score. Third, anti-fabrication safeguards: resume import is described as extraction rather than generation, every persisted value must trace back to source text, unextracted fields are flagged, and AI rewrite suggestions must pass five local anti-fabrication checks before acceptance. Functionally, the tool offers four command-line workflows covering job-description parsing and scoring, application packaging, tracker and funnel management, and resume reconstruction with validation. A Web UI provides seven pages that share the same data files: dashboard, tracker, a resume workshop with one-click import, guarded AI rewrite and Word export, a progress page holding an interview question bank, retrospectives, a library and settings. A post-application loop supports interview records with one-click calendar export, recruiter contact follow-ups, offer comparison presented as side-by-side facts without a recommendation, resume version lineage, stage-conversion retrospectives, failure clustering, and application health expressed in four states, each with concrete reasons. Scoring follows a two-stage framework: an eligibility gate covering degree, major, cohort, language and city, where any failure means no scoring takes place, followed by four weighted dimensions producing a five-tier verdict. Changing scoring rules is done by editing Markdown profiles rather than code. The architecture is described as a four-layer one-way dependency from domain skills to scripts to data to version control, with a three-layer separation between domain-agnostic tooling, pluggable domain profiles and the user workspace. Getting started requires Python 3.8 or later using only the standard library, with an optional PDF library for validation and Chrome or Edge for PDF generation. An initialization script creates a workspace with six modules, profile templates and a domain plugin; a second script distributes skills to supported AI runtimes. Users then fill in an agent configuration file whose hard eligibility facts section is required, since the job-description gate deliberately refuses to guess, and then interact with their AI CLI in natural language. A packaged Windows desktop application is available from the releases page for users without Python or Node, storing data in the local application data folder. The repository includes tests that act as the continuous integration gate, a usage guide, design documents, a roadmap and contribution guidelines. The user interface is currently Chinese-first, with an English interface listed on the roadmap.