HR App Starter · Industry version
A hiring system built for how startups actually interview — take-homes, loops, scorecards, fast offers — in a codebase you own.
Startup hiring is a race run in loops: a take-home reviewed by two engineers, a virtual onsite compressed into a week, an offer that needs founder sign-off before the candidate's other deadline. This starter generates the ATS around that motion, with the HR basics ready for the day they accept.
01 · The problem
Tech interviews have structure a generic pipeline flattens. A loop isn't one interview — it's a coding screen, a system-design round, and a values conversation, each with its own interviewer, rubric, and written scorecard. When all of that is a single 'interview' stage with a notes box, the debrief runs on memory and the loudest voice wins.
Speed is the other constraint. Strong candidates hold competing offers with expiry dates, and the difference between a signed offer and a polite decline is often whether your side moved in days instead of weeks. A tool that can't show days-in-stage per candidate, or who is sitting on unsubmitted feedback, hides exactly the delay that loses people.
And startup offers aren't a salary field. Equity, vesting, level, and an approval from whoever guards the option pool all belong on the offer record. Tracked in a spreadsheet next to the ATS, offer history disappears — and with it any answer to 'what did we offer the last senior hire, and did comp stay consistent?'
02 · Data model
Everything in the base HR starter —
employeesdepartmentscandidatesjob_postingsinterviewstime_off_requests— plus the entities this industry actually runs on:
| table | what it holds |
|---|---|
scorecards | Structured per-round feedback — rubric scores, written notes, and a hire/no-hire call — submitted before the debrief, not reconstructed during it. |
take_home_assignments | Exercises with sent and submitted timestamps, the repo or doc link, and reviewer verdicts — so turnaround time is measured, not guessed. |
offers | Salary, equity, level, expiry date, and an approval chain — the record of what was offered, to whom, and who signed it off. |
03 · Screens
Stages follow the tech motion — application review, recruiter screen, technical screen, take-home, onsite loop, offer — and each card shows days in stage. A candidate stalled on an unreviewed take-home surfaces before they accept elsewhere.
An onsite is scheduled as a set of rounds, each with its own interviewer and rubric. Scorecards lock before the debrief so opinions are independent, and the hiring manager sees scores side by side instead of paraphrases.
Offers route through the approval chain you define — hiring manager, founder, whoever owns the comp bands — with equity and level on the record. Expiry dates surface on the pipeline so a pending signature never quietly lapses.
04 · In practice
An engineer submits a referral; the candidate lands in the pipeline with the source attached. The recruiter screen is booked from the same record, and the referrer sees the stage move without asking in a direct message.
The assignment goes out with a timestamp. Submitted work pings the two reviewers; their verdicts land on the record. The pipeline report shows median take-home turnaround per role — the number that quietly decides your acceptance rate.
Four rounds scheduled across two days, scorecards in by evening, debrief the next morning with scores on screen. The offer is drafted from the comp fields, approved by the founder in the app, and out before the weekend.
Recruiting tools charge per seat and keep your pipeline history in their tenant. This starter generates the ATS as source code you own — your stages, your rubrics, your offer flow — deployed on your infrastructure. Interviewer seats are free because seats aren't a concept.
Yes — that's the point of the scorecards entity. Each round has its own rubric and interviewer, and scorecards are submitted before the debrief so feedback stays independent. The debrief view puts scores side by side per candidate.
Offer records carry salary, equity, level, and expiry, plus the approval chain. Because the schema is yours, adding a comp-band check or a board-approval step for senior offers is an edit to your code.
It's smaller than adopting a recruiting suite. You get one app with only the stages you define, and the HR side — directory, PTO — is already there for the hires it produces. Delete anything you don't use; it's your codebase.
Dual7 App Starters
A hiring system built for how startups actually interview — take-homes, loops, scorecards, fast offers — in a codebase you own. Describe your version to start — the output is a project you own.