Can I vibecode Greenhouse?
NOT REALLY · don't botherAn agent can absolutely build you a candidate tracker: stages, notes, a Kanban board, a scorecard form. That is maybe five percent of what Greenhouse is being paid for. The rest is job board syndication, a hosted careers page that survives traffic, interview scheduling against a dozen calendars, structured interview kits, permissioned access for hiring managers who are not you, audit trails, EEOC and OFCCP reporting, GDPR retention and deletion workflows, and a very long tail of HRIS and background check integrations. Hiring is also one of the most litigated processes in a company, which means the boring parts (who saw what, when, and what got deleted) are the product. Solo or two-person hiring is genuinely fine on a DIY tracker; anything with a legal surface is not.
Build a local-only applicant tracker for a solo or two-person hiring pipeline. No cloud, no accounts, no telemetry. Stack, non-negotiable: - Next.js 15, App Router, TypeScript, Tailwind. - SQLite via better-sqlite3, single file at ./data/ats.db. Schema in migrations run at boot. - Resume/attachment files stored on local disk under ./data/files, referenced by path in the DB. - No auth. This runs on localhost for one person. Data model: - roles: title, team, status (open/closed), created_at, notes markdown. - candidates: name, email, phone, source (referral/inbound/outbound/agency), role_id, stage, created_at, archived_at nullable. - stages are per-role and ordered: default Applied, Screen, Interview, Onsite, Offer, Hired, Rejected. - notes: candidate_id, body markdown, created_at. - scorecards: candidate_id, interview_name, per-attribute rating 1-4, overall recommendation (strong no/no/yes/strong yes), free text, created_at. - attachments: candidate_id, filename, path, uploaded_at. - events: append-only log of every stage change and field edit with timestamp. Never delete rows here. UI: - /roles list, /roles/[id] shows a Kanban board of that role's stages with drag and drop between columns. - /candidates/[id] is the main screen: header with name, role, stage, source; tabs for Notes, Scorecards, Attachments, History (from events). - Global search across candidate name, email, and note bodies. Use SQLite FTS5. - Quick add: paste a name and email, pick a role, done in one modal. - A per-role funnel count strip: how many in each stage, and median days in stage. Also include: - Structured interview kits: per-role, define a named interview with 3-6 attributes to rate. Scorecards are created from a kit so ratings stay comparable. - CSV export of all candidates and scorecards, and a JSON dump of the whole DB. - A retention helper: a page listing candidates archived more than N days ago with a one-click purge that deletes their files and PII but keeps an anonymized events row. Default N in .env. Explicitly out of scope, do not build or stub: - Email sending, calendar scheduling, job board posting, a public careers page, multi-user permissions, any OAuth. Deliver a README with setup, `npm run dev`, and a seed script that creates two roles and eight fake candidates. Secrets and config in .env.example.
$ open in your agent (prompt prefilled, you press enter) or copy it raw · this prompt is generated from the build plan · improve it via PR
prompt copied. want to know what dies next week?
new verdicts + top votes, weekly. free. one-click out.
Because hiring is a multiplayer, legally observed process and a personal tracker is single player. The moment a hiring manager, a recruiter, a coordinator, and an external agency all need scoped access to the same pipeline, and the moment someone asks for adverse impact numbers or a candidate exercises a deletion request, the DIY build stops being a tracker and starts being an unfunded compliance project. Greenhouse also sits at the center of the recruiting tool graph: sourcing extensions, assessments, scheduling, background checks, and the HRIS all assume it exists. Ripping it out means rebuilding those seams by hand.
xJob board syndication and a hosted careers page candidates can find
xInterview scheduling that reads real interviewer calendars
xMulti-user permissions, so hiring managers can review without seeing everything
xCompliance scaffolding: EEOC/OFCCP reporting, consent capture, GDPR retention and deletion, audit logs
xIntegrations with HRIS, background checks, assessments, and every recruiter tool your team already uses
Nothing worth pointing at. That's why the prompt exists.
Can I vibecode Greenhouse?
Not really. Greenhouse's value is not the code: The moat is everything that shows up when hiring becomes multiplayer and legally observed: permissions, audit trails, retention rules, and the integration graph every recruiter tool assumes. See the honest breakdown above.
How much does Greenhouse cost?
Greenhouse's pricing is usage-based or varies by plan · Greenhouse states cost depends on plan tier, hiring volume, organizational complexity, and features required; you must request a demo or contact sales..
What do I lose by replacing Greenhouse?
Honestly: Job board syndication and a hosted careers page candidates can find; Interview scheduling that reads real interviewer calendars; Multi-user permissions, so hiring managers can review without seeing everything; Compliance scaffolding: EEOC/OFCCP reporting, consent capture, GDPR retention and deletion, audit logs; Integrations with HRIS, background checks, assessments, and every recruiter tool your team already uses. If any of those are load-bearing for you, keep paying.
Is there an open-source alternative to Greenhouse?
No mature open-source alternative worth pointing at, which is exactly why the one-shot prompt on this page exists.