• Content · Python

AI-generated descriptions: when there are tens of thousands of products and writing by hand is not realistic

In a catalogue of thirty thousand items, describing each one by hand is years of work or a budget that does not exist. So such catalogues live on supplier copy, identical across a dozen stores. Generating descriptions with a model closes that volume, but comes with one hard rule: the text is built from YOUR attributes, not invented. A model that gives a product a property it does not have costs more than an empty description.

See how it works
Price
after a free audit
Guarantee
30 days after project sign-off
Focus
online stores, mostly OpenCart
after a free audit
Price
30
Guarantee

days after project sign-off

online stores, mostly OpenCart
Focus
10
Timeline

to 40 working days

free catalogue review
Start
30
Warranty

days from the date the acceptance act is signed

within 2 hours
Reply
under a written contract
Terms
What's included

Complete list of work and what you get as a result

  • generation rules for each group of categories, not one template for the whole catalogue
  • descriptions built from your attributes, with no invented properties
  • a duplicate check between items inside your own catalogue
  • different tones for different categories, where that is appropriate
  • an upload into the catalogue with the option to roll back if the result does not satisfy you
  • a sample check by a human before publication — no less than an agreed share
  • instructions on generating descriptions for new items yourself
  • a report: how many items were closed, how many need manual work
  • a list of categories where generation is not worth doing
When this service isn't right

What's not included — so there are no surprises at delivery

  • inventing attributes that are not in your data
  • texts for the home page and category pages — those need a human
  • guarantees of search positions
  • checking that the descriptions match the actual product — that is your side
  • writing descriptions for products with no attributes at all
Who it's for

Situations where this service delivers results

Scenario 1 of 4

A catalogue filled from price lists

The descriptions arrived from the supplier together with the goods and repeat across a dozen stores. This is the most common case and the easiest to improve.

We'll review your situation in a free audit

Free catalogue review

We look at whether there is anything to generate from: the quality of descriptions depends not on the model but on how complete your attributes are.

What we measure

  • How many items have no description at allThis is the base figure of the project: it determines both the scope and which categories to start with.
  • How many descriptions are copiesWe check for matches between items inside your catalogue — the fastest way to see the scale of the problem.
  • How complete the attributes areThe main question. Three fields will not produce a good description for a human or for a model — they will produce filler, and that is worse than an empty card.
  • How many different category groups there areFootwear, tools and cosmetics need different rules. The number of groups determines the amount of setup.
  • Whether there are examples of good descriptionsA few of your own samples set the tone better than any description of requirements in words.
  • Who will check the resultGenerated texts should not be published without a human sample check, and we will not agree to it.

What you get

  • the figure: how many items need descriptions
  • an assessment of whether the attributes are sufficient for generation
  • examples of generated descriptions on your data
  • an estimate of the work broken down by stage

Timeline: 2–4 working days

Why is it free

The most important question is whether there is anything to generate from. The answer is visible only on your data, and we show it with examples rather than promises.

What's next

You get the figures and the examples. Then you decide for yourself — they stay with you.

Short form: your contact and site URL

  • Contract, act and 30-day warranty

    Every project gets a written contract: scope, deadlines, amount, acceptance procedure. After delivery — act and invoice, then 30 calendar days of warranty.

  • Sole proprietor & bank transfer

    The contractor is a registered sole proprietor. Payment by invoice with closing documents.

  • Rights & access — yours

    Code, design and materials transfer to you after full payment. Domain, hosting, repository and analytics are registered to you.

  • Client portal instead of email chains

    During the project you get access to a portal: contracts, invoices, acts and project status in one place.

  • European clients

    Among our work — projects for Norway, Bulgaria, Moldova and Spain.

  • Verifiable numbers

    Every case in the portfolio comes with a link to a live site and a technical measurement.

  • Audit first, then pricing

    There is no price list on the site intentionally: the scope of the same work differs multiples between clients.

  • We say "no" when unsure

    If the task isn't ours or the deadline is unrealistic — we tell you upfront.

What affects the price

Why two seemingly identical tasks are priced differently

  • Number of itemsA thousand products and a hundred thousand differ not only in the volume generated but in the number of exceptions that surface at scale.
  • Completeness of attributesThe less data, the more work on rules and the lower the quality of the result. Sometimes the attributes have to be tidied up first.
  • Number of category groupsEach group needs its own rules: what to mention, in what order, in what tone. This is the main part of the setup.
  • Share of manual checkingThe higher the share of human-checked items, the more reliable and the more expensive. We agree the minimum together and fix it.
  • Model processing costsPayment for processing goes separately and depends on the volume of text. We show an estimate before the start so the amount is not a surprise.
  • Whether a standing process is neededOne-off generation is simpler. A process for new items is separate work, but it removes coming back to the task every month.
Cases

Tasks and results in numbers — all metrics measured by us

a Ukrainian SaaS platform for AI rewriting of online-store product descriptions

Task
Build a full web application that imports catalogues from Prom.ua, Rozetka, Horoshop, OpenCart and WooCommerce in XML/YML/CSV/Excel, rewrites descriptions with an SEO structure, and sells this on a transparent pay-as-you-go model.
Solution
A Next.js application with catalogue import in four formats, adjustable text style (sales, neutral, technical) and an H2/H3 SEO structure. The public part is 8 pages (/, /login, /register, /offer, /terms, /privacy, /cookies, /dashboard/import). JSON-LD markup: SoftwareApplication, Offer, Organization, WebSite, FAQPage/Question/Answer. A PWA manifest. Payment by bank transfer to the sole trader's IBAN, minimum top-up 50 UAH.
Result
TTFB 0.22 s at 141 KB of HTML — the fastest response among the 16 measured portfolio sites. 8 public pages, JSON-LD markup with SoftwareApplication, Offer, Organization, WebSite and FAQPage, a working PWA manifest. Measured 31.07.2026.

an online store of tactical and military gear with a catalogue of over 50 thousand SKUs

Task
Hold an oversized assortment of tactical gear (body armour, clothing, footwear, backpacks, comms, optics) in a single store with detailed filtering by attributes — without losing page response speed.
Solution
A store on OpenCart 3 (chameleon theme + NeoSeo modules) behind Cloudflare. Two language versions. Full local-store JSON-LD markup: Store, Place, GeoCoordinates, PostalAddress, OpeningHoursSpecification, ContactPoint, WebSite, SearchAction. At checkout: LiqPay, card online, cash on delivery, cash on collection, bank transfer and online instalments (dataLayer events). Binotel telephony, eSputnik email marketing, Google sign-in, GTM (GTM-56CRQJB), GA4 (G-KLZZV2PTPC), Google Ads (AW-10830391503).
Result
54,302 products and 635 categories — the figure confirmed by two independent methods: a sitemap index of 32 product files gives 110,096 URLs across two languages, and a cross-check through OpenCart search gives 54,501–54,600 items (a 0.4% discrepancy). A catalogue of 54 thousand SKUs returns the first response in 0.41 s, full HTML load in 0.51 s at 422 KB. Nine JSON-LD types on the home page. Five payment methods, including LiqPay and online instalments. Measured 31.07.2026.

Did not find your case?

Describe how it works on your side — we will tell you whether “AI generation of product descriptions” fits and what it means in your situation. No brief and no call: one question, one answer.

Process steps

Transparent stages with approval at every step

Total duration:10–40 days

  1. Checking the data

    2–4 working days

    We count items without descriptions and with copies, and assess how complete the attributes are. We show examples generated on your data.

  2. Rules per category

    3–8 working days

    We write rules for each group: which attributes to mention, in what order, in what tone, and what never to write.

  3. A trial batch

    2–5 working days

    We generate a small batch, you check it and say what is wrong. The rules get refined until the result satisfies you.

  4. The main volume

    3–15 working days

    We run the catalogue through, check for duplicates between items, and set aside those where attributes were insufficient.

  5. Checking and publication

    2–8 working days

    A human sample check, an upload into the catalogue with the option to roll back, publication in parts under supervision.

  6. Handing over the process

    1–3 working days

    We show how to generate descriptions for new items without us. After that the 30-day warranty from the date the acceptance act is signed applies.

Technologies & integrations

What we build on and what it connects to

Stack

  • Python
  • OpenAI API
  • PostgreSQL
  • SQL
  • OpenCart
  • WooCommerce
  • Git

Integrations

  • OpenAI API
  • XML/YML price feeds
  • CSV exports
  • Google Sheets
  • Excel
Generation by a model or writing by a human

How this option differs from the alternative

Where it fitsthousands of similar product cards
Speedthousands of items in days
What is needed as inputcomplete attributes
Riskinvented properties, if no limits are set
What we advisethe catalogue by generation, key pages by a human
What we need from you

We can't start without this — best to prepare in advance

  1. a catalogue export with attributes
  2. a few examples of descriptions you like
  3. which categories matter more than others
  4. who on your side will check the result by sampling
  5. whether publishing in parts is acceptable
  6. whether a process for new items is needed

If something is missing — let us know, we'll help you gather it or do it as a separate task.

FAQ

Most frequently asked questions — with concrete answers

Will the model not invent things?

It will, if no limits are set. So there is one hard rule: a description is built only from attributes present in your data. Products where attributes were insufficient are set aside rather than «filled in with imagination». An invented property in a card costs more than an empty description: the customer buys something other than what arrives.

Will the descriptions be unique?

Between items in your catalogue — yes, that is checked separately. But nobody can guarantee uniqueness relative to the whole internet: if a product is described by ten attributes, coinciding phrasings are inevitable. We remove duplicates where they genuinely do harm — inside your own store.

Does this replace a copywriter?

No, and it should not. A catalogue of thirty thousand items is a task for generation. The home page, category texts and descriptions of key products are a human's work. We say outright which categories are better written by hand, even when that reduces our scope.

What to do with products that have no attributes?

Generate nothing. Three fields produce filler that helps neither the buyer nor search, while creating the impression of a filled catalogue. We set such items aside as a separate list: data first, descriptions after.

Who checks the result?

Your side, by sampling, and this is a condition of the work. We fix the minimum share of checked items before the start. We will not agree to publish tens of thousands of generated texts without a single human glance — and that is not a formality but a way of avoiding unpleasant surprises.

How much does model processing cost?

These are separate costs that go under your own contract with the provider and depend on the volume of text. We show an estimate before the work starts, based on a trial batch, so the amount does not become a surprise mid-project.

Will this affect search positions?

Filled descriptions are better than empty cards and better than supplier copy — that difference is obvious. But we will not guarantee positions: far more affects them than the presence of text. We are answerable for the descriptions existing, coming from your data and not repeating one another.

What happens with new products?

If a standing process is needed, we hand it over: you generate descriptions for new items yourself, by the same rules. Without that step the task returns every time the catalogue is topped up.

Let us see whether there is anything to generate from

We will check the catalogue and show examples of descriptions on your data. The review is free, we reply within 2 hours.

From measured casesTTFB 0.22 s at 141 KB of HTML

View cases
  • Reply within 2 hours
  • No commitment
  • We work under a contract

There is no price list on the site on purpose: the same work differs several times over between two clients, and a “from” figure explains nothing in that case. First a free audit — we count your pages, duplicates and speed — then we name the sum and the deadline and fix both in the contract.