AI for marketers: research, copy and analysis without made-up facts

Where a model really saves a marketer's time and where it invents numbers. Code for review analysis, fact-checking rules and a cost estimate.

5 min · · бизнес · автоматизация

An AI model for marketers is useful in places other than where it is usually advertised. "Come up with a campaign idea" returns the market average. But reading a thousand reviews in an evening, sorting them by theme, comparing competitor landing pages and drafting five headline variants is something a model does quickly. Below: which tasks to hand to the model, how to avoid made-up numbers, and what it costs when you work through the API on your own data.

AI for marketers: what to give the model and what to keep

Tasks work well when you already have the source material and the model only processes it:

  • Review and ticket analysis. Themes, sentiment, recurring objections, customers' own wording.
  • Competitor text review. You export the text of their landing pages, emails and product descriptions, and the model extracts promises, arguments, tone and gaps.
  • Test hypotheses. Turn a list of objections into 10 offer variants for an A/B test.
  • Campaign copy drafts. Email subjects, headlines and descriptions for different segments.
  • Data cleanup. Campaign names, UTM tags, deduplicating an export.

Tasks "from the model's head" work badly: market size, competitor shares, demand dynamics, "average industry CTR". The model will produce a plausible number with no source behind it. Take such figures from your counters, ad accounts and open reports, and ask the model to work only with what you passed in.

Scenario 1. Batch review analysis

Say you have an export of 1000 reviews. Do not send everything in one request: split it into batches of a hundred and ask for strict JSON. Then the result can be counted in a spreadsheet instead of reread.

bash
import json
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1",
                api_key=os.environ["ZUKKO_API_KEY"])

SYSTEM = (
    "You are a customer-experience analyst. Work only with the reviews provided. "
    "For each review return an object: id, theme (one from the list), "
    "sentiment (positive/neutral/negative), quote (verbatim from the review). "
    "If no theme fits, use 'other'. Do not guess. "
    "Answer: a JSON array with no commentary."
)

Then check in code that as many objects came back as were sent, and that every "quote" actually occurs in the source review: quote in review["text"]. If not, the review goes back for reprocessing. This is the cheapest protection against invention.

Do the theme summary from a table where the model does not count but only describes: "Here are theme frequencies and three quotes for each. Formulate conclusions and three hypotheses for a test." Calculate percentages yourself in pandas.

Scenario 2. Competitor comparison

Collect competitor page text by hand or with your own scraper, respecting each site's rules. The task for the model is then:

  1. Extract each competitor's promises and arguments with a quote.
  2. Build a table: argument / who has it / who lacks it.
  3. Suggest how to differentiate, based only on that table.

An important line in the prompt: "if the text has no information about price or terms, write 'not stated'". Without it the model fills empty cells with typical values.

Scenario 3. Campaign copy

For copy, give the model what it lacks: an audience description, three successful company texts, a list of forbidden words and length limits. Ask for 5-10 variants at once, each labelled with the hypothesis it tests. Then pick by hand. More on the prompt and model choice for copy is in the article on AI for writing texts.

How to check facts

A short policy you can pin up in the team:

  • Every number in an answer must come from your data. A figure not from the supplied material is removed or checked against a source.
  • Quotes are checked by code. A substring search, as in the example above.
  • Brand, product and event names are checked by search. A model can name a competitor that does not exist.
  • Legally sensitive wording (comparative advertising, result promises, reviews naming people) goes through a lawyer.
  • Personal data in reviews is removed before sending: names, phones, addresses.

How to build a set of test examples for a prompt is covered in the article how to test prompts.

Which model to take

Do not choose by ranking, test on twenty of your own reviews. Prices and strength index at October 18, 2026 (Zukko prices per 1M tokens, input / output):

ModelPriceStrength index
deepseek-v4.1-flash$0.013 / $0.03839
gpt-6.1-sol$0.27 / $1.3252
claude-sonnet-5-5$0.4 / $248
claude-opus-5-5$0.8 / $458

A practical scheme: labelling with a cheap model, final conclusions and campaign copy with a strong one. The current list and prices: GET https://api.zukko.pro/v1/models or the "Models" page in the dashboard.

What it costs

Formula: (input × input price + output × output price) / 1,000,000, with prices per 1M tokens. Example: 1000 reviews of 80 tokens is 80,000 tokens, plus 10 batches with a 400-token instruction, 84,000 input tokens in total. Output is 40 tokens per review, 40,000 tokens. These are assumptions, measure real length on your data.

  • deepseek-v4.1-flash: 84,000 × 0.013 / 1,000,000 + 40,000 × 0.038 / 1,000,000 = 0.0011 + 0.0015, about $0.0026.
  • claude-sonnet-5-5: 84,000 × 0.4 / 1,000,000 + 40,000 × 2 / 1,000,000 = 0.0336 + 0.08, about $0.11.
  • claude-opus-5-5: 0.0672 + 0.16, about $0.23.

A final theme summary with 15,000 input and 2,000 output tokens on claude-opus-5-5 costs 15,000 × 0.8 / 1,000,000 + 2,000 × 4 / 1,000,000 = $0.02. So the whole analysis of a thousand reviews fits into tens of cents.

Connecting

Create a key in the dashboard, set the base URL https://api.zukko.pro/v1 and keep the key in an environment variable. Request format details are in the chat completions reference. Top-ups start at $1: SBP (the payment page adds 8.5% on top), cryptocurrency or a MasterCard.

FAQ

Can AI replace a marketer?

No. It speeds up material review and draft work. Choosing positioning and budget, and responsibility for the campaign, stay with a person.

Can I upload customer data to the model?

Better anonymize it: remove names, phones and emails. Read the data retention terms of model providers separately; we make no claims about them.

How do I tell that the model invented a number?

If the number does not appear in the data you passed, treat it as invented. Require a source quote next to every fact and check it with code.

Which AI is suitable for text generation?

Test two or three models from the table on the same brief and compare the result with the price. There is no universal answer.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

AI for marketers: tasks, prompts and cost · Zukko