Unwrapped

Legacy SaaS dossier · greenhouse

Greenhouse

Greenhouse

CategoryATS (recruiting)Greenhouse Expert + Sourcing add-onSite ↗

A candidate pipeline + scorecards + an audit log, sold as a per-employee tax. The audit log is the only piece you can't trivially replace.

01 · Data

Data the SaaS sits on

LinkedIn (sourcing)
LinkedIn (sourcing)API
Interviewer calendars
Interviewer calendarsYours
Job board
Job boardYours
Payroll / HRIS
Payroll / HRISAPI

Internal Build Score

0.56

Feasibility of a useful internal substitute for the actually-used 20% of this SaaS, built with Claude and your own data layer.

IBS = 0.25·U + 0.25·C + 0.20·D + 0.15·I + 0.15·Mthis record · 56%
  • U

    User adoption gap

    weight 0.250.55

    How much licensed surface area sits idle.

  • C

    Core simplicity

    weight 0.250.60

    How small the actually-used 20% is when re-implemented honestly.

  • D

    Data portability

    weight 0.200.50

    How clean the exit is, exports, formats, audit lock.

  • I

    Integration burden (inverse)

    weight 0.150.55

    How few external systems must keep working through the SaaS.

  • M

    Moat erosion

    weight 0.150.60

    How much the original differentiator has been commoditised by LLMs + cheap infra.

Editorial heuristic. Not investment advice, not a procurement recommendation.

03 · Feature usage

Commonly used vs. rarely touched

Commonly used

05

  • Candidate pipeline with stages
  • Interview scorecards per role
  • Scheduling across multiple interviewers
  • Source-of-truth applicant record
  • EEOC / audit log

Rarely touched

07

  • CRM module for candidate nurture
  • Sourcing + Marketing as separate paid pillars
  • Approvals workflow with custom forms
  • Onboarding handoff layered on top
  • Reporting suite with a non-SQL query builder
  • AI screening, a Claude call billed per req
  • Greenhouse Expert / Pro / Essential ladder

Internal build

Build it yourself

01 · Stack & flow

Postgres
Postgres
Next.js
Next.js
Claude API
Claude API
Calendar API
Calendar API
S3 (CVs)
S3 (CVs)

Internal build map

Data in

Candidates table
Interviewer calendars
CV blobs (S3)

Agent layer

Scorecard synthesiser
JD writer

Logic

schedule loop
collect scorecards
append audit log
EEOC reporting

Outputs

Pipeline board
Debrief read
Audit log row
Build time
9 weeks
Run cost
$5/seat·mo
vs. SaaS
$220K / yr

Build outline

  1. Candidates + stages + interviews schema
  2. Pipeline board + per-role scorecards
  3. Interview scheduler (free-busy + round-robin)
  4. Append-only audit log w/ row-level immutability
  5. Claude scorecard synthesis after every loop

02 · Build it

Paste into Cursor or Claude Code in an empty repo. It scaffolds the working core, with the AI step embedded.

Build prompt · Greenhouse

// Build: internal ATS (Greenhouse replacement) # Paste into Cursor or Claude Code in an empty repo. Build an internal applicant tracker covering the part of Greenhouse we use: a candidate pipeline, interview scheduling, scorecards, a debrief synthesis, and an EEOC-grade audit log (this part is load-bearing). Stack: Next.js + Postgres + Calendar API + S3 (CVs) + Claude. Data model: - candidates(id, role_id, stage, source) - interviews(id, candidate_id, interviewer_id, scheduled_at, scorecard jsonb) - audit_log(id, actor, action, entity, at) // append-only, immutable Build, in order: 1. A pipeline board by stage; scorecards per role. 2. Interview scheduling across interviewers (free/busy + round-robin). 3. An append-only audit log with row-level immutability + retention policy. 4. AI assist, debrief synthesis. Call Claude: """ Given a candidate's full loop (scorecards + notes), the rubric, and the manager's must-haves, return JSON { per_area[], strengths[], risks[], recommendation(hire|no-hire|down-level|another-loop), disagreements[] }. Quote interviewers anonymously ("Interviewer A"). No protected-class inference. Don't write the offer. """ Skip: the nurture CRM, Sourcing/Marketing pillars, the non-SQL reporting. Done when: a loop runs end to end with a debrief read, and every action is in an immutable audit log.

03 · Result

Synthesise loop for Senior PM candidate, 5 interviewers
loop:2025-08#cand:1487

hire @ L5 · strengths: 3 · risks: 1 (depth on growth metrics) · disagreement: collaboration (2→4)