Tenon
Tenon is a job-hunting app. It finds roles that fit what a person is looking for, uses an agent to read them against their experience, and helps them work out how to approach the ones worth pursuing. I began building it around my own job hunt and use it for every role I pursue.
Product
Tenon starts with what the job seeker wants and what they have done. It scans the companies and sources relevant to their search, checks new vacancies against their criteria, and puts the strongest matches first. Every scan also checks whether roles it has already found are still being advertised.
Each role is read in two stages. Tenon first describes the vacancy on its own terms, without seeing the job seeker's profile, then compares its requirements with the person's experience. The fit read shows where the match is strong, where it is weaker, and the profile evidence behind the judgement. For roles worth pursuing, that same read becomes practical coaching: arguments to make, experience worth reframing, and genuine gaps to get ahead of.
Problem
Applications per vacancy across more than 6,000 Greenhouse customers increased from 116 in 2022 to 244 in 2025 (Greenhouse, 2026). AI is not the only reason for that increase, but it has made a plausible, polished application much cheaper to produce. In a separate survey of more than 2,000 US hiring managers, 67% said reviewing AI-generated applications had slowed hiring and 65% said increased volume made candidates' skills harder to verify (Robert Half, 2026).
Most job-hunting AI is applied at the end of the process: writing a CV, producing a cover letter or completing an application more quickly. Tenon asks the earlier question: which roles are worth pursuing, and why?
Design system
Tenon's agent returns structured content, not layouts or styling. The interface has a fixed vocabulary for fit reads, evidence, proposals, reviews and working states. Components decide how those things look and behave; the agent supplies their content. Every output is validated before it reaches the interface, and an answer that does not match the expected shape is rejected rather than partially rendered or quietly repaired.
This keeps layout, hierarchy, interaction and accessibility as product decisions even when the model or prompts change. Google's A2UI and Vercel's json-render later described the same broad separation: the model supplies structured content from a controlled vocabulary; the application controls its presentation. Tenon arrived at the pattern independently, with a smaller vocabulary designed around one product.
Trust
Tenon does not ask the agent to score its own confidence. LLM confidence is systematically miscalibrated (Xiong et al., 2025), and in controlled tests showing a confidence percentage was the least effective of three interventions for helping people calibrate their trust in an agent (CHI 2025). Instead, Tenon shows the basis of the judgement.
The role description distinguishes what was stated in the vacancy from what had to be inferred. The fit read links its assessment to evidence from the job seeker's profile. Thin source material is labelled as thin, an incomplete reading is not presented as a poor fit, and an outdated reading is kept as history rather than passed off as current. Continuous values help Tenon order the feed; the interface uses words such as covered, partly covered and not covered alongside the evidence needed to understand them.
Build
Tenon is being designed and built with Claude Code and Cowork. The project spans the job-source integrations, scan and feed, profile and criteria, fit reads, role-specific coaching, the application interface and the design system that holds them together. The scan-to-feed pipeline, fit reads and approach composition run against real vacancies, stored data and real agent calls. The application interface is still being completed; tailored CV and portfolio materials are a later part of the product and are not built yet.