{"id":553,"date":"2026-10-26T17:02:28","date_gmt":"2026-10-26T16:02:28","guid":{"rendered":"https:\/\/erikagherardi.it\/lab\/deals-bot-for-techprincess\/"},"modified":"2026-10-26T17:02:28","modified_gmt":"2026-10-26T16:02:28","slug":"deals-bot-for-techprincess","status":"publish","type":"lab_project","link":"https:\/\/erikagherardi.it\/en\/lab\/deals-bot-for-techprincess\/","title":{"rendered":"Deals bot for Techprincess"},"content":{"rendered":"<h2>The need<\/h2>\n<p>Techprincess, an Italian online tech magazine, had temporarily suspended its Telegram deals channel. It needed a way to run automatically, so it could start again without burdening the editorial team.<\/p>\n<p>So I was asked to give it a try and, with Claude&#8217;s help, it was easier than expected.<\/p>\n<h2>What it does<\/h2>\n<p>Every morning the bot looks for the best deals on Amazon using the Creators API, checking them against a list of about 140 brands selected by the Techprincess team. No generic deals, nothing misleading, nothing that is not worth recommending.<\/p>\n<p>The discount has to fall between a minimum and a maximum. The minimum threshold discards savings too small to be of interest, while the maximum discards abnormal discounts, which can hide a scam or a price error, with the risk of cancelled orders.<\/p>\n<p>Claude&#8217;s API writes a short summary of the product, the bot composes the image and the posts are scheduled throughout the day, from 8 am to 10 pm.<\/p>\n<figure class=\"eg-figure-row\">\n<div><img decoding=\"async\" src=\"https:\/\/erikagherardi.it\/wp-content\/themes\/erika-gherardi\/assets\/images\/lab\/deals-bot-post-1.jpg\" alt=\"A post of the deals channel: purple background, a pill saying Amazon deal, a lime discount badge, the photo of a robot vacuum cleaner, its name and the old and new price.\" width=\"900\" height=\"900\" loading=\"lazy\"><img decoding=\"async\" src=\"https:\/\/erikagherardi.it\/wp-content\/themes\/erika-gherardi\/assets\/images\/lab\/deals-bot-post-2.jpg\" alt=\"A post of the deals channel with the photo of an egg cooker, the discount, the name and the prices.\" width=\"900\" height=\"900\" loading=\"lazy\"><img decoding=\"async\" src=\"https:\/\/erikagherardi.it\/wp-content\/themes\/erika-gherardi\/assets\/images\/lab\/deals-bot-post-3.jpg\" alt=\"A post of the deals channel with the photo of a height-adjustable desk, the discount, the name and the prices.\" width=\"900\" height=\"900\" loading=\"lazy\"><\/div><figcaption>Three posts from the channel: the discount, the product, its name and the prices.<\/figcaption><\/figure>\n<h2>How I built it<\/h2>\n<p>The bot is, first of all, the result of research to understand feasibility, timing and development costs compared with existing services. Once technical and economic feasibility was confirmed, development began, entrusted to Claude Code.<\/p>\n<p>To work, the system needs 3 things:<\/p>\n<ul>\n<li>the Amazon Creators API, to run the searches every morning;<\/li>\n<li>the Claude API, to generate the description (which costs next to nothing for this kind of use);<\/li>\n<li>space on a server to host the bot&#8217;s files and keep it running 24\/7.<\/li>\n<\/ul>\n<p>Once everything was put together, I tested it for a couple of weeks on a test channel, after which the bot went into production.<\/p>\n<h2>The human part<\/h2>\n<p>The code is the result of Claude&#8217;s work, but the bot exists thanks to the work of people.<\/p>\n<p>The Techprincess team selected the brands and put together the list, which is updated periodically to make sure the products are always interesting and up to date.<\/p>\n<p>The image template is, first of all, the result of my experience with Techprincess&#8217;s social channels and days of analysis, as is the decision to set limits on the deals, to avoid errors and misleading discounts.<\/p>\n<p>Claude is the colleague who can program, but everything else is entrusted to people.<\/p>\n<h2>How it is run<\/h2>\n<p>The bot is highly independent, but that does not mean it operates alone or without supervision. A small group of people has access to a management chat where they can preview the posts scheduled by the bot and cancel them if needed; it is also possible to paste an Amazon link to create a new post about deals the bot may have missed.<\/p>\n<p>Human feedback has also helped the bot evolve, for example by adding manual entry of details when the Amazon API does not return the product data, and a command that lets you recall the queued posts at any time, to cancel the ones added by hand and check that there are no duplicates.<\/p>\n<h2>The widget<\/h2>\n<p>The experience gained with the bot made it possible to create a widget for the techprincess.it site with the best deals of the day.<\/p>\n<p>It is built on the same search mechanism but, instead of publishing a deal at regular intervals, it already includes the most interesting ones, pointing to the Telegram channel for all the others.<\/p>\n<p>The widget updates every morning, so as not to weigh the site down with constant requests to the server.<\/p>\n<p>If there is no suitable deal, it keeps the previous day&#8217;s deals instead of showing an empty box.<\/p>\n<figure>\n<img decoding=\"async\" src=\"https:\/\/erikagherardi.it\/wp-content\/themes\/erika-gherardi\/assets\/images\/lab\/deals-bot-widget.webp\" alt=\"The deals widget: a row of three cards, each with the photo of a product, a lime discount badge, the name and the prices, under the title Le offerte di oggi and a link to Telegram.\" width=\"1480\" height=\"860\" loading=\"lazy\"><figcaption>The widget on the Italian site, with a few offers published on the channel.<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>A Telegram bot that finds deals on trusted brands, writes the posts and publishes them to Techprincess&#8217;s deals channel every day, with very little human intervention.<\/p>\n","protected":false},"featured_media":0,"template":"","project_status":[19],"project_type":[26],"class_list":["post-553","lab_project","type-lab_project","status-publish","hentry","project_status-built","project_type-automation"],"_links":{"self":[{"href":"https:\/\/erikagherardi.it\/en\/wp-json\/wp\/v2\/lab_project\/553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/erikagherardi.it\/en\/wp-json\/wp\/v2\/lab_project"}],"about":[{"href":"https:\/\/erikagherardi.it\/en\/wp-json\/wp\/v2\/types\/lab_project"}],"version-history":[{"count":0,"href":"https:\/\/erikagherardi.it\/en\/wp-json\/wp\/v2\/lab_project\/553\/revisions"}],"wp:attachment":[{"href":"https:\/\/erikagherardi.it\/en\/wp-json\/wp\/v2\/media?parent=553"}],"wp:term":[{"taxonomy":"project_status","embeddable":true,"href":"https:\/\/erikagherardi.it\/en\/wp-json\/wp\/v2\/project_status?post=553"},{"taxonomy":"project_type","embeddable":true,"href":"https:\/\/erikagherardi.it\/en\/wp-json\/wp\/v2\/project_type?post=553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}