← Back to work

Case study · Standalone agent

Smith - turning a critical-path go-live blocker into a 15-minute command

Distributor go-live ran on a week-one dependency chain: the white-label mobile app had to be published to the App Store and Play Store before a launch could happen. Publication needed screenshots - six pages each, captured on iPhone, Android, and iPad, composited into store-ready device frames, and filed via a Jira ticket. Each step was small; together they burned 2-3 hours per release and held up entire app submissions. I built Smith, a standalone agent that runs the whole pipeline from one command. First production release: end-to-end in 15 minutes.

15minutes per release, down from 2-3 hours of manual work
18store-ready frames composited in one command (6 pages × 3 device sizes)
1Jira ticket auto-created - the agent closes its own handoff

Why screenshots were the bottleneck

App-store publication is a critical-path week-one dependency for every distributor launch - the apps simply can't ship until it's done. And publication can't start until the screenshots are. The manual flow looked easy on paper but didn't flow in practice: wait for the white-label app to be branded and ready, log in across three device platforms, capture six pages each, composite the captures into the device frames the stores expect, and file the Jira ticket. Doing it well took 2-3 hours per release. Doing it across many distributors at once held up entire app submissions.

A teammate flagged the pain directly in an onboarding sync: "This has been holding back a bunch of the apps. We first need to wait for the white-label app to be done; then we need to go in and take the screenshots. When you add in time zone, it just doesn't flow as smoothly." Another framed it as a critical-path dependency in a weekly sync: "When we go into week one, one of the big dependencies we have is the app needs to be published in the app store."

What I built

Smith is a standalone agent. One command, four inputs, one output: give it the white-label URL, the customer test credentials, the brand color, and the app name. It logs in to the white-label app, captures six pages across three device platforms (iPhone, Android, iPad), composites each capture into the right store-ready device frame, and creates the Jira ticket engineering files against. Nothing else to babysit.

The first production release

Smith's first end-to-end run on a real distributor took fifteen minutes - start to filed ticket. From my own walk-through that day:

In my own words

"I just give it the URL, the username and password to the white-label app, the branding, the primary color, and the name of the app. It logs in automatically… takes the screenshots, downloads them, and inserts them into the iPhone, Android, and iPad frames."

What's next - from local script to platform feature

Smith still runs as a script on my machine - fine when I was the only one launching distributors, not fine once the rest of the team needs to run it. The productization path is planned but not shipped yet: keep the same input contract (URL + credentials + brand + app name), move the runtime into the FDE platform, and let any teammate trigger it self-serve. The input contract has been deliberately small from day one so the productization step is a runtime move, not a redesign.

Announcing the productization plan

"We managed to automate the white-label screens. That's currently an agent running on my machine, so for the moment I'll take care of it. In the future we'll add it to the FDE tool - you give it the white-label URL, the customer test account, username, and password, and it runs."

Recognition

Smith was flagged internally as a model AI-adoption win by the team driving AI rollout at Cut+Dry. It gets noticed because the unit economics are obvious: a chunk of repetitive PM work - 2-3 hours of careful, error-prone setup per release - turned into a one-command run that closes its own Jira ticket.

Stack

Browser automation (white-label app login + page capture) Device-frame compositing (iPhone, Android, iPad) Jira API (auto-created submission ticket) Minimal input contract (URL + creds + brand + app name)

Currently runs as a local script on my machine. Planned to ship inside the FDE platform as a self-serve action any teammate can trigger; not yet shipped.

What I learned

Next case
FDE PM Agent on Obvious →