Insights · Growth operations

What should a growth team automate with AI and what should stay with a person?

Automate the high-volume, low-judgment growth work: lead sourcing, enrichment, first drafts and read-only ad reporting. Keep sending, replying, ad changes and strategy with a person. This is the split I run inside fractional head of growth engagements.

Automate the growth tasks that are high volume and cheap to get wrong: lead sourcing, enrichment, first drafts and read-only reporting. Keep the tasks where one error is expensive with a person: sending, replying, changing ad budgets and deciding what the numbers mean. That split rests on ten years of growth work across 30+ clients and on the setup I run today, where AI sources, researches and drafts, and I judge and send every message myself.

Which marketing tasks should you automate first?

Start with the tasks that score high on volume, low on judgment per item and low on cost of an error. Lead sourcing, enrichment and ad reporting go first; sending, replying and ad changes go last or stay with a person for good.

I score every task on three questions before I automate it inside an engagement. How many times a week does it happen? How much does the right answer depend on context the tool does not have? What does one mistake cost? A task has to win on at least two of the three before I hand it to a model.

Task Volume Judgment needed Cost of one error Verdict
Lead sourcing High Low Low: a wasted credit Automate first
Enrichment High Low Low to medium: a bounced email hurts the sending domain Automate, with a bounce check
Outreach drafting High Medium Low: a person reads it before it leaves Automate the draft, keep the edit
Outreach sending High High High: a bad message to the wrong person, or a restricted LinkedIn account Schedule only; a person approves each message
Reply handling Low to medium High High: a reply is the start of a relationship Person only
Ad reporting Medium Low Low: a read-only pull changes nothing Automate freely
Ad changes Low High High: budget, bids and pauses are money Behind a sign-off
Content drafting Medium Medium Low: drafts sit in a folder Automate the first draft
Content publishing Low Medium Medium: a published mistake is public Person presses publish
Reporting to clients or a board Low High Medium: the number is the decision AI assembles, a person interprets

Two rows surprise most founders I talk to. The first is that drafting and sending are separate tasks with opposite verdicts. A model can write 40 first drafts in the time it takes me to write four, and I lose nothing by letting it, because I read every one before it goes. The moment a message leaves, the error cost jumps from zero to a prospect.

The second is reply handling. Founders ask for it because replies arrive at odd hours. The answer stays no. A reply is a person who read your message and decided to type something back, and I have never let an agent speak for me there.

What does my own setup automate, and what does it not?

AI sources, researches and drafts; I judge and send every message. Agents never reply on LinkedIn, and every change to an ad account goes through a tool that asks me first.

This is the live setup I run for my own outbound and inside client engagements. It is what a fractional head of growth builds under the strategy.

Step Tool Who does it
Find the people Apollo, searched against a defined segment AI, inside a credit cap
Research each one A Claude skill reads the profile, the post or the job brief AI
Write the first touch A Claude skill in my register, under 300 characters for LinkedIn AI
Audit the draft A second skill checks it for machine-written tells AI, two passes
Decide and send HeyReach schedules; I read and approve each message Me
Answer replies LinkedIn inbox Me, every time
Update the pipeline Notion as the CRM Mixed: AI logs touches, I set the stage
Pull ad performance Google Ads and Meta through MCP servers, read tools AI, on request or on a schedule
Change ad settings The same servers, write tools AI proposes, I approve each change
Remove junk leads from conversion data A retraction tool I trigger it after a lead is disqualified
Build internal tools Lovable with Supabase AI writes the first version, I review

The research step is where the generic output problem gets solved. A model asked to "write a connection note to a VP Marketing at a logistics company" writes the same note every time. A model handed the prospect's own job post, with a skill that tells it to pull one concrete fact from that post and ask one question about it, writes a different note every time. Building that input is most of the work.

There is also a constraint no tool knows on its own. Cold B2B email is ruled out in Germany under UWG section 7, in Austria under the TKG and in Switzerland under UWG Art. 3. LinkedIn is the primary channel in DACH, the register is the formal Sie-form, and I hold cold contacts to a two-touch ceiling. Referral contacts are fine when the referrer is named in the first line. A sending agent that does not carry those rules is a legal problem before it is a productivity gain. In my setup the rules live in the drafting skill, so a German prospect never gets an email draft at all.

Can AI write cold outreach that does not sound like AI?

Yes, when the draft starts from one specific fact in the prospect's own material and goes through an audit before a person reads it. Left alone with a name and a job title, a model writes the message it has seen the most of, and so does every other model your prospect hears from that week.

The loop I run has seven steps.

  1. Source. The skill gets the prospect's post, job brief or profile, never just a name.
  2. Draft. One observation from that source, one direct question, sign-off. Under 300 characters on LinkedIn.
  3. Pass one, substance. Three tests. Swap test: could this go to a different person by changing the name and one noun? Insight test: does it add something, or mirror the brief back? Question test: is the closing question one a busy person has a reason to answer in a sentence?
  4. Pass two, voice. The reviewer sees only the final text. It fails on three or more tells in a few hundred words, or on any instant fail.
  5. Rewrite. At most two rounds across both passes.
  6. Hold. A draft that still fails is held, with the failing phrase reported.
  7. I read it and send it, or I don't.

The second pass is separate on purpose. A reviewer that has seen the drafting rationale forgives the draft. A reviewer that only sees the text judges it the way the prospect will, in three seconds.

These are the patterns that fail the most in my runs.

Pattern What it looks like Fix
Negation pivot "It's not about volume, it's about fit" Make the positive claim once
Triads Three adjectives, three bullets, three clauses One or two, unless there are three real things
Borrowed openers "I came across", "I noticed", "Hope this finds you well" Start with the fact
Borrowed closers "Would love to connect", "Happy to compare notes" End with the question
Filler verbs leverage, streamline, unlock, navigate, delve The plain verb
Flattery "Impressive growth", "love what you're building" Delete it; a cold first touch earns nothing by it
Em dashes The long dash a model reaches for mid-sentence Comma, full stop or colon
Even rhythm Every sentence 15 to 20 words, no fragments, no asides Vary it; a fragment is fine
No particulars No number, place, tool name or date anywhere Put the prospect's own detail back in

One finding from running this at volume: a draft that fails twice had nothing to hook onto. The post was generic, the job brief was boilerplate, the profile was empty. That tells me the lead was weak before I spent a touch on it, and the held pile becomes a list of people to find a better source for, or to drop.

Should AI manage your Google Ads or Meta account?

AI should read your ad accounts freely and change them only behind a sign-off. A read-only pull of spend, search terms or geo performance changes nothing; a paused campaign or a doubled budget is money that moved while nobody was looking.

I split ad tooling into three classes and treat each differently.

Read tools pull performance at account, campaign, ad group and keyword level, with a matched prior period, impression share and quality score components. They pull the search term report with cost per term and the matched keyword, and geo performance by state or region. None of these can change anything, so an agent runs them on a schedule. The time saved here is the largest anywhere in the setup, because a deep diagnostic pull done by hand is a half-day of exports.

Write tools pause and enable, set daily budgets, change bid strategy and target CPA, add negatives and add keywords. Each call is one change, each change is logged, and each one waits for my approval in the chat before it runs. The agent proposes: "these eleven search terms spent money and converted nothing, add them as negatives at campaign level". I look at the eleven and say yes to nine.

The third class is retraction. Google's documentation describes the retract adjustment as one that lets you "permanently remove a conversion and change the conversion value to 0.00" (Google Ads Help). When a rep marks a lead as spam, a duplicate or a test in the CRM, that conversion is still sitting in the account's learning data, and a broad campaign type such as Performance Max will go and find more leads that look like it. Retracting the junk stops that. It is a write to conversion data, which is why it gets its own tool and its own approval.

Meta works the same way at the permission level. Meta's permissions reference separates ads_read, which "allows your app to access the Ads Insights API to pull Ads report information", from ads_management, which "allows your app to both read and manage the Ads account" (Meta for Developers). Give the reporting agent the read scope. Keep the management scope on the tool that asks you first.

The guardrails on every write tool:

  1. One change per call. No batch pauses.
  2. An approval in chat before the call runs, with the entity and the before and after values shown.
  3. A log line for every change, so a bad week can be traced to a decision.
  4. Pause instead of delete. Nothing in the write tools removes an entity.
  5. A cap on the budget delta a single call may propose.
  6. A test account for any new tool before it touches a live one.

What is an MCP server, and why would a marketer use one?

An MCP server is a small program that gives an AI assistant a fixed menu of actions on one system: pull thirty days of campaign spend, list the leads in a HeyReach campaign, add a row to a Notion database. MCP is the Model Context Protocol, which its own documentation describes as "an open-source standard for connecting AI applications to external systems" and compares to a USB-C port (Model Context Protocol).

Without one, the marketer exports a CSV, pastes it into chat, and the assistant works from a snapshot that is already stale. With one, the assistant queries the account itself, with the date and the filters visible. The menu is also the guardrail. If the Google Ads server exposes a pause tool and no delete tool, the assistant cannot delete a campaign, whatever it is asked. I write the menu.

This is the seven-server reference design I work from. The ads servers in my own setup are custom-built; CRM, outreach and enrichment connect through the vendors' own connectors. The last three are what I build toward inside an engagement when the client's tools make it worth it.

Server Connects to Read tools Write tools Guardrail
Ads Google Ads, Meta Performance, search terms, geo, prior period Pause, budget, bids, negatives, keywords, retract conversions Approval per change, log, no delete
CRM Notion (or HubSpot, Pipedrive) Pipeline by stage, last touch, owner Stage change, note, task Never deletes; stage changes reported weekly
Outreach HeyReach Campaign stats, conversations, lead status Add leads to a list, pause a campaign No send-message tool exposed to the agent
Enrichment Apollo People and company search, job postings Enrich a record Credit cap per run; counts reported before spend
Analytics GA4, Search Console Sessions, conversions, queries, pages None Read only by design
Content CMS, Google Docs Published pages, drafts, metadata Save a draft to a drafts folder Publish stays a human click
Pipeline Own Supabase tables, built in Lovable Lead records, touch history, scores Insert, update, score Audit column records what changed a row and why

Notice how few write tools there are relative to reads. Analytics has none. Content has one, and it writes to a drafts folder. Outreach can add a lead to a list but cannot speak to the lead. When I review a client's existing automation, the first thing I count is write tools nobody signed off on.

Where do you still need a person?

Strategy, the decision to send each message, the client relationship and reading the numbers. Those four are where one error costs the most and where the tool has no context, and no amount of tooling moves them.

Strategy first. At a resource-planning SaaS I worked with, the founder had produced a set of planning templates. The obvious play was to gate them behind a form. I did the keyword research, built the download pages, and put contact buttons inside the sheets instead of gating them, so the templates spread and the contact point travelled with them. That page set grew to roughly 10,000 monthly organic visits with a conversion-rate uptick by the time I left, before the final results were in. No model would have made the ungating call from the keyword data; the data said capture it. The call came from having watched gated content die on other sites.

The decision to send is the second. The audit loop above catches most of what a model gets wrong. It does not catch the message that is well written and should still not go, because the prospect posted about a layoff that morning, or because a mutual contact mentioned they are mid-acquisition, or because this is the second touch and the two-touch ceiling says stop. That context lives in my head and my inbox, and the only way to apply it is to read every message before it leaves.

Client relationships are the third, and the one founders automate by accident. A weekly status email assembled by an agent from the pipeline table reads like one, and the client notices within two weeks. Agents never write to my clients, never reply on my behalf, and never post as me.

The numbers are the fourth. An agent can pull the report in a minute. It cannot tell you that the CPA moved because a tracking change doubled recorded conversions, or that the pipeline figure includes two deals that went quiet in August, or that the conversion count still carries the test leads a rep forgot to flag. Finding that out is the job; the report is the input to it. When I hand a client a number, I can say where it came from, what it excludes and what I am not sure about.

What does an AI growth stack cost per month?

At list prices in October 2026, the tools in the setup above run from roughly $170 to $440 a month for a 5 to 50 person company, before ad spend and before anyone's time. The ad platform APIs behind the MCP servers are free to call; the cost there is the build.

These are public list prices as of the date I checked them. Vendors change pricing, and most of these have annual and monthly rates that differ, so check the pages before you budget.

Tool Role in the setup List price Source
Claude Pro Drafting, auditing, research skills $20 per person per month, $17 on annual Claude pricing
Claude Max Same, with higher usage limits From $100 per person per month Claude pricing
HeyReach Growth LinkedIn outreach, one sender seat $79 per sender per month; $63 on annual HeyReach pricing
Apollo Basic Lead sourcing and enrichment $49 per user per month on annual, $60 monthly Docket, verified April 2026
Apollo Professional Same, higher credit limits $79 per user per month on annual, $94 monthly Docket, verified April 2026
Notion Plus Pipeline CRM $10 per seat per month Notion pricing
Notion Business Same, larger teams $20 per seat per month Notion pricing
Google Ads API, Meta Marketing API Behind the ads MCP server No fee to call Build time only

Two worked totals.

A lean setup, one founder doing outbound: Claude Pro at $20, one HeyReach sender at $79, Apollo Basic at $49, Notion Plus for two seats at $20. That is $168 a month.

A mid setup, a founder and a marketer with two sender accounts: Claude Max at $100, two HeyReach senders at $158, Apollo Professional at $79, Notion Business for five seats at $100. That is $437 a month.

What the table leaves out: Apollo's plans are credit-based, so a heavy enrichment month costs more than the seat price. HeyReach bills per sender, so each extra LinkedIn account adds a full seat. The build time for the MCP servers is real: a read server against the Google Ads API is days of work, a write server with approvals and logging is more, and that is the piece I build inside an engagement rather than something a client buys off a shelf.

How do you start automating growth operations in the first 30 days?

Start with the reads, then the drafts, then one write tool with an approval in front of it. Nothing goes live that can send or spend without a person in the loop.

This is the order I run inside a fractional engagement.

  1. Week one. Score the current task list on volume, judgment and error cost, using the table at the top. Count the write tools already running that nobody approved. Pause those.
  2. Week one. Connect read-only reporting: ad performance, search terms, analytics. Schedule a weekly pull.
  3. Week two. Define the segment and the source: which companies, which roles, which market, and where the prospect's own words will come from. Without the source, the drafting step produces the generic output you already got.
  4. Week two. Build the drafting skill in your register and put the audit behind it. Run twenty drafts, read the held pile, and look at what the failures say about the segment.
  5. Week three. Turn on scheduled sending with a person approving each message. Measure replies, not sends.
  6. Week four. Add one write tool to the ad account, with an approval in chat and a log. Negatives first, because the error cost is lowest. Budgets and bids wait for month two.
  7. Day 30. Review the log: every change, who approved it, what happened after. Decide what gets a second write tool and what stays manual.

I do this for early-stage startups going to market and for companies entering a new European market, as a fractional head of growth over a project or a three to six month engagement. The strategy comes first, the setup above is what executes it, and the first step is a conversation about which tasks on your list score high enough to hand over.

FAQ

Which marketing tasks should a small company automate with AI first?

Start with lead sourcing, enrichment and read-only ad reporting. All three are high volume, need little judgment per item, and a mistake costs a credit or a few minutes. Outreach drafting and content drafting come next, with a person editing before anything leaves. Sending, replying and ad changes stay with a person.

Can AI write cold outreach that does not sound like AI?

Yes, when the draft starts from one specific fact in the prospect's own material and passes an audit before a person reads it. The audit checks whether the message could go to anyone else, whether the question is one a busy person would answer, and whether the text carries the usual tells: negation pivots, triads, flattery, em dashes, filler verbs. Drafts that fail twice are held, and in my runs that means the source material was too thin.

Should AI manage Google Ads or Meta accounts?

AI should read ad accounts freely and change them only behind a sign-off. Pulls of spend, search terms and geo performance are harmless and save hours. Budget changes, pauses, bids and negatives go through write tools that need an approval per change. A separate retraction tool removes junk leads from the conversion data so the bidding system stops optimising toward them.

What is an MCP server, in plain terms?

An MCP server is a small program that gives an AI assistant a fixed menu of actions on one system, such as pulling thirty days of campaign spend or adding a lead to a list. MCP is the open standard behind that connection. The menu is the guardrail: if the server has no delete tool, the assistant cannot delete anything.

What does an AI growth stack cost per month?

At list prices in October 2026, a lean setup for a 5 to 50 person company runs around $170 a month: a Claude plan, one LinkedIn sender seat, an enrichment seat and a small Notion workspace. A mid setup with two senders, more enrichment credits and a larger Claude plan runs around $440. The ad platform APIs themselves are free to call; the cost there is build time.

Where does a growth team still need a person?

Strategy, the decision to send each message, client relationships and reading the numbers. These are the points where one error costs the most and where the tool has no context: it does not know cold email is ruled out in Germany, it does not know a client is about to churn, and it cannot tell a real conversion from a retracted one without being told.

Sources

Related

Re-check by 2027-01-15