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.
Why I bothered
I'd rather be queryable and checkable than impressively static. The whole thing is grounded — ask it "what's the evidence?" and it answers with commit counts, tests, and live endpoints; the dated reasoning is browsable too. (The resume-agent repo links to a live instance if you want to poke it.)
If you want to build one
The smallest version is about ten minutes — fork the front, point it at any backend (even a stub /info), and deploy. That's a real, queryable node. If you stand one up, I'd genuinely like to see it. You don't have to agree with where I think this goes; a working node is its own statement.
This is the candidate side of a two-sided thing — an open protocol for hiring. The employer-side reference and the spec are open too, if the architecture pulls you further.
The repos
- resume-agent — the candidate-side backend, the profile-as-API. Links to a live instance for a demo: https://github.com/yuens1002/resume-agent
- resume-agent-web — the forkable web front: https://github.com/yuens1002/resume-agent-web
- open-employment-protocol — the reconciler that sits between the two sides: https://github.com/yuens1002/open-employment-protocol
- employer-agent — the employer side, scaffolded as a call to build: https://github.com/yuens1002/employer-agent
Built with a lot of AI help, deliberately unnamed — it wasn't one tool, it was the compounded work of everything that came before mine. Which is the kind of AI I'm building on: something you extend and pass forward.
Top comments (4)
Similar drop in this niche, but for a semantic JSON-LD overlay to support existing docs.
github.com/Hello-GregKulp/resume-ld
Love your idea here!
@hello_gregkulp thanks for sharing your repo. i take it the id part is just a tool along the chain. what's your resume pipeline like?
pipeline would be disingenuine ~ it's a local tool to add JSON-LD semantics overlay to support context of an existing resume.
Would definitely like to hear more about yours
authenticity (trust) and the truth be told in code:
Identity — Your deployed instance is tied to your domain via DNS fingerprint + Ed25519 key (OEP Phase 1). A fork at a different domain can't reproduce your proof. Verifiable by anyone: npx tsx scripts/verify-oep-domain.ts your-domain.com. Full chain: Fork the code. Your identity is yours.
Trust — The agent card, public key, and verification scripts are independently auditable. No third party required — verifiers run the scripts themselves against your domain and either get a cryptographic PASS or they don't. Full chain: Fork the code. Your identity is yours.
Truth — Every factual claim is cited inline and grounded in data you publish. The agent declines rather than fabricates, and a deterministic eval harness enforces this — run npm run eval:query and watch it pass or fail case-by-case. Full spec: Truth contract — we walk the talk