Inspiration
Ukrainian online stores often manage hundreds or thousands of products through Horoshop. Supplier data is inconsistent, product pages are sparse, and translating or rewriting every SKU by hand is slow. A single generative prompt can create fluent copy, but it can also omit dimensions, mix Ukrainian and Russian, invent claims, or produce a file that no longer imports cleanly.
We wanted a production workflow where generation is only one stage. Source facts, locale rules, validation, billing, row-level status and the final Horoshop schema all had to be explicit and testable.
What it does
Uplify Content accepts a standard Horoshop XLSX export with product URLs and returns the same catalog structure with reviewed content for Ukrainian and Russian:
- SEO and H1 titles;
- structured HTML descriptions and TL;DR;
- metadata and five keyword phrases per locale;
- benefits, FAQ and JSON-LD;
- image ALT text;
- visible
OK,WARNandERRORoutcomes; - an XLSX that can be imported through the normal Horoshop workflow.
The service does not require a merchant admin password or API key. It reads public product pages, preserves SKU identity and processes each row asynchronously. Critical failures fail closed instead of being presented as successful content.
How we built it
The application is a FastAPI service backed by PostgreSQL, Redis and Celery workers. pandas and openpyxl preserve the spreadsheet contract; Beautiful Soup and lxml parse public product pages behind SSRF controls.
The content pipeline first extracts a fact contract from the source. Ukrainian is the master locale. Russian is created from the validated Ukrainian result, then checked by locale-specific validators. Coverage, HTML safety, marketing clichés, unsafe claims, geo rules and empty payloads are evaluated as executable gates. Retry and fallback stages handle repairable failures, while unresolved risk remains visible as WARN or ERROR.
During OpenAI Build Week we used Codex with GPT-5.6 as the implementation partner and adversarial release reviewer. Codex traced the production repository and live Docker stack, reconciled a live-only production baseline with GitHub, aligned public claims to executable safeguards, repaired mobile and Horoshop workflow gaps, hardened worker imports, extended the Google Ads stop-word gate, preserved SKUs and modification rows, and added the English judge experience. A production-equivalent suite of roughly 1,400 tests and a real bilingual batch were run before release.
Challenges we ran into
The hardest problem was not producing more text. It was deciding when generated output was safe enough to export.
Horoshop modification rows can share one description while carrying different SKUs. Ukrainian and Russian share enough vocabulary that naive language detection produces false positives. Brand names, INCI ingredients and material names may legitimately contain Latin words. Spreadsheet headers and SKU formatting must survive a round trip exactly. A worker crash between token reservation, output storage and status update can also create billing ambiguity.
We converted these cases into deterministic contracts and regression tests instead of relying on prompt wording alone.
Accomplishments that we are proud of
- A real production service used on more than 30,000 catalog rows.
- A source-fact contract with five coverage strategies and retry behavior.
- A UA-master/RU-replica architecture with brand- and INCI-aware locale checks.
- Fail-closed handling for critical rows and visible review warnings.
- Formula-injection, unsafe-HTML and SSRF protection.
- Horoshop-native XLSX headers with verbatim SKU preservation.
- Trial and billing logic that charges successful delivery rather than a queued request.
- A complete English judge path with a parser-verified five-product sample and a finished reference result.
What we learned
The most useful role for a coding agent was broader than implementation. Codex helped compare claims against runtime behavior, reproduce production dependencies, audit failure windows, preserve server-only commits, design tests around invariants, and keep the release honest about what generation can still get wrong.
We also learned that specialization is an advantage. Supporting Horoshop deeply gives merchants a shorter, safer path than a generic “AI content generator” that leaves mapping, variants and import cleanup to the user.
What is next
- add a merchant-facing quality report sheet to every export;
- publish measured P50/P95 processing times and repair rates;
- grow the anonymized golden dataset with accepted merchant results;
- add more commerce adapters after the Horoshop contract is fully proven;
- provide optional Merchant Center-specific exports and compliance checks;
- keep human review explicit for every generative result.
Existing-project disclosure
Uplify Content existed before the event. The submission represents substantial Build Week extensions implemented with Codex and GPT-5.6 between July 13 and July 21, 2026. The relevant commits and their purpose are documented in the repository README. The product is not presented as newly created during the event.
Built With
- alembic
- anthropic
- beautiful-soup
- caddy
- celery
- codex
- docker
- fastapi
- google-gemini
- gpt-5.6
- jinja
- lxml
- openai
- openpyxl
- pandas
- postgresql
- pydantic
- pytest
- python
- redis
- sqlalchemy

Log in or sign up for Devpost to join the conversation.