The problem
I wanted the offer to carry forward the conversations that made the opportunity meaningful to the candidate: their contribution, their connection with the team, and what they might build next.
What I built
The system triggers from ATS state in Ashby, pulls interview and offer context, and generates a personalized page structured as a three-act story:
- who the candidate is and what stood out
- the connection between the candidate and the company
- the offer, presented with context
Recruiters get a shareable link instead of a copy-paste email. Runs on Cloudflare Workers + Hono.
How it changed things
I turned an inconsistent communication moment into a structured candidate experience. Offer content no longer begins as a blank email, and generation is automatic once the ATS state changes.