Stacks / CRM
Frappe HR
People ops you host. Frappe HR is GPL-3.0 — BambooHR and Greenhouse without the employee or applicant seat.
The problem
BambooHR is the rented HRIS: employees, leave, and a handbook. Greenhouse is the rented ATS: jobs, applicants, and interview kits. Frappe HR (GPL-3.0) covers employee records, leave, attendance, payroll, and recruitment (requisitions, openings, applicants, offers). It sits on the Frappe stack and wants ERPNext. This is not BambooHR's benefits marketplace or Greenhouse's sourcing network.
Replaces
BambooHR / Greenhouse
Estimated SaaS saved
$2,400
per year, small team, before lock-in
Start on RailwayTwenty if this is a sales pipeline, not people ops
Placeholder: Frappe HR + ERPNext (MariaDB, Redis, workers) plus a volume. This is several services. No one-click template in this repo yet — Start on Railway. CRM contacts stay on /stacks/twenty-crm.
The stack
- Frappe HR
GPL-3.0 HR, payroll, and recruitment (github.com/frappe/hrms)
Cost table
| You stop paying | Typical / year | Self-host instead |
|---|---|---|
| BambooHR / Greenhouse (small team) | $2,400 | Frappe HR + ERPNext |
Agent setup prompt
Replace BambooHR or Greenhouse with Frappe HR (https://frappe.io/hr). - Official Frappe HR / ERPNext install: MariaDB, Redis, workers, sites on a volume. Bind HTTP. Create one employee or one job opening. - Recruitment is the Greenhouse slice; employee/leave/payroll is the BambooHR slice. Do not claim every marketplace integration. - Write AGENT_PROMPT.md.
Also as markdown: /stacks/frappe-hr.md
FAQ
- BambooHR or Greenhouse?
- Same box. BambooHR is the employee record. Greenhouse is the applicant record. Frappe HR has both. A sales CRM stays on /replace/hubspot.
- Why ERPNext?
- Frappe HR is built on that stack. You host the framework plus the HR app. It is more moving parts than a single binary.