Draft reply to a customer
AI reads the conversation and suggests a reply in the seller's own style. The seller edits it and sends it.
running in Kelisim
I write websites, CRMs and business systems in Laravel, Go and Python. I connect cameras, access control, barriers, scales and telephony to them, and add AI where it saves people time. I take a system all the way to real use, not just to a demo.
data from hardware and messengers in one system
The assistant lives inside the tools people already use: WhatsApp, Telegram, the phone, your accounting system. Nobody has to learn a new app. AI prepares, a person decides.
AI reads the conversation and suggests a reply in the seller's own style. The seller edits it and sends it.
running in KelisimCustomers' voice messages become text you can search and reply to.
running in KelisimDeal stage, promises, risks and who needs a reply today. Built from the conversation automatically.
running in KelisimA messenger bot answers customers around the clock and books appointments.
AI receptionistText-to-speech for call-outs and alerts on your own server, no cloud.
emergency alertsFinding suitable tenders and checking counterparties against open data.
tender assistantProject site: kelicim.kz ↗
Sellers keep using their own WhatsApp. The assistant transcribes voice notes, suggests replies, keeps a customer card and reminds about promises. It never reads personal chats and never sends anything itself, so the risk of the number being banned is minimal.
seller's WhatsAppWAHA · GOWSthe seller's own number as a linked device, no separate botwaha_readonlyread-only and only chats in the “Customers” list: no sending, no read receiptsClaude HaikuClaude OpusWhisperdrafts in the seller's style, “make it better”, voice transcription, a customer card with promises and risksappbridgePINa dashboard for each seller on kelicim.kz, a bridge to WhatsApp, PIN loginDeal stage, promises, risks and whose move it is.
Example with sample data
Who needs a reply, which promises are due and who has been silent for 2+ days.
Example with sample data
Three message options to move a customer to a decision, with why each one works.
Example with sample data
How much a customer will bring and the deal odds by stage.
Example with sample data
Transcribed on our own server, plus a summary: what the customer wants and what was agreed.
Example with sample data
AI reads photos, PDFs, Word and Excel files from the chat and uses them in replies.
Example with sample data
Prices in replies come from your price list; AI never makes them up.
Example with sample data
A customer dossier and a ready “handing you over to my colleague” message.
Example with sample data
Meetings and promises go into the phone calendar with one tap.
Example with sample data
A summary of every seller on the team on one screen.
Example with sample data
Negotiation tips based on SPIN, Sandler and other methods.
Example with sample data
Customer on holiday or ill: reminders leave them alone.
Example with sample data
A Telegram and WhatsApp bot understands patients' plain messages, matches them to a doctor by specialty and books the visit. It works nights and weekends, so front-desk staff can focus on patients in the clinic.
TelegramWhatsApp webhookpatient messagesmessage_handlerprompt_builderllm_responsereminder_schedulerunderstands the request, picks a doctor, sends remindersdatabaseclinic_infoPostgreSQL: doctors, chat historyCollects data from the public procurement portal and tax sources, keeps a database of contracts and companies, and rates supplier risk. Helps you find a suitable tender faster and check a counterparty.
scrape_goszakupscrape_contractsscrape_kgdows_clientaisoip_clientprocurement portal, contracts, tax datarisk_insightsorganization_storecontract_storecompany and contract database, supplier riskadminweb dashboard with loginEach animation shows how the system works for people. Below it, “How it's built” lists the system layers, the modules from the code and the languages I wrote it in. Plates, amounts and texts in the animations are examples.
I wrote the hardware drivers and the lane service in Go on Linux: bill acceptor, coin board, induction loop, receipt printer in Kazakh and Russian, barrier, display board. The terminal checks itself every 15 seconds and takes itself out of service on a fault. Together with the WIM station (next project) this makes a complete truck lane.
NV200PRS17AGEA2488VKP-80IILBA 63PGdisplaybills, coins, loop, receipt printer, barrierserialportcashprs17ageaiopanelprintermodbusbarrierledsignRS-232, Modbus TCP, ESC/POS; receipts print as images so Kazakh letters renderlanehealthjournalpassage, change in coins, self-check every 15 s, cash logapiD-BusHTTP API and message bus for the road operator's systemdiscoverconfigdeployauto-detects devices on ports, one-command install, systemd with watchdogThe truck drives through without stopping, and the station collects everything three devices from different vendors can tell about it. Each device answers with its own delay: the camera sees the plate early, the lidar answers once the truck has fully passed. The service matches events by lane and time window, corrected for each device. If the scales count 3 axles and the lidar 2, the record is flagged for review instead of being lost.
Kistler LineasIntercompVanJee WLR-711Tattile Vega53weight sensors in the road, a lidar beside the lane, a plate cameratattileintercompvanjeethe camera pushes JSON over HTTP, the scales use TCP (WIMLOGIX), the lidar an SDK; raw data is stored in fullmatchthree streams into one vehicle by lane and time windowpassagelimitsaxle weights, dimensions, plate, photos, mismatch flags; weight and size limit checkswimdHTTP receivers, health checks, record storageOwn telephony on Asterisk via the carrier's SIP trunk. Speech synthesis runs on our own server, so staff data never goes to the cloud. By estimate, 1,400 people are called in about 15 minutes on 100 lines.
staticemployees.csvalert text, staff list with language: kk, ru or bothapp/api/campaigns/api/employeescall campaign, call queue, retries, reportttsPiperKazakh and Russian speech synthesis on our own serverextensions.confPJSIPfunc_curlcall via the carrier trunk, key press 1, events back to the backendOne system for entry, video, the panic button, a canteen paid from the student's balance, and parent notifications. Access terminals from three vendors and IP cameras are connected. The interface is in Kazakh, Russian and English.
HikvisionDahuaSigurIP camerasaccess terminals from three vendors, video camerasHikvisionAccessControlDahuaAccessControlSigurServiceCameraServicea separate adapter for each vendorrtps-hlsFFmpegServiceWebRTCServiceRTSP from cameras to the browser, a separate Go moduleEmergencyAlertMealNotificationAnnouncementpanic button, canteen, notifications, announcementsFilamentJobsEventsadmin panel, background queues and eventsVideo from body cameras arrives two ways: a live stream or uploaded recorded clips. Video storage, user roles, an event log and a link to the ASYCUDA customs system.
streamclipslive stream or uploading recorded clips after a shiftauthvideosadminlogin and roles, video in and out, managing cameras and peoplePostgreSQLMinIORedisalembicmetadata and events in the database, video files in object storageasycudalinking video to the declaration in the customs systemLock status and opening history for any period in your own CRM, not just the vendor's app. Bookings, temporary passcodes, Telegram notifications and accounting. A fit for short-term rentals, offices and residential complexes.
Tuyacode, card or apptuya_clienttuya_cachelock_cryptoTuya OpenAPI, AES encryption per the lock protocollock_servicebooking_servicepassword_storelock control, bookings, temporary passcodescrmtelegram_serviceaccounting_serviceadmin, notifications and accountingMy main tool for web systems since 2016: from document management and insurance products to billing and marketplaces. I write the backend, the admin panel and integrations, and deploy with Docker.
Online policy pricing and sales, exchange with the Unified Insurance Database (ESBD) over SOAP and with the company's 1C. Built for three insurers, including 8 online products from scratch at one of them.
Laravel · SOAP · 1C · RabbitMQ · Kafka · Go
A marketplace for wholesale and retail. Fast catalogue search, background queues, real-time updates, monitoring and error tracking.
Laravel 11 · Octane · PostgreSQL · Redis · Meilisearch · Reverb
Water and heating charges for property managers and homeowner associations. Buildings, meters, five calculation methods, penalties, Excel reports, a customer portal.
Laravel 11 · Filament 3
Tickets are assigned by engineer workload. Time tracking, hourly billing reports, roles and permissions.
Laravel 13 · React 18 · TypeScript
The deal chain: request, rates and costs, commercial offer, supplier order, register. Only the director approves offers.
React · Python · FastAPI · PostgreSQL
A filterable catalogue of tiles, stone, lighting and decor. Automatic import of catalogues from suppliers present in Kazakhstan.
Laravel 13 · Inertia · React · MySQL
Also: payment integrations (TipTop Pay), car loans, car and motorbike marketplaces, a CRM with Asterisk and call history, moving a monolith to microservices.
for: sales teams, clinics, service companies
for: roads, parking, warehouses, schools, residential complexes
for: government bodies, enterprises, suppliers
for: insurance, service and trading companies
I started with websites, then spent years connecting insurance and accounting systems to government databases, 1C and telephony. My recent projects are about hardware and AI.
Education: Kazakh-Russian International University, Aktobe, 2009. Information technology.
Toll payment lanes and WIM for toll roads, the Kelisim AI assistant, alerts, schools, locks, tenders.
Full stack: web services in Laravel and Vue, Docker, RabbitMQ.
Moving a monolith to microservices, external service integrations, CI/CD. Wrote a Go bot that reports build statuses.
Online insurance and integration with ESBD (SOAP) and 1C. An auth microservice in Go. A CRM for managers with Asterisk and call history.
Moved a document management system to Laravel, linked PDMS with a web portal.
Websites, SharePoint, iOS apps.
I answer personally. Keep it short: what the site or process is and what gets in the way.