Guide, technical PM
AI-native PM portfolio guide
Your portfolio should do the job you say you can do. If you claim to build AI products, your portfolio should be one. This is a walkthrough of the site you are reading now, built around a grounded agent that answers recruiter questions from real case studies.
Why static portfolios lose
A PDF forces the reader to scan for the thing they care about. Hiring managers do not read linearly. They ask specific questions. Has this person shipped agentic AI in production. Does the work survive governance. Can they operate at platform scale. A static artifact cannot answer a question. An agent grounded on your own case studies can.
The bar for a PM portfolio in 2026 is not visual polish. It is whether the artifact demonstrates the exact skill it is selling.
The five moves
- Write case studies answer-first. Lead with the outcome, then the constraint, then the trade-off. Move process to the end. If the first sentence is not the punchline, rewrite it.
- Consolidate into a typed corpus. Every case becomes a structured record with slug, title, role, outcome, decisions, and stack. Factual claims, not marketing prose.
- Wire a grounded RAG endpoint. One server function. Strict system prompt. Never invents metrics. Cites case URLs. Refuses off-topic.
- Harden it. Delimit user input as untrusted. Run heuristic filters for known jailbreaks. Rate-limit by IP. Cap length. Log what breaks.
- Instrument and iterate. Track the questions recruiters ask, the refusals, the drop-offs. That log is the next round of case-study edits.
The centerpiece, Ask my portfolio
The Ask page on this site is a small server function. It takes a natural-language question, retrieves against a single corpus of case content, and returns an answer with case links. No vector database. No framework. Just a strict system prompt and Gemini Flash behind a TanStack server function.
What makes it a portfolio piece, not a toy:
- Grounded. The system prompt forbids the model from answering anything outside the corpus. If it does not know, it says so and names a related case.
- Cited. Every claim links back to a case URL. Same discipline you would apply to a customer-facing agent in a regulated domain.
- Injection-resistant. User input is wrapped in explicit delimiters. Instructions inside the input are treated as data. A heuristic filter catches the common jailbreak patterns before the model runs.
- Rate-limited. An in-memory token bucket per IP blocks abuse without pulling in Redis for a personal site. Right sized for the problem.
- Length-capped. A hard 180-word limit forces the answer to lead with the verdict. Same rule I apply to my written case studies.
The stack, briefly
TanStack Start for routing and server functions. Tailwind for styling. Supabase for auth on the admin surface and for analytics capture. Gemini Flash for the Ask endpoint. Everything else is plain TypeScript. No LangChain, no orchestration layer. A portfolio does not need infrastructure it cannot justify.
What to steal
- Write case studies as answers, not narratives.
- Ship one grounded agent instead of ten unread pages.
- Treat every user input as untrusted, even on a personal site.
- Cite everything. If a claim is not in the corpus, do not ship it.
- Measure what recruiters ask, then rewrite the corpus.
Common questions
What is a product manager portfolio?
A collection of case studies showing what you shipped, the problem you were solving, the trade-offs you made, and the outcome. Most PMs put this in a PDF or a Notion doc. The stronger version is a live site that lets a recruiter jump straight to the case that answers their question.
How is an AI PM portfolio different from a static one?
If you are pitching yourself as an AI product manager, the portfolio should be an AI product. Add a grounded agent that answers questions about your work, cites the source case, and refuses anything outside its corpus. Now the artifact does the job it claims you can do.
Do you need a vector database to build a RAG portfolio?
No. A personal portfolio has maybe fifty pages of source content. That fits in a single prompt. Skip the vector store, ship a strict system prompt with the whole corpus inlined, and move on. You can add retrieval later if the corpus grows past a model's context window.
How do you stop the agent from making things up?
Three rules. First, the system prompt forbids answers outside the corpus, and the model has to name the case it is citing. Second, user input is wrapped in delimiters and treated as data, never as instructions. Third, a heuristic filter catches common jailbreak patterns before the model sees them.
How long does it take to build?
Rewriting the case studies takes the longest. The RAG endpoint itself is one server function and a system prompt, half a day of work. Hardening (rate limiting, input filtering, length caps) is another half day. The rest is design polish and shipping.
Try it
The fastest way to evaluate this approach is to use it. Ask the agent something specific about the work, then read the case it points you to.