finds.dev← search

// the find

santifer/cv-santiago

★ 850 · HTML · updated Oct 2026

Interactive CV with AI chat integration. Built with React 19, TypeScript, Claude API. Chat with my AI avatar about my experience.

A single-person interactive CV/portfolio site (React 19 + Vite) with a Claude-powered chat avatar backed by RAG over the author's own case studies, plus voice mode via OpenAI's Realtime API. It's really a showcase of LLMOps practices (tracing, evals, cost tracking) wrapped around a personal website, aimed at developers who want a reference for building an observable, tested chatbot rather than at anyone looking for a CV template.

The RAG pipeline is a sensible cheap/expensive split: Sonnet decides whether to search, pgvector+BM25 hybrid retrieval runs, and Haiku does reranking and diversification instead of burning the bigger model on that step. The closed-loop idea (Langfuse quality score below 0.7 on a production trace auto-generates a regression test that gates CI) is a real, non-trivial piece of engineering, not just a buzzword. Evals and adversarial red-teaming actually run in GitHub Actions on every push rather than being a claim in the README with no CI wiring.

It's hardcoded to one person's identity, voice, and content — reusing this for anyone else means rewriting the persona, RAG corpus, and case studies, not just swapping config. The repo ships a lot of non-code weight: multiple `.seo-audit*` folders of markdown reports and a `.playwright-mcp` directory full of screenshots and page dumps are committed straight into history. The '6-layer defense' and '71 evals' framing reads like landing-page copy for what's mostly standard prompt-injection mitigations (keyword/canary/fingerprint checks) — the evals test chatbot behavior and dashboard contracts, not the correctness of the application code itself. The `/ops` dashboard auth is a single shared password (`OPS_DASHBOARD_SECRET`), which is fine for a solo project but worth flagging before anyone copies the pattern somewhere with multiple users.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →