Skip to content

Case study · Social and paid media

A social and ads growth platform with the finance module attached

Posting, ad building and budget pacing ran on separate tools, and nobody could put an ad dollar next to a tax or salary line. We built a social and ads platform with a pacer, campaign builder, Meta ads generator, analytics and an AI post writer, then added a finance module.

Growth modules
6pacer, campaign builder, Meta ads generator, analytics, studio, AI post writer
Social integration
Meta Business Suitefor publishing and ad management
Finance integrations
5QuickBooks, Gusto, Meta, Google Ads and Stripe
MCP server
1the platform’s data and actions for AI tools

Client name changed to protect confidentiality.

The request

What they asked for

Larkmoor wanted one platform to plan, build, publish and measure social and paid work, with a way to keep spend on pace. They also wanted a finance module sitting beside it, covering tax calculation, salary calculation and expenses, so the cost side of the business was in the same place as the marketing side.

It was a build with two halves that talk to each other. Growth tools on one side. Money on the other. The link between them is the point.

The problem

What was broken

Social and paid teams spend a surprising amount of time on logistics. Writing posts in one tool, building campaigns in another, checking spend in a third, then assembling a report by hand. Budgets drift because nobody is watching the pace. Ads get built from scratch every time because nothing holds the pattern.

And the numbers stop at the ad account. Spend in Meta and Google Ads is rarely compared to what the business paid in salaries, taxes and expenses, so “did this campaign pay for itself?” gets answered with platform metrics instead of profit. That is activity without a line to revenue.

  • Budgets overspent or underspent because pacing was checked by eye.
  • Campaign and ad structures rebuilt manually for every launch.
  • Post drafting and publishing handled outside the campaign context.
  • Ad spend, payroll, tax and expenses kept in separate worlds.

What we built

The system, piece by piece

Growth side

Six modules that share one campaign record

The growth platform is six modules that work from the same campaign and account records, so something built in one place is visible in the others. The Meta Business Suite integration is how the platform publishes and manages social and ad activity on the client’s behalf.

Pacer

Tracks spend against budget across a period, so overspend and underspend are visible while there is still time to act.

Campaign builder

Structures campaigns from a repeatable pattern, so a launch starts from a template and not a blank page.

Meta ads generator

Generates ad variations for Meta campaigns, ready for a person to review before they run.

Analytics

Brings campaign and post performance into one view alongside spend.

Studio

The workspace for creating and organising creative assets and content.

AI post writer

Drafts posts for review, so the first version is not a blank page. A person edits before anything is published.

Finance side

A finance module, wired to the same accounts

The finance module covers three jobs: tax calculation, salary calculation and expenses. It is useful by itself. It becomes more useful because it is connected to the systems where the money actually moves.

QuickBooks and Gusto supply the accounting and payroll side. Stripe supplies payments. Meta and Google Ads supply advertising spend. Putting those five in one place means an ad dollar can be set against the cost of the people and the tax around it, not only against the clicks it bought.

A finance module, wired to the same accounts: table
IntegrationWhat it brings in
QuickBooksAccounting records
GustoPayroll and salary data
StripePayments
MetaSocial and ad spend
Google AdsSearch and display ad spend

The connection

Why growth and finance live in one platform

Keeping the two halves in one platform is the design decision that matters. A pacer that knows a budget and a finance module that knows the cost of the team are looking at the same business. When a campaign over- or under-spends, the cost shows up where finance can see it. When finance changes a number, the growth side is not working from an old one.

It also means one set of permissions, one login model and one place where an assistant can be given access.

MCP server

Letting AI tools work with the platform

An MCP server exposes the platform to AI tools. A team member can use an assistant to ask about pacing or performance, or to prepare drafts, using the platform’s real data. Anything that publishes or spends still goes through a person.

Trade-offs

Decisions that shaped it

AI in an ads tool is easy to get wrong. These are the calls that kept a person in charge of the money.

Draft, then approve

The Meta ads generator and the AI post writer produce first drafts. Review is part of the flow, because a bad ad costs real budget and a bad post costs real reputation.

Pacing as its own module

Spend control is a feature in its own right, not a chart on a dashboard. Overspend is cheaper to prevent than to explain.

Finance in the same product

Building the finance module into the platform means a campaign can be judged after tax, salary and expenses, not only after ad spend.

Integrate with the books, do not become them

QuickBooks and Gusto stay the records of truth. The module calculates and reconciles against them rather than competing with them.

Meta Business Suite for publishing

Going through the Business Suite integration keeps publishing and ad management inside Meta’s own permissions and review.

Handover

Who runs it

The marketing team runs the growth modules. Whoever owns the books runs the finance module. The MCP server gives both sides a way to ask questions of the platform without needing to learn another screen.

Operations

How it runs day to day

A campaign starts in the builder, with ad variations from the Meta ads generator and posts drafted with the AI writer, then reviewed and published through the Meta Business Suite integration. While it runs, the pacer shows whether spend is on track. Analytics shows how the work is performing.

On the finance side, expenses and salary and tax calculations are handled in the finance module, with the connected accounts feeding it. The monthly question, whether the marketing paid for itself after the real costs, is answered from one place instead of three exports.

A typical campaign path

  • Build the campaign from the template in the campaign builder.
  • Generate and review ad variations.
  • Draft and approve posts, then publish through Meta Business Suite.
  • Watch spend in the pacer and results in analytics.
  • Set the result against costs in the finance module.

Measurement

What the system measures

These are the areas the platform tracks. They are definitions, not results.

  • Spend against budget, over a period, in the pacer
  • Campaign and post performance in analytics
  • Ad spend from Meta and Google Ads
  • Payments from Stripe
  • Salary, tax and expense calculations from connected payroll and accounting data

Scope boundaries

What we chose not to build

Autopilot publishing
AI drafts posts and ads for review. A person approves anything that goes live or spends money.
A new accounting system
QuickBooks and Gusto stay the books of record. The module calculates and reads from them.
Another ad network
The platform works with Meta and Google Ads, which is where the spend actually is.
Reports that stop at the click
Analytics sits beside spend and finance so a result can be judged after costs.

Outcome figures

Outcome figures are held back for confidentiality and will be added when the client approves publication.

Marketing and revenue should share one record.

Tell us which systems hold the pieces. We map the gap before we propose anything.

Book a review call