AI automation and systems consulting
Automation that knows
what the numbers mean.
I’m John Vickery. I build AI agents and automation that take over work people are doing by hand — and I spent seven-plus years inside enterprise payroll, HR and benefits systems first, so I know what the numbers are supposed to mean. Bi-weekly runs over $14M gross, 401(k) and pension reconciliation, multi-state compliance through two acquisitions. Both halves, for companies in the Upstate and remotely across the US.
Week 37 · 45 hours · night shift
example · invented figures
| Code | Basis | Legacy | New | Diff |
|---|---|---|---|---|
| REG | 40 hrs @ 22.00 | 880.00 | 880.00 | — |
| SHFT | 45 hrs @ 1.50 | 67.50 | 67.50 | — |
| OT | 5 hrs @ 22.00 | 110.00 | 110.00 | — |
| OTPRM | 5 hrs @ ½ rate | 55.00 | 58.75 | +3.75 |
| GROSS | 1,112.50 | 1,116.25 | +3.75 |
Cause
The FLSA regular rate is all straight-time pay divided by all hours worked — here 1,057.50 ÷ 45 = 23.50, not the 22.00 base. The legacy rule took the premium on base only. $3.75 a week, for every shift worker, every week it has run.
Week 41 · one day absent
example · invented figures
| Code | Basis | Legacy | New | Diff |
|---|---|---|---|---|
| REG | 32 hrs @ 28.00 | 896.00 | 896.00 | — |
| PTO | 8 hrs @ 28.00 | 224.00 | 0.00 | −224.00 |
| HOL | 8 hrs @ 28.00 | 0.00 | 224.00 | +224.00 |
| GROSS | 1,120.00 | 1,120.00 | — | |
| NET | 812.44 | 812.44 | — | |
| PTO bal | hours | −8.00 | 0.00 | 8.00 |
Cause
Both codes pay the same rate, so gross and net agree and every total anybody checks is clean. What changed is which bucket paid for the day: the legacy rule charged a company holiday to PTO and drew the balance down for it. Across a workforce that is PTO liability understated on the balance sheet — and it surfaces when somebody takes leave they were told they had.
Off-cycle · 3 weeks retro · 20.00 → 22.00
example · invented figures
| Code | Basis | Legacy | New | Diff |
|---|---|---|---|---|
| RETRO | 120 hrs @ 2.00 | 240.00 | 240.00 | — |
| RETROOT | 15 hrs @ 3.00 | 0.00 | 45.00 | +45.00 |
| GROSS | 240.00 | 285.00 | +45.00 |
Cause
Those three weeks held 15 overtime hours, paid at 1.5 × 20.00 and now owed at 1.5 × 22.00 — three dollars an hour. The retro ran on regular hours only. Nothing flags it; the shortfall is only visible if the retro is reconciled back to the periods it covers.
Invented figures, no client data. Three real failure modes, with the arithmetic worked through.
Systems I work in
- SAP Payroll
- ADP GlobalView
- UKG Pro / UltiPro
- Kronos · Dimensions
- ADP
- Dayforce
- IFS
- Dynamics AX
- Oracle
- Lawson · Infor
01 — Services
Everything I do, on one page
Two halves of the same habit: find the thing that is quietly wrong, then build the system that stops it being wrong again.
Payroll, HR and finance systems
Migration and parallel validation
Proving the new system agrees with the old one across every employee and every code — not a twenty-person sample — with each difference traced to the configuration rule behind it. What that looks like.
Reconciliation and remediation
The numbers stopped agreeing and nobody can say when. Accruals, 401(k) and pension accounts, tax deposits, the general ledger. Find it, quantify it, correct it, and leave the check that would have caught it.
Interfaces and integrations
Benefits feeds, retirement files, GL postings, time systems — and the reconciliation that proves the data survived the trip, because the ones that fail quietly are worse than the ones that break.
Reporting and cost allocation
Control files, fringe allocation, headcount and labour cost. Built in Power Query and DAX so they refresh from the source instead of being rebuilt by a person every month.
Configuration, and standing up a new system
Earning, deduction and tax codes, pay rules, accruals, business rules, a new state, a new company. Building it so it is right the first time, or going through what is already there and finding the rule that is quietly wrong. What that covers.
Year-end
Taxable fringe review, file testing, registration review, and the reconciliation that has to be true before anything is filed. Scoped in October, not December.
Automating the payroll run itself
The exports, the cross-checks, and the workbook somebody maintains that has quietly become a system of record. Replaced with something scheduled, logged and auditable.
Automation and software, for any business
Process automation
If somebody on your team opens the same spreadsheet every Monday and retypes the same numbers into it, that is the work. It becomes something that runs on its own — and that you can check.
Self-refreshing reporting
Dashboards that pull from the source every time they open, so the number in the meeting is the number in the system and there are not two versions of the truth in two inboxes.
Making two systems agree
An ERP that does not talk to the HRIS, a feed that drops records, an export somebody re-keys. I build the connection and the check that proves it is still right next month.
Search across your own documents
Point a local model at a folder of contracts, procedures or invoices and ask it questions in plain English. Answers come back with citations to the passage they came from.
AI on hardware you own
Local models running on your own machines, for the work where the data must not leave the building. No subscription, no third party, nothing uploaded.
Agents that read your systems directly
Wrap the API your payroll or HRIS already has, and an agent can query the system of record itself — read-only, live, with no copy of your data anywhere. How that works.
Custom internal tools
A single application that does the one thing your team does by hand. You get the source, it runs on your own machines, and it keeps working if you never call me again.
Also, because people ask: I am a commissioned South Carolina notary, so documents that need executing during an engagement can be.
02 — Record
What it has been worth
Four results from inside enterprise payroll and finance operations.
Systemic error found and closed
Financial forensics. Reconciling 401(k) and pension accounts, a difference that kept reappearing turned out to be structural, not clerical. Root-cause analysis traced it; the correction closed a $1.2M systemic error.
Operational hours back, every week
Reporting rebuilt. Control-file dashboards in Power Query and DAX for fringe cost allocation at a global manufacturer, replacing a cycle that had been assembled by hand.
Hours of manual entry removed
Built rather than bought. A zero-touch attendance reporting system in Power Query and VBA, plus Python for data chunking and API work — over $45,000 of contractor quotes not spent.
SOX conformance, two audits
Compliance under pressure. Sole payroll, benefits and compliance specialist for an operation of up to 2,000 employees across 15+ states, held through two acquisitions.
These came out of large enterprises. The problem does not change when the company gets smaller — a sixty-person business has the same reconciliation, the same handoffs and the same month-end, with fewer zeroes on the end.
03 — Payroll
The error is never where the report is looking
Payroll is the one operational system where a quiet mistake compounds every two weeks, reaches a federal filing, and is found by somebody who does not work for you. This is where I look, in order.
Net agrees and the codes do not
The two totals everyone checks are the two most likely to match, because a rules difference often moves money between codes without changing the sum. Overtime built on a different regular rate, a shift differential in or out of the base, a deduction sequenced differently — gross and net reconcile, and the FLSA exposure sits underneath them.
The interface that fails quietly
A benefits or 401(k) feed that drops records rather than erroring is worse than one that breaks, because nothing alerts and the gap compounds every cycle until an audit or a participant finds it. I have rebuilt one of these from scratch in the middle of a cycle when the vendor interface gave up.
Costing, not pay
Payroll is signed off on whether people were paid correctly. Finance cares where it landed — cost centre, GL account, project, fringe allocation. That half is usually validated last, by fewer people, with less time, and it is the half that shows up in a variance review three months later.
The exceptions, not the clean cycle
A validation run on a normal payroll proves the normal payroll. Retro pay, off-cycles, terminations mid-period, arrears, negative net, third-party sick pay, a garnishment that started on the wrong date — those are where configuration differences actually surface, and they are the rows a sample is least likely to contain.
Multi-state, and the person who moved
Reciprocity, local taxes, work-in versus live-in, SUI state assignment. Nothing goes wrong while everybody stays put. It goes wrong on the employee who relocated in March, and it stays wrong all year.
Taxable fringe and imputed income
Group-term life over the threshold, personal use of a company vehicle, relocation, gift cards somebody in another department handed out. These are not payroll’s data and they arrive late, which is why they become a Q4 emergency and a W-2 correction.
The sample
Twenty employees in a spreadsheet is the published advice, and it is reasonable advice for catching a gross mistake. It is not a method for finding a rule that affects one earning group, or one state, or the forty-seven people whose schedule crosses midnight.
Configuration, and what it actually covers
Half of what goes wrong in payroll was configured that way on purpose, by somebody who has moved on. This is the work of building it right, or finding the rule that is not.
Earning and deduction codes
What it is, how it taxes, where it posts in the general ledger, whether it belongs in the regular rate for overtime, and how it behaves in a retro. The first three get tested. The last two are found at quarter end.
Taxes, and a new state
Registration, tax codes, reciprocity, local taxes, work-in versus live-in, SUI assignment. Standing up a state before the first employee is paid in it costs a fraction of correcting a year of filings afterwards.
Pay rules and timekeeping
Rounding, shift differentials, premiums, callback, holiday and what counts as hours worked. This is where the number is actually decided; the pay code is only where it becomes visible.
Accruals and leave
Entitlement, carryover, caps, service-based tiers, and the balance that has to be right on the day somebody asks for it rather than at the end of the year.
Business rules and eligibility
Effective dating, approvals, and the rules that stop bad data being entered at all — which is always cheaper than the report that catches it two cycles later.
Standing up a new system
Company structure, pay groups, calendars, the full code set, the interfaces out, and a parallel run that proves the whole thing before anybody depends on it.
Platforms, and what was actually done in each
SAP Payroll · ADP GlobalView
Payroll operations and an implementation
Two stints running bi-weekly payroll for a global electrical manufacturer with roughly 4,000 employees — over $14M gross a cycle, plus executive compensation, stock options and non-qualified deferred comp. GlobalView is SAP payroll delivered as a managed service by ADP, so this and the ADP work below are the same estate seen from two sides. Earlier, payroll on an SAP implementation for an automotive quality-services firm.
UKG Pro · UltiPro · Kronos · Dimensions
Configuration, operations and integration
The deepest of these. Configuration end to end in UKG Pro — business rules, timekeeping, earning and deduction codes, pay rules, accruals — as well as running on it. Time and attendance feeding payroll is where most of the interesting defects live, because the error is created in a timekeeping rule and only becomes visible in a pay code.
Dayforce
Audit forensics
401(k) and pension reconciliation through Dayforce audit forensics, including the root-cause work behind a $1.2M systemic error that had been reappearing rather than resolving.
IFS
Timekeeping, HCM and the export to payroll
Maintaining the time rules and accrual policies in IFS, then exporting what they produced for import into the payroll system. Accruals are the quiet one: a rule that computes the wrong entitlement is a liability that grows every cycle, and it is usually found by an employee being told they have leave they do not, or do not have leave they do.
Lawson · Infor
Payroll operations
Payroll on Lawson in a large hospitality-services environment. Older stacks are not a lesser problem; they are usually a worse-documented one, and the people who know why a rule exists have moved on.
Oracle
Payroll to the general ledger
Mapping how payroll actually lands in the general ledger on a web-based Oracle ERP at a global manufacturer: which earning and deduction codes hit which accounts, cost centres and company codes, and where the posting stops agreeing with what payroll paid. Costing is the half that gets validated last, by fewer people, with less time — and it is the half that surfaces in a variance review three months later.
ADP · GlobalView · eTime · SmartCompliance
Timekeeping, compliance and the data between them
ADP is several products rather than one, and the useful experience is across them: GlobalView for the payroll itself, eTime for timekeeping, SmartCompliance for garnishments, tax filing and record retention, and the payroll and HR data moving between those and everything else. The interface layer is where the interesting failures are, because data leaves one system correct and arrives in another incomplete without anything erroring.
Microsoft Dynamics AX
Systems analyst · manufacturing reporting
A year as an ERP systems analyst on Dynamics AX at a manufacturer. The work was reporting: taking what the system already knew about production and turning it into daily reports that arrived on the right desks without anybody having to ask. Before that, people were each running their own version of the same query — which is how two departments end up in a meeting with different numbers for the same week.
Automation, and what it is actually built with
A platform is where the work lives. This is what gets built on top of it, in the order it actually gets built, and the tool is picked for the job rather than the job bent around the tool. What is below is the shape of it, not the whole of it — the list grows every year.
Getting the data out
Whichever door the system actually has
A canned report or the system’s own report writer, a SQL view against a reporting replica, a scheduled SFTP feed, an ODBC connection, or the vendor’s REST API. Which one is available decides the whole design, and it is the first thing worth finding out. Where an agent needs to read the system itself rather than a copy of it, an MCP server wraps that same API read-only.
Shaping it
Joins, types, and the measures on top
SQL and Power Query’s M language do the joins, the type coercion and the de-duplication; DAX once there is a model behind it rather than a sheet, which is Power Pivot and Power BI; Python when the shaping is past what a query can sensibly express. Most of the hidden work is here, because two systems almost never agree on what a date, a cost centre or an employee number looks like.
Doing the work
Python first, and a last resort
Python for most of it. VBA or Office Scripts when the work genuinely has to stay in the workbook a team already uses and will keep using. Keystroke and screen automation — AutoHotkey and the like — only for a system that offers no other door, because it is the one approach that breaks the day somebody moves a button.
Making it run without anybody
Scheduled, logged, reconciled
An automation nobody can check is a second system of record with no owner. So it is scheduled rather than remembered, logged so there is a record of what it ran on and what it produced, and reconciled afterwards by an exception report that names the rule behind a difference rather than only reporting that one exists.
Where the experience came from
Employers and clients are not named here; discretion is part of the job. The work and the figures transfer regardless, and I will talk specifics in a conversation.
Global manufacturer
Pension and payroll accounting
Pension liabilities and complex payroll finance data. Built the control-file reporting for fringe cost allocation in Power Query and DAX that replaced a hand-assembled cycle — the change estimated to reclaim over 120 operational hours a week.
Electrical manufacturer
Payroll, then senior payroll
Two stints. Bi-weekly payroll over $14M gross on SAP for around 4,000 employees, executive compensation, stock options and NQDC. Built a zero-touch attendance reporting system in Power Query and VBA that removed more than 200 hours of manual entry.
Multi-state employer
Sole payroll and compliance specialist
Up to 2,000 employees across 15+ states, held through two acquisitions, with 100% SOX conformance across two audits. Rebuilt a critical 401(k) data feed from scratch when the HRIS interface failed, and architected the employer’s first prevailing-wage payroll for government contracting.
National staffing firm
Seven placements, one decade
SAP implementation and payroll, Lawson, tax preparation, consumer finance, and a systems analyst post on Microsoft Dynamics AX. A repeat supplier relationship spanning ten years, which is a harder reference to fake than a testimonial.
Send me less than you think you need to
For a register comparison I need employee number, earning and deduction codes, and amounts. Strip the names and the Social Security numbers before you send anything. I do not need them to do the work, and the cheapest way to protect employee data is not to hold it.
Files are encrypted in transit and at rest, and deleted once the deliverable is built. I will sign your NDA, and if your security review needs a questionnaire answered, send it — I would rather answer forty questions up front than find a constraint halfway through.
04 — Direct access
Your agents can read the payroll system without copying it
Almost every “AI on your own data” project starts by moving the data somewhere else — a lake, a warehouse, a vector store. That copy is the whole problem. It is a second place employee pay data lives, it is stale the moment it is written, and it has to be secured, audited and explained all over again.
There is a better shape now. The Model Context Protocol is a standard way to hand a model a set of tools. Your payroll system, your HRIS and your ERP already have an API. Wrap that API as an MCP server and an agent can query the system of record itself — live, in place, with nothing extracted and nothing duplicated.
01
Read-only by construction
Only the read endpoints get exposed. The agent can ask what an employee’s year-to-date deferral is; it has no route to change it. That is a property of what was wrapped, not a rule the model is asked to follow — which is the difference between a control and a hope.
02
Credentials never reach the model
Authentication is injected at the gateway, on the way through. The service account, the token and the scope stay in your infrastructure. Nothing sensitive sits in a prompt, a context window or a vendor’s logs.
03
No pipeline to maintain
No nightly extract, no sync job, no schema that drifts out of step with the source in six months. The answer is as current as the system is, because it is the system. One less thing to own, and one less thing to be wrong.
04
Nothing new to procure
It runs against the platform you already license and the models you choose — local ones included, for data that must not leave the building. There is no new system of record, and no third party holding a copy of your payroll.
I have built the piece that does this: a registry that discovers services on a network, ingests their OpenAPI specs, compiles them into callable tools, and lets a model search for the one it needs instead of being handed hundreds. That one is built and it runs.
Where it does not apply, I will say so. This works when the system has an API worth wrapping. Plenty of older payroll stacks do not, and for those the honest answer is still a scheduled export and a reconciliation — which I will tell you rather than sell you the more interesting version.
05 — How
How an engagement runs
Tell me what is going wrong
One conversation, no charge, no deck. Walk me through the process that eats the most time or worries you most. I will tell you honestly whether it is worth automating — sometimes it is not, and that is a cheaper answer to get now.
A written scope and a fixed price
Before anything is built you get what it will do, what it will not do, when it lands and what it costs. Fixed fee, not an open hourly meter: the risk of the estimate is mine, which is where it belongs.
You keep the system
The code, the documentation and the handover are yours. Nothing I build holds your data hostage, phones home, or stops working the month you stop paying me. If you never call me again it still runs.
06 — Evidence
I don’t send slide decks about automation. I build the software.
Eighteen working applications, written solo, every one of them running on the owner’s own hardware with no service to subscribe to. None of it is a roadmap and none of it is for sale — building them is the point, because it is how I know what I can build, how quickly, and to what standard.
What it is for
Your own data, made answerable
Ask a folder of contracts, procedures or invoices a question and get the answer with a citation to the passage. Type a messy export correctly instead of by sample. Drive the systems that have no API. Each of these already exists, and each one runs inside your building.
And the hard end of it
Written from the maths up
Hand-written WebGL in a single file, no libraries and no CDN: a drone sensor screen, forty miles of real coastline built over OpenStreetMap data, a town that generates itself. None of that is what a payroll team needs. It is here because the ceiling of what somebody can build is worth knowing before you hire them.
07 — Who
I build the automation, and I have run the payroll it replaces
Most automation work fails in the same place. Whoever writes the code does not understand what the numbers are supposed to mean, so the system automates the wrong thing faithfully and everybody finds out in an audit.
I write agentic software — systems that read, decide and act on their own, with a person in the loop where a person is needed. Eighteen working applications, built solo, most of them a single file, all of them running on the owner’s own hardware. That is not a hobby alongside the consulting; it is the same discipline, and it is why I can tell you in one conversation whether the thing you want is a week’s work or a quarter’s.
The other half is the domain. I know what a retro-pay adjustment is supposed to do to a 401(k) deferral before I know what the code is doing about it, because I spent seven-plus years inside those systems: bi-weekly payrolls over $14M gross, executive compensation, stock options, non-qualified deferred comp, pension liabilities, multi-state compliance. As an employee, carrying the deadline — not advising from outside it. The same national staffing firm has placed me seven times in a decade, which is a reference of a kind.
Underneath both is a B.S. in Business Administration, accounting option, from Winthrop University, and a decade before that running my own commercial real estate brokerage — an office of six agents, the payroll, the overheads and the deals themselves — so I also know what a wrong number feels like when it is your own money.
That combination is the whole offer: somebody who can read your payroll register and your data model in the same afternoon and tell you which of the two is lying.
08 — Questions
The questions that come up most
What does it cost?
It depends entirely on scope, so anyone quoting a number before understanding the process is guessing. What I can tell you is the shape: a fixed fee, agreed in writing before work starts, for a defined deliverable. No hourly billing, and no change order for something we already agreed.
The first conversation costs nothing, and it is usually enough for me to say roughly what band you are in.
Do I have to replace my payroll or ERP system?
No, and I would rather you didn’t. I am not reselling anyone’s software. The work sits on top of what you already own — SAP, UKG, ADP, Dayforce, IFS, Dynamics AX, Oracle, Lawson, or the spreadsheet that has quietly become a system of record.
Replacing a payroll system is a year of pain. Most of the time the system is not the problem; the manual work stitched around it is.
On site or remote?
Both. I’m in the Greenville–Spartanburg–Anderson area and happy to be in your office for the parts that go faster in a room. Everything else is remote, and I work with clients anywhere in the United States.
How do you handle our data?
I ask for the minimum that makes the work possible, and it is usually less than people expect — for payroll comparison work, employee number, codes and amounts is enough to do the entire job. Strip the names and Social Security numbers before you send anything.
Files are encrypted in transit and at rest and deleted once the deliverable is built. I will sign your NDA, and I am a commissioned South Carolina notary if you need documents executed.
How small is too small?
If one person spends a day a week on something repetitive, there is a case to look at. Below that the honest answer is usually that the automation costs more than the problem, and I will say so.
I also work the other direction: payroll and HRIS teams inside large companies, and the consulting firms who need a migration checked properly.
What happens when the project ends?
You keep everything — the code, the documentation, the credentials, the lot. It runs on your infrastructure and does not need me employed to keep working. A retainer afterwards is a separate conversation and an optional one.
09 — Contact
Tell me what is costing you the most time
Email me. A sentence about what is eating the time is plenty to start with — there is no form to fill in and no brief to write first.