
Employee Hub
Announcements that require an action, tracked per employee, with reach reporting for managers.
Next.js · TypeScript · PostgreSQL · Auth.js
Recruiting overviewRecruiter1 / 8
An applicant tracking system that is fast for the recruiter, honest with the hiring manager, and defensible a year later when somebody asks why a candidate was rejected. No per-recruiter licence, and the source of every application is recorded rather than guessed.
Next.js · TypeScript · PostgreSQL · Tailwind
Inside the app
23 connected functions on one schema, spanning four permission levels. Everything below is in the template before a line of customisation.
Open requisitions, active candidates, interviews this week and median time to hire, with a funnel counted at the stage each application is in now.
Draft, pending approval, open, on hold and closed, with openings filled against target. A requisition past its target date says so everywhere.
Filtered by stage and source, with the source recorded at application rather than attributed later. It is the only honest way to compare channels.
One requisition as a board, with time in stage computed from timestamped stage changes rather than typed in by anybody.
Phone screen, technical, onsite, panel and final, with calendar sync. An interview past its time and still scheduled is chased, not quietly reclassified.
The same criteria on the same scale for every interviewer on a requisition, and no editing once another interviewer has seen it.
Reusable templates with merge fields, sent from the candidate’s application so the record stays attached to them.
A taxonomy rather than free text, so you can answer what you actually reject people for. Including the reason in the email is optional and off by default.
Four roles with different reach. Suspending a leaver keeps their scorecards and their decisions on the record.
Notice period, right to work, salary expectation, cost centre; stages, sources and interview types, all editable without a developer.
Unsuccessful applicants anonymised after twelve months, and an erasure request that removes the person while keeping the count.
Append only, exporting with the application. Hiring decisions are the ones you may have to defend.
Permissions
An interviewer sees the interviews they are on. A hiring manager sees their own requisitions and the decisions on them. A recruiter runs the desk. An admin owns the configuration. Every level is included, and reach is enforced on the server rather than by hiding buttons.
The build
23 functions, all of them live in the preview. Nothing on this list is a mockup or a roadmap item.
What you get
In-house talent teams hiring 20–500 people a year.
Access and evidence
Hiring decisions get challenged, sometimes years later. The controls that make a process defensible are the same ones that make it fair, and they cost nothing except being enforced consistently.
Related

Announcements that require an action, tracked per employee, with reach reporting for managers.
Next.js · TypeScript · PostgreSQL · Auth.js

Deal stages, forecasting and activity history for a sales team that has outgrown a spreadsheet.
Next.js · TypeScript · PostgreSQL · Tailwind

A whole partner programme in one app: deal registration, a gated resource library, training, funding requests and tier performance.
Next.js · TypeScript · PostgreSQL · Auth.js
Questions
Yes. The repository, application code, database schema, migrations, seed data and deployment configuration, is transferred to your organisation on delivery. There is no licence key and nothing that calls home.
As many as you like. Per-recruiter licensing is why most companies restrict their ATS to the talent team and email spreadsheets to everyone else. Pricing here is per application, so every interviewer can have an account.
Because if panellists can see each other's scores before the debrief, the first score anchors the rest and the panel stops being independent. Scores stay hidden until every scorecard is submitted, and a debrief is blocked while one is outstanding. It is the cheapest fairness control an ATS can offer.
Yes. Open roles generate a fast, indexable public job board with structured markup, so listings can surface in job search rather than being trapped behind a JavaScript widget.
That is the usual route. A fitted build adjusts stages, scorecard criteria, rejection reasons, candidate email templates, custom fields, careers page design, branding and up to two integrations, and typically takes one to three weeks from a signed scope.
Hosting only, paid to your own cloud provider, roughly $50 to $200 a month depending on application volume and CV storage. There is no recurring fee to us unless you choose managed hosting.
A fitted build adjusts fields, stages, roles and integrations to how your team already works. One scoping call, a fixed price, one to three weeks.
