I’ve been telling clients that agentic AI works best when you let the agent drive. Figured I should prove it on my own business.
Last week, I built an FP&A agent that connects to HubSpot, QuickBooks, Google Drive, and Google Sheets. It pulls deal data, reads SOW contracts (actual PDFs), matches invoice line items to project milestones, computes revenue waterfall, backlog, and bookings, flags what is due for invoicing, catches mismatches across systems, and now runs our actual financial reporting.
The team thought this was funny enough to write a press release about it. I’m including it at the end because, honestly, it’s pretty good.👇
How It Works
The whole thing is built as a Claude Code plugin. I used Claude Code to build the plugin itself, including the instructions, skills, agent definitions, and Python libraries. Then I loaded it into a separate Claude Code session that actually runs the FP&A workflow. The first session is the developer. The second is the operator. Each one knows its job and stays in its lane.
The developer session writes the code, the Pydantic data models, the API clients, and the compute logic. It also writes the markdown files that tell the operator session how to do its job. The operator session does not write code. It orchestrates a 10-step pipeline: fetch deals from HubSpot, parse and group them into projects, find and download SOW PDFs from Google Drive, extract contract data by reading the PDFs directly, build milestone schedules, fetch invoices from QuickBooks, match each invoice line item to the right milestone, and then hand off to Python for the math, validation, and output.
The matching is where it gets interesting. A single QuickBooks invoice can span multiple SOWs. The agent matches at the line-item level using fuzzy matching across customer name, SOW number in the description, amount, and date. It reads the SOW contracts natively using Claude’s built-in PDF reading, so there is no parsing library required. All of the data flows through JSON files that conform to Pydantic schemas. The schema becomes the contract between the agent side and the Python side.
The Architecture Fight
Every model I worked with wanted to put Python in charge and call the LLM for narrow tasks like name matching. Traditional software architecture: deterministic pipeline, LLM as a utility. I kept pushing back. Why isn’t the agent running the show? Let Python do math and API calls. Let the agent orchestrate, read contracts, and apply judgment.
Here’s an actual exchange I had:
Me: “Couldn’t an LLM agentic thing be the orchestration here? And use tools for the math, etc. The world is shifting toward agents because they are more flexible and easier to update. Just update a markdown file.”
Model: “You’re right to push back on that. The ‘deterministic pipeline with LLMs as steps’ framing I gave is the safe answer, not necessarily the right answer.”
They all came around once I forced the question. But none of them started there. The models designed themselves out of the driver’s seat until I told them to stop.
Why That Matters
That decision paid off immediately. Some projects have weird accounting treatment. A deal gets restructured, a change order hits, or company names do not match across systems. Instead of writing code for every edge case, I just tell the agent what happened. It keeps an overrides file of corrections and checks it before every run. A rigid pipeline would need explicit override logic for each exception. The agent just reads its notes and applies judgment.
Updating business logic means editing a markdown file. The business rules around how change orders modify future milestones, how debookings reduce remaining amounts without going negative, T&M variance adjustments with capping, all of that lives in markdown and Python that I could iterate on easily. Edit the file, run it again. By hand or in my Claude Code session.
What It Actually Took
Build time was hours of my time across a few sessions, directing Claude Code using Opus 4.6. Wall clock time was roughly double that, waiting on the model. Claude Code wrote all of the code. My contribution was architecture decisions, business logic direction, and getting the API keys in place.
The connectors were trivial. The real work was the business logic. That is where all of the iteration happened.
Why I Built It
At every company I’ve run, this work was either handled by a finance team, lived in Excel a month behind reality, or just did not get done. I now have a system that stays current, validates across four data sources, and flags what needs attention. I keep being surprised by how well this stuff works when you let the agent drive.
Our marketing team was also surprised. Or at least entertained. “They” (AI) even wrote a satirical press release.
Atomic Gravity Launches “Close Enough™” — The World’s First Agentic Accounting App That Answers Questions Before You Regret Asking Them
Finally, an AI that reads your financials, interprets your chaos, and delivers answers with the confidence of a CFO who definitely did not check with Finance.
LOS ANGELES, CA — March 20, 2026 — Atomic Gravity today announced the launch of Close Enough™, a groundbreaking agentic accounting application built to answer the one question every operator, founder, and mildly concerned board member has asked at least once: “Wait… how much revenue do we actually have?”
Powered by proprietary “just-in-time confidence algorithms” and Tolga’s brain, Close Enough™ autonomously reads your files, interprets your contracts, ignores your naming conventions, and delivers beautifully structured answers in seconds — whether you are ready for them or not.
A New Era of Financial Clarity, Emotionally Optional
In its inaugural demo, Close Enough™ processed a single, slightly chaotic file and confidently delivered a full project breakdown, clean past-versus-future revenue segmentation, and a clear view of what was booked versus what was still ahead — also known as “we’re fine.”
It did all of that without asking a single follow-up question like “Is this the latest version?” or “What does FINAL_v3_REAL actually mean?”
Key Features
Autonomous Revenue Breakdown. Close Enough™ instantly splits past versus future revenue so you can answer questions mid-conversation, mid-meeting, or mid-panic.
Context-Aware Intelligence. It understands that “CUSTOMER AI SOW 2 FINAL FINAL” is, in fact, not final.
Real-Time Answer Generation. It delivers CFO-grade answers in seconds, even if your actual CFO is on vacation, in a meeting, or emotionally unavailable.
Low Subscription Fee. It is priced at a level that feels suspiciously reasonable compared to your current accounting overhead.
Confidence Engine™. It provides answers with just the right mix of accuracy and unwavering confidence to get you through any conversation.
Example Output, Actual
When asked, “What projects have we done for CUSTOMER and how much revenue is in the past and future?”, Close Enough™ responded with a full project list, clean revenue segmentation, a polished table, zero hesitation, and absolutely no “let me get back to you on that.”
Executive Commentary
Tolga Tarhan, Creator of Close Enough™, commented: “We built this because Amanda asked a question and I didn’t want to open Excel.”
An Atomic Gravity spokesperson, definitely Amanda, added: “This is what happens when you combine production-grade AI with a healthy disrespect for manual reporting.”
What’s Next
Future releases of Close Enough™ will include Board Mode™, which automatically translates numbers into “we feel good about this” language, Audit Mode™, which politely blames discrepancies on timing differences, and Founder Mode™, which rounds everything up and adds the word ARR.
Availability
Close Enough™ is available now as part of Atomic Gravity’s Applied AI suite for a low monthly subscription fee, or free if you just message Tolga directly.
Disclaimer: Close Enough™ may be more organized than your current financial systems. Results may cause sudden confidence in meetings.
Want to Build Something Like This?
We help teams move from idea to production in weeks, not quarters. No pilots or endless planning. Just working AI systems.