Skip to content

Shortlist

Scheduled Sep 15, 2026

Applicant tracking that keeps candidate data yours.

Replaces

  • Greenhouse · Greenhouse Software, Inc. — no published list price
  • Lever · Employ Inc. — no published list price

Rented, per year

Not published

These vendors quote privately. We use your contract, not a guess.

Owned, per year

$6,240

AWS infrastructure only. Azure is $6,780.

Build

10 weeks

2 engineers. To parity on the ten core features above, including migration of open requisitions, active candidates and two years of closed applications with source attribution preserved, plus careers-site cutover with redirects from existing job URLs.

Difficulty

3/5

Well-understood shape. Low delivery risk.

Reference organisation: 4,000 employees hiring ~600 people/year, ~45,000 applications/year, 250 GB of CVs and attachments, two regions for residency, prod + non-prod. 3-year Compute Savings Plan on Fargate, 3-year reservation on Container Apps and PostgreSQL Flexible Server. Includes a second region for EU data residency and retention-bound object storage. Excludes job board and aggregator posting fees, background-check and assessment vendors, vendor support plans and LLM gateway token spend. Figures are infrastructure only and exclude the build.

What it is

Shortlist is an applicant tracking system: requisitions with approval, a careers site and job boards, structured application capture, interview kits and scorecards, scheduling against real interviewer availability, and offer approval with an audit trail. It is for organisations hiring 200 to 3,000 people a year, where the ATS bill scales with headcount rather than with hiring and where candidate data — the most sensitive personal data most companies hold outside payroll — sits in a vendor's tenant with a retention policy nobody has read. Shortlist keeps it in your account, with deletion that actually deletes.

Why this one stops making sense

  • Neither Greenhouse nor Lever publishes a price. Both quote against hiring volume and company size, which means your renewal goes up because you grew, not because the product did.
  • Candidate data is special-category-adjacent personal data belonging to people who are not your employees and never consented to a five-year retention default. GDPR Article 17 requests are your obligation and your vendor's implementation.
  • ATS pricing typically tracks employee headcount, so a hiring freeze cuts your usage to near zero and your bill not at all.
  • Structured interview data — scorecards, stage conversion, source quality — is the only defensible evidence in a discrimination claim, and it should be in a database your counsel can query.
  • Careers pages hosted by the vendor push your highest-intent candidate traffic onto someone else's domain, analytics and accessibility standard.

What ships

  • Requisitions with approval chains driven by cost centre, level and budget
  • Careers site rendered on your own domain, with structured data for job aggregators and WCAG 2.2 AA conformance
  • Job board distribution to LinkedIn, Indeed and aggregators, plus an agency portal with attribution
  • Structured applications: parsed CV, typed questions, work-authorisation and accommodation capture
  • Interview kits and scorecards defined per stage, with scores hidden until submitted to prevent anchoring
  • Interview scheduling against real interviewer calendars, load balancing and panel assembly
  • Offer creation, approval and e-signature with full version history
  • Candidate pipeline analytics: stage conversion, time-in-stage, source quality and drop-off
  • Retention policy per jurisdiction with automatic anonymisation and verifiable deletion
  • Talent pool with candidate-consented re-engagement and a working unsubscribe

Data model

RequisitionJobCandidateApplicationStageInterviewKitScorecardInterviewOfferSourceTalentPoolAuditEvent

Stack

frontend
Next.js 15 App Router + Tailwind + TanStack Query; the careers site is statically generated and revalidated on requisition change
backend
NestJS on Node 22 — REST, plus a parsing worker and a scheduling engine shared with Openslot
database
PostgreSQL 16 with Row Level Security, per-jurisdiction retention columns and a deletion ledger
cache
Redis 7 for careers-site rendering, interviewer availability and rate limiting on public application endpoints
queue
BullMQ for CV parsing, job board syndication, scheduling and retention sweeps
auth
OIDC against the customer IdP for staff; candidates use a magic-link portal with no password
search
PostgreSQL tsvector plus pg_trgm across candidates, applications and CV text
ai
Optional CV summarisation and interview-note structuring through an LLM gateway. No scoring, no ranking, no shortlisting.

Parity, honestly

What we match, and what we do not.

The rows marked No are the important ones. If one of them is the reason you bought Greenhouse, keep buying it — and we will tell you that on the first call rather than the fifth month.

CapabilityGreenhouseOursNote
Requisitions with approval workflowYesYes
Careers site and job board distributionYesYesOn your domain, with your analytics and your accessibility audit.
Structured scorecards with anchoring preventionYesYesScores from other interviewers stay hidden until yours is submitted. Greenhouse does this well and it is worth copying exactly.
Interview scheduling with panel assemblyYesYesShares the availability engine with Openslot.
Offer approval and e-signatureYesYes
Pipeline and source analyticsYesYesQueried directly from your warehouse rather than through a reporting module.
Verifiable per-jurisdiction deletion and anonymisationPartialYesDeletion removes rows and purges the object store, and produces a receipt. Most platforms soft-delete.
Marketplace of 400+ recruiting integrations (assessments, background checks, sourcing)YesNoGreenhouse's integration ecosystem covers hundreds of assessment vendors, background-check providers and sourcing tools with maintained connectors. Shortlist ships the four or five you use. If your process depends on a long tail of assessment vendors, that ecosystem is the product you are buying.
Vendor-run SOC 2 Type II and EU-US Data Privacy Framework certificationYesNoCandidate data attracts DPO and works-council scrutiny, and a vendor attestation is often the artefact that satisfies it. Shortlist inherits your own compliance posture, and your privacy team will have to do the work themselves.
CV parsing and enrichmentYesPartialShortlist parses structure and contact details from PDF and DOCX. It does not enrich candidates against third-party data brokers, on purpose.
Bias-audited algorithmic candidate rankingPartialNoShortlist deliberately does not rank or score candidates algorithmically. NYC Local Law 144 and the EU AI Act make automated employment decision tools a regulated category with an annual bias-audit obligation, and we would rather not build the thing than build it badly.
Agency and referral portals with attributionYesYes
Data residency in a region you choosePartialYesIt deploys where you deploy. EU candidate data can stay in eu-west-1 or West Europe without a contract addendum.

Reference architecture

Built twice, on purpose.

Every application in Techtons ships with a production architecture for AWS and one for Azure, using the same diagram grammar so you can read them side by side. Your cloud, your account, your bill.

Amazon Web Services

Compute
ECS Fargate services (api, careers, worker) behind an ALB, with the parsing worker in an isolated subnet with no egress
Data
Aurora PostgreSQL, ElastiCache Redis
Storage and edge
S3 for CVs and attachments under a dedicated KMS CMK, with lifecycle expiry matched to retention policy
Identity
Cognito federated to the customer IdP for staff; candidate portal uses signed magic links, not user accounts
Observability
OpenTelemetry to CloudWatch and X-Ray, with application funnel drop-off as a business metric
Infrastructure as code
Terraform, one module per environment, remote state in S3 with a DynamoDB lock

Services

ECS FargateALBAurora PostgreSQLElastiCache RedisS3KMSCloudFrontCognitoSecrets ManagerEventBridgeSQSSESWAFCloudWatch

The decision worth arguing about

The non-obvious decision is running CV parsing in a Fargate task with no internet egress at all — no NAT Gateway, no VPC endpoint beyond S3 and KMS. Document parsers are a well-known exploitation surface: you are executing complex format handling over untrusted files uploaded by anonymous strangers to a public endpoint, which is close to the worst threat model in ordinary business software. If a malformed PDF achieves code execution in the parser, the blast radius is a container that can read one S3 prefix and reach nothing else, not the internet and not the database. The trade is that this rules out every hosted parsing API, including the ones that are genuinely better than what we can build, so extraction quality on unusual layouts is lower and recruiters correct more fields by hand. It also means the parser cannot fetch remote fonts or resources referenced by a document, which occasionally produces a worse text extraction from a legitimately complex CV. We accept both. The second decision follows from the first: CVs live under their own CMK with an S3 lifecycle expiry set to the retention period, so a deletion request that somehow misses a row still loses the underlying object on schedule.

Microsoft Azure

Compute
Azure Container Apps (api, careers, worker), with the parsing app on a workload profile in a locked-down subnet
Data
Azure Database for PostgreSQL Flexible Server, Azure Cache for Redis
Storage and edge
Blob Storage with customer-managed keys and lifecycle policy tied to retention, separate containers per data-residency region
Identity
Microsoft Entra ID for staff; candidate portal is unauthenticated magic-link
Observability
Azure Monitor with Application Insights
Infrastructure as code
Bicep in an azd-compatible layout

Services

Container AppsFront Door StandardPostgreSQL Flexible ServerCache for RedisBlob StorageEntra IDKey VaultEvent GridService BusCommunication ServicesLog Analytics

The decision worth arguing about

Azure offers Document Intelligence, which parses CVs better than anything we would write and is available as a managed endpoint reachable over Private Link, so the isolation argument that rules out hosted parsers on AWS does not obviously apply. We still default to the self-hosted parser, and the reason is jurisdictional rather than technical: Document Intelligence is not available in every Azure region, so a customer who has committed to keeping EU candidate data in a specific region can find that parsing means a cross-region call, which is exactly the sentence that ends a works-council conversation badly. The Bicep exposes Document Intelligence as an opt-in per deployment region, with a hard check that fails the deployment if the configured parsing endpoint sits outside the data-residency region declared for that tenant. Where it is available and permitted, extraction accuracy on scanned and multi-column CVs is markedly better and worth the roughly $1.50 per 1,000 pages — about $12 a month at this hiring volume.

Sources

Every price on this page, with the page we read it from and the date we read it.

ProductPlanList priceCheckedSource
GreenhouseProNot published2026-09-05www.greenhouse.com/pricing

Greenhouse publishes no dollar figures on its pricing page; it names three tiers — Core, Plus and Pro — and states that pricing is customised by hiring volume and organisational complexity, quoted only through sales.

LeverLeverTRMNot published2026-09-05www.lever.co/pricing/

Lever publishes no list price; its pricing page states that pricing is available on request and tailored to organisation size and hiring needs.

Should you still be paying for Greenhouse?

Two weeks, fixed price. We audit what you actually use, map it against Shortlist, cost the replacement on your own AWS or Azure account, and give you a delivery plan. If the honest answer is to keep the licence, that is what the report will say.