Interface
- React
- Web Speech API
05 — Evidence-grounded portfolio assistant
A local evidence-retrieval assistant that answers from published portfolio content, cites its sources, supports recruiter and project briefs, and refuses unsupported claims.
Live on this portfolio

Product design, retrieval architecture, frontend engineering, evaluation, privacy, and accessibility
Web · Browser AI
React · JavaScript · Web Workers · Session Storage · Web Speech API · jsPDF · Vercel Analytics
Technology topology
04 layersInterface
Retrieval
State
Output & telemetry
System relationships · no usage percentages
The challenge
A portfolio assistant must be useful without inventing experience, exposing private data, or making visitors search through every page. It also has to stay responsive on mobile while explaining exactly which published evidence supports each answer.
The approach
I built a deterministic retrieval layer over the portfolio’s projects, experience, capabilities, engineering notes, and curated topics. CRAX-E ranks local evidence, returns an answer with sources and confidence, and runs the search in a Web Worker with a main-thread fallback.
Key decisions
Used local evidence retrieval instead of a remote language-model call so answers remain inspectable and bounded by the published portfolio.
Returned sources, confidence, intent, follow-up questions, and actions as one response contract rather than presenting unsupported prose as fact.
Moved retrieval into a Web Worker and retained a timed main-thread fallback so the interface remains usable when workers are unavailable.
Kept bounded conversation history in session storage and excluded raw question text from product analytics events.
System architecture
Projects, experience, capabilities, engineering notes, and curated topic summaries form the only answerable knowledge set.
Normalization, aliases, semantic concepts, typo tolerance, topic priority, and project scoring select the strongest local evidence.
Every result carries an answer, evidence links, excerpts, confidence, intent, suggested actions, and follow-up questions.
A Web Worker performs retrieval off the main thread. A timed fallback keeps the assistant available if worker startup fails.
Evaluation
A fixed regression suite exercises grounding, project discovery, typo tolerance, conversational context, comparisons, security refusals, multilingual routing, recruiter analysis, and project-brief generation.
Evidence boundaryThis is a repeatable product regression suite, not a claim of benchmark-level semantic accuracy or open-domain intelligence.
Privacy choices
Failure cases

08 — Outcome