This site's copilot
A retrieval-grounded assistant that answers questions about my work with citations — and a designed failure mode.
Client
This portfolio (yes, the site you're reading)
Role
Solo builder
Timeframe
2026 — evolving with the site
Stack
Next.js · Vercel Functions · Gemini API · Keyword + content retrieval
01 — Situation
A recruiter's core questions — 'has he shipped RAG?', 'what production experience does he have?' — are answerable from this site's content, but nobody reads a portfolio end to end. The copilot answers those questions directly and cites the engagement pages it drew from.
It is also deliberately a meta-artifact: the case study you're reading documents the same class of system I build for clients.
02 — Constraints
- !A dead chatbot is worse than no chatbot: the system needed a graceful degradation path for when no model API key or budget is available.
- !Answers must be grounded in site content only — a portfolio assistant that hallucinates experience would be professionally fatal.
- !Serverless-friendly: no vector database to keep warm on a free-tier deployment.
03 — Stakeholders
Recruiters and hiring managers
Fast, trustworthy answers about my experience
Me
A live demonstration of grounded-assistant design, not just a claim about it
04 — Architecture
- 01Site content (deployments, case studies, career record) is compiled into a retrieval corpus at build time.
- 02A scoring retriever selects the most relevant chunks for each question.
- 03If a Gemini API key is configured, retrieved context is passed to Gemini with instructions to answer only from that context and cite sources.
- 04If no key is configured or the call fails, the endpoint degrades to retrieval-only mode: it returns the most relevant content excerpts with links, clearly labelled — the assistant never pretends.
05 — What shipped
- ✓Copilot endpoint and chat interface with source citations.
- ✓Retrieval-only fallback mode, live by default.
06 — Outcomes
2
operating modes: grounded LLM + retrieval fallback
100%
of answers linked to on-site sources
0
external databases required
07 — Retro: what I'd do differently
Designing the failure mode first changed the architecture: retrieval had to be good enough to stand alone, which made the LLM mode better too.
Planned next: an eval set of realistic recruiter questions, scored for faithfulness — the same discipline I'd bring to a client's assistant.
Questions about this engagement?
Ask the copilot →