Onboarding ran out of an inbox. Now it runs itself.
How I built a real estate brokerage its own onboarding and e-signature platform — self-hosted, Canadian-resident, and filing its own paperwork.
Not a website. The thing the business runs on.
A brokerage brings on two very different kinds of people. Employees — administration, conveyancing, management — and Realtors, who are independent contractors. Each arrives with a stack of documents that has to be signed, countersigned, and filed somewhere it can be found again in five years.
Email was the system. Documents went out as attachments, came back signed in whatever state the signer managed, and were filed into the HR drive by hand. It worked the way manual processes work — fine for one hire at a time, and unable to answer “what is this person still waiting on?” without somebody going and looking.
The ask was a portal to keep track of it. What it needed was a signing platform with the brokerage’s own name on the infrastructure — because these are employment records, and where they live and who holds the audit trail is part of the specification, not an afterthought.
Four problems.
No single source of truth
Where a new hire stood lived in somebody's sent folder. Answering “what is this person still waiting on?” meant opening an inbox, a shared drive, and a spreadsheet, then guessing.
Two intakes treated as one
Employees and Realtors need different documents, different checklists, and different filing. The manual process ran them down the same track and corrected by hand afterwards.
Filing done by dragging
Signed PDFs were downloaded from email and dropped into the HR drive by hand. Naming drifted, folders diverged, and the occasional document simply never landed.
Rented custody of employment records
Off-the-shelf signing services charge per envelope forever and hold the signed record — and its audit trail — wherever the vendor chooses to. For employment files, that placement is not a detail.
Five moving parts. One surface.
This is a live system holding real employment records, so there are no screenshots on this page and no link to click. Here is the shape of it instead — which is the more useful thing to look at anyway.
to a running system
one platform
now or ever
filed by hand
A signing platform isn’t a form tool. Its database is evidence — so it gets backed up like evidence, and no template is ever edited after somebody has signed it.
The full scope.
- /A self-hosted signing engineDocuSeal in Docker behind Caddy on a Canadian VPS, with TLS, key-only SSH, a firewall, and automatic security updates. No per-signature fee, and the signed record never leaves infrastructure the brokerage controls.
- /The portalNext.js on the App Router, deployed on Vercel, invite-only. A dashboard showing every active onboarding with real progress, a per-document checklist, and per-signer status rather than a single “sent” flag.
- /Two tracks, one systemEmployee and Realtor intakes are separate paths — their own document packs, their own checklists, their own filing conventions — selected at the moment a hire is created instead of patched up later.
- /A candidate hubThe new hire gets one link. No account, no password, no attachments. They see what is left to sign, sign it, and watch the list close out.
- /Signature status that can't be fakedCompleted signatures arrive by webhook and are applied automatically. Signature items cannot be ticked off by hand at all — if the checklist says it's signed, a real signature exists behind it.
- /Automated filingA worker on the VPS polls for completed documents every five minutes and files the signed PDF alongside its audit trail into the brokerage's existing HR folder structure, using the naming convention that structure already expected.
- /Notifications and nudgesTransactional email when a candidate finishes and when a document is fully executed, a daily digest of everything outstanding, automatic nudges for candidates who have gone quiet, and alerts on anything time-limited.
- /A provisioning sheetEach hire generates a setup sheet covering accounts, systems, board and web listings, and access — so the operational half of onboarding is ready on day one instead of discovered during week two.
- /Evidence disciplineNightly off-box database dumps and weekly snapshots, because the signing database is the evidence. Templates are versioned and never edited in place once anyone has signed one.
The part I refused to automate.
Before wiring a single real document into the system, I read the brokerage’s entire document pack end to end. Some of it wasn’t ready to be automated yet — and automation is very good at taking a document nobody has finished reviewing and putting it in front of a hundred people.
So the platform shipped complete and proven end to end on placeholder templates, with a standing rule written into the spec: no draft document becomes a live template until it has been through proper review. The machine was ready before the paperwork was, and that’s the right order — the reverse is how a brokerage ends up with two hundred signatures on a document it has to re-paper.
Two other things stayed out on purpose. Anything collecting full payment card details never went near the portal — that’s a compliance regime I wasn’t going to drag a hiring tool into for the sake of tidiness. And files that are access-restricted by design stayed where their restrictions already worked.
Knowing what not to put through the system is most of what makes it safe to hand over.
Got a process that only works because somebody remembers?
Most businesses have one — onboarding, quoting, approvals, intake. Email carries it, a person chases it, and nobody can say where it stands without asking. That’s the kind of thing I build out.