Aykhan Rustamov

Synergy3 · NetSuite and AI · Sep 2026

Permit packets and the permit portal

Permits used to be filled in by hand, form by form. Now one click on a job builds the whole packet: building, electrical, plumbing, mechanical, fire and chimney forms, filled in and merged. AI reads the uploaded documents so nobody retypes them. The portal around it had stalled before I got it, so I rebuilt it.

355
test cases run before launch
204
townships loaded from one spreadsheet
  • SuiteScript 2.1
  • Suitelet app
  • pdf-lib
  • Vision and language models

What it replaced

Every heating, cooling and plumbing job needs a permit from the township it is in, and every township wants its own forms in its own order. Before this, those forms were filled in by hand from the job record, one at a time, and where each application stood lived in someone's head and a spreadsheet.

Permit portal Working demo · made-up data
Loading the demo…

The working demo of this system opens on a desktop screen. Here is how it works:

How it works

  1. 01Every permit in one placeA table or a pipeline board, filtered by stage and trade, exported as it stands.
  2. 02Move it alongDrag a card to the next stage and the record follows.
  3. 03AI reads the paperworkThe stamped application is read from the scan: permit number, fee, stamp date.
  4. 04AI checks the equipmentFuel, exhaust and size, with a warning when gas is vented into a masonry chimney.
  5. 05One click packetEvery form the township wants, filled in and merged in its order.

What it does

The portal lists every permit with its stage, as a table or as a pipeline board. Opening one shows the job, the customer, the township and its contact, and how far the application has got. One button builds the packet: the cover sheet, the signed application, the trade scope and cost summary, and the official subcode forms for building, electrical, plumbing, mechanical, fire and chimney, each filled in from the record and merged into one file in the order that township expects.

Where AI helps

In two places. When the stamped application comes back, the scan is read by a vision model, so the permit number, the fee and the stamp date land on the record without anyone retyping them. And the equipment on the job is looked up, so the portal knows the fuel, the exhaust and the size, which is what decides the subcodes. A furnace that burns gas but vents into a masonry chimney gets flagged, because it needs a liner and a chimney subcode, and that used to be missed until the inspector found it.

Inherited, then rebuilt

The portal had stalled before it reached me. I rebuilt it as a single page application inside the ERP and wrote a test pack of 355 cases with the permit team. One round of fixes took it from 187 passing to 315, and the one failure that blocked launch, closed permits staying editable, went first. It went live in September.

Since then it has been review rounds on real packets with the person who files them: a mechanical form whose printed labels the merge mistook for fields, a line that printed one row too high in one PDF viewer, a cost box that now adds itself up. The township list she kept in a spreadsheet came in as 204 records in one import instead of being typed.

Systems inside it

  1. One click packet, six official forms
  2. AI reading of uploaded documents
  3. Permit portal with pipeline and address views
  4. Different rules for each township
Described at the level of the work, never the data. No code, records or customer details from this system appear on this site. A walkthrough is available on request.

Contact

Tell me what slows your team down.

Available for ERP and NetSuite work, platform integration, and full product builds. The quickest way to reach me is email or WhatsApp. I reply within a day. If you are writing about a role or a build, a sentence on what the system has to do is more useful to me than a job description.

hello@arustamov.dev
Email meDownload CV