tenon.alanlong.design

Tenon reads job adverts with you, and shows its working.

Give your AI assistant a job advert and ask whether it fits you. With Tenon connected, the assistant reads the advert into a fixed shape (what the role asks for, what it offers), marking each item as observed in the advert or inferred from it, and quoting the advert for the observed ones; Tenon checks that every quotation it claims really is in the advert, word for word, and that the shape holds. Then the assistant scores how your experience covers each requirement, quoting your own words for any coverage it claims, and Tenon checks those quotations the same way and does the arithmetic. Nothing is stored. Tenon contains no AI model of its own. What it guarantees is narrow and useful: a quotation that is not really there is thrown out, and the numbers add up. Whether the assistant read the whole advert, or judged well, or inferred sensibly, is still for you to check, which is why it shows you the description before it scores anything.

Connect it

Tenon is a remote MCP server. There is no account and no key.

https://tenon.alanlong.design/mcp

Then, in a conversation: "Here's a job ad [link or pasted text]. Is it a good fit for me? Here's my CV: [paste]. Use Tenon."

What it does

ToolWhat it does
tenon_validate_descriptionTakes the advert and the assistant's description of the role. Returns the description with stable keys, or the exact items it dropped and the rule each broke (a claimed quotation that is not in the advert, a duplicate key, a weight out of range).
tenon_assess_fitTakes your statements and preferences and the assistant's fit read. Every requirement needs a quotation of at most twelve words from one of your statements; anything unsupported is rejected. Returns feasibility, desirability, and a rank, and a repair note if the read needs another pass.
tenon_gate_roleTakes the countries you can work in and, optionally, title phrases and a salary floor. Returns whether the role is workable, needs sponsorship, or excludes you, with the advert clause that decided it, and pass, fail, or unconfirmed on each gate.

The assistant is asked to show you the validated description and wait for your say-so before anything about you is used. Prompts named tenon, tenon_describe_role and tenon_assess_fit walk that sequence in hosts that offer prompts; the tools work without them.

Who Tenon is for

Tenon is for you, the candidate, working out whether a role fits before you apply. It is not for employers or agencies, and the terms say so. Nothing you send is kept, and there is no model inside Tenon: the reading and the judgement are your own assistant's. The privacy notice has the detail.

What it keeps

Nothing of what you send. Requests are answered from memory and discarded; Tenon's own record is a one-line log per request (which tool, how it went, sizes and status codes, no content) that expires in three days, plus daily counts. Cloudflare, which hosts it, keeps short-lived connection records as any host does. Exactly what and for how long is in the privacy notice.

Limits worth knowing

Contracts and hints, for the curious

The server publishes what it checks as MCP resources: tenon://contract/description, tenon://contract/fit, tenon://schema/state (what your assistant holds between calls, in your name), and tenon://sources/hints (public job feeds it can read cleanly). The code is part of the Tenon project by Alan Long.

Support

tenon.alanlong.design/support, or hello@alanlong.design.