Kairo
Blog / AI & tooling

Why a general chatbot cannot optimise your LinkedIn ads

It will give you a confident, well-structured answer with no access to a single row of your delivery data. Here is what that answer is actually made of, and what to do instead.

Paste your campaign export into a general chatbot and ask why performance dropped, and you will get a fluent, plausible, well-organised answer within seconds. It will mention creative fatigue, audience saturation, seasonality, and increased competition in the auction. It will suggest refreshing creative and testing new audiences.

All of that is reasonable. None of it is about you.

What it is answering from

A general model has read a great deal of marketing writing. When you ask why CPCs went up, it produces the shape of answer that most commonly follows that question in the material it learned from. That is genuinely useful when you want the standard list of causes and cannot remember all of them. It is not diagnosis, because diagnosis requires knowing which of those causes applies to your account, and that requires data the model does not have.

The confidence is the dangerous part. The answer arrives in the same register whether the model is describing a well-established mechanism or generating a plausible-sounding cause it cannot check. There is no tonal difference between "creative fatigue is a real phenomenon" and "your creative is fatigued", and only the first of those is something it knows.

Three failure shapes worth recognising

Averaging away the thing you needed to see

Paste a campaign-level export and the model reasons about campaign-level numbers. But an ABM problem is almost always a distributional one: a tier being under-served, a segment failing to match, delivery concentrating on a responsive core. Those disappear in an aggregate export, so the model cannot find them — and, because it does not know they are missing, it will confidently explain the aggregate instead.

Confusing metrics with outcomes

Ask which creative is performing best and you will get the one with the best CTR, because that is what "performing" means in the data you supplied. In a named-account programme the right answer is usually a different ad — the one moving accounts through stages. The model cannot know that unless the export contains stage movement, and campaign exports do not.

Fabricating the parts it cannot see

If your export has a truncated column, an ambiguous header, or a date range the model has to infer, it will fill the gap with something reasonable rather than stopping. In a fifteen-column CSV joined across two date ranges, that filled gap is very hard to spot in a fluent answer.

The problem is not that a general model gets things wrong. It is that it gets things wrong in exactly the same voice it uses when it is right.

Where it genuinely helps

Being fair about this matters, because the category of task is real and useful:

  • Explaining a mechanism. How the learning phase works, why small conversion volumes destabilise optimisation, what a frequency cap does to delivery. This is exactly what a well-read generalist is for.
  • Drafting and iterating creative. Twenty headline variants in the vocabulary of a specific role is a good use of the tool, especially as a starting point you then cut down.
  • Structuring an analysis. "What should I check, in what order, if account coverage is uneven" produces a genuinely useful checklist.
  • Writing the narrative around numbers you have already verified. Give it the figures and the conclusions; let it write the paragraph.

What it cannot do is tell you which of your accounts moved last week and what they saw first, because that is a question about a specific database.

What a connected assistant needs

Four properties separate a useful analyst from a confident one. They are worth demanding of any tool, including ours.

Access to the resolved account graph, not the export. Campaign totals cannot answer account questions. The assistant needs the join between delivery, companies, job functions, stage history and CRM opportunities — the thing the export flattened away.

Visible queries. Every answer should expand into the filter, date range and row count it ran on. Not because you will check every time, but because you will check the one that surprises you, and knowing you can changes how much weight the answer deserves.

A refusal threshold. An assistant that will not call a difference on six data points is more valuable than one that always produces a number. "Not enough movement to distinguish these creatives yet" is a correct and useful answer, and general chatbots almost never give it.

No unsupervised spending. An agent that can propose budget changes is useful. An agent that can execute them without a human approving is a liability with a good demo.

A practical test for any AI assistant sold as an ads analyst: ask it something it should not be able to answer — a segment you have no data for, or a comparison across a period before your account existed. A connected assistant says it cannot see that. A dressed-up general model answers anyway.

Keep reading

Related pieces

Measurement

Most ABM programmes fail on coverage, not on creative

Teams spend quarters iterating on ad copy for a list they are only reaching a third of. Coverage is the cheapest problem in ABM to fix and the one almost nobody measures.

Measurement

Influenced pipeline is the easiest number in B2B to inflate

The same quarter can be worth four million or one million depending on a touch definition most decks never state. Here is how to pick one you can defend, and what to report alongside it.

Find out which accounts your LinkedIn ads actually reached.

Connect an ad account, pick a target list, and Kairo backfills 90 days of company-level engagement before your trial is an hour old.