Skip to main content

Automated AI Marketing Content Generator

The client was a marketing operations platform serving roughly two thousand mid-market brands across e-commerce and B2B SaaS. Their customer success team reported that the single biggest reason for slow campaign velocity was content production. Every multi-channel campaign required a blog post, three ad variants per platform, and a sequence of social posts, which marketers produced manually or outsourced to freelance writers who needed two-week lead times.

-80%time to campaign
-60%content cost
<10%rework rate
<10minvoice retrain
Product architecture: web and mobile clients talk to one API layer, which fronts the application services, the datastore and the model service.webmobileAPIservicesdatastoremodelone API surface, so clients never diverge

Generative AI Solutions

Marketing SaaS

11 weeks from kickoff to general availability

4 specialists

The full story

The user problem was not "write copy faster" in isolation. It was the brand-voice drift that appeared as soon as multiple writers were involved, and the rework cycle when a draft came back tonally off. Marketers ended up spending the time they saved on first-draft generation on second-draft brand-voice corrections, which made the existing generic AI writing tools a wash on time saved.

We approached the problem as a brand-voice modeling problem first and a content generation problem second. The platform ingests a brand’s existing content library, fits a voice profile that includes vocabulary preferences, sentence rhythm targets, and forbidden phrases, then conditions every generation on that profile. Each output is scored against the profile and regenerated automatically if the score falls below a tenant-configurable threshold.

What shipped is a campaign workspace where a marketer briefs a campaign once and gets a coordinated asset pack. Blog post, three ad variants per platform, and a five-post social sequence, all in the brand voice. Drafts publish straight to HubSpot for blog and email and to Mailchimp for newsletters, with a single human review queue rather than per-asset approval. Voice profile updates retrain in under ten minutes so seasonal tone shifts can be reflected without a re-onboarding.

Generic AI writing tools saved first-draft time and then gave it back during brand-voice rework, net zero on campaign velocity.

01

Every multi-channel campaign required a coordinated set of assets, but each was produced in isolation and tonally drifted.

02

Freelance lead times of two weeks killed the test-and-iterate cadence the marketing teams wanted to run on paid channels.

03

Existing generic AI tools produced output that read as AI, which forced a tone rewrite that erased the time savings.

04

Publishing to HubSpot and Mailchimp was manual, with copy-paste errors creating tracking and personalization breakage.

05

There was no shared brand-voice artifact across writers, so onboarding a new freelancer meant another tone calibration cycle.

How we structured the engagement

Solved brand voice first as a learnable profile, then layered content generation on top conditioned on that profile.

  1. Phase 01Weeks 1-2

    Discovery

    Reviewed thirty brand voice guides across the existing customer base, ran rewrite exercises with five marketing leads, and measured rework time on existing AI-generated drafts. Output: a brand voice schema covering vocabulary, sentence rhythm, forbidden phrases, and example pairs.

  2. Phase 02Weeks 3-4

    Architecture

    Designed a voice profile fitter that ingests up to two hundred existing pieces of brand content and produces a small adapter over the base LLM. Built a campaign orchestrator that plans asset interdependencies. For example, the social sequence draws hooks from the blog post.

  3. Phase 03Weeks 5-9

    Build

    Shipped the voice profile pipeline first using a LoRA over GPT-4o-mini for cost reasons. Built the campaign orchestrator in LangGraph for explicit state. Wrote bidirectional HubSpot and Mailchimp connectors with conflict resolution for in-flight edits.

  4. Phase 04Weeks 10-11

    Launch

    Rolled out to twenty design-partner brands over six weeks, measured rework rate weekly, and tuned the voice scoring threshold until rework dropped below ten percent of drafts. Shipped the seasonal voice override in week ten after holiday-campaign feedback.

What we built, component by component

  1. 01

    Voice profile fitter

    Ingests brand content corpus and produces a LoRA adapter plus a structured voice manifest used for scoring.

  2. 02

    Campaign orchestrator

    LangGraph state machine that plans interdependent assets and routes generation jobs in the correct order.

  3. 03

    Generation worker

    Calls the base model with the voice adapter applied, returns drafts plus per-asset scoring against the voice manifest.

  4. 04

    Voice scorer

    Compares drafts against the voice manifest on vocabulary, rhythm, and forbidden phrases, triggers regeneration below threshold.

  5. 05

    Review queue

    Single human review surface across all assets in a campaign with side-by-side voice score and brand-voice annotations.

  6. 06

    Publish connectors

    Bidirectional HubSpot and Mailchimp integrations with conflict resolution for edits made downstream of the platform.

A marketer briefs a campaign, the orchestrator plans the dependency graph between assets, and the generation worker drafts each asset with the voice adapter applied. The voice scorer evaluates every draft, triggers regeneration where needed, and publishes the approved pack to HubSpot and Mailchimp via the connector layer with conflict resolution.

Voice profile fitter
Campaign orchestrator
Generation worker
Voice scorer
Review queue

The trade-offs we made and why

Decision 01Lead trade-off

Modeled brand voice as a learnable profile rather than a prompt

A prompt-only brand voice instruction degrades as context grows and produces inconsistent output across asset types. A small adapter trained on the brand corpus carried the voice consistently and let us version voice changes the way you version any other artifact.

Decision 02

Used LangGraph for the campaign orchestrator

A campaign is a state machine, blog blocks ad copy, ad copy informs social hooks. A chain-of-prompts approach hid this structure and made retries painful. LangGraph gave us explicit nodes and edges that made the asset graph debuggable.

Decision 03

Picked GPT-4o-mini plus LoRA over a frontier model

The frontier model produced marginally better first drafts but the brand-voice adapter closed the gap and cut per-asset cost by roughly six times. At a campaign volume of forty assets per brand per month, the cost difference funded the rest of the platform.

Decision 04

Single review queue across all assets, not per asset

Per-asset approval forced marketers to re-engage with each piece in isolation, which is exactly the workflow we were trying to replace. A unified queue with side-by-side voice scoring made review a five-minute task rather than a forty-minute one.

What changed for the client

-80%

time to campaign

Measured from brief approval to all assets published, across forty design-partner campaigns before and after rollout.

-60%

content cost

Per-campaign blended cost including freelance spend, internal hours, and platform fees on the cohort.

<10%

rework rate

Share of generated drafts that required tone-based human rewrite after voice scorer threshold tuning was complete.

<10min

voice retrain

Time to refit a brand voice profile after a corpus update, including embedding and adapter training on a single A10G.

We stopped paying for first drafts and started paying for distribution. The voice scoring is the part that made us trust it with paid campaigns.
VP of MarketingMid-market e-commerce brand

The tools behind the system

Built with a deliberate stack chosen for production reliability and operational velocity.

4 componentsProduction-grade
LangChainGPT ModelsFastAPIAWS Lambda

Lessons learned from the build

01Lesson

Brand voice is a model problem, not a prompt problem. Every hour we spent on prompt engineering before we committed to the adapter approach was wasted. Once we modeled the voice as a learnable artifact, every downstream decision got easier.

02Lesson

The review queue carried more weight than any generation feature. Marketers told us repeatedly that the unified queue was the reason they trusted the system enough to publish on paid channels. We would design that surface first next time, before any generation work.

03Lesson

Voice drift on long-form content was the failure mode we did not anticipate. Blog posts past two thousand words drifted tonally even with the adapter applied. We added a per-section voice scorer in version two that caught the drift, which we would have shipped at launch in hindsight.

Similar delivery work usually starts in these service areas

If you are exploring a similar product, workflow, or implementation challenge, these are the service tracks that usually fit best.

Where this project sits in the bigger market picture

Patterns for AI features, internal tooling, and product delivery in SaaS businesses.

Build a result-driven AI product with a team that has shipped before

If you are exploring a similar product, workflow, or AI use case, we can help scope the right architecture, delivery model, and first milestone.

Bring the messy version. That is the useful conversation.

An idea, a workflow that is eating your team's week, or a model that works in a notebook and nowhere else. Any of those is enough to start.

A first roadmap on the call
Not a brochure. What we would build first, what we would leave out, and why.
Architecture and cost in plain English
Where the model sits, what it touches, what it costs to run at your volume.
The honest version
If your data is not ready, or the use case does not need AI, we will tell you on the call.