How to Ship Your Own Internal Tool as a PM (No Eng Ticket)
You keep wishing a small internal tool existed. You can build it yourself this week with an agent covering the parts you don't know. Here's the path from idea to deployed.
Table of contents
There's a small tool you keep wishing existed. A dashboard that joins two reports. A script that auto-tags incoming feedback. A page that shows the one number your team checks every morning. You've never built it, because building it meant filing an eng ticket and waiting two quarters for it to lose a priority fight.
You don't have to wait anymore. You can ship that tool yourself this week, with an agent doing the parts you don't know how to do. Here's the path.
What you'll have by Friday: one small, single-purpose internal tool — built by you, deployed somewhere your team can reach it. And a new default belief that you can build the next one.
You've actually done this before
Here's the reframe that unlocks it. PMs have been building their own tools for thirty years — we just called it "a spreadsheet." The gnarly tracker with the nested formulas, the dashboard held together with VLOOKUP and hope? That was you, refusing to wait for eng, building the thing you needed. Citizen developers before the term existed.
Agents are the same instinct with the ceiling removed. The Claude Code team talks about PMs building their own tools as a normal Tuesday, not a heroic exception. The belief that building is "for engineers" was true only while writing code was the hard part. It isn't the hard part anymore.
Your job here is not to become an engineer. It's to be the person who knows exactly what the tool should do and uses an agent for the syntax. The judgment about what's worth building is the PM-shaped part. The typing is the rented part.
Step 1: Pick a use case that's small and yours
The number-one mistake is starting too big. Don't build "a feedback platform." Build "a page that reads our feedback export and counts how many mention pricing."
Good first tools share three traits:
- Single purpose. One job, done well.
- Yours to use. You're the user, so you're also the QA. Nobody else depends on it yet.
- Low-stakes. It displays or transforms data. It doesn't delete anything or touch production.
Write the use case in one sentence. Can't? It's too big. Cut it down until you can.
Step 2: Scope it like you'd scope an agent task
Before you build, write a tight spec. Not a PRD — a task envelope:
- Does: "Reads
feedback.csv, groups rows by theme, shows counts in a sortable table." - Does NOT: "No editing. No saving. No auth. Local only, for now."
- Done when: "I can open it in a browser and see the table."
This is the single highest-leverage thing you'll do all week. A loose spec sends an agent wandering and you end up with a sprawl you can't follow. A tight one keeps it on rails. It's the same discipline that powers reusable agent commands — be explicit once, reap it forever.
Step 3: Build it in small loops
Open a coding agent. Hand it the spec, ask for the smallest working version. Run it. Then ask for the next piece.
The trap is asking for everything at once and getting a wall of code you can't verify. Work in loops instead — request, run, check, request — where each loop produces something you can actually look at. If a step breaks, paste the error straight back. Agents fix their own messes far better than they explain them.
After each working step, ask the agent: "explain in plain English what this just did." You're not learning to code. You're keeping enough understanding to verify the thing and describe it to someone later. In this era, verification is the real job.
Step 4: Verify against your spec, not the demo
Before you call it done, go back to your "done when" line and check it honestly. Then throw a couple of ugly inputs at it — the empty file, the weird row, the duplicate — the way you'd map failure modes on any feature. Internal tools earn trust by surviving the bad input, not by acing the clean one.
Step 5: Deploy it where your team already is
A tool on your laptop helps exactly one person. The whole win is sharing it. Pick the lowest-friction option:
- A link your team can open (most agents will deploy a simple app to a URL in a few prompts).
- A script in a shared repo with a one-line "how to run."
- Even a scheduled job that drops the output into your team chat each morning.
Don't gold-plate the deploy. Shipped-and-a-little-rough beats perfect-and-on-your-hard-drive, every single time.
The real artifact isn't the tool
The deliverable is the working tool. The prize is the new belief that you can build the next one — and there's always a next small thing worth building. You just deleted the dependency that used to block it.
Start with the smallest tool you actually want. Ship it this week. The waiting-on-a-ticket era is quietly ending, and the people who internalize that first are about to look unreasonably productive.
Next: turn your best workflow into a reusable commandRelated posts
How to Build Reusable Slash Commands and Skills for Your Team's Agent
Your best workflow lives in your head and dies when you're on PTO. Package it as a reusable command and it becomes everyone's default. Here's how to build your first one.
"Drive It Like It's Stolen": Why Agency Beats Skill Now
When a model can hand you the skill on demand, the scarce thing is the person who just goes and does it. The case for hiring, and becoming, the one with agency.