Greenhouse greenhouse.com

Can AI replace Greenhouse?

An 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.

Verdict: Nah · Keep paying, or use a free alternativeBuild time: a weekend
Nah

01What it costs

Price variesCore / Plus / Pro, quote-only, scales with hiring volume

Checked Aug 18, 2026 · source: greenhouse.com.

02Could AI build it for you?

The core job: A local applicant tracker: add roles, drag candidates through stages, attach resumes and notes, and fill structured scorecards, all in one SQLite file.

What a working version needs:

  • Node 20+ and a place to run it (localhost is fine)
  • Somewhere to put resume files (local disk)
  • Your own inbox for actually talking to candidates

A one-person hiring pipeline is a weekend build and honestly a nice one. 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.

03What you'd give up

  • 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

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.

05The build prompt

Paste this into an AI coding tool (such as Claude, ChatGPT, Lovable or Replit) to build your own version. Read the verdict first: this one is hard to get right.

prompt.txt
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.
Sponsor slot · openFeatured alternative to Greenhouse. A labeled card for one relevant tool.
Book this spot →

App prices, verdicts, alternatives and build prompts are adapted from Can I Vibecode It? (MIT License, © 2026 Rob Hallam). Each price shows the date it was checked and its source. Prices change; confirm on the vendor's site before you decide.