An open API service indexing awesome lists of open source software.

https://github.com/brianruggieri/candidate-eval

Evidence-backed job fit assessments from your resume and local git repos. Chrome extension for real-time job board grading, interactive dashboard, cover letter generation, and proof packages. Privacy-first — all processing stays local.
https://github.com/brianruggieri/candidate-eval

career-tools chrome-extension claude-code cli cover-letter-generator dashboard fastapi git-analysis job-matching job-search pii-scrubbing privacy-first pydantic python resume-parser skill-assessment

Last synced: 7 days ago
JSON representation

Evidence-backed job fit assessments from your resume and local git repos. Chrome extension for real-time job board grading, interactive dashboard, cover letter generation, and proof packages. Privacy-first — all processing stays local.

Awesome Lists containing this project

README

          

# claude-candidate

> Everyone uses AI to polish their resume. I built one that watches me work — and scores the results against real job postings.

A pipeline that turns development session logs and resume data into evidence-backed job fit assessments.

**Privacy note:** Session logs and resume data are processed locally. Job posting extraction calls Claude CLI, which reaches Anthropic's API — posting text is sent as a prompt; raw session logs and resume files are not sent. Generation commands (reports, deliverables) may include derived assessment summaries in prompts.

---

## What It Does

- **Extracts skills from real work** — Scans Claude Code development sessions, identifies skills and behavioral patterns, and links every claim to specific session evidence. Not self-reported; observed.
- **Matches against real job postings** — Parses job requirements, scores fit across skills, domain, and culture signals, and produces a letter grade with evidence-linked explanations.
- **Runs as a browser extension** — Chrome extension assesses job postings in real-time from any job board via a local FastAPI server.

---

## The Self-Referential Property

The session logs from *building this tool* are part of the profile it uses to evaluate its builder. Every architectural decision, debugging strategy, and test you see in this repo is also data the tool has scored against real job postings.

---

## How It Works

```
Session Logs (JSONL) ──→ Sanitizer ──→ Extractor ──→ CandidateProfile ──┐
Resume (PDF/DOCX) ──→ Resume Parser ──────────────→ ResumeProfile ────┤

MergedEvidenceProfile

Job Posting ──→ Requirement Parser ──→ QuickRequirements ──→ Scorer ──→ FitAssessment
```

- **Dual evidence model** — Skills sourced from sessions, resume, or both. Corroborated skills (both sources agree) rank higher.
- **Provenance tracking** — Every skill claim is tagged: `corroborated`, `sessions_only`, or `resume_only`. No unattributed assertions.
- **PII scrubbing** — Two-layer pipeline: session logs are scrubbed on ingestion (emails, phones, API keys, paths); deliverable output is additionally scrubbed via DataFog before leaving the tool. Person-name detection uses honorific-anchored heuristics unless `datafog[nlp]` is installed.

Full architecture, trust model, and roadmap: [ARCHITECTURE.md](ARCHITECTURE.md)

---

## By the Numbers

| Metric | Value |
|--------|-------|
| Test coverage | Full unit + integration with fast/slow tiering |
| Benchmark accuracy | 47/47 postings within 1 grade |
| Canonical skills in taxonomy | 104 |
| Sessions scanned (author) | 2,300+ |

---

## Tech Stack

Python 3.11+ · Pydantic v2 · FastAPI · Click · aiosqlite · rapidfuzz · pytest + Hypothesis
Chrome Extension (Manifest V3) · DataFog for PII scrubbing

---

## Quick Start

```bash
pip install -e . # requires Python 3.11+

# Onboard from a resume
claude-candidate resume onboard path/to/resume.pdf

# Extract skills from Claude Code session logs
claude-candidate sessions scan
# → saves profile to ~/.claude-candidate/candidate_profile.json

# Score against a job posting
claude-candidate assess \
--profile ~/.claude-candidate/candidate_profile.json \
--job posting.txt \
--company "Acme Corp" \
--title "Senior AI Engineer"
```

For the daily-driver workflow: run `claude-candidate server start` and use the Chrome extension to assess job postings in-browser.

---

## Project Status

**v0.8.2** — Core pipeline stable. Dual evidence model (resume + repos), 104-skill taxonomy with fuzzy matching, eligibility gates, confidence scoring, and Chrome extension for real-time assessment.

The repo is the deliverable.

---

## License

MIT