HR · App Starter
One HR system for the whole employee lifecycle — apply, interview, hire, request time off — generated into a codebase you own.
Describe how your company hires and manages people, and Dual7 generates this HR app around it: a public careers page, a hiring pipeline, PTO approvals, and an org directory, all reading from six connected tables. Change a pipeline stage or an approval rule and it's an edit to your code, not a ticket to a vendor.
01 · Data model
HR data is two lifecycles — candidate and employee — that most tools split across separate products. This starter keeps both in one schema, so the day someone is hired their interview history doesn't live in a different system than their PTO balance.
| table | what it holds |
|---|---|
employees | Everyone on payroll — role, department, manager, start date, and employment status — the row a candidate becomes on day one. |
departments | Org units with a lead and a parent, powering the directory, the org chart, and who approves what. |
candidates | Applicants with source, resume link, current stage, and full interview history — the rows behind the pipeline board. |
job_postings | Open roles with description, location, and status — published to the careers page, closed when filled. |
interviews | Scheduled rounds linking a candidate, interviewers, and a posting, with feedback and a recommendation recorded per round. |
time_off_requests | PTO, sick, and unpaid requests with dates, type, balance impact, and an approval trail from request to decision. |
02 · Screens
A public page listing open roles with an apply form that writes straight into the candidates table — no job-board middleman between an applicant and your pipeline. Close a posting and it disappears from the page in the same transaction.
Candidates move through stages you define — applied, screen, interview, offer — as cards showing role, source, and days in stage. Advancing a card schedules the next step; rejecting one records the reason where reporting can find it.
Requests route to the right manager from the department tree, with balances checked before approval, not after. The team calendar shows who's out when, so overlapping requests are visible at decision time.
A searchable directory built from employees and departments — reporting lines, roles, and start dates in one place. New hires appear the day the candidate record converts, with no re-keying.
03 · Process
Tell Dual7 your interview stages, who approves time off, and what your org looks like. The starter supplies the tables and screens; your description shapes them.
Rename stages, add a work-authorization field, change the PTO accrual rule — conversational edits that land as reviewable changes in real code.
Employee data deserves gates. Ship to production through Dual7's approval flow with an audit trail, deployed on your infrastructure with records in your database.
04 · Fit
Hiring in a shared inbox works until two roles are open at once and a good candidate goes cold in a thread nobody owns. This starter is the smallest real ATS plus the HR basics you'll need the week after the offer is signed.
PTO balances in one sheet, the org chart in another, candidates in a third — and none of them agree. One schema replaces the reconciliation, and the approval trail replaces the 'did I sign that off?' email.
Suites assume one hiring motion and one approval chain. If your firm interviews differently for field roles than office roles, or PTO rules vary by country, here those differences are code you write once — not configuration you fight annually.
Generate a tailored HR app per client — their stages, their leave types, their branding — and hand over a codebase instead of an admin login on a product you don't control.
05 · Yours
The starter is a floor, not a ceiling. Add fields conversationally in Vibe mode — a visa-status field on employees, a salary band on job postings, a certification date on interview feedback — and the schema, forms, and directory update together. Rename anything to your vocabulary: departments to practices, candidates to applicants.
Structural changes are still just changes to your code: add an onboarding-checklist entity linked to new hires, wire the careers page apply form to send confirmation emails, or add a second approval step for unpaid leave. The generated app is a normal full-stack codebase with no runtime dependency on Dual7, so your team can also edit it directly.
HR software is priced per employee per month, which means your bill grows exactly when your budget is tightest — while your own people data sits behind an export button and an API tier. This starter generates the schema, screens, and rules as source code in your repository. Headcount growth costs you database rows, and your employee records never live in someone else's tenant.
Owning it means operating it, and people data raises the stakes. That's what the governed pipeline is for: approval gates before changes reach production, an audit trail of who changed what, and regeneration when a policy change is structural rather than a quick patch.
06 · Industries
A hiring system built for how startups actually interview — take-homes, loops, scorecards, fast offers — in a codebase you own.
An HR system that tracks licenses, certifications, and expiries alongside hiring and PTO — generated into code your organization owns.
Hiring built for hourly reality — walk-ins, multi-location postings, same-week starts — generated into a codebase you own.
A working HR app generated into code you own: six connected entities (employees, departments, candidates, job_postings, interviews, time_off_requests), a public careers page, a hiring pipeline board, PTO approvals with balances, and an org directory. It deploys to your infrastructure with data in your database.
Both halves of the lifecycle in one schema. The candidate side is a real ATS — postings, pipeline, interviews with feedback — and the employee side covers the directory, org structure, and time off. Hiring converts a candidate into an employee without re-entering anything.
Yes — stages, leave types, accrual rules, and approval routing are all yours to edit. In Vibe mode they're conversational changes; each one lands in code you can review before it ships through the governed pipeline.
It's generated as part of the same app: published job postings render on a public page with an apply form that creates candidate records directly. You can restyle it to your brand or embed it in an existing site — it's your frontend code.
No — payroll is a regulated domain best left to payroll providers. The starter owns the system of record around it: employees, roles, departments, and time off. Because you own the schema, exporting or syncing to a payroll provider is a straightforward integration against your own tables.
The data never leaves your control — it lives in your database on your infrastructure, which is a stronger position than a vendor tenant. The governed pipeline adds approval gates and an audit trail for changes, and role-based access in the app keeps salaries and feedback visible only to the right people.
Dual7 App Starters
One HR system for the whole employee lifecycle — apply, interview, hire, request time off — generated into a codebase you own. Describe your version to start — the output is a project you own.