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.
- Source. The skill gets the prospect's post, job brief or profile, never just a name.
- Draft. One observation from that source, one direct question, sign-off. Under 300 characters on LinkedIn.
- 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?
- 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.
- Rewrite. At most two rounds across both passes.
- Hold. A draft that still fails is held, with the failing phrase reported.
- 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:
- One change per call. No batch pauses.
- An approval in chat before the call runs, with the entity and the before and after values shown.
- A log line for every change, so a bad week can be traced to a decision.
- Pause instead of delete. Nothing in the write tools removes an entity.
- A cap on the budget delta a single call may propose.
- 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.
- 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.
- Week one. Connect read-only reporting: ad performance, search terms, analytics. Schedule a weekly pull.
- 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.
- 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.
- Week three. Turn on scheduled sending with a person approving each message. Measure replies, not sends.
- 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.
- 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
- Model Context Protocol, What is MCP
- Google Ads Help, About conversion adjustments
- Meta for Developers, Permissions Reference
- HeyReach pricing
- Docket, Apollo.io pricing in 2026
- Claude pricing
- Notion pricing
Related
- How do you launch a US or European company in a new European market?
- How do I get my B2B company cited by ChatGPT, Perplexity and Google AI Overviews?
- How do you find your first growth channel before hiring a marketer?
Re-check by 2027-01-15