The Page Is the Answer
Most portfolios are static. You land on one, scroll past a hero, scroll past projects, scroll past a contact card. Every visitor gets the same page in the same order.
That's always felt wrong to me. The answer to "who is this person" depends on who's asking. A recruiter wants the patent and the metrics. A founding-team CEO wants to see how I think about agent infrastructure. A friend wants what I've been writing about. Same person, different shape per visitor.
So I built ai.sayantan.sh. You type a question, and the page renders the answer.
How it works
Each question goes to an LLM. The system prompt has two parts: my knowledge base (markdown I edit by hand) and a Zod-typed catalog of about a dozen components. The catalog includes ProfileBlock, CareerTimeline, ProjectGrid, LeadershipStories, PersonalNote, and a few others.
The model emits a JSONL spec describing which components to render and what props to pass. A streaming parser turns that spec into React as it arrives.
livecv, a generative UI framework
The catalog, the system prompt builder, the streaming loop. None of that is actually site-specific. So I packaged the whole pattern as livecv (npm): a generative UI framework for personal portfolios.
Define your own knowledge base, drop in your typed identity + career + projects, and you get a working live persona portfolio. The whole user surface is four files. A companion skill scaffolds the project from a resume PDF in one command.
Source: github.com/sayantan94/livecv.
If your portfolio still looks the same to a recruiter as it does to a friend, you're leaving signal on the table.