I help businesses identify high-value opportunities for AI, design practical automation strategies, and build production systems that improve operations, increase revenue, and reduce cost.
From the first process review to a working, measurable system in production.
Five peer-reviewed papers on conversational AI in sales and customer operations. Speaking at Day of Data Orlando, October 2026.

Nadia Shiroglazova
Applied AI & production systems
I work at the intersection of technology and operations: understanding how a business works today, finding where intelligence or automation creates leverage, and designing systems that are practical, measurable, and connected to real workflows.
I don't build AI for the sake of having an AI feature. I focus on systems that reduce manual work, improve decisions, create qualified demand, increase operational capacity, or unlock new revenue — and I stay responsible for them through discovery, architecture, build, integration, evaluation, launch, and continuous improvement.
Transcription, status detection, and LLM evaluation of every call against 10+ operator KPIs — script adherence, objection handling, empathy, upsell technique, resolution quality. Disputed cases go to a human arbitration loop whose decisions feed back as training signal, which lifted accuracy a further 15%. Migrating from a third-party LLM API to a self-hosted 70B model cut running costs roughly in half at the same throughput.
Fixed dialing settings are a bad trade: dial fast and callers wait on hold, dial slowly and operators sit idle. This controller solves the allocation on a rolling horizon instead, modeling transfer delay as an empirical lag convolution and validating through discrete-event simulation calibrated to production data. Results shown are from counterfactual replay against the previous policy. The method is published.
Prospecting runs without a human in it: the system discovers businesses through the Places API, classifies them by category and fit, calls to qualify, then ranks by warmth from engagement signals and sends a personalized follow-up. Full call history is retained, so a prospect who calls back is resumed in context rather than re-introduced cold.
A single static risk score can't tell a coordinator what to do this morning. This system runs five horizon-specific models over point-in-time features — using only what was knowable at each decision point — then surfaces the highest-risk training sequences and ranks candidate students for recovery by availability, prior disruption, training need, and current risk. Validated chronologically, with historical replay and what-if analysis built into the coordinator workflow.
The coordinator tool is built around the decisions people actually make. Upcoming sequences are ranked by modeled risk, with the main driver flagged. Each score breaks down into what drove it, split into factors crewing can act on, factors scheduling can act on, and fixed context, so it's clear who should act. The tool suggests schedule changes backed by observed evidence, shows a pool of candidate students who could fill an at-risk sequence along with the risk if each is assigned, tracks students running out of their training window, and shows standby capacity by fleet and seat. Identifiers and operational details in the screenshots are hidden.






Documents are classified and routed by a vision-language model with OCR fallback, then answered through a hierarchical RAG pipeline with sentence-level citation and recursive three-level summarization. The entire stack was migrated off third-party APIs to self-hosted deployment to satisfy the client's data-residency and confidentiality requirements.
There is no single source of truth for addresses across 15+ countries. Each country has its own authoritative providers alongside Google Places, and each region and city carries its own formatting conventions and validity rules — so the system holds a per-country source set and a regional rule set rather than one global model.
Disagreements between sources are surfaced with plain-language reasoning instead of a bare confidence score, so a reviewer can spot-check in seconds. The most useful part is the loop: the LLM acting as judge proposes changes to the rules themselves when it sees a pattern the current rules mishandle, and a human confirms or rejects them. The rule set improves per region without anyone rewriting it by hand.
In a cold call, a pause kills the conversation, so latency was the main design constraint. The agent speaks Spanish and a range of other European languages, including Bulgarian and Slovak, which needed the most work. The first version ran as a single sequential process. I rebuilt it as a multi-threaded graph of small nodes and edges, splitting each stage into small blocks so the agent can move between them quickly. Speech and language models are called through APIs chosen for the best speed-to-quality balance, and the agent responds in 670–990 ms.
Handoff is queue-aware. While talking, the agent makes a tool call to check whether an operator is free. If no one is, it keeps the conversation going. As soon as someone frees up, it transfers the call and writes a context card to the CRM, so the operator picks up mid-conversation and doesn't have to start over. The rollout started with a low-priority customer segment and was measured against human operators: conversion matched, and engaged customers stayed on the line for 8–10 minutes, the same as with people. The agent only costs money during live conversations, since voicemail and no-answers are free. Iterating on that, we brought cost per sale down to the target the business set, four times lower than at launch.
The agent covers next-day delivery confirmation, pickup reminders, and failed-delivery follow-ups. In some countries it can also reschedule a delivery or change the address. It isn't one bot copied across markets: each country gets its own configuration of tools, context, and behavior, and some markets went through additional voice testing before launch.
The rollout ran as a 50/50 A/B test against human operators in each country. Where the results held, the agent took over 100% of the workflow, and operators there no longer handle confirmations. No one was let go: the team now spends its time on sales, where people add more value than they do confirming deliveries. High-value orders get extra care. They are routed to a more capable LLM, and critical cases are transferred to an operator.
Every call is transcribed and scored by an LLM against a stage-based rubric: opening, needs discovery, presentation, price, objections, and close. On top of the content score, the system computes 25+ speech and structural metrics per call, aggregates them per operator, and correlates each one with that operator's profit. It runs on the pooled sample and on each call center separately.
The most useful finding came from that split. Both centers sell the same products to the same countries, yet objection-handling quality correlated with profit at r = +0.54 in Europe and r = −0.30 in Latin America. Good handling doesn't hurt sales. In the second center, a high objection count mostly signals a low-intent customer whom even a flawless response won't convert. So a scoring rubric calibrated on one center can't be copied to another, and the weights are now set per center.
The findings went straight into operations: updated scripts and operator training, sharper AI feedback for supervisors, and a reworked QA report. Some "errors" that turned out not to matter are no longer penalized, some were dropped, and criteria that do matter were added. The method is published.
Keyword search misses candidates who describe the same skill in different words, and rewards those who simply repeat the right terms. Here every resume and job posting is indexed in Qdrant twice: as a sparse vector that catches exact terms like tools, titles, and certifications, and as dense embeddings that capture meaning. The two rankings are merged with standard rank fusion, and custom feature extraction adds structured signals from both sides.
On top of retrieval sits a weighted scoring layer that recruiters control. Toggles in the interface set how much location proximity, years of experience, skills overlap, and domain background matter, and the ranking updates immediately. A senior niche role and a high-volume hire need different trade-offs, and recruiters can set them per vacancy without retraining anything. On internal evaluation data the system reached NDCG@10 of 0.91 and Precision@5 of 0.87, 34% above the keyword baseline.
Most inbound calls were the same few questions: what fits, what the specs are, whether it's in stock, and where to buy it. The assistant answers them on the website and in WhatsApp across 12 intents, including product recommendation, specification lookup, similar-product search, stock availability, cross-sell, a nearest-store locator across 1,075 partner points of sale, and handoff to a person. Intent classification holds at 93% accuracy under production load.
Similar-product search and cross-sell combine embeddings over the catalog with purchase history: alternatives are found by meaning, and add-ons by what customers actually buy together. Only about 5% of conversations needed a human, and inbound support calls halved within the first quarter.
Meals are cooked to order, but ingredients have to be bought in advance, so a bad guess turns into either waste or shortages. The system forecasts the daily number of containers for each of seven diet lines, one week ahead, using order history, seasonality, subscription trends, holidays, promotions, weather, and cancellations. Both gradient-boosting and LSTM models were built for the task.
The forecast feeds directly into the purchasing plan. Measured against the previous planning process under the same conditions, it reached a MAPE of 5.8% across diet lines and cut overproduction waste by about 22%.
A single workspace for creator marketing on TikTok and Instagram, with a global toggle to work on one platform or both. Discovery runs on saved settings for follower range, engagement rate, and category or bio keywords, and every creator it finds lands in the pipeline. Outreach can go to a single creator, everyone matching a filter, or the results of a specific search run. Email campaigns go out through SendGrid in four steps: audience, template, preview, and send. TikTok DMs come from a queue with the message already prepared, so sending each one is a single action.
Every reply moves the creator onto a deal board with stages for conversation, negotiation, agreement, samples sent, in production, and posted. Deals that sit in one stage too long are flagged. Once a deal gets serious, the LLM drafts the parts that are personal: a contract and brief for each creator covering what to film, the terms, and the shipping address. It comes out as a downloadable document that the creator signs through a link. An analytics view tracks the funnel, channels, velocity, and cost.




Built in 2023, when a reliable domain assistant meant training your own model. The base is a T5 dialogue model, further pre-trained on the Russian Criminal Code to learn the language and structure of the law, then fine-tuned on a large set of real questions and answers from legal forums, with ChatGPT used to augment the training data.
Answers stream token by token, so a consultation feels like a live conversation and doesn't stall while a full response is generated. The firm still uses the system today.
The company had a large pool of customers who hadn't ordered in over a year and couldn't afford to contact all of them. The question was who gets a low-cost SMS and who gets one of the limited phone calls. The first version was a CatBoost purchase classifier on recency, spend, order count, contact outcomes, talk time, objections, answer rates, and profile data. Its overall ROC-AUC looked acceptable, but it was unstable at the top of the list, and the top of the list is the only part operators actually use.
I reframed it as a ranking problem under a fixed outreach budget. The purchase-only label treated a message that was never delivered, an explicit refusal, and an engaged non-buyer as the same negative. I replaced it with a graded response signal: reached, responded, engaged, interested, purchased. Class imbalance was handled in training through weighting and controlled negative sampling, while the evaluation set kept the natural production mix. Evaluation moved to the metrics behind the decision: top-K precision, lift over random, PR-AUC, revenue per 1,000 contacts, and cost per recovered order. All features are computed as of the scoring date, and validation respects time, so nothing from after the decision leaks into it.
Research starts outside Google. The agent reads Reddit discussions to learn what the target audience cares about and how they phrase it, and turns that into candidate keywords and themes. It then queries the Google Ads API for search interest and bid costs, so it can weigh how large and how expensive each audience is, and picks the segment that best fits the product. The result is a fully prepared campaign. A person only approves it, and the campaign is created.
After launch, a separate tracking platform takes over. The agent watches search keywords, negative keywords, and performance metrics, and proposes what to add or remove. Nothing changes without a human in the loop. The client runs up to ten campaigns a month and had no one to manage paid search. The agent does the work in roughly a tenth of the time a person would need, and the approach scales as the number of campaigns grows.
These four papers are being reissued with a new publisher over the next one to two months. Direct links will be added here as each becomes available again — happy to send copies in the meantime.
Learn how the business actually runs today — the process, the people, the data, and where the friction really sits.
Choose the opportunity worth pursuing, define success metrics, and design the system and the operating model around it.
Develop models, agents, and pipelines against real data, with evaluation in place from the first version.
Connect the system to the tools people already use — telephony, CRM, databases, internal interfaces.
Compare against the baseline honestly: backtesting, counterfactual replay, human review, and cost per outcome.
Feed results back in. Recalibrate, extend coverage, and remove the failure modes that surface in production.
Have a complex process, an underused data source, or an AI opportunity you're not sure how to approach? Let's discuss what could create real value.