AI Builds
How We Automate Purchase Tracking for Interior Design Projects
Published April 11, 2026
On a live interior design project, every vendor order generates a receipt. Amazon, Wayfair, specialty vendors. Every purchase hits someone's email, and every one has to get logged in the right project with the right amount. When things are busy, entries get missed. Budgets drift. Close-out turns into a cleanup job instead of a final step. We built an AI agent that handles all of it automatically, every morning at 6 AM.
The problem with manual entry
This build was for 1584 Design, a firm that has 7x'd its revenue over two years without hiring. At that volume, vendor transactions across active projects compound fast. Someone has to log each one: vendor, amount, project, payment method. That work is invisible until it's wrong.
When transactions get missed, the project budget drifts from reality. At close-out, reconciling what was actually spent means going back through emails by hand and matching them against whatever made it into the system. That's time nobody budgeted for, on top of work that shouldn't have been manual in the first place.
What the agent does
The agent runs every morning at 6 AM. It searches Gmail for order confirmation emails using vendor names the firm works with plus keywords that signal a purchase. It filters results, drops duplicates and non-orders, and extracts the relevant data from each email: vendor, total, subtotal, shipping address, payment method, and any line items or invoice links that are available.
Then it creates a transaction in Ledger, the firm's project management software. By the time the team starts their day, orders from the night before are already logged. They can review, clean up anything that needs it, and move on. No data entry on the front end.
How it prevents errors
Automating data entry is only useful if the data is right. Two layers of duplicate checks keep the system clean. First, the agent checks whether a transaction has already been created from a given email ID. If it has, it skips. If not, a second check looks for a matching vendor, amount, and date already in the software. Both checks have to pass before a transaction is created.
Matching each purchase to the right project works because every project in Ledger has notes with identifiers: shipping address, last four digits of the purchasing card, client name, sometimes vendor-specific notes. The agent reads those notes and uses them to make a confident match, or flags the transaction for human review if it isn't confident. The system is biased toward flagging. Errors in project data are worse than a flagged transaction that a human can resolve in ten seconds.
Because the agent uses AI to evaluate matches, it can reason about meaning instead of doing pure string matching. If a transaction is described differently in email than in software (different abbreviation, slightly different item name), it can still determine whether they refer to the same thing.
How it was built
Three pieces had to be in place: an AI platform (Claude Desktop), a set of instructions for the agent (what Claude calls a skill), and connectors to the systems the agent needs to reach. In this case, Gmail and Ledger. The Gmail connector already existed. The Ledger connector was custom-built so the agent could talk to the software directly.
Before writing a line of the skill, the build started with a conversation. Not planning, not implementation. Talking with the AI about the goal, the constraints, what the system should and shouldn't do. The AI's first proposal involved building custom software. That wasn't the right direction. After pushback, it suggested a simpler architecture: a Claude skill that agents can install and run, no custom software required. Cleaner, faster, and fully contained inside the AI stack the firm already uses.
After the skill was drafted and the Ledger connector updated, the first test found nothing. The order keywords were too narrow. Expanded keywords fixed it. A second test confirmed duplicate detection worked. A third confirmed new transactions were being created correctly. AI builds almost never work right on the first pass. The process accounts for that.
Scheduling it to run daily
Once the skill was working, setting up the daily run took one prompt: ask Claude to create a remote agent that runs the skill every morning at 6 AM. Claude created the agent, which is a set of instructions that tells Anthropic to spin up a fresh agent each morning, load the skill, and run it. One click to confirm the schedule, and it was live.
The next step is continuous inbox monitoring. An agent that watches for new emails as they arrive and pushes order confirmations through the same pipeline immediately, rather than waiting for the morning batch.
The result
Purchase tracking for 1584 Design is now fully automated. Every incoming order that comes through email gets matched to a project and logged in the software overnight, without anyone on the team doing data entry. The system will save dozens of hours over the projects ahead, and it removes one of the most consistent sources of budget drift from operations.
The build required a Gmail connector, a custom Ledger connector, one skill, and one scheduled remote agent. No custom software. No ongoing maintenance beyond occasional keyword updates as new vendors get added.
Ready to build this for your firm?
Book a strategy call and we'll map out exactly what to build first.