They Run The Whole Firm On One App Now
NPC Office — Jakarta and Surabaya, Indonesia
- 696 read, 15 proposed, 6 met
- Every application for one seat, read against the keywords the hiring manager approved. A person confirmed both cuts — removing some the screen ranked highly, adding some it ranked nowhere
- 2 companies, 3 offices, 47 staff
- The same app that fills a seat runs the business the seat sits in — leave, payroll, leases and staff certificates on one 90-day expiry window
- Nobody typed onto payroll
- The signed employment contract opens the staff record and the payroll enrolment. There is no screen anywhere that adds a person to a payroll sheet by hand
“We used to open CVs one at a time until the evening went, and you tell yourself you read them all. You did not — you read until you stopped, and the person you were looking for might have been in the part you never opened. Now every one of them gets read, and the six I meet are six I picked off a list I can argue with.”
How it used to work
A firm that files other people’s paperwork for a living was reading CVs until the evening went, and keeping its own staff in four places that never spoke to each other.
696 applications, one seat. One mark each.
↑ read until the day ran out
Everything under the line was never opened — not rejected, just further down.
Four separate places, none of them talking to each other — and leases and certificates expiring in whichever folder they happened to live in.
The six you wanted might have been in the part nobody opened
and whoever stopped reading first decided who was never seen
NPC Office registers companies, files licences and runs virtual offices for entrepreneurs across Indonesia. It knows exactly what a PT PMA needs, what an NIB costs and when a domicile letter expires, because it does that work every week for other people. Its own back office ran on none of it.
Filling one seat meant opening applications one at a time. Three job boards, close to seven hundred of them for a single legal role, and one person reading down the list in the evenings. The cost was never the hours. It was that the reading stopped somewhere, and whoever stopped first decided who was never seen. Nobody could say how far down the list anyone got, or whether the standard for “worth an interview” at eleven at night was still the standard from that morning.
At the other end the same firm had four places to keep people: a folder of company documents, a folder per office, a staff list, and a payroll sheet. A signed contract became a typing job — the NIK, the PTKP status that picks the tax rate, the BPJS numbers, the bank account, all entered a second time by hand. Office leases, domicile letters and staff brevet certificates expired quietly in whichever folder they happened to live in.
The reading stopped somewhere
Close to seven hundred applications for one seat, opened one at a time. Whoever stopped first decided who was never seen.
A different bar every session
What counted as worth an interview drifted with who was reading and how late it was. Nothing recorded the standard, so nothing could hold it.
A new starter was retyped
Everything already on the signed contract — name, role, office, start date, salary — entered a second time by hand into the thing that pays them.
Leases and certificates lapsed quietly
Office leases, domicile letters and staff brevet certificates sat in separate folders, with no shared window on what was about to expire.
How it works now
Every application read against a brief the hiring manager approved — and one app that carries the hire straight into the business it joins.
Every application read against a brief the hiring manager approved — and the contract that ends the hire opens the record that begins the job.
Recruitment
applications, collected from three boards
CVs proposed by the screen
people the hiring manager met
15 of 696 is two percent, and that drop is the point. Nothing is filtered on the way in, and no candidate is removed by a machine.
contract
Management
- Companies2
- Offices3
- Staff47
- Leavetwo signatures
- Payrollderived monthly
One 90-day expiry window — an office lease and a BPJS card are the same problem.
The hire that comes out of the left half walks into the right half without being retyped. Nobody adds a person to payroll: a row is there because a staff record says they started, and gone because it says they left.
Reading applications
Opened one at a time, in the evenings, until the reading stopped
Every one read against the keywords the hiring manager approved
Who was ever seen
Whoever was still on the list when the evening went
696 read, 15 proposed, 6 met — and a person confirming both cuts
The bar
Drifted with who was reading and how late it was
One brief, one keyword list, one rubric, approved before the ad exists
The brief
Whatever was said in a corridor, written up afterwards
Edited and approved by the practice head, before an ad is written
A new starter
Retyped onto the payroll sheet from the signed contract
The signed contract opens the staff record and the enrolment
Statutory programmes
Five, chosen from memory, two of them capped differently
Derived from contract type and age, with both ceilings applied
The monthly sheet
Last month, copied forward
Derived from the staff records, then signed off. Signing off is not paying
Leases and certificates
Separate folders, noticed once they had already lapsed
One 90-day window over offices and staff alike
The hiring did not change shape. What changed is that the reading stopped being the bottleneck, and that the hire no longer stops at the offer.
It starts with the hiring manager rather than with us. The practice head who needs the person edits and approves three things in one place, on a link with no login: the job description, the screening keywords, and the interview questions. The keywords are the important one — they decide who is ever read — so the person who wants the hire approves them before an ad is written.
Then the applications arrive unfiltered, all 696 of them, from three boards through one connection. A screen reads every single one against those approved keywords and proposes fifteen. A second screen scores recorded answers against one rubric and proposes six. Both propose and neither decides: a person confirms each cut in both directions, removing some the screen ranked highly and adding some it ranked nowhere. Nothing is rejected by a machine, and the count on the screen is the real count because nothing was filtered on the way in.
The join is the part neither half of this normally has. The offer and the employment contract are two documents and two signatures, and the second one opens the staff record and the payroll enrolment on its own. Nobody retypes a new starter. The statutory programmes are derived from the contract type and the person’s age rather than ticked — an intern gets JKK and JKM only, and somebody over the pension age gets no new JP enrolment.
From there the second half of the app is simply where that person lives: two legal entities, three offices, forty-seven active staff, leave that takes two signatures, and one 90-day window watching office leases and staff certificates alike, because a lease that lapses and a BPJS card that lapses are the same problem. Payroll has no “add to payroll” button, deliberately. A row is there because a staff record says the person started and gone because it says they left. The month is derived and then signed off by the owner — and signing off is not paying, because nothing on that page can move money.
A hire, end to end
- ◆ Gate 0Human
Agree the headcount
A practice head raises the role with a business case and a band. The owner sees what it actually commits — the salary plus employer BPJS plus THR, a year of it — and approves or holds. Nothing else about the requisition exists yet.
- Decides
- The role, the band, and what the year costs
- Nothing moves until
- No brief, no keywords, no ad
Per role
- ◆ Gate 1Human
Approve the brief
The hiring manager edits and approves three things at once, on a link with no login: the description, the screening keywords, and the interview questions. The keywords decide who is ever read, which is why they are approved by the person who wants the hire.
- Decides
- The brief, the keywords and the questions
- Nothing moves until
- No ad is written
Per role
- ◆ Gate 2Human
Approve the spend
One ad is written from the approved brief and priced per board. The total is shown before it commits. An agent writes the ad; an agent has no tool that spends the money.
- Decides
- The ad, the boards and what they cost
- Nothing moves until
- Nothing is posted, nothing is billed
Per role
- ApplyEvery application arrivesAutomated
Applications come back from every board as they are made. Nothing is filtered on the way in, so the count on the screen is the real count.
On arrival, at any hour
- ◆ Gate 3Automated + human
Confirm the shortlist
Every CV is read against the keywords the manager approved, and a shortlist is proposed. A person confirms it — removing some it ranked highly and adding some it ranked nowhere.
- Decides
- Who is asked to record answers
- Nothing moves until
- No invitation goes out
Per role
- ◆ Gate 4Automated + human
Confirm who is met
The recorded answers are scored on one rubric and six are proposed. A person reads them and overrules the ranking where it is wrong. The score ranks a table; nothing reads it to decide anything.
- Decides
- Who the hiring manager meets
- Nothing moves until
- The manager sees nobody
Per role
- HireTwo interviewsHuman
Booked and recorded against the requisition. These are the two rows in the record that a person types in, and the record says so rather than hiding it.
Per candidate
- ◆ Gate 5Human
Authorise the offer
Terms are agreed in the back office and authorised by the hiring manager, who has still never been shown the budget ceiling. The candidate signs it in the browser.
- Decides
- The offer terms
- Nothing moves until
- No offer letter exists
Per hire
- ◆ Gate 6Human
The perjanjian kerja
A second document and a second signature. The offer and the employment contract are not the same thing, and onboarding waits for this one rather than the first.
- Decides
- The employment contract
- Nothing moves until
- Onboarding cannot start
Per hire
- OnboardThe record writes itselfAutomated + human
The signed contract creates the staff record and the payroll enrolment. Name, role, office, start date and salary are never retyped; the statutory programmes are derived from the contract type and the person’s age. From the next run they are simply on the sheet.
On signature
Ten steps from “we need someone” to a first payslip. Seven are checkpoints where nothing downstream happens until a person says so — Gate 0 in the back office, and the six the automation cannot pass — and two of those belong to the practice head rather than to HR.
See it working
Not screenshots — the back office, the candidate’s side, the hiring manager’s link and the automation, on invented data. Click anything.
The back office
Hiring and management in one nav, on invented data. Every screen clickable, and three seats to look at it from.
- 696 applications narrowed to fifteen and then to six, with both human overrules left on the page
- Switch between the owner and an office manager and watch the salary column, the payroll page and the ad spend disappear
- The management half: two companies, three offices, forty-seven staff, and one window on everything about to expire
- A payroll sheet with no way to add anybody to it, and a month that has to be signed off
The candidate portal
The candidate’s side: the salary form, the timed questions, and the two documents they sign.
- Current and expected salary first, in a form — the questions do not unlock until both are answered
- A countdown that actually runs and stops the recording at the limit
- The offer signed in the browser, then the perjanjian kerja as a separate document
- What the candidate is told, and what they are not
The hiring manager’s link
What a practice head gets: three screens, no login, and no sight of the budget.
- Edit the screening keywords in place — approving them is approving who will ever be read
- Approve the brief, and watch the ad become writable behind it
- The shortlist, with each candidate’s expected salary against the advertised band
- The offer they authorise — and the ceiling they are never shown
The automation
What the automation actually is: six agents, the gates they cannot pass, and a week of runs.
- The contract: what each agent may do, and what it has no tool to do
- The tools that exist, and the ones drawn dashed because they do not — including any way to reject a candidate
- Every gate, grouped by which half of the business it belongs to
- A week of runs, reported in numbers — 696 CVs read against the approved keywords, 15 proposed
Six things in there are worth finding. Go and look.
- 1The screen proposed fifteen out of 696, and a person changed that list in both directions — names taken off that it ranked highly, names put on that it ranked nowhere. Both edits are still on the page, with who made them.
- 2A brief that has been with a practice head for four days with three edits on it, and no ad written. Those four days would otherwise have been spent advertising a role nobody had agreed the shape of.
- 3A requisition for a front-office role in Surabaya, six days with the owner and going nowhere. The manager asked for Rp 6.000.000 a month. The screen says Rp 85.372.800 a year, because that is what employer BPJS and THR make it.
- 4A third office in Bandung, proposed by an office manager and approved by nobody. He can open its page and chase it. He cannot sign it off, because opening a site is a lease, a domicile letter and eventually a payroll.
- 5A leave request that skips the first signature entirely and says why: nobody holds that office, so it goes straight to the owner rather than waiting on a seat that does not exist. Thirty of the forty-seven staff sit in that office.
- 6An office manager who approves leave for a team and runs a hiring round for his own office, and is never shown what a single one of them is paid.
Everything else runs cleanly. Each of these is the system being awkward on purpose — waiting on a person, refusing a permission, or showing a number that makes a decision harder rather than easier.
What NPC still decides
- The screens propose and never reject. Every application is read, nothing is filtered on the way in, and no candidate is removed by a machine — both cuts wait for a person, and the demo shows that person overruling in both directions.
- The keywords belong to the hiring manager, not to us. They decide who is ever read, so the person who wants the hire approves them before an ad exists.
- A role does not exist until the owner agrees to what it costs for a year, and until then there is no brief, no keyword list and no ad to approve.
- Nothing is posted and nothing is billed without a person. An agent writes the ad and prices it; it has no tool that posts one nobody approved.
- An office manager runs a team, approves their leave and hires into their own office without being shown a single salary, including on the record they helped create.
- Signing off a month is not paying it. The bank instruction that moves the money is not held here, and nothing on that page can move it.
Want this running for your business?