The Setup
Emma Grace Home, a premium home furnishings brand on Shopify. Reclaimed-wood case goods and English-style leather seating in the $999 to $7,500 range. A real catalog, a clear aesthetic, and a blog that did nothing.
The two normal paths to fixing that are both bad. Hire a content agency and pay a flat retainer for four generic posts a quarter that read like every other home brand’s blog and link to nothing. Or write it in-house, which means the founder loses a week a month to a chat window. The brief I took was different: treat content like a system. Build an engine that produces brand-voiced, product-anchored posts on demand, and run it.
What I Built
A multi-agent content engine. Each post moves through the same pipeline, and each step does a job a chat window skips.
Keyword and intent research. Free-source pulls from Google Suggest, People Also Ask, and Reddit, clustered into topics a real buyer searches. No paid SEO tool.
Catalog-anchored outlining. Every post is outlined to lead with a specific product the brand stocks. If a topic could not point at something in the catalog, it did not get written. That single rule is the difference between content that compounds into revenue and content that fills a blog.
A brand-voice writer. A writer agent drafts from a voice canon authored from the brand’s own copy. It reads the way the brand talks.
An automated voice linter. Every draft runs through a check that fails closed on the tells of machine writing: decorative triplets, “not just X but Y” constructions, em-dash overuse, empty intensifiers. A draft that trips the linter gets rewritten before a human ever sees it.
Image generation. A hero image plus in-body detail shots, generated to the brand look and spliced into the post. No photographer. No stock library.
Shipped to Shopify as drafts. Each finished post lands in the store as an unpublished draft, with SEO title, meta description, and schema already filled in. The brand reads it and publishes it. Nothing goes live without a human approving it.
The Part Worth Being Honest About
The engine was not right on the first run. It produced posts that named competitors, posts that read like an antique appraiser instead of a furniture retailer, and posts that taught a topic well but never pointed at a product. Each of those was a tuning problem, and each got fixed: a rule against naming competitors, a positioning correction that made every post anchor to a piece the brand sells new, a hard gate that blocks any post with no product link.
That is the case for an operator running the engine instead of a tool running loose. The engine does the volume. The judgment about what the brand should and should not publish is the work. A subscription tool gives you the first and skips the second.
The Result
Sixteen posts sit in the store’s blog as drafts, ready for the brand to publish on its own schedule. Every one is written in the brand voice and passed the linter before shipping. Every one anchors to a real product and links to a live collection. Every one carries a generated hero image and in-body detail shots. Every one ships with SEO metadata and schema already in place. Zero name a competitor.
The brand did not hire a copywriter, brief a freelancer, or sign a content retainer. The engine is built and tuned to the catalog now, which means the marginal cost of the next sixteen posts is close to the time it takes to read and approve them.
The catalog those drafts point at is the one I built for the store, 150+ products rendered in-house with no product shoots. The store’s tracking got its own repair.
Content stops being a recurring invoice for generic output and becomes an asset the brand owns. The engine gets built once. After that it runs.