Every small business has at least one task that quietly eats hours every week — the kind nobody complains about because it's just always been done that way.
For one of my clients — a CNA (Certified Nursing Assistant) training school — that task was compliance paperwork. Specifically: two government-required PDF forms that had to be filled out manually for every single student in every cohort.
When a student enrolled in the program, staff had to fill out two separate forms:
These aren't optional forms. They're regulatory requirements. And they can't be skipped, consolidated, or sent digitally — they need to be completed and filed for every student, every cohort, without exception.
The process looked like this:
With dozens of students per cohort, this added up to hours of work — done by healthcare educators whose time should have been spent teaching, not doing data entry.
The first thing I looked at was whether these PDFs had built-in fillable fields — the kind you can tab through in Adobe Acrobat. They didn't. The forms were static: scanned government documents with no interactive fields whatsoever.
That ruled out the simplest approach (auto-filling form fields). Instead, I needed to overlay text directly onto the PDF at precise coordinates — placing the name and SSN exactly where they needed to appear on each page, for each student, without altering the underlying form.
Under the hood, there are two Python scripts — one for each form type — built around three libraries:
pandas — reads the Excel roster (Name + SSN columns) and iterates through each student rowreportlab — creates a transparent overlay canvas with the student's name and SSN placed at exact pixel coordinates on each pagepikepdf — opens the original PDF template, merges the overlay onto each page, and saves the completed documentThe coordinate placement was the most precise part of the work. Each field on each form required individual calibration — the name on page one of the Student Record sits at a different position than the name header on subsequent pages, and both differ again from the Skills Checklist layout. I mapped each one by hand against the original documents.
The output is a folder of individually named PDFs: Jane Smith - Student Record.pdf, Jane Smith - Check List.pdf — organized and ready to submit without any manual renaming.
Here's where it mattered that the client isn't technical. Handing them a Python script and saying "run this in your terminal" isn't a solution — it's a new problem.
I packaged the entire tool into a standalone Mac application using PyInstaller. The client received a single app icon on their desktop. They put their Excel file in the right folder, double-click the app, and every PDF for the cohort is generated automatically. No Python installation. No terminal. No instructions beyond "click this."
SSNs are about as sensitive as data gets. One thing I made sure of: everything runs locally. The spreadsheet never leaves the client's machine, no data is sent to any server, and the app has no internet connection. For anyone handling regulated student records, that matters.
A process that used to consume hours of staff time per cohort now takes seconds. The output is consistent, correctly formatted, and properly named every time — with no risk of a typo in an SSN or a name entered on the wrong page.
"I wish I would've called you years ago." — Administrator, CNA Training School
This project didn't require AI in the ChatGPT sense. It didn't require a SaaS subscription, a workflow tool, or a six-figure budget. It was a targeted automation that solved one specific, expensive problem — and it will keep saving time every cohort, indefinitely.
Most small businesses have at least one version of this problem. The pattern is almost always the same:
When I see that pattern, the fix is usually straightforward. The hard part is recognizing that it's fixable in the first place — and knowing what to build.
Book a free 30-minute call. We'll find your version of this problem and figure out whether it's worth automating — no pitch, no obligation.
Book My Free Discovery Call →