Sebastián Balderas — Home
PORTFOLIO ASSISTANTSenior UX/UI Engineer · Personal product

Governed Portfolio Assistant – sebastianbalderas.com

A working assistant recruiters use instead of a contact form — designed, built, deployed and tested end to end on my own.

There is no contact form on this site. The assistant is the way in: a recruiter asks it questions or pastes a job description, and it answers from my real source material — including where I don't fit.

Sebastián's Assistant on the home page of sebastianbalderas.com: a Senior Product Designer job description is typed in, and the answer comes back in blocks — documented fit with its sources, a requirement that isn't documented, and a next step.

The problem

A recruiter has a few seconds and a job description. They need an honest answer on fit, not a sales pitch — and a portfolio that only argues for itself can't give one.

What it does

Routes by intent

When a question is about a specific page — a case study, Services, About or the Storybook — it can open that page. The destination comes from a fixed list: the server sends a key, never a URL.

Maps a job description

Paste a posting and it answers requirement by requirement, in three blocks: documented fit, each line tied to the source it comes from; what isn't documented, to confirm with me directly; and what only exists on this portfolio.

Hands over contact

It gives the email and the booking link itself. It is the contact surface, not a widget on top of one.

Answers by voice

Typed or spoken questions, in English and Spanish.

Boundaries

It says what doesn't fit

A requirement the sources don't document is listed as not documented — never quietly dropped, never stretched to look like a match.

It doesn't inflate my profile

Metrics that aren't safe to cite are fenced off in the source itself, and a figure is never moved onto a claim it doesn't belong to.

It speaks as my assistant, not as me

My source material is written in first person, so every retrieved passage is wrapped with who wrote it before it reaches the model.

It holds for any role

An architect's or an electrician's job description gets the same treatment as a design role: what fits, what doesn't, and nothing invented to close the gap.

How I evaluated it

I ran real job descriptions through the live assistant and read every answer in full. Two kinds: control postings far outside my profile — an architect and an electrician — where any match would be invented, and real postings close to it, where the risk is stretching a near-match into a fit.

For each run I counted documented fits and requirements listed as not documented, checked that no requirement disappeared, looked for leaked instructions, and measured the tokens each answer costs.

Job descriptionDocumented fitNot documented
Licensed ArchitectControl: outside my profile04
Journeyman ElectricianControl: outside my profile05
Senior Product Designer, B2B SaaSClose to my profile81
UI/UX Designer, AI startupClose to my profile815
Senior Product Designer, climate nonprofitClose to my profile108
A posting in SpanishClose to my profile61

No false fits and no leaked instructions in any run. Every requirement comes back either as a fit or as not documented — none is dropped.

The rules that have to hold every time don't live in the prompt: the code that assembles the answer enforces them. Against the previous version, that step moved between −1.2% and +4.8% in tokens — inside the +15% budget my tests enforce — and the ~12.4k-token source selector is served 99% from cache.

Limits: no posting I tested asked for team size, so that case is still unproven — and I haven't yet checked it on a real phone.

Evidence in Storybook

The interface behind those boundaries is documented as working components: what the assistant shows when it is unsure, when something fails, and where an answer came from.

Why it matters

On the home page I sequence AI adoption across three levels — L1, L2 and L3 — and deciding where to stop is the design work. This assistant applies that rule to my own product: it acts only inside a narrow, bounded decision surface — opening a page from a fixed list, assembling an answer from documented sources — and it says when it shouldn't act.

When I reviewed them in August 2026, IBM Carbon, AWS Cloudscape, Atlassian Rovo and GitLab Pajamas all documented AI patterns. All four were missing the same thing: uncertainty, hallucination risk, the limits of confidence. The Uncertainty and Provenance sections of my Storybook are built to fill that gap.

Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Design tokens mapped to code
  • Retrieval routing and guardrails

Try it

See the Storybook