Greenhouse
A weekend of work, and real gaps remain.
An applicant tracking system: job posts, applications, structured interviews, scorecards and the reporting a hiring team runs on.
Build the applicant tracking I actually need instead of Greenhouse. This is a database of people moving through stages, and the reason to build it carefully is legal as much as practical: **hiring records are evidence.** Design it as an archive first. STACK - Node 20+ with Fastify, server-rendered HTML with a little vanilla JS - SQLite through better-sqlite3, WAL mode, FTS5 over CVs - Caddy in front THE DATA MODEL - jobs: id, title, department, location, description_md, status, opened_at, closed_at - candidates: id, name, email, phone, source, created_at - applications: id, job_id, candidate_id, stage, status, applied_at, rejected_reason - stage_changes: id, application_id, from_stage, to_stage, actor, at — **append-only, and this is the table that answers 'why was this person rejected'** - interviews: id, application_id, kit_id, interviewer_id, scheduled_for_utc, held_at - scorecards: id, interview_id, attribute, rating, note, submitted_at — submitted once and never edited - attachments: id, application_id, kind, path, sha256 STRUCTURED INTERVIEWING, WHICH IS THE WHOLE VALUE - A kit per stage: the attributes being assessed, the questions to ask, and the rating scale. Written before the first interview, not after - **An interviewer cannot see other scorecards until they submit their own.** Enforce it on the server. Without this, the second interviewer agrees with the first and you have one opinion recorded four times - Ratings on a fixed scale with a written definition of each point, and a required note. A rating without a note is a feeling - A hiring decision recorded with the reason, referencing the scorecards APPLYING, WHICH MUST NOT BE HOSTILE - One page, a CV upload, and the fields you genuinely need. Every extra field costs applicants, and the ones it costs most are the ones with the least free time - Acknowledge immediately, and **reply to everybody, including rejections.** An unanswered application is the most common complaint about every hiring process and it is free to fix - No account to apply. A token link to check status THE LEGAL SIDE, WHICH YOU MUST NOT SKIP - Store what you need and no more. Do not collect date of birth, marital status, or a photograph - Demographic data, if collected at all, is separate, optional, and **never visible to anybody making a decision** — a different table with different access, and it is only ever read in aggregate - Retention with an actual sweeper: candidate data deleted on a stated schedule after the process ends, unless they consented to be kept, and consent recorded with a date - A subject access export per candidate, because they can ask, and a deletion that reaches the attachments COORDINATION - Free-slot lookup across interviewers, every instant in UTC and working hours as local times with a named zone - Reminders to interviewers with the kit attached and the scorecard link - A list of scorecards not yet submitted, which is the only nagging this system needs to do WHAT MATTERS MOST Blind scorecards and a real retention sweeper. The first makes the hiring better; the second keeps you on the right side of the law.
What you lose
- Posting to every job board from one place
- Structured interview kits that make hiring defensible
- Calendar coordination across many interviewers
- Reporting that survives an audit or a discrimination claim
If you would rather not build
- Recruitee or another hosted ATS, if syndication matters
- A shared inbox and a spreadsheet, which is what small teams use
The escape hatch
open source · no votes, no paid placement
OpenCATS
$0Long-standing open-source applicant tracking, self-hosted.
opencats/OpenCATSfree · open source
Documenso
$0Open-source signing for the offer letter at the end of the process.
documenso/documensofree · open source
Why this verdict
our own opinion · changed only by a person
42/100
Verdict kinda at 42: the stages and scorecards are straightforward, the board syndication is not. The blind-scorecard rule is the design decision worth copying above everything else.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about Greenhouse
answered from the record above
Is Greenhouse free?
Greenhouse does not publish a price; it is quoted by headcount and the modules you take.
Can you replace Greenhouse by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 42 out of 100, build time a weekend. Read what you lose before you decide.
How much does Greenhouse cost?
Greenhouse has no public headline price. The tier we track is the entry plan.
What do you lose by replacing Greenhouse?
Posting to every job board from one place; Structured interview kits that make hiring defensible; Calendar coordination across many interviewers; Reporting that survives an audit or a discrimination claim. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Greenhouse?
Yes: OpenCATS, Documenso. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

