← Back to Work
Full-Stack + Automation[PRODUCT][CLIENT WORK]

Countersign

E-signature & approval workflow system

A role-based admin dashboard that runs a document e-signature workflow end to end: generation, approval chains, storage sync, and one shared status view.

My role
Built the intake flow and the role-based admin dashboard end to end, including document generation, storage sync, and the correction flow.
Built with
Next.js, PDF Generation, Cloud Storage API, Admin Auth
Status
Client work

Before

The problem

Signing status lived in email threads and a spreadsheet that drifted out of sync. Fixing a bad submission meant resending by hand and hoping the old copy didn't cause confusion.

The system

How the pieces connect

  1. Intake formVendor submits
  2. CRMRecord created
  3. TemplatingSignable PDF
  4. DashboardRole-based approval
  5. Cloud storageSync and track

Simulation

See it run

Client Workspace
Live
Approval Chain
Legal Review
→
COUNTERSIGN→
Fully Executed
› Countersignature in progress
Request Queue
Northwind Talent Agreement
PENDING
Bluecrest Vendor NDA
PENDING
+2 more

SIM: a simplified illustration of how the system behaves, with invented data. Not a capture of the real build.

Step by step

How it works

  1. 1A submission creates the CRM record automatically. Nothing is re-entered.
  2. 2The right template fills per document type and becomes a signable PDF.
  3. 3Role-based access decides who can view or approve each request.
  4. 4On completion the signed file syncs to storage and the tracker updates in the same pass.
  5. 5A correction flow fixes a bad submission and voids the old link without breaking the audit trail.

After

What changed

› Access management moved from developer-dependent to self-serve. No code changes needed for day-to-day admin work.
› Resending a corrected document now auto-invalidates the old link.
› One shared status view replaced two disconnected trackers.

Stack

For technical readers

Technical detail

The problem, in detail

› No shared source of truth. Status tracked in email threads and a spreadsheet that drifted out of sync.
› Fixing a vendor's bad info meant manually resending and hoping the old copy didn't cause confusion.
› A team member tracking outreach kept a second, disconnected status tracker, because there was nowhere shared to check.

Build notes

A two-repo system: a public-facing intake flow and an internal admin dashboard, both driving the same signing pipeline.

› Submission triggers a CRM contact record automatically, so nothing has to be re-entered by hand downstream.
› Document generation runs through a templating engine that fills the right fields per document type, then converts to a signable PDF.
› On completion, the signed file syncs to cloud storage and a tracking sheet updates in the same pass. No one is manually renaming files or copy-pasting status into a spreadsheet.
› Role-based access controls who can view or approve requests inside the dashboard, with a dedicated queue for tracking pending access requests.
› Built a correction flow for the failure mode that actually happens in production: a vendor submits the wrong document or a mistyped field. Rather than treating that as a support ticket, the system has a built-in path to fix and resubmit without breaking the audit trail.
› Every piece here is infrastructure the team runs on daily, not a one-off script.