A model reads my work before any person does, and I had no say in what it concluded from a frozen PDF. I couldn't change that a machine reads first. I could change what I put in front of it. So I did — and here's the build.

The shape of it

A small backend exposes a profile as an API — GET /info, POST /query (grounded answers + sources), POST /match (fit score), POST /resume (tailored). It also speaks agent: an MCP endpoint and an A2A agent-card for machine callers.

A web front (React + a tiny Hono server) renders it as a conversation for people, and as JSON-LD + llms.txt + a crawlable <noscript> for machines — so a non-JS fetch isn't an empty shell.

Nothing hardcodes me. Identity comes from /info. Fork the front, point two env vars at your backend, and it's yours. Both repos are MIT.