← All work
Built here● Live

Recruiting automation stack

Drag a candidate card and the paperwork sends, signs and files itself.

Recruiting runs on paperwork. Before a candidate can be presented to a client, they sign a representation agreement. During onboarding there are a couple more documents behind that one. All of it used to be handled by hand: prepare the file, fill in the candidate and role details, send it, chase the signature, file the completed copy, tell the recruiter it is done.

That sequence has been automatic since June 2026. A recruiter drags a candidate card into a stage in the applicant tracking system, and the rest happens without anyone touching it. The agreement goes out prefilled with locked job fields, the candidate signs as a guest from their phone, the signed PDF comes back with its audit page and files itself to the candidate record, the stage advances, and the recruiter gets a note that it is done. Onboarding sends two more documents the same way. It runs on one Cloudflare Worker and a small database, about five dollars a month, and the recruiting team uses it every day.

The system is default-deny at every gate. A drag into a trigger stage queues a send rather than firing one immediately, and a ninety-second grace period lets an accidental drag cancel itself before anything goes out. A duplicate guard reserves its record before the invite leaves, not after, so a repeated webhook cannot produce two documents. Blank fields refuse to send and alert a human instead of guessing. A week of dry runs preceded going live.

The same worker family also feeds our two public job boards, showing only the fields meant to be public, and runs an #open-roles Slack feed that has been live since August 2026: new roles post within about fifteen minutes, a twice-weekly digest goes out, and a one-click referral form sits alongside it. An hourly self-monitor checks the pipeline's own health. The hardest night on record was the night the recruiting team moved its full history into the new applicant tracking system: 122,000 webhooks across roughly 36,000 candidate records in a single night. The gates held and not one wrong document went out.