An exit interview collector on AWS for a few dollars a month
Exit interviews are almost universally done and almost universally useless, and the reason is timing. The conversation happens on somebody’s last afternoon, with a reference outstanding and a leaving card being passed around, and what comes out is “a great opportunity came up”. Six weeks later the same person, settled somewhere else, will tell you exactly what happened — and nobody ever asks. This post walks through a small system built entirely around that gap.

Key takeaways
- The same short questionnaire twice: at exit, and again six weeks later.
- The second response is the useful one, and it is the one almost nobody collects.
- Answers are stored apart from identities and joined only in aggregate.
- Nothing surfaces until several people have said something similar.
- Designed on AWS for about $2 a month.
The whole system on one page
Before any code, here is the shape of what we are designing.
- Security & identity
- Management
- Analytics
- People
The six questions
- What made you start looking?
- What would have made you stay?
- How was the work itself, day to day?
- How was your relationship with your manager?
- Was there anything you wanted to raise while you were here and did not?
- Would you recommend working here to a friend?
Six, short, and identical both times. The temptation is to add a rating scale, a department-specific section and a free-text box for anything else, and the result is a questionnaire that takes fifteen minutes and gets abandoned. The fifth question is the one that consistently produces the most useful answer and the one most exit interviews do not ask.
What runs on every leaver (the inside)
- The asker. Sends a link on the last day and another six weeks later. The second is sent to a personal address, collected on the way out, because a work address will have been disabled and that is why almost nobody manages the follow-up.
- The separated store. Responses go in one table, identities in another, with no field joining them that any query in the system uses. Part 3 is entirely about this, because it is easy to claim and easy to get subtly wrong.
- The theme reporter. Groups answers into recurring themes and reports a theme only once several people have raised it. It never quotes. Part 5 covers why a quote is identifying even when a name is not attached.
One leaver, end to end
- Security & identity
- Management
- Analytics
- Front-end & mobile
In plain words
Somebody resigns in June with a leaving date of the 10th of July. On the 10th they get a link to six questions, and they answer them: a great opportunity, nothing really, the work was fine, my manager was fine, no, probably yes. That is a perfectly ordinary exit interview and it contains no information at all.
On the 21st of August, six weeks on, they get the same six questions at the personal address they gave on the way out. They are three weeks into a new job and have no outstanding reference. This time: I started looking after the rota changed in February; a conversation about the rota would have kept me; the work was good; my manager was fine but had no say in the rota; yes, I raised it twice and nothing happened; no. That is a completely different set of answers and every one of them is actionable.
Nothing is reported yet. Two months later a third person says something similar about the same rota change, and the theme reporter surfaces it: three of the last seven leavers mentioned scheduling, two said they raised it and nothing happened. That sentence is the product, and it took no interviews, no consultant, and about four seconds of compute.
Design rules that shaped every decision
- Ask twice, and mean it. The second response is the useful one and it needs a personal address collected while somebody is still there.
- The same six questions both times. Comparing the two answers to the same question is where the insight lives.
- Responses are stored apart from identities, with no join any query uses.
- Nothing surfaces below a threshold of several people. One person’s answer is a confidence, not a finding.
- Never quote. A verbatim sentence identifies its author in a small team more reliably than a name would.
- Be honest about anonymity. With eleven staff, nothing is truly anonymous, and claiming otherwise is worse than saying so.
Why this shape
The standard exit interview fails for a structural reason that no amount of better questions will fix: the person answering has three live incentives to be diplomatic. They want a reference, they may need to come back, and they do not want their last memory of the place to be an argument. Six weeks later, all three have gone.
So the design spends its effort on two things: getting the second response at all, which is mostly about collecting a personal address before somebody’s account is disabled, and making the reporting safe enough that people believe answering honestly carries no risk. Everything else is a form and a table.
The next four posts walk through each piece: how the two asks are timed, how the separation actually works, how themes get found, and what the report says. One diagram per post, a cost breakdown, and an engineering reference at the end.
All posts