Skip to main content
← Back to Blog

May 7, 2026

Building Custom Internal Tools With Claude Code in One Day

The exact pattern we use to ship Claude Code internal tools in a single day: discovery, data contract, scoped build, integration, guardrails, and deploy.

By Ian Phillips, Founder & CEO, Phillips Data Solutions

Building Custom Internal Tools With Claude Code in One Day

Building Claude Code internal tools used to be a polite way of saying "this will take six weeks." Today, with Claude Code driving the engineering loop, we ship the same tools in one focused day — sometimes one focused afternoon. This post is the exact pattern we use. It is opinionated, repeatable, and it works because it removes the parts of building software that historically blocked small teams: scoping, glue code, and the deploy.

If you have ever asked "why does a 200-line internal tool take three weeks to ship?" — this is the answer to that question in 2026.

What "Internal Tool" Means in This Context

When we say a custom AI app, we are not talking about a one-off ChatGPT prompt. We mean something like:

  • A small Next.js app that drafts a customer email using context from HubSpot and a knowledge base in Notion.
  • A queue dashboard that triages inbound forms, scores them, and routes to the right owner.
  • An internal "ask the data" panel that lets non-technical staff query a database in plain English — with guardrails.
  • An ops console that pulls overnight metrics and flags exceptions before the team's morning standup.

Each one is small. Each one would have been a multi-week build in 2023. Each one is now a day — if you follow the pattern.

The Day-One Pattern

This is the breakdown we use across most internal-tool engagements. It assumes one engineer paired with Claude Code, and a single stakeholder who can answer questions in real time.

0:00–0:30 — Discovery

One call. Three questions:

  1. What is the workflow today, step by step?
  2. Where does it leak time?
  3. What does "done" look like for v1?

We deliberately do not chase edge cases on the discovery call. Edge cases are cheaper to handle after the v1 is in front of the user.

0:30–1:30 — Wireframe + Data Contract

A single-page sketch (literally a screenshot of a Figma frame or a Whimsical drawing) plus a list of fields the app reads and writes. This artifact is the most important hour of the day. Every later decision references it.

The data contract has three columns: field, source system, read or write. That is it.

1:30–4:30 — Claude Code Session

A scoped Claude Code prompt with:

  • The data contract from the previous step.
  • Two or three sample inputs and the expected outputs.
  • A small set of acceptance tests (we ask Claude to write these first).

Claude writes the app. The engineer reviews and steers. This is not "AI replaces engineer" — it is "AI handles the boring parts so the engineer can think about the hard parts." The ratio of typing to thinking inverts.

4:30–5:30 — Integration

Wire the tool into HubSpot, Microsoft 365, or whatever lives upstream. We cover the integration patterns we reuse in HubSpot + Microsoft 365 + AI Agents. Most of this is already-solved OAuth and webhook scaffolding.

5:30–6:30 — Guardrails and Audit

Validation, retries, structured logging, a kill switch. A "draft mode" that holds outputs for review before they touch the system of record. The cost of building these in on day one is roughly 30 minutes; the cost of retrofitting them later is roughly a week.

6:30–7:00 — Deploy and Demo

Vercel, a small container, or whatever the client already runs. Walk the client through it live. Fix the first thing they break, on the call.

That is the whole day. The rest is iteration based on real usage in the following week.

Why Claude Code Is the Right Tool for This Loop

We have tried most of the agentic coding tools. Claude Code wins for tailored internal apps in 2026 for a few specific reasons:

  • It works inside a real repo, with real tests — not a sandbox.
  • It can run commands, read tool output, and self-correct — not just emit code blocks.
  • It is comfortable with the boring parts: env vars, OAuth flows, retry logic, error handling.
  • It pairs naturally with code review — we still ship work the way we always have, just faster.
  • It is honest about uncertainty — it tells you when something is ambiguous instead of producing confident garbage.

For workflows where you do not need a full app — just an automation — we usually pair Claude Code with n8n. We document that combination in Our Claude Code + n8n + Python Stack.

What Still Takes Real Time

Tooling has gotten dramatically better. Some parts of the job have not changed at all.

Getting the Data Right

If your CRM has 14 contact statuses and three of them mean the same thing, no AI fixes that for free. Data quality is upstream of automation, not downstream. See our data quality and HubSpot enrichment work for the cleanup-first playbook.

Change Management

A tool nobody opens does not save time. We bake adoption into the rollout — a Loom walkthrough, a Slack channel for feedback, and a 14-day check-in. Most of the tools that "fail" in the wild fail at adoption, not at code.

Security Review

Especially for anything touching customer data or finance. Worth doing once, properly. We treat this as a fixed cost on the second day of the engagement, not an optional add-on.

Should You Build or Buy?

The classic question, with a new answer for 2026:

  • If a SaaS tool fits 90% of the workflow, buy it. Adopt the convention, take the win.
  • If a SaaS tool fits 60% and the other 40% is where your business actually lives, build. That 40% is your differentiation, and a generic tool will always fight you on it.

The break-even point has moved decisively toward "build," which is the broader argument we make in Custom AI App Integration in 2026. It is also the moment described in When to Graduate from Zapier.

A Worked Example

A recent client — a 25-person service business — was losing an estimated 8 hours per week to manually copying form submissions from their website into their CRM, classifying them, and assigning an owner. We built them a small Next.js triage app:

  • Webhook from the website form → app receives the payload.
  • App classifies the submission (4 categories) with a Claude call and validates against a known list.
  • App looks up the matching contact in CRM via API, creates one if missing.
  • App posts a Slack message to the right channel with a "Claim" button.
  • Every action is logged.

Total build time: one day. Eight hours per week reclaimed. Payback inside the first week.

This is not exotic. It is what becomes possible when the engineering loop costs less.

Conclusion

The hard part of building internal tools in 2026 is not building them — it is knowing which one to build first. Pick a workflow that touches two systems, happens weekly, and currently relies on a human doing pattern-matching by feel. Wireframe it in an hour. Build it in an afternoon with Claude Code. Ship it before the day is out.

Ready to automate? Start a free discovery at phillipsdatasolutions.com/contact

Ready to automate?

Start a free discovery at phillipsdatasolutions.com/contact — we'll map your highest-ROI automation opportunities in 30 minutes.

Book Free Discovery