Mainspring AI

Trade School AI Tool Creation | 2024-2025

Look, ma! I helped build an AI.
I was part of the combined Trade School, Eskridge and Simply Put teams who built Mainspring AI to speed up Creative Automation with a human touch. 

I’ve done a LOT of research into DCO and AI-enabled Creative Automation platforms for my role at Trade School… and the biggest drawback I’ve seen in most of them is the lack of adjusting or editing possible once the AI has done its work. i.e., What you get is what you get.

-OR-

There is a huge price tag or “credit” spend attached to have the AI regenerate the ads with updated prompts.

Either way, a real human never gets a chance to touch the work and tweak it.

Mainspring AI is Trade School’s “Powered by AI, Guided by Humans” solution built to fill that gap of automation + human editing. I was one of the lead architects for Mainspring’s back end, specifically the design and coding of the platform’s visuals. (In other words, I designed the sexy part that actually makes the ads.)

I was also responsible for choosing the “end” platform where the designers and copywriters can step in to bring the human element to the editing process.

As of right now, Mainspring is a managed service and not a true SaaS offering, but there is talk of white-labeling it for brands later so they can do self-service ad creation.

The Team

Smarter creative automation as a managed service.

Head over to the Mainspring page on Trade School’s website to schedule a demo.

I have a LOT to say about Mainspring beyond what you’ll read on the Trade School website.

Mostly revolving around this: It was my idea.

(But not the name: Brandon Malcolm deserves all the credit for naming the product “mainspring” after the chief spring in a mechanism like a watch or clock)

Let me take you back to when I started at Trade School in 2022. The Home Depot would send over a media “matrix” (i.e., a glorified Excel spreadsheet) detailing all of the ad units we had to build. It contained funnel placements, ad platforms, flight dates, specific ad buys, and the messaging and visual directions the Creative team should follow to build out the ads.

Our Strategists would then take all of the information and plug it into the deck of blank ad shells the Creative team would work from.

Literally copying and pasting.

FOR DAYS.

Is that the best use of a Strategist’s time? I didn’t think so. The Strategy team at Trade School is far too smart to be spinning their wheels copying and pasting.

And most of the messaging and visual direction provided was extremely prescriptive. Like, “Use this copy line and this image for frame one of this carousel, use this copy line and this image for frame two, etc.”

In my opinion, Strategy and Creative were wasting a colossal amount of time doing copy-and-paste work. The initial agency kickoff through the Creative Development phase was WEEKS long. When Dan Hou and the team at Eskridge were brought in to do some consulting work for Trade School, I WOULD NOT let this go. If Trade School was meant to be a content-at-scale agency, this was the PERFECT place for AI to step in and eliminate useless, wasted time.

Anything that could get us from matrix to content deck faster was a win in my book. The problem was, the Home Depot’s in-house technology team developed their own, proprietary Python script that would do exactly that: take the Excel matrix and convert it into pre-formatted PPT slides for each ad unit. It helped that everything program-wise was contained in the Microsoft ecosystem. When this happened midway through the initial development of Mainspring, the parameters shifted to build… everything.

Not just the empty shell deck where all the matrix inputs were plugged into their respective slots on each slide.

Everything.

Post copy. Headlines. CTAs. Cropped images in the correct templates. Generative outfill on images that don’t fit the aspect ratio needed for the template.

Everything.

And still able to be edited after the initial pass.

The back end of Mainspring features a custom Airtable + ChatGPT + Stable Diffusion that eventually feeds into a Figma document where the templates exist. The devs from Eskridge and SimplyPut did an amazing job daisy-chaining all of those APIs together into the Mainspring interface and Figma plugin. The way it’s built, we can swap in any text-based AI platform for ChatGPT (Claude, Gemini, Jasper, etc.) and any visual-based AI for Stable Diffusion (although the price tag attached to Adobe Firefly is… prohibitive… unless we have a client willing to pay for it up-front because Adobe wants a three-year commitment to plug into their API)

I pushed for Figma. HARD. We’d explored bringing on Adobe Assets under AEM, and its template backend at the time was using InDesign files. Basically, a tag in the InDesign layer referenced a placement that Assets would fill—Innervate and SmartSheet have a similar handoff system where data is in one spot and it goes into a template in another spot.

After my design team embraced using Figma for ad building thanks to the Library and Variable Component features, we’d been off to the races. Gone were the days of the team having to share 50 to 100 PSDs back-and-forth to collaborate on a campaign: everything static could be built in ONE design file regardless of the aspect ratio, and anyone with the link could jump in and work on it without crashing their machines. Vacation and sick day coverage got so much easier when we introduced Figma into the process, so Figma WAS GOING to be the back end of Mainspring.

The biggest reason: Figma stays editable.

A lot of AI ad-builder platforms perform “destructive” actions like flattening layers or outlining text, and for Mainspring to be truly useful as an AI-enhanced tool and workflow, the ability to edit post-generation was essential. We couldn’t have a “what you generated is all you get” kind of platform.

I was working on Mainspring for a full year before Dayna joined the team. With her product background form Vox Media, she’s taken the reigns on the day-to-day dev sprints, but I’m still VERY involved. I’ve been working directly with the dev team on Mainspring for over two years now, and I’m still on the front lines actively working to make it better. I’ve built and coded all of the templates for every demo and every client who has taken the jump.

The first client who took the jump and used it was Oldcastle APG. And Oldcastle didn’t just want ONE of their brand campaigns as a test, they wanted THREE of them.

Some screenshots from under the hood