How the agreed terms get captured
The capture step decides whether this system gets used at 11:40 on the day or at 9am three days later, which is the entire difference between it working and not. So there are two lanes, and the second one exists purely because some people will always forward an email rather than fill in a form.
Key takeaways
- Nine fields, chosen because they are what actually varies between offers.
- The note lane accepts a forwarded email and produces the same nine fields to confirm.
- Salary, start date and role are never inferred from a previous offer or a job advert.
- Every field the reader filled from a note is shown differently from one that was typed.
- A confirmed set of terms is immutable; a change produces a new version.
Nine fields
candidate Kwame Osei name as it goes on the letter
role Field service engineer the title, exactly
basis salaried | hourly | fixed_term
pay 38000 per year, or per hour
hours 37.5 per week
start_date 2026-08-28
probation 3 months from the clause library’s options
notice 1 month likewise
extras car allowance zero or more library clauses
Nine because that is what genuinely varies. Everything else in an offer letter — holiday, pension, place of work, the pre-employment conditions — is either identical across offers or determined by the basis, and putting it on the form makes the form long enough that people go back to writing letters by hand.
Two lanes
- App integration
- Machine learning
- Analytics
- Front-end & mobile
The confirmation screen
Whichever lane was used, the nine fields are shown before anything is drafted, and fields the reader inferred are visually distinct from fields somebody typed. That distinction matters: a person scanning a confirmation screen will read a highlighted field and skim a plain one, and the highlighted ones are exactly where an error would be.
The screen also shows what the reader could not fill. A note that says “agreed the usual” leaves probation and notice blank, which are then two taps from the library’s options rather than a guess about what usual means for this role.
Fields that are never inferred
- Pay. Never taken from the job advert, the salary band, or a previous offer for the same role. If the note does not state a number, the field is blank. A letter with the wrong salary in it is the single worst output this system could produce.
- Start date. Never computed from a notice period or assumed to be the first of a month. Dates get discussed and changed, and inferring one produces a letter that contradicts a conversation.
- Role title. Taken as agreed rather than normalised to whatever the job advert said. The title on the letter is the title, and tidying it is not the system’s business.
- Anything in extras. A car allowance is either mentioned or it is not. Inferring one from the role would be inventing a term.
Versions
A confirmed set of terms is frozen. Offers get renegotiated — a candidate comes back on salary, a start date moves — and the natural implementation is to edit the fields and redraft. That loses the fact that a different letter went out first, which matters if the two ever have to be compared.
- Machine learning
- Management
- Front-end & mobile
Next: how each term finds its approved clause.
All posts