# Mirai Minds > Mirai Minds is an AI engineering studio in Surat, India. We design, build and run production AI systems — AI agents, voice and WhatsApp agents, custom LLM and document AI, and computer vision. Mirai Minds (miraiminds.co) is the AI engineering studio based in Surat, India. It is not affiliated with the MiraiMind AI companion app or with mirai.zone. - Legal name: Mirai Minds LLP - Founded: 2023 - Address: 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India - Phone: +91 63537 64284 - Email: hello@miraiminds.co - Website: https://www.miraiminds.co - Profiles: https://www.linkedin.com/company/miraiminds-co, https://www.linkedin.com/showcase/life-at-mirai, https://www.instagram.com/miraiminds.co, https://huggingface.co/miraiminds, https://tracxn.com/d/companies/miraiminds/__BLhRyGUBQUQLrAcvDw0SN2u8qDOEwb76-8LhNhrDbvo --- # AI that talks, reads and *gets work done.* > Mirai Minds is an AI engineering studio in Surat, India. We design, build and run production AI: agents that act inside your tools, voice and WhatsApp agents that talk to customers, document AI that turns drawings into SAP-ready data, and computer vision for photos and products. Most builds ship in two to eight weeks. ## Key facts - **Founded:** 2023 - **Based in:** Surat, India - **Typical build:** 2–8 weeks - **After launch:** We run and improve it ## How an engagement runs - **Week 0 — Discovery call:** Thirty minutes with an engineer. You describe the job; we say whether AI is the right tool and what it would take. - **Week 1 — Scope and evals:** We agree what done looks like and build a test set from your real data before writing the system. - **Weeks 2–6 — Build:** Working software every week, measured against the test set, with your team trying it early. - **Launch — With human review:** The system goes live with a person checking the risky steps and a clear way to reach a human. - **Ongoing — Run and improve:** We watch real traffic, fix what breaks and tune on real cases, or hand over with documentation. ## Services - [AI agents and automation](https://www.miraiminds.co/services/ai-agents.md) — Agents that read, decide and act inside your tools, with every tool call logged and a person approving the risky ones. - [Voice AI agents](https://www.miraiminds.co/services/voice-ai-agents.md) — Phone agents that answer, qualify and follow up in English or Hindi, and bring in a person when the caller needs one. - [WhatsApp AI agents](https://www.miraiminds.co/services/whatsapp-ai-agents.md) — WhatsApp agents that remember each customer, answer from your documents and let your team step in from an inbox. - [Custom LLM and document AI](https://www.miraiminds.co/services/custom-llm-development.md) — Language models grounded in your documents and data, measured on your own test set, with people reviewing what matters. - [Computer vision](https://www.miraiminds.co/services/computer-vision.md) — Vision models that find faces and products, cut out backgrounds and edit photos, fast enough for a queue of real customers. ## Shipped work - [Resin manufacturer (India) — Catalog assistant with photo search for a resin manufacturer](https://www.miraiminds.co/work/resin-catalogue-assistant.md) — Pilot on a 15-product catalog sample - [Theme-park and entertainment photo company — AI photo pipeline for theme-park souvenir photos](https://www.miraiminds.co/work/theme-park-ai-photo-pipeline.md) — 18.7 s per generative photo on one A100 (was 60–90 s) - [iKoMatch: an AI fundraising assistant on WhatsApp and voice](https://www.miraiminds.co/work/ikomatch-ai-fundraising-assistant.md) — 6,717 investor records; each day's matches graded by an LLM judge - [CallAuditAI: rubric scoring for counseling and sales calls](https://www.miraiminds.co/work/callauditai.md) — Scorecards for an admissions counseling team's recorded calls - [Ethnic-wear e-commerce brand (India) — Visual product search and cart-recovery calls for an ethnic-wear brand](https://www.miraiminds.co/work/ecommerce-visual-search-and-cart-recovery.md) — Visual search live for store staff since July 2026 - [WhatsApp Agents: our service for AI WhatsApp conversations](https://www.miraiminds.co/work/whatsapp-agents-platform.md) — Runs iKoMatch's founder conversations on WhatsApp - [AI outbound-calling startup — Outbound AI calling: a Pipecat voice bot and campaign dialer](https://www.miraiminds.co/work/outbound-ai-calling-platform.md) — Live for outbound campaigns - [Voice Agents: our platform for AI phone agents](https://www.miraiminds.co/work/voice-agents-platform.md) — Live at voice-agents.miraiminds.co - [Indian public-sector refinery — Engineering drawings to SAP-ready bills of material](https://www.miraiminds.co/work/refinery-drawings-to-sap-bom.md) — Delivered and handed over; every row reviewed before it reaches SAP - [US logistics software company — Operations chat agent for a US logistics software company](https://www.miraiminds.co/work/logistics-ai-agents.md) — Delivered; every tool call's arguments are checked before it runs - [Gurbani learning app — Explanation and pronunciation tools for a Gurbani learning app](https://www.miraiminds.co/work/gurbani-learning-ai-tools.md) — Delivered to the app team as an authenticated API - [Myva.ai and CallPaaS: document chatbots and call-center AI](https://www.miraiminds.co/work/myva-callpaas-support-and-call-centre.md) — Both products built and extended across 2023–2025 - [Rouh: a computer-use agent for the desktop](https://www.miraiminds.co/work/rouh-computer-use-agent.md) — Working desktop prototype, reviewed by the founder ## Frequently asked questions ### What does Mirai Minds build? Five kinds of production AI systems: AI agents that take actions in your software, voice AI agents for phone calls, WhatsApp AI agents, custom LLM and document AI, and computer vision for photos and products. We also run three products of our own: Voice Agents, WhatsApp Agents and CallAuditAI. ### How long does a typical build take? Most builds ship in two to eight weeks. The first week goes to scope and evaluation, building a test set from your real data; the build follows in weekly releases; launch happens with a person reviewing the risky steps. We give a timeline on the first call. ### Which models and providers do you work with? Whichever fits the task: OpenAI, Anthropic, Google Gemini, Meta Llama, Mistral, DeepSeek and Qwen models, and open-weight models on dedicated GPUs. For voice we use Deepgram, Cartesia and ElevenLabs over Plivo or Twilio. We say when a smaller or cheaper model is enough. ### What stage should my company be at to work with you? Any stage. We have built for founders with a first product, for growing software companies and for a public-sector refinery. What changes is the scope, not the bar: every system gets an evaluation set, monitoring and a way for a person to step in. ### Can you work with our in-house engineers? Yes. We can build alongside your team, hand a finished system over with documentation, or keep running it for you. On the refinery document AI project we handed the system over to the client's IT partner at the end of the engagement. --- Canonical: https://www.miraiminds.co/ Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # 未来 means future. Literally, 'not yet come.' > Mirai Minds is an AI engineering studio founded in 2023 in Surat, India, by Sagar Davara and Sneh Mehta. The name comes from 未来, Japanese for future. We are a small, senior team that designs, builds and runs production AI — agents, voice and WhatsApp agents, document AI and computer vision — for clients in India and abroad. ## Key facts - **Legal name:** Mirai Minds LLP - **Founded:** 2023, Surat, Gujarat, India - **Founders:** Sagar Davara, Sneh Mehta - **We build:** AI agents, voice AI, WhatsApp agents, custom LLM and document AI, computer vision - **Not to be confused with:** The MiraiMind companion app or mirai.zone ## Principles - **Ship to production:** We measure ourselves by what reaches real users, not by what gets demoed. A build is done when it runs on real traffic. - **A person stays in the loop:** Every agent we ship has a way to reach a human, and every risky step has a review, until the numbers say it can go without. - **Plain language, short loops:** We write things down, decide and move. If a spreadsheet or a simpler system solves the problem, we say so on the first call. - **Measure, then claim:** Every number on this site says how it was measured. We build the evaluation set before the system, and keep running it after launch. Mirai Minds started in 2023 in Surat, India, with a simple rule: build AI systems that companies actually put into production. Sagar Davara and Sneh Mehta founded the studio as an LLP. We are a small, senior team. The work spans five kinds of systems — [AI agents](/services/ai-agents), [voice AI agents](/services/voice-ai-agents), [WhatsApp AI agents](/services/whatsapp-ai-agents), [custom LLM and document AI](/services/custom-llm-development) and [computer vision](/services/computer-vision) — and the plumbing that keeps them running: queues, evaluation sets, monitoring and a way for a person to step in. ## Why 未来? Mirai (未来) is Japanese for future. Written out, the two characters mean "not yet" and "come". We like the honesty of that: a system isn't the future until it works on real traffic, for real users, with real money moving through it. ## What we build for ourselves Alongside client work we run three products: the [Voice Agents platform](/work/voice-agents-platform), [WhatsApp Agents](/work/whatsapp-agents-platform) and [CallAuditAI](/work/callauditai). Building on our own platforms means client projects start from parts that are already tested in production. ## Where to find us Our studio is in Surat. We publish research notes on [Hugging Face](https://huggingface.co/miraiminds), engineering stories on our [blog](https://blog.miraiminds.co), and team news on [LinkedIn](https://www.linkedin.com/company/miraiminds-co). ## Frequently asked questions ### Is Mirai Minds the same as the MiraiMind app? No. Mirai Minds (miraiminds.co) is the AI engineering studio based in Surat, India. It is not affiliated with the MiraiMind AI companion app, or with mirai.zone. Our only websites are miraiminds.co and its subdomains, such as voice-agents.miraiminds.co and docs.miraiminds.co. ### What does the name mean? Mirai (未来) is Japanese for future; the two characters read as 'not yet' and 'come'. Minds is the people and the systems. The name is a reminder that the work is only finished when it reaches real users. ### Where is Mirai Minds based, and who do you work with? Our studio is at 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat. We work with clients in India and abroad, including a US logistics software company, and hold calls in the client's time zone. --- Canonical: https://www.miraiminds.co/about Last updated: 2026-10-06 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # AI engineering services > Mirai Minds offers five AI engineering services: AI agents and automation, voice AI agents, WhatsApp AI agents, custom LLM and document AI, and computer vision. Each is delivered end to end — scoping, evaluation, build, launch with human review and running it afterwards — and most builds ship in two to eight weeks. ## Start from the job, not the model Every engagement starts with the work the system has to do: the documents it reads, the calls it takes, the actions it may and may not take, and what happens when it is unsure. The model comes later, and it is usually the easiest part to change. ## Build the test set before the system In the first week we collect real examples — documents, recordings, chats, photos — and agree what a correct answer looks like. That set tells us which model is good enough, catches regressions when prompts change, and keeps running after launch. Numbers we quote come from it. ## Keep a person in the loop until the numbers say otherwise Extraction gets a reviewer, voice agents get a live handoff, and agents that act in your software get limits on what they may do alone. We relax those checks only when the error rate on real traffic says it is safe. ## Choose the simplest stack that holds up A hosted platform is often the fastest way to a pilot; a custom build pays off at volume, with strict data rules or with Indian languages. We model running costs on your expected volume before you commit, and we say when a smaller or cheaper model is enough. - [AI agents and automation](https://www.miraiminds.co/services/ai-agents.md) — Agents that read, decide and act inside your tools, with every tool call logged and a person approving the risky ones. - [Voice AI agents](https://www.miraiminds.co/services/voice-ai-agents.md) — Phone agents that answer, qualify and follow up in English or Hindi, and bring in a person when the caller needs one. - [WhatsApp AI agents](https://www.miraiminds.co/services/whatsapp-ai-agents.md) — WhatsApp agents that remember each customer, answer from your documents and let your team step in from an inbox. - [Custom LLM and document AI](https://www.miraiminds.co/services/custom-llm-development.md) — Language models grounded in your documents and data, measured on your own test set, with people reviewing what matters. - [Computer vision](https://www.miraiminds.co/services/computer-vision.md) — Vision models that find faces and products, cut out backgrounds and edit photos, fast enough for a queue of real customers. ## Frequently asked questions ### Can one system combine voice, WhatsApp and an agent? Yes, and it often should. On iKoMatch, founders onboard over WhatsApp and an AI phone call fills in whatever the chat missed; both feed the same founder profile and the same matching engine. We design the core once and add channels on top. ### How do you decide what to build first? We start from the job that costs the most time or money today and the data that already exists for it. The first release does one job end to end, with a person reviewing the output, so you see value in weeks rather than after a long platform project. ### Do you only build new systems, or improve existing ones too? Both. Some of our work adds AI stages to software a client already runs; the souvenir-photo platform we extend for a theme-park and entertainment client, for example, predates us. We read the existing code and data first, then decide what to keep, fix or replace. ### What if AI is the wrong tool for our problem? Then we say so on the first call. Some problems are better solved with rules, a better form or a spreadsheet, and a model would only add cost and failure modes. --- Canonical: https://www.miraiminds.co/services Last updated: 2026-10-06 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Shipped work: AI systems in production > This is the work Mirai Minds has shipped: AI systems built for clients, and platforms we run ourselves. Each case study covers the problem, how the system works, the models and stack behind it, and what changed, with the source of every number. Startup clients are named; enterprise and public-sector clients are anonymised. Every entry in the table above is a system that exists: live in production, delivered and handed over, in pilot, or a working prototype. The status column says which. Case studies follow the same order: the problem, what we built, how it works in production, and what we would change. That last part is deliberate. Every system has trade-offs, and knowing them is more useful to you than a clean story. - [Resin manufacturer (India) — Catalog assistant with photo search for a resin manufacturer](https://www.miraiminds.co/work/resin-catalogue-assistant.md) — Pilot on a 15-product catalog sample - [Theme-park and entertainment photo company — AI photo pipeline for theme-park souvenir photos](https://www.miraiminds.co/work/theme-park-ai-photo-pipeline.md) — 18.7 s per generative photo on one A100 (was 60–90 s) - [iKoMatch: an AI fundraising assistant on WhatsApp and voice](https://www.miraiminds.co/work/ikomatch-ai-fundraising-assistant.md) — 6,717 investor records; each day's matches graded by an LLM judge - [CallAuditAI: rubric scoring for counseling and sales calls](https://www.miraiminds.co/work/callauditai.md) — Scorecards for an admissions counseling team's recorded calls - [Ethnic-wear e-commerce brand (India) — Visual product search and cart-recovery calls for an ethnic-wear brand](https://www.miraiminds.co/work/ecommerce-visual-search-and-cart-recovery.md) — Visual search live for store staff since July 2026 - [WhatsApp Agents: our service for AI WhatsApp conversations](https://www.miraiminds.co/work/whatsapp-agents-platform.md) — Runs iKoMatch's founder conversations on WhatsApp - [AI outbound-calling startup — Outbound AI calling: a Pipecat voice bot and campaign dialer](https://www.miraiminds.co/work/outbound-ai-calling-platform.md) — Live for outbound campaigns - [Voice Agents: our platform for AI phone agents](https://www.miraiminds.co/work/voice-agents-platform.md) — Live at voice-agents.miraiminds.co - [Indian public-sector refinery — Engineering drawings to SAP-ready bills of material](https://www.miraiminds.co/work/refinery-drawings-to-sap-bom.md) — Delivered and handed over; every row reviewed before it reaches SAP - [US logistics software company — Operations chat agent for a US logistics software company](https://www.miraiminds.co/work/logistics-ai-agents.md) — Delivered; every tool call's arguments are checked before it runs - [Gurbani learning app — Explanation and pronunciation tools for a Gurbani learning app](https://www.miraiminds.co/work/gurbani-learning-ai-tools.md) — Delivered to the app team as an authenticated API - [Myva.ai and CallPaaS: document chatbots and call-center AI](https://www.miraiminds.co/work/myva-callpaas-support-and-call-centre.md) — Both products built and extended across 2023–2025 - [Rouh: a computer-use agent for the desktop](https://www.miraiminds.co/work/rouh-computer-use-agent.md) — Working desktop prototype, reviewed by the founder ## Frequently asked questions ### How are the numbers in these case studies measured? Each metric names its source next to it: a benchmark run, a load test, a production log or the client's own records, with the month it was measured. If we could not measure something, we describe the outcome instead of estimating a number. ### Why are some clients anonymised? Enterprise and public-sector clients often can't be named publicly. We describe them by industry and country instead, and leave out anything that would identify them, such as locations, partner names or document samples. ### Can we speak to a client you worked with? Where the client agrees, yes. Ask on the first call and we will check who is happy to talk about the project. --- Canonical: https://www.miraiminds.co/work Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Build AI systems that reach real users > Mirai Minds hires engineers who want their work to reach real users. We are a small, senior team in Surat, India, building AI agents, voice pipelines, document AI and computer vision for clients and for our own products. We don't keep a long list of open roles; we hire when there is a real seat to fill. ## Principles - **Ship to production:** We measure ourselves by what reaches real users, not what gets demoed. - **Own it end to end:** Small team, high trust. Engineers here own systems from the first call to the running service. - **Bias for clarity:** Plain language, short loops, no theatre. Write things down, decide, move. - **Stay close to the model:** We read papers, run evaluations and tune our own systems. Frontier work is part of the job. We are a small, senior team shipping AI agents, voice systems, document AI and computer vision for companies in India and abroad. If you want to do frontier work that actually goes to production, talk to us. Follow [Life at Mirai](https://www.linkedin.com/showcase/life-at-mirai) on LinkedIn for team news. ## Frequently asked questions ### What do you look for in an engineer? People who have shipped something real and can explain the trade-offs they made. Experience with AI agents, voice pipelines, document AI or computer vision helps, and so does solid backend and infrastructure work, since most of an AI system is plumbing. ### What would I work on? A mix of client systems and our own products: the Voice Agents platform, WhatsApp Agents and CallAuditAI. Recent client work includes generative photo pipelines on GPUs, document AI for a refinery and outbound calling on Pipecat and LiveKit. ### How do I apply when no role is listed? Email careers@miraiminds.co with a short note and a link to the best thing you have built, ideally with what you would change about it now. We read every note and reply when there is a fit. --- Canonical: https://www.miraiminds.co/careers Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Book a call, or write to us > Book a 30-minute call with a Mirai Minds engineer, or send a short brief through the form. Tell us the problem, who will use the system and any deadline. We reply within one working day, and you leave the first call with a plan, a rough timeline and what it would take. ## Frequently asked questions ### What should I send before the call? A few lines on the problem, who will use the system, what it should connect to and any deadline. Sample data helps a lot: a few documents, recorded calls or chat logs, with anything sensitive removed. ### How quickly do you reply? Within one working day. If you book a call, the time you pick is confirmed straight away in your own time zone. ### Will you sign an NDA before we share details? Yes. We are happy to sign a mutual NDA before you share anything confidential. Send yours, or ask for ours on the first call. --- Canonical: https://www.miraiminds.co/contact Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Privacy notice This notice explains what personal data Mirai Minds LLP ("we") collects through miraiminds.co and what we do with it. Questions go to hello@miraiminds.co. ## Who we are Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. ## What we collect - **Contact form.** Your name, email, optional phone number, your message and any file you attach. The message is delivered to our team's internal messaging workspace so an engineer can reply. - **Call booking.** When you book a call, Cal.com collects your name, email and chosen time on our behalf and sends us the booking. - **Analytics.** On the live site, Google Tag Manager loads Google Analytics, which uses cookies to measure visits in aggregate: pages viewed, rough location and device type. When we run advertising campaigns, it may also load conversion tags from those platforms. - **Server logs.** Our hosting provider, Vercel, keeps standard request logs, such as IP address and user agent, for security and debugging. We don't use sign-in on this site and we don't sell personal data. ## Why we use it To reply to you, to schedule and hold calls, to understand which pages are useful, and to keep the site secure. ## Who processes it Vercel (hosting), Google (analytics and tag management), Cal.com (call booking) and Discord (our internal messaging), each under its own privacy terms. We share data with no one else unless the law requires it. ## How long we keep it Enquiries are kept as long as needed to handle them and any engagement that follows. Analytics data follows Google Analytics' retention settings. ## Your choices and rights You can ask us to show, correct or delete the personal data we hold about you, including under India's Digital Personal Data Protection Act, 2023. Write to hello@miraiminds.co. You can block analytics cookies in your browser settings. ## Changes If this notice changes, we update this page and the date at the top. --- Canonical: https://www.miraiminds.co/privacy Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Terms of use These terms cover your use of miraiminds.co, run by Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. Work we do for clients is governed by the agreement signed for that work, not by these terms. ## Using the site You may read, share and link to pages on this site. Text, images, diagrams and the Mirai Minds name and logo belong to Mirai Minds LLP or to the clients who agreed to be named; don't reuse them in a way that suggests we endorse you. ## Information on the site Case studies and service pages describe work we have done and how we approach it. They are general information, not an offer or a guarantee of results for your project. Numbers are reported with their source and the date they were measured. ## Links to other sites We link to other websites, including our own products and third-party tools. We aren't responsible for their content or their privacy practices. ## Liability The site is provided as it is. To the extent the law allows, Mirai Minds LLP is not liable for losses arising from use of the site or reliance on its content. ## Law These terms are governed by the laws of India. Questions go to hello@miraiminds.co. --- Canonical: https://www.miraiminds.co/terms Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # AI agent development for business workflows > Mirai Minds builds AI agents that work inside a company's own systems. They call internal APIs through MCP, operate browsers, remember users across sessions and pass risky steps to a person for approval. Every tool call is traced, and each release is checked against replayed history and an LLM judge. Most builds ship in two to eight weeks. ## Key facts - **Typical build:** 2–8 weeks - **Tool access:** MCP servers, REST APIs, browsers - **Human in the loop:** Approval before writes, payments and outbound messages - **Evaluation:** Replayed history and an LLM judge before each release - **Hosting:** Your cloud or ours ## What we build ### Operations assistant over your APIs - Problem: Staff answer routine questions by clicking through several screens of an internal platform. - System: A chat agent reaches the platform's APIs as MCP tools. One model picks the tool, a second writes the arguments against the tool's schema, and validation errors go back to the model before anything runs. - Result: Answers come from live records, and malformed tool calls are caught before they reach the API. ### Browser and computer-use agents - Problem: Useful work sits in apps that have no API. - System: A desktop app runs an agent that reads screenshots, clicks and types in a browser, calls MCP tools, runs scheduled tasks and keeps long-term memory with Mem0. - Result: A working prototype that completes multi-step browser tasks on request. ### Research pipelines with an approval gate - Problem: A database has to grow every day, but nothing unverified can reach customers. - System: A crawler reads news feeds every 6 hours, AI gates extract and verify entities, and a reviewer approves each record from a side-by-side diff. - Result: The database grows without unreviewed records going live. ### Agents that are graded every night - Problem: Agent quality drifts after launch, and nobody notices until a customer does. - System: A nightly LLM judge scores the previous day's outputs from 0 to 10 against a fixed list of issues. Reviewer feedback overrides the judge. - Result: Quality problems show up on a dashboard the operations team checks daily. ### Prompt changes tested on real outcomes - Problem: Prompts get edited by feel, and regressions ship. - System: An optimizer built on GEPA replays past conversations. Each candidate prompt is scored 60% on matching the real outcome and 40% on an LLM judge's quality score. - Result: Prompt changes are compared on the same history before they reach production. ## What is an AI agent, in practice? An AI agent is a loop. A language model reads the request, picks a tool, reads what the tool returns and decides what to do next, until the task is done or it has to ask. The model is the easy part. The work is in the tools, the permissions around them and the tests that tell you when the loop goes wrong. Mirai Minds builds agents that live inside existing systems. For a [US logistics software company](/work/logistics-ai-agents) we exposed the client's platform APIs as MCP tools and put a chat agent in front of them. For [Rouh](/work/rouh-computer-use-agent) we built a desktop agent that operates a browser from screenshots, for tasks that have no API at all. For [iKoMatch](/work/ikomatch-ai-fundraising-assistant) the agent is a pipeline that discovers, verifies and matches investors every day. ## How do you keep a person in the loop? We decide with you which actions an agent may take alone. Reading data usually needs no approval. Writing records, spending money or messaging a customer does. Those steps pause and show a person what will happen, with the evidence the agent used. In the iKoMatch data pipeline, no investor record goes live until a reviewer approves it from a side-by-side diff. Every tool call is logged with its inputs, outputs and timing. When something goes wrong, you can see which step failed and why, instead of rereading a chat transcript. ## How do you know it works? Before we build, we collect real examples of the task and agree what a correct result looks like. That becomes the test set. Each release runs against it, an LLM judge scores the results, and a person reviews the cases the judge flags. For iKoMatch, a judge re-scores the previous day's recommendations every night and files concrete fixes. On our [Voice Agents platform](/work/voice-agents-platform), a GEPA-based optimizer tests prompt changes against past calls before they ship. Judges are models too, and they drift. We check them against human labels and let reviewer feedback override them. ## What does a typical build look like? Week 1 is access, examples and the test set. Weeks 2 to 6 cover the tools, the agent loop, approval flows and tracing, with a working version running on real data early. Then comes a launch with a person reviewing outputs, and a period of tuning prompts and tools against what production shows. Most builds ship in two to eight weeks. If the agent needs to talk on the phone or on WhatsApp, it pairs with our [voice AI agents](/services/voice-ai-agents) and [WhatsApp AI agents](/services/whatsapp-ai-agents) work. If it needs to read documents reliably, see [custom LLM and document AI](/services/custom-llm-development). ## Typical stack - **Agent frameworks:** OpenAI Agents SDK, Model Context Protocol (FastMCP), Custom tool loops - **Models:** GPT-4.1, Claude, Gemini, Llama 4 via OpenRouter - **Memory:** Mem0, Redis session summaries - **Tracing and evals:** LangSmith, LLM judges, GEPA - **Automation:** Playwright, Scheduled jobs - **Backend:** FastAPI, PostgreSQL, MongoDB, Redis ## Related work - [iKoMatch: an AI fundraising assistant on WhatsApp and voice](https://www.miraiminds.co/work/ikomatch-ai-fundraising-assistant.md) — 6,717 investor records; each day's matches graded by an LLM judge - [Voice Agents: our platform for AI phone agents](https://www.miraiminds.co/work/voice-agents-platform.md) — Live at voice-agents.miraiminds.co - [Operations chat agent for a US logistics software company](https://www.miraiminds.co/work/logistics-ai-agents.md) — Delivered; every tool call's arguments are checked before it runs - [Rouh: a computer-use agent for the desktop](https://www.miraiminds.co/work/rouh-computer-use-agent.md) — Working desktop prototype, reviewed by the founder ## Frequently asked questions ### When is an AI agent the wrong choice? When the steps never change. A fixed script, a form or a scheduled job is cheaper and easier to test. Agents earn their cost when inputs vary, the right tool depends on the request, and a person would otherwise read, decide and click through several systems. ### How do you stop an agent from doing something it shouldn't? Three layers. The agent only sees the tools we expose, scoped to the account it acts for. Every tool call is checked against the tool's schema before it runs. Actions that write data, spend money or message a customer wait for a person to approve them, and every call is logged. ### What do you need from us to start? Access to the systems the agent will use (a sandbox is ideal), 30 to 50 real examples of the task with the right outcome, and one person who owns the process and can say what correct looks like. We turn the examples into the first test set. ### How do you know the agent is good enough to launch? We agree a pass bar before building, on a test set drawn from your real history. Each release runs against it, an LLM judge scores the results and a person checks the cases the judge flags. After launch, a judge can re-score a sample of live runs every night, as it does for iKoMatch. ### Which models do you use? Whichever fits each step. We have shipped agents on GPT-4.1, Claude, Gemini and Llama 4, sometimes two in one agent: a stronger model to plan and another to fill in tool arguments. The model sits behind an interface, so it can be swapped when prices or quality change. ### Where does our data go? The agent runs in your cloud or in ours and calls model providers through their business APIs. Credentials stay in your secret store. We log tool calls for debugging and audit, and agree retention with you before launch. ### What drives the cost of an agent project? The number of systems the agent touches, how many actions need approval flows, how much test data already exists, and model spend at your volume. A read-only assistant over one API is the smallest build; agents that write to several systems take longer. --- Canonical: https://www.miraiminds.co/services/ai-agents Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Voice AI agents for inbound and outbound calls > Mirai Minds builds voice AI agents that answer and place phone calls for support, sales and follow-ups. We build on Pipecat and LiveKit with Deepgram speech recognition, including Hindi, Cartesia or ElevenLabs voices, and Plivo or Twilio numbers. A caller can reach a live person mid-call, and every call is recorded, transcribed and turned into structured data. ## Key facts - **Frameworks:** Pipecat, LiveKit - **Telephony:** Plivo, Twilio, SIP - **Languages shipped:** English and Hindi - **Human handoff:** A person joins the live call; 60 s timeout, then a callback offer - **After each call:** Recording, transcript and structured fields - **Typical build:** 2–8 weeks ## What we build ### Live handoff to a person - Problem: Callers who need a person get stuck in a loop with a bot. - System: The agent raises a handoff that appears on the team's dashboard. The first person to accept joins the same LiveKit room; the claim is atomic, so two people can't take one caller. - Result: If nobody accepts within 60 seconds, the agent says so and offers a callback instead of leaving the caller waiting. ### Outbound campaigns within set limits - Problem: Dialing a contact list with a script that ignores how many calls are live, or what time it is. - System: A queue-driven campaign worker with per-campaign and global caps on live calls, daily dial windows, international number validation and a voicemail status per contact. - Result: Campaigns run unattended inside the limits the operator sets. ### Not talking to voicemail - Problem: Outbound agents start their script into ringback, call screening or a voicemail greeting. - System: The agent stays silent until a person speaks. A detector recognizes voicemail and carrier messages in English and Spanish and ends those calls with a short goodbye. - Result: The greeting reaches a person, and voicemail outcomes are recorded per contact. ### Structured data after every call - Problem: Call outcomes sit in recordings nobody listens to. - System: After each call, a model reads the recording and fills fields: did a person answer, did they engage, was a callback requested and for when, was a meeting booked, and the exact words of any conflict. - Result: Callbacks, meetings and WhatsApp follow-ups are driven by data instead of memory. ### Calls in Hindi - Problem: Many Indian customers would rather speak Hindi than English on the phone. - System: Deepgram Nova-3 recognition configured for Hindi, Cartesia voices and Indian phone numbers. - Result: Agents that hold Hindi calls for Indian businesses on our own platform. ## How does a call move through the system? A call arrives on a Plivo or Twilio number and joins a LiveKit room over SIP. A Pipecat pipeline takes it from there: Deepgram turns speech into text, a language model decides what to say and which tools to call, and Cartesia or ElevenLabs speaks the reply while the caller can still interrupt. When the call ends, the recording and transcript are stored, and a model fills structured fields such as whether a callback was requested and when. ## How does the agent know the caller has finished? Turn-taking is where most voice agents feel wrong. Cut in too early and the agent talks over people; wait too long and it feels slow. In the [outbound calling platform](/work/outbound-ai-calling-platform) we use three layers: voice activity detection so short answers like "yes" register, end-of-turn detection from the speech model (Deepgram Flux where it fits), and a watchdog for turns that end with nothing usable. On outbound calls the agent also waits for a real person before its first line, instead of greeting a voicemail box. ## Off-the-shelf platforms (Vapi, Retell) or a custom Pipecat/LiveKit build? | Consideration | Hosted platform (Vapi, Retell) | Custom build (Pipecat + LiveKit) | | --- | --- | --- | | Time to a first call | Fastest: configure in a dashboard | Slower: pipeline, hosting and telephony to set up | | Cost per minute | Provider costs plus a platform fee | Provider costs plus your hosting | | Turn-taking and interruptions | The platform's settings | Full control, tuned per use case | | Speech and voice providers | The platform's supported list | Any, including self-hosted models | | Where audio and transcripts live | The vendor's cloud | Your cloud or ours | | Who runs it | The vendor | You, or us on your behalf | | Good fit | Pilots, standard flows, lower volume | High volume, Indian languages, strict data rules, custom handoff | Our own [Voice Agents platform](/work/voice-agents-platform) supports both, per assistant: a hosted runtime such as Vapi, or our Pipecat pipeline. A pilot on a hosted runtime is often the right first step. We move to a custom build when per-minute cost, language quality or data rules make the case, and we say so when they don't. ## What happens after launch? We watch real calls. Each call has a recording, a transcript and structured fields, and [CallAuditAI](/work/callauditai) can score recorded calls against a rubric. The fixes are usually small: a prompt line, a turn-taking threshold, a pronunciation. We ship them like code, tested on past calls first, and a person stays reachable through handoff the whole time. ## Typical stack - **Orchestration:** Pipecat, LiveKit rooms, SIP and Egress - **Telephony:** Plivo, Twilio, Indian DID numbers - **Speech-to-text:** Deepgram Nova-3, Deepgram Flux, Sarvam - **Text-to-speech:** Cartesia, ElevenLabs, Rime - **Turn-taking:** Silero VAD, Speech-model end-of-turn detection, Silence watchdog - **Language models:** GPT-4o-mini, Gemini - **Hosted runtimes:** Vapi ## Related work - [iKoMatch: an AI fundraising assistant on WhatsApp and voice](https://www.miraiminds.co/work/ikomatch-ai-fundraising-assistant.md) — 6,717 investor records; each day's matches graded by an LLM judge - [CallAuditAI: rubric scoring for counseling and sales calls](https://www.miraiminds.co/work/callauditai.md) — Scorecards for an admissions counseling team's recorded calls - [Visual product search and cart-recovery calls for an ethnic-wear brand](https://www.miraiminds.co/work/ecommerce-visual-search-and-cart-recovery.md) — Visual search live for store staff since July 2026 - [Outbound AI calling: a Pipecat voice bot and campaign dialer](https://www.miraiminds.co/work/outbound-ai-calling-platform.md) — Live for outbound campaigns - [Voice Agents: our platform for AI phone agents](https://www.miraiminds.co/work/voice-agents-platform.md) — Live at voice-agents.miraiminds.co - [Myva.ai and CallPaaS: document chatbots and call-center AI](https://www.miraiminds.co/work/myva-callpaas-support-and-call-centre.md) — Both products built and extended across 2023–2025 ## Frequently asked questions ### How does a voice agent hand off to a human? On our platform the agent raises a handoff request, which appears at once on the team's dashboard. The first person to accept joins the same live call; the claim is atomic, so two people can't take one caller. If nobody accepts within 60 seconds, the agent tells the caller no one is free and offers a callback. ### How quickly does the agent reply after the caller stops talking? We measure it on every turn: the gap between the end of the caller's speech and the agent's first audio. The levers are how the end of a turn is detected, which model answers, how fast the voice starts streaming and how far the servers sit from the phone network. We tune those on your real calls rather than quote a lab figure. ### Can the agent speak Hindi? Yes. We run Hindi calls on Deepgram Nova-3 recognition with Cartesia voices. For other languages we first check speech-recognition and voice support, then test on recordings from your own callers before anyone relies on it. ### Do we need Vapi or Retell, or a custom build? Either can be right. A hosted platform is the fastest way to a pilot. A custom Pipecat and LiveKit build costs more up front but gives control over turn-taking, providers, data location and per-minute cost at volume. We have shipped both, and a pilot on one can move to the other. ### What do you need from us? Your call scripts or a few recorded calls, access to the systems the agent should read or update (CRM, calendar, store), phone numbers or permission to provision them, and a person or team to take handoffs. For outbound work, the contact lists and the hours you are allowed to call. ### Where are recordings and transcripts stored? Where you decide. On our platform they are scoped to your workspace. For one client we wrote each call's recording straight to their own Azure Blob storage using workload identity, so the app held no storage keys. Retention is agreed per deployment. ### What drives the cost of running a voice agent? Each minute pays for telephony, speech-to-text, the language model and text-to-speech, plus hosting; hosted platforms add their own fee. Call volume, call length and model choice move the total most. We model it on your expected minutes before you commit. --- Canonical: https://www.miraiminds.co/services/voice-ai-agents Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # WhatsApp AI agents for sales and support > Mirai Minds builds WhatsApp AI agents that hold long conversations with customers on the WhatsApp Business Platform. They run on Gemini, remember people across weeks with Mem0 and rolling summaries, answer from your documents and serve several business numbers from one system. We also build team inboxes so staff can read any conversation and reply. ## Key facts - **Model:** Gemini, with per-owner key and model settings - **Memory:** Mem0 plus a rolling summary every 20 messages - **Reply timing:** Waits 3 s after the customer's last message - **Numbers:** Several WhatsApp Business numbers in one system - **Human takeover:** Team inbox that respects WhatsApp's 24-hour window - **Typical build:** 2–8 weeks ## What we build ### Long conversations that stay coherent - Problem: Customers come back days later and the bot has forgotten them, or the prompt has grown too long to afford. - System: Every 20 messages are folded into a rolling summary of at most 150 words. The agent sees that summary, the last 20 messages and relevant long-term memories from Mem0. - Result: Context stays small and relevant in conversations that run for weeks. ### Answers from your documents - Problem: Answers must match current price lists, policies or product sheets. - System: Documents are chunked and indexed in a knowledge service shared with our voice agents, and the agent retrieves passages before it answers. - Result: One knowledge base serves both phone and WhatsApp agents. ### A whole signup inside one chat - Problem: Founders drop off long signup forms. - System: For iKoMatch, the founder sends a pitch deck in chat, the agent reads it, a voice call fills the gaps and the profile publishes itself. A 45-day campaign then delivers a daily slate of matched investors in the same thread. - Result: Signup, onboarding and daily delivery happen in one WhatsApp conversation, with no forms. ### People step in when it matters - Problem: Some conversations need a person, and WhatsApp limits what a business may send after 24 hours of silence. - System: A team inbox shows every conversation with media and read receipts. Staff reply in the thread; once the 24-hour window closes, the composer locks and only approved templates can go out. - Result: Staff can take over a conversation without breaking WhatsApp's messaging rules. ### Replies that read like texting - Problem: A customer sends three short messages in a row and gets three separate bot replies. - System: The agent waits 3 seconds after the last message, answers once, and splits long replies into short bubbles with natural pauses. - Result: Conversations read like a person typing, not a form. ## How is a WhatsApp agent different from a website chatbot? A website chat lasts minutes. A WhatsApp conversation can run for weeks, with photos, voice notes and documents in between, and the customer expects you to remember. WhatsApp also has rules a website doesn't: replies are free-form only within 24 hours of the customer's last message, and after that only templates Meta has approved can go out. An agent that ignores those rules has its messages rejected. Mirai Minds builds WhatsApp agents that are designed around this. They run on our [WhatsApp Agents](/work/whatsapp-agents-platform) service, which already handles long-running conversations for [iKoMatch](/work/ikomatch-ai-fundraising-assistant). ## How does it remember without a huge prompt? Sending the whole history to the model on every message gets slow and expensive, and it gets worse as the conversation grows. Instead, every 20 messages are folded into a rolling summary of at most 150 words. The agent sees that summary, the last 20 messages and the long-term memories Mem0 finds relevant to the current message. A founder who mentioned their funding stage a month ago doesn't have to repeat it. The agent also waits 3 seconds after a customer's last message before it answers, so three quick messages get one reply. ## How do people stay in control? Three ways. First, staff can read every conversation in a team inbox and reply in the thread; once the 24-hour window closes, the inbox only lets them send approved templates. Second, the prompt says which topics the agent must hand to a person, and we test those cases before launch. Third, templates and broadcasts go through your approval and Meta's before any customer sees them. ## What does a build involve? Setting up the WhatsApp Business account and webhook, writing and approving templates, loading your documents into the knowledge service, and writing the prompt with the cases where a person takes over. Then we test on real past messages, launch with staff watching the inbox, and tune from what customers actually send. The same knowledge base can serve a [voice agent](/services/voice-ai-agents), so phone and chat give the same answers. ## Typical stack - **Model:** Gemini (google-genai) - **Memory:** Mem0, Rolling summaries in PostgreSQL - **Messaging:** WhatsApp Business Platform (Cloud API), Approved message templates - **Knowledge:** Shared retrieval service, Chunked document collections - **Backend:** FastAPI, PostgreSQL, SQLAlchemy (async), Alembic, Amazon S3 for media - **Documents:** unoserver for deck and document conversion ## Related work - [iKoMatch: an AI fundraising assistant on WhatsApp and voice](https://www.miraiminds.co/work/ikomatch-ai-fundraising-assistant.md) — 6,717 investor records; each day's matches graded by an LLM judge - [WhatsApp Agents: our service for AI WhatsApp conversations](https://www.miraiminds.co/work/whatsapp-agents-platform.md) — Runs iKoMatch's founder conversations on WhatsApp - [Voice Agents: our platform for AI phone agents](https://www.miraiminds.co/work/voice-agents-platform.md) — Live at voice-agents.miraiminds.co ## Frequently asked questions ### Do we need the WhatsApp Business Platform? Yes. The agent sends and receives through Meta's WhatsApp Business Platform with a verified business number. We help with the setup, message templates and webhook; Meta approves templates and sets the rules for when a business may message a customer. ### What happens after 24 hours without a reply from the customer? WhatsApp only allows approved template messages once 24 hours have passed since the customer's last message. Our agents and team inboxes respect that: free-form replies stop, and follow-ups go out as templates you have approved. ### How does the agent remember a customer? Three layers: the last 20 messages, a rolling summary of everything older (rewritten every 20 messages, 150 words at most), and long-term facts in Mem0, such as a preference or a company's stage. The agent only pulls in memories relevant to the current message. ### Can a person take over a conversation? Yes. Staff read every conversation in a team inbox, with media and read receipts, and reply in the same thread. We agree the rules with you before launch: which topics go to a person and how the agent should behave once someone has replied. ### Can one system run several WhatsApp numbers? Yes. Each number is its own account with its own credentials and prompt, picked by the phone number ID on each incoming message. Account owners can also bring their own Gemini key and model. ### Which languages does it handle? Gemini reads and writes most major languages, including Hindi and mixed Hindi and English. We test prompts on real messages from your customers before launch, because tone matters as much as grammar on WhatsApp. --- Canonical: https://www.miraiminds.co/services/whatsapp-ai-agents Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Custom LLM development: RAG, document AI and evals > Mirai Minds builds custom LLM systems for work that depends on a company's own documents and data: answers grounded in retrieval, document AI that turns files into structured records, and fine-tuned models when the numbers justify them. Every system ships with an evaluation set and a human review step, such as engineers checking each extracted row before it reaches SAP. ## Key facts - **Inputs handled:** PDF, scans, TIFF, DWG and DXF drawings, call audio - **Review:** Human sign-off before data reaches your system of record - **Model choice:** API models first; fine-tuning only when evals justify it - **Evaluation:** A test set from your real documents, re-run on every change - **Typical build:** 2–8 weeks; large document AI takes longer ## What we build ### Engineering drawings to SAP-ready data - Problem: Engineers hand-keyed hundreds of line items per drawing into SAP material-master fields. - System: Gemini finds the bill-of-materials table on PDF, scanned or CAD drawings and extracts every row. A reviewer checks each row beside the drawing, can re-run extraction with a plain-English hint on a stronger model, and exports a 16-column SAP upload sheet. - Result: Nothing reaches SAP without an engineer's sign-off, and illegal SAP value combinations can't be entered. ### Call recordings scored against a rubric - Problem: Managers can't listen to every recorded sales or counseling call. - System: Gemini listens to each recording and scores it against a weighted rubric for opening, discovery, value and closing, producing an Excel scorecard that flags zero scores. - Result: Every uploaded call gets a scorecard, and managers start with the red flags. ### Answers grounded in a catalog - Problem: A general chatbot invents products and prices. - System: An agent calls a retrieval tool that ranks catalog entries with hybrid semantic and keyword search, and shows product cards only from real results. - Result: Product details come from catalog records, not from the model's memory. ### Language tools for a specialist text - Problem: Learners need the pronunciation and meaning of each line of scripture, in their own language. - System: A pipeline transliterates the line into Gurmukhi, applies pronunciation rules, writes a plain explanation in Hindi or English and streams it as speech from a self-hosted text-to-speech model. - Result: The app team calls one API and gets a spoken explanation back. ## What counts as a custom LLM system? Anything where a general chatbot isn't enough because the answer depends on your documents, your data or your rules. In practice that means three kinds of build. Retrieval systems answer from your material and cite it. Document AI turns PDFs, scans, drawings or recordings into structured records your systems can load. Specialist pipelines chain several model steps with checks between them. Fine-tuning is a tool inside those builds, not the starting point. Our largest example is the [engineering-drawings-to-SAP system](/work/refinery-drawings-to-sap-bom) we built for an Indian public-sector refinery. [CallAuditAI](/work/callauditai) applies the same idea to call recordings, and the [catalog assistant](/work/resin-catalogue-assistant) to a product catalog. ## How do you choose a model? We start from the task and a test set, not from a model. The first run uses a strong hosted model to learn what good output looks like on your documents. Then we try cheaper and faster options against the same test set and keep the cheapest one that clears the bar. Often the answer is two models. In the refinery system a fast Gemini model does the first pass on every drawing, and the premium model runs only when a reviewer asks for a re-evaluation, with a plain-English hint such as "the quantity column is on the right". Cost is tracked per document, so the trade-off stays visible. Fine-tuning comes in when the test set says a smaller model can't reach the bar with instructions and retrieval alone, when volume makes per-call cost dominant, or when data must stay on your servers. Licenses matter too: we check that open-weight models allow commercial use before we benchmark them. ## What drives the cost? Two things: building the system and running it. Building cost depends on how messy the inputs are, how many fields and rules the output needs, how much review tooling people need, and which systems it must load into. Running cost is mostly model usage: pages, images or audio minutes in, structured text out, times the number of retries and re-runs, plus hosting if you run open-weight models on your own GPUs. We measure both on your samples before launch rather than guess. ## How do people stay in the loop? By making review fast instead of optional. The refinery reviewer sees the drawing beside the extracted table, edits only the fields that are wrong, and can't enter an illegal SAP combination. CallAuditAI flags zero scores in red so managers start there. When the reviewers' corrections show a field is reliably right, review can shrink for that field, and the numbers, not our confidence, make that call. ## Typical stack - **Models:** Gemini (fast and premium tiers), OpenAI GPT-4o-mini and GPT-4.1, Llama 4 - **Retrieval:** Hybrid semantic and keyword search, Pinecone, LangChain - **Documents:** PDF, TIFF, JPEG, DWG and DXF intake, Amazon S3 staging for large files, Server-Sent Events progress - **Evaluation:** Test sets from real documents, LLM judges, Offline replay of past outputs - **Speech:** Kokoro text-to-speech (self-hosted) - **Application:** FastAPI, MySQL, PostgreSQL, Vue 3 ## Related work - [Catalog assistant with photo search for a resin manufacturer](https://www.miraiminds.co/work/resin-catalogue-assistant.md) — Pilot on a 15-product catalog sample - [CallAuditAI: rubric scoring for counseling and sales calls](https://www.miraiminds.co/work/callauditai.md) — Scorecards for an admissions counseling team's recorded calls - [Engineering drawings to SAP-ready bills of material](https://www.miraiminds.co/work/refinery-drawings-to-sap-bom.md) — Delivered and handed over; every row reviewed before it reaches SAP - [Explanation and pronunciation tools for a Gurbani learning app](https://www.miraiminds.co/work/gurbani-learning-ai-tools.md) — Delivered to the app team as an authenticated API - [Myva.ai and CallPaaS: document chatbots and call-center AI](https://www.miraiminds.co/work/myva-callpaas-support-and-call-centre.md) — Both products built and extended across 2023–2025 ## Frequently asked questions ### Do we need to fine-tune a model? Usually not at the start. Most projects reach their quality bar with a strong API model, good retrieval and clear instructions. Fine-tuning pays off when the task is narrow and high-volume, when a smaller model must match a larger one to cut cost or latency, or when data can't leave your servers. We decide on your eval numbers, not by default. ### How accurate is document extraction? It depends on the documents, so we measure it on yours. We build a test set from real files, report how many rows and fields come out right, and keep a person reviewing output until the numbers support less review. In the refinery build, every extracted row is reviewed before export by design. ### What do you need from us to start? Twenty to fifty representative documents or examples, including the messy ones, the target format (for example your SAP upload sheet), and a domain expert who can answer 'is this right?' questions for about an hour a week. ### Can it run on our own servers? Yes, with trade-offs. The application and open-weight models can run in your cloud or data center; the strongest hosted models can't. We compare quality and cost on your test set before you choose. ### How do you stop the model from making things up? Ground it and check it. The model works from retrieved passages or the document itself, its output follows a schema that is validated before saving, and fields that must match a fixed list, like SAP picklists, are checked against that list. In iKoMatch, each extracted fact must quote the source text it came from. Anything uncertain goes to a reviewer. ### What drives the cost of a custom LLM system? Document volume and size, the number of fields you need, how often a stronger model has to re-run, and how much review tooling and integration the workflow needs. We estimate model spend per document on your samples before launch. --- Canonical: https://www.miraiminds.co/services/custom-llm-development Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Computer vision for photos, products and faces > Mirai Minds builds computer vision systems that run in production: face search across event photos, background removal, generative photo editing with an identity check, and visual product search from a phone photo. We choose models by license and measured quality, serve them on GPUs or CPUs, and publish latency numbers with the method next to them. ## Key facts - **Generative photo latency:** 18.7 s per image on one NVIDIA A100 80GB - **Identity check:** SFace similarity of at least 0.65, or the image is rejected - **Face search:** YOLOv11 face detection, ArcFace embeddings, FAISS - **Licenses:** Commercial-use terms checked before any benchmark - **Serving:** GPUs for generation; CPUs for detection and matching ## What we build ### Generative photo editing that keeps the face - Problem: Guests want themed souvenir photos, but image models drift faces, and the previous model version took 60–90 s per image. - System: Qwen-Image-Edit-2511 with an 8-step Lightning adapter on one NVIDIA A100 80GB, two GPU workers and a bounded queue. SFace compares the output face with the original and rejects anything under 0.65 cosine similarity. - Result: 18.7 s per image in a seven-scenario benchmark and 3.36 images per minute under load. Outputs that fail the identity check are rejected, not delivered. ### Face search across event photos - Problem: Guests shouldn't have to scroll through a whole day's photos to find their own. - System: YOLOv11 detects faces, InsightFace and ArcFace turn each face into an embedding, and a FAISS index matches it to known people. It runs on CPU in Docker with its models built into the image, so it needs no internet. - Result: Photos are tagged by person as they arrive. ### Background removal on every photo - Problem: Green screens are impractical at rides and booths. - System: A deep-learning matting model cuts the guest out with hair-level edges as the first stage of the photo pipeline, with queued jobs and retries. - Result: About 2.9 s per photo on a warm CPU worker in staging. ### Visual product search from a photo or a reel - Problem: Store staff need to find a product from a photo, or from a marketing video playing on a screen. - System: An image-embedding index scores catalog photos and frames from marketing reels. Reel matches map to the products tagged in that reel, and results are de-duplicated to the top 10. - Result: Live for an ethnic-wear brand's staff since July 2026. ## What do we build with computer vision? Systems that sit in a real workflow, with a queue of people waiting on the result. For [a photo company in the theme-park and entertainment sector](/work/theme-park-ai-photo-pipeline), which runs souvenir photography at parks, attractions and events, we built generative photo editing, face search and the image pipeline around background removal. For an [ethnic-wear e-commerce brand](/work/ecommerce-visual-search-and-cart-recovery) we built visual product search that works on photos of products and on photos of video reels playing on a screen. ## How do you pick a model? In three passes. First the license: several strong image-editing models were out for a commercial photo business because their weights are non-commercial. Then quality on the client's own images, not on demo pictures. Then speed and memory on the hardware the client will actually pay for. The last pass often decides things that benchmarks online don't. On one A100 we tested four GPU workers for the generative service: one of four requests ran out of memory and throughput fell to 2.43 images per minute, against 3.29 with two workers in the same test. We shipped two. ## How do you measure speed and quality? With the method written next to the number. The generative service was measured on the GPU it is deployed on, across seven scenarios: 18.7 s per image on average, 3.36 images per minute with 2 to 8 simultaneous requests, and all 22 quality and load requests completed. With that sample size, the "P95" is simply the slowest request, and we say so. Quality gets the same treatment. The identity check is a gate, not a guarantee; seven scenarios with one reference person are not enough to call identity solved, so the next test set adds more faces, ages and harder poses. When an edit fails the check, the service returns an error, and no face is quietly repaired to pass. ## Where does it run? Wherever the work is. Generative editing needs a data-center GPU; we run it with the model resident in memory, two workers and a bounded queue, so there is no per-request model loading. Face search runs on CPU in Docker on a machine without internet. Visual product search runs in a separate serverless service, kept apart from the store's production database. If the images arrive through a chat, the [catalog assistant](/work/resin-catalogue-assistant) shows the lighter pattern: a vision model describes the photo, then search takes over. ## Typical stack - **Faces:** YOLOv11 face, InsightFace, ArcFace, YuNet, SFace - **Generation:** Qwen-Image-Edit-2511, LightX2V Lightning adapter, Diffusers - **Segmentation:** MattingRefine background matting - **Search:** FAISS, Image-embedding index on AWS Lambda - **Serving:** PyTorch, FastAPI, NVIDIA A100 80GB, Docker CPU builds - **Vision-language:** OpenAI vision models ## Related work - [Catalog assistant with photo search for a resin manufacturer](https://www.miraiminds.co/work/resin-catalogue-assistant.md) — Pilot on a 15-product catalog sample - [AI photo pipeline for theme-park souvenir photos](https://www.miraiminds.co/work/theme-park-ai-photo-pipeline.md) — 18.7 s per generative photo on one A100 (was 60–90 s) - [Visual product search and cart-recovery calls for an ethnic-wear brand](https://www.miraiminds.co/work/ecommerce-visual-search-and-cart-recovery.md) — Visual search live for store staff since July 2026 ## Frequently asked questions ### Can we use any open model commercially? No, check the license first. For one photo project we ruled out several strong image-editing models because their weights don't allow commercial use, and others because they were only available as an API. We check licenses before we benchmark, so nobody gets attached to a model you can't ship. ### How fast is generative image editing? It depends on the model, steps, resolution and GPU. In our September 2026 benchmark, the photo service averaged 18.7 s per 1088×1632 image on one NVIDIA A100 80GB and held about 3.36 images per minute with two workers. The previous model version took 60–90 s per image. ### How do you stop a generated photo from changing someone's face? An identity check. SFace compares the face in the output with the original, and anything under 0.65 cosine similarity is rejected with an error instead of delivered. Strong expression changes fail more often; we report that honestly rather than lowering the threshold. Operators can inspect rejected images in a separate review mode. ### Does face search need a GPU or the cloud? No. Our face search runs on CPU in Docker, with its detection and recognition models built into the image, so it can run on a machine without internet access. Generative editing is different: it needs a data-center GPU. ### How do you handle face data? Face embeddings are numbers rather than photos, but they are still personal data. We keep them inside the client's infrastructure, store only what matching needs, and agree retention with the client before launch. Consent at capture is the operator's responsibility; we can build the consent step into their flow. ### What do you need from us? Sample images or video from real conditions (lighting, angles, crowds), the hardware you can run on, the throughput you need at peak, and examples of right and wrong results. Studio photos alone make any model look better than it will be in production. --- Canonical: https://www.miraiminds.co/services/computer-vision Last updated: 2026-10-06 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Catalog assistant with photo search for a resin manufacturer > Mirai Minds built a pilot catalog assistant for a resin manufacturer in India. Shoppers ask in plain language or upload a photo; an OpenAI Responses API agent decides whether to search the catalog, ranks products with hybrid semantic and keyword search, and shows product cards only from real results. The pilot runs on a 15-product sample of the catalog. Client: Resin manufacturer (India) (Resin art supplies) · Status: pilot · Year: 2026–present · Written by Sagar Davara ## Key facts - **Agent:** OpenAI Responses API with catalog search tools - **Search:** Hybrid semantic and keyword ranking with match labels - **Photo search:** JPG, PNG, WEBP or GIF up to 5 MB, described by a vision model - **Grounding:** Product cards appear only after a catalog tool call - **Hosting:** Next.js on Cloudflare Workers - **Pilot data:** 15-product catalog sample ## The problem The manufacturer sells resin-art supplies, such as pigments, through its online store. It wanted an assistant that answers product questions in plain language and can find items from a photo a shopper uploads, without inventing products, prices or links. ## What we built - **An agent on the OpenAI Responses API.** Every message goes to one agent, which either replies conversationally or calls a catalog tool for text or image search. - **Hybrid retrieval.** Semantic similarity and keyword matching are combined, and each result carries a label saying how it matched. If embeddings fail, keyword search still returns results. - **Photo search.** Uploads of up to 5 MB in JPG, PNG, WEBP or GIF are described by a vision model, which also decides whether a catalog search makes sense. - **Product cards.** Cards show the catalog's title, description, price and link, with images fetched from the store's public product pages and a placeholder when an image can't be resolved. - **Tests.** Automated tests cover agent decisions, tool calls, conversation history, image handling and failure cases, and run before every build. ## How it works in production The pilot runs on Cloudflare Workers with the catalog loaded from a 15-product sample of title, description, price and link. Categories the system infers help ranking, but they are never shown to shoppers as catalog facts: everything a shopper sees comes from the catalog itself. The whole flow runs through one chat endpoint, which keeps the pilot easy to embed in the store. The same grounding pattern is described under [custom LLM and document AI](/services/custom-llm-development), and photo search under [computer vision](/services/computer-vision). ## What we'd change - **Connect the live catalog before measuring anything.** Fifteen products are enough to test behavior, not retrieval quality. - **Store embeddings persistently.** Rebuilding them after each restart is fine for 15 products and wasteful for a full catalog. - **Turn pilot traffic into a test set.** Real shopper questions and photos, with the products a person would pick, are the benchmark the next phase needs. ## Stack - **AI:** OpenAI Responses API, OpenAI embeddings, OpenAI vision model - **App:** Next.js 16, React 19, Tailwind CSS 4 - **Hosting:** Cloudflare Workers, Wrangler - **Testing:** Node test runner: agent and retrieval tests ## Frequently asked questions ### Why does the assistant sometimes answer without showing products? By design. Greetings and general questions don't trigger a catalog search, and product cards only appear after the agent actually calls a catalog tool. That keeps it from attaching random products to small talk. ### How does photo search work? The shopper uploads a photo. A vision model describes it, and the agent decides whether that description should become a catalog search. Results are then ranked the same way as a typed search. ### What happens when the catalog grows beyond the pilot? The catalog loads through one interface, so the sample file can be swapped for a database, a vector store or the store's product API without changing the agent. Embeddings are cached in memory today; a full catalog would store them persistently. --- Canonical: https://www.miraiminds.co/work/resin-catalogue-assistant Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # AI photo pipeline for theme-park souvenir photos > Mirai Minds builds AI and platform services for a photo company in the theme-park and entertainment sector, which runs souvenir photography at theme parks, attractions and events. We built generative photo editing with an identity check, face search, the image-processing pipeline, device sign-in and image delivery. The generative stage takes about 18.7 seconds per photo on one NVIDIA A100, down from 60–90 seconds. Client: Theme-park and entertainment photo company (Theme parks and entertainment) · Status: pilot · Year: 2023–present · Written by Sagar Davara ## Results - **Per generative photo on one NVIDIA A100 80GB:** 18.7 s (before: 60–90 s) — source: Benchmark, 7 scenarios, Sep 2026; before = previous model version - **Throughput with two GPU workers:** 3.36 images/min — source: Load test at 2–8 simultaneous requests, Sep 2026 - **Quality and load-test requests completed:** 22/22 — source: Benchmark report, Sep 2026 - **Background removal per photo, warm CPU worker:** 2.9 s — source: Staging run, one 800×600 photo, Sep 2026 ## Key facts - **Generative model:** Qwen-Image-Edit-2511 with an 8-step Lightning adapter - **GPU:** One NVIDIA A100 80GB, two workers, bounded queue - **Identity check:** SFace cosine similarity of at least 0.65 - **Face search:** YOLOv11 face detection, ArcFace embeddings, FAISS - **Background removal:** MattingRefine deep-learning matting - **Device security:** OAuth 2.0 credentials per device, tokens verified locally ## The problem The client runs the souvenir-photo business of theme parks and entertainment venues: cameras at rides, booths and studios, an AI enhancement pipeline, guest galleries, sales kiosks and printing, all managed from one console. The platform predates us. The client wanted new AI stages, generative themed photos and face search, plus sturdier plumbing between capture and delivery, without slowing a venue's queue. The generative stage was the hard part. The previous model version took 60–90 seconds per image, drifted faces and sometimes added people who weren't there. A venue can't sell that. ## What we built - **Generative editing service.** Qwen-Image-Edit-2511 with an 8-step Lightning acceleration adapter, served from one NVIDIA A100 80GB with two resident workers and a bounded queue. The guest photo, an optional destination scene and a face close-up (when the face is small) go in together, and an SFace identity check runs before anything is returned. - **Face search.** YOLOv11 finds faces in each new photo, InsightFace and ArcFace turn them into embeddings, and a FAISS index matches them to known people. - **Image pipeline.** A Redis-driven flow runs background removal, generative effects, and venue templates and watermarks in order, tracking each stage and retrying failures. - **Device sign-in and delivery.** An OAuth 2.0 server gives every kiosk and capture station its own credentials, and services check its signed tokens locally, so a device can be cut off from the admin console. An image-delivery API sends each device the photos it hasn't downloaded yet and records every acknowledgment. - **Console and booth screens.** Work on the admin console and the self-service booth interface. ## How it works in production A photo from a capture station enters the queue and loses its background through deep-learning matting, about 2.9 s on a warm CPU worker in staging. If the generative stage is switched on for that capture, it goes to the GPU service; blank frames are rejected before they reach the model. In the September 2026 benchmark the service averaged 18.7 s per image across seven scenarios, held 3.36 images per minute with 2 to 8 simultaneous requests, and completed all 22 test requests. Outputs below the identity threshold return an error instead of a photo, and a review mode lets operators inspect them. Branded and watermarked results flow to galleries, kiosks and printers. ## What we'd change - **Expressions still fail the identity check.** A "frightened on a roller coaster, eyes closed" prompt was rejected at 0.65. Lowering the threshold would hide the problem, not fix it; the next step is a stronger face reference or an identity-safe refinement pass. - **The test set is too narrow.** Seven scenarios with one reference person reproduce quality; they don't prove it. We want diverse faces, ages and harder poses before calling identity solved. - **Timeouts should come from measurements.** Early on, a cold background-removal worker took longer than its caller's timeout. Stage timeouts now come from measured cold starts, which is where they should have started. ## Stack - **Generation:** Qwen-Image-Edit-2511, LightX2V Lightning adapter, Diffusers, PyTorch - **Faces:** YuNet, SFace, YOLOv11 face, InsightFace, ArcFace, FAISS - **Pipeline:** Redis job queue, Flask, FastAPI, MySQL, Alembic - **Security:** OAuth 2.0 client credentials, RS256 JWT, JWKS - **Infrastructure:** NVIDIA A100 80GB, Docker ## Frequently asked questions ### Why reject a generated photo instead of fixing the face? Because a souvenir photo of someone who isn't quite you is worse than no photo. The service compares the output face with the original using SFace and returns an error when similarity is under 0.65. We don't mask, restore or lower the threshold to push borderline images through; the check accepts or rejects the model's output without changing its pixels. ### Why two GPU workers and not four? We tested four on the same A100. One of four requests ran out of GPU memory, and throughput fell to 2.43 images per minute, against 3.29 with two workers in the same test. Two workers with a bounded queue handled 8 simultaneous requests without errors. ### Does face search need the internet? No. It runs on CPU in Docker with its detection and recognition models built into the image, so it works on a machine without internet access. Its face index has to be kept and backed up: losing it would give every known face a new ID. ### How did you choose the image model? License first, then quality, then speed. Several strong image-editing models were ruled out because their weights are licensed for non-commercial use only, or because they are only available as an API. Qwen-Image-Edit-2511 with an 8-step acceleration adapter passed all three. --- Canonical: https://www.miraiminds.co/work/theme-park-ai-photo-pipeline Last updated: 2026-10-06 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # iKoMatch: an AI fundraising assistant on WhatsApp and voice > Mirai Minds built iKoMatch, an AI fundraising assistant that finds investors for startup founders and runs the outreach over WhatsApp and voice. Founders sign up by chatting and sending a pitch deck; an AI call fills the gaps. Matching combines hard rules with a Gemini re-rank across 6,717 investor records, and an LLM judge grades each day's recommendations. Client: iKoMatch (Startup fundraising) · Status: production · Year: 2026 · Written by Sagar Davara ## Results - **Unified investor records:** 6,717 — source: iKoMatch product case study, 2026 - **Countries mapped:** 186 — source: iKoMatch product case study, 2026 - **Angel investors in the database:** 3,100+ — source: iKoMatch product case study, 2026 - **Startup grants in the database:** 192 — source: iKoMatch product case study, 2026 - **Automated campaign length:** 45 days — source: iKoMatch product case study, 2026 ## Key facts - **Investor database:** 6,717 records across 186 countries - **Coverage:** 3,100+ angel investors and 192 startup grants - **Campaign:** 45 days of daily slates across six outreach channels - **Matching:** Rules first, then a Gemini re-rank: 70% rules, 30% model - **Quality:** Nightly LLM judge; reviewer feedback overrides it - **Integrations:** 12, including WhatsApp, Gmail, Microsoft 365 and Razorpay ## The problem Founders spend months building investor lists in spreadsheets and sending cold emails. iKoMatch wanted a service rather than another tool: a founder chats on WhatsApp, and the system finds the right investors, drafts the outreach and follows up. ## What we built - **WhatsApp-first onboarding.** The founder sends a pitch deck in chat. The system converts it from any format and reads it, and an AI voice call from our [Voice Agents platform](/work/voice-agents-platform) fills the gaps. The profile publishes itself; there are no forms. - **A self-growing investor database.** A crawler reads financial-press feeds every 6 hours. Four AI gates extract investing organizations and reject startups, banks and brokers, with reasons. Enrichment finds official sites and contacts. Nothing goes live until a reviewer approves it from a side-by-side diff with confidence badges. - **Explainable matching.** Rules, then embedding search, then a Gemini re-rank that must give its reasons. Diversity rules stop five near-identical funds from filling a slate, and firms, angels and grants share one 1–10 score. - **Outreach.** For 45 days the founder gets a daily slate in chat across six channels: warm introductions, email, LinkedIn, application forms, angels and grants. Emails are drafted, edited in plain language and sent from the founder's own Gmail or Outlook; opens trigger well-timed WhatsApp nudges. - **Operations.** A control tower with an approval workspace, a WhatsApp team inbox, a campaign editor and a jobs console where schedules change without a deploy. ## How it works in production The WhatsApp conversation runs on our [WhatsApp Agents](/work/whatsapp-agents-platform) service, with a role-specific prompt for each registered founder. Background jobs take database advisory locks, so exactly one worker runs each job: no duplicate slates and no double sends. Every external call is logged with service, endpoint, status and duration, with secrets and phone numbers scrubbed. A Razorpay payment activates the founder's plan, thanks them on WhatsApp and refreshes their slate without anyone touching it. More than 100 test files cover routes, services and clients, including an OpenAPI contract test. Each night the judge grades the previous day's recommendations, and its findings land on a quality dashboard the operations team reviews every day. ## What we'd change - **Build the replay harness first.** We now test ranking changes by replaying them against the judge's past verdicts, and that replay rejected two plausible-sounding fixes the data didn't support. Before it existed, unit fixtures carried more of the weight than they should have. - **Start as one service.** The platform began as separate services and was later merged into one FastAPI backend with one database and one migration history. Starting there would have saved a migration. ## Stack - **AI:** Gemini: embeddings, re-ranking, extraction, nightly judge - **Conversation:** WhatsApp Business Platform, Mirai Minds WhatsApp Agents, Mirai Minds Voice Agents - **Data:** MySQL, 1,536-dimension embeddings with exact search, RocketReach, CB Insights - **Backend:** FastAPI, Alembic, Advisory-lock job scheduler - **Frontend:** React, Vite - **Payments and email:** Razorpay, Gmail and Microsoft 365 via OAuth ## Frequently asked questions ### How does iKoMatch decide which investors to suggest? Hard rules first: geography mandates, check sizes and stage fit are enforced before any ranking, so the model can't override eligibility. Embeddings of each eligible investor's thesis are then compared with the startup profile across the whole pool, exactly rather than approximately. Gemini re-scores the top candidates with reasons and an outreach angle, and the final score is 70% deterministic and 30% model. ### How do you stop the AI from inventing investor facts? Extracted facts must quote the text span they came from, low-confidence output is discarded, and unverified check ranges are labeled as unverified. New investor records go live only after a person approves them. ### What does the nightly judge do? Each night an LLM reads the previous day's served recommendations, scores each from 0 to 10, tags problems from a fixed list and proposes up to five concrete fixes. Reviewers can overrule it; their feedback feeds the ranker and gates releases through an offline quality benchmark. ### What happens when a model or an API is down? The product degrades instead of stopping. If the model is unavailable, ranking falls back to deterministic scores; if the grants source fails, firms and angels still ship. An adaptive limiter settles on each provider's quota somewhere between 20 and 600 requests per minute without being told it. --- Canonical: https://www.miraiminds.co/work/ikomatch-ai-fundraising-assistant Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # CallAuditAI: rubric scoring for counseling and sales calls > CallAuditAI is Mirai Minds' service for auditing recorded sales and counseling calls. Gemini listens to each recording and scores it against a weighted rubric covering opening and rapport, needs discovery, value and objection handling, and closing, then returns an Excel scorecard with zero scores flagged in red. An admissions counseling company uses it to review calls. Client: Admissions counseling company (Education counseling) · Status: production · Year: 2026 · Written by Sneh Mehta ## Key facts - **Rubric:** Opening 30%, discovery 30%, value and objections 20%, closing 20% - **Model:** Gemini scores the audio directly - **Output:** Excel scorecard or JSON, with red flags on zero scores - **Transcript:** Optional, with representative and customer as separate speakers - **Cost visibility:** Per-call model cost, shown only with a secret key - **Deployed:** January 2026 ## The problem Sales and counseling teams record their calls, but managers can listen to only a few. The admissions counseling company wanted every recorded call scored the same way, against a fixed rubric, so coaching could start from the calls that most needed it. ## What we built A small service with one job: take a recording and the counselor's name, and return a scorecard. - **Scoring.** Gemini listens to the audio and scores each criterion of the rubric. The rubric has four categories: opening and rapport building (30%), needs discovery and information gathering (30%), value proposition and objection handling (20%), and closing (20%). Each criterion carries its own weight inside its category. - **The scorecard.** An Excel sheet with section headers, the weight of every criterion, category totals and an overall score. Any criterion scored zero is highlighted as a red flag. The same result is available as JSON for teams that want to load it elsewhere. - **Transcripts and costs on request.** A diarized transcript, labeling the company representative and the customer, comes from a separate, lighter Gemini call. Model cost per call is returned only when the request carries a secret key, so cost details stay out of everyday responses. - **A log and an upload page.** Each processed call and its duration are logged, and a simple web page lets staff upload recordings without touching the API. ## How it works in production The client's team uploads recordings, one per request, and downloads the scorecards. Scoring and transcription are separate calls, so the transcript can be skipped when only the score is needed. The service was deployed for the client in January 2026; in September 2026 the product gained JSON output, transcripts and cost reporting. For the broader pattern, see [custom LLM and document AI](/services/custom-llm-development); for the calls themselves, [voice AI agents](/services/voice-ai-agents). ## What we'd change - **Calibrate against human scores.** Before trusting totals, we'd have managers score a sample of calls blind and compare with the model criterion by criterion. Subjective criteria, such as warmth and tone, need that check most. - **Batch uploads and trends.** One file per request keeps the service simple. Teams with higher call volumes want batch uploads and per-counselor trends over time. ## Stack - **AI:** Google Gemini for scoring, A lighter Gemini model for transcripts - **API:** FastAPI, openpyxl, SQLite call log - **Interface:** Upload page in HTML, CSS and JavaScript ## Frequently asked questions ### Does CallAuditAI need a transcript first? No. Gemini scores the audio file directly. A transcript with the company representative and the customer as separate speakers is optional and comes from a separate call to a lighter model. ### Can the rubric be changed? Yes. The rubric is four weighted categories, each with its own weighted criteria, such as active listening or warmth and tone. We set the categories, criteria and weights with each client; the current deployment uses 30/30/20/20 across opening, discovery, value and closing. ### How do managers use the scores? They start with the red flags: any criterion scored zero is highlighted in the sheet. Category totals and an overall score make calls comparable, and the recording is always there to check the model's judgment. --- Canonical: https://www.miraiminds.co/work/callauditai Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Visual product search and cart-recovery calls for an ethnic-wear brand > Mirai Minds built two AI add-ons for an ethnic-wear e-commerce brand in India. Staff photograph a product, or a marketing reel playing on a screen, and get matching catalog products back from an image-embedding index. A separate service checks abandoned checkouts every 5 minutes and triggers a recovery call from our Voice Agents platform. Client: Ethnic-wear e-commerce brand (India) (Fashion e-commerce) · Status: production · Year: 2026 · Written by Sagar Davara ## Key facts - **Visual search input:** A staff photo of a product or of a reel on screen, up to 300 KB - **Index:** Catalog photos plus frames from marketing reels - **Results:** Top 10 products, de-duplicated across photo and reel matches - **Isolation:** Search runs apart from the production database - **Cart recovery:** Abandoned checkouts checked every 5 minutes - **Calls:** Placed by our Voice Agents platform, with the cart as context ## The problem The brand sells ethnic wear online, and its staff use an in-house app. Two gaps stood out. Staff needed a fast way to find a product from what a customer shows them, which is often a photo or a reel rather than a product name. And abandoned checkouts were going without any follow-up. ## What we built - **Visual product search.** A staff endpoint takes a photo and sends it to a separate search service that holds the image-embedding index. The index scores two kinds of material with the same query: catalog product photos and frames from the brand's marketing reels. Each product keeps its best score across both, results are de-duplicated, and the top 10 come back with direct product links. Every failure, from missing credentials to an unreachable index, returns one clear "visual search unavailable" message instead of a raw error. - **Reel indexing.** Reels are processed incrementally on AWS Fargate, frames are indexed once, and reel matches map to the products tagged in that reel. - **Cart recovery.** A small FastAPI service polls the store's abandoned checkouts every 5 minutes through the Shopify Admin GraphQL API, skips carts it has already handled, adds the cash-on-delivery charge and asks our [Voice Agents platform](/work/voice-agents-platform) to place a call with the cart as context. Phone numbers are masked in its logs. ## How it works in production Visual search went live for staff in July 2026. It is connected privately to the production API but runs apart from the production database, so search load stays off the store's database. Uploads are capped at 300 KB, which keeps the round trip short from a phone on a shop floor. Cart recovery runs on its 5-minute schedule; the voice agent handles the conversation, and call outcomes land in the platform's call history. The underlying work is described under [computer vision](/services/computer-vision) and [voice AI agents](/services/voice-ai-agents). ## What we'd change - **Measure recovery with a holdout group from the first week.** Without one, the effect of a call can't be separated from customers who would have come back anyway, so we don't publish a recovery rate. - **Use webhooks where the checkout supports them.** A 5-minute poll is simple and dependable, but a webhook would let the call go out sooner after the cart is abandoned. ## Stack - **Visual search:** Image-embedding index, AWS Lambda, AWS Fargate for reel processing - **Store:** Shopify Admin GraphQL API, FastAPI, SQLAlchemy - **Voice:** Mirai Minds Voice Agents platform - **Scheduling:** APScheduler ## Frequently asked questions ### Why index video reels as well as product photos? Staff often see a product in a marketing reel rather than on a product page. Frames from each reel are indexed, and a reel match returns the products currently tagged in that reel, so a photo of a screen still finds the right item. ### What does the recovery call know about the cart? The service reads the abandoned checkout from the store: items and variants, totals, discounts and taxes, plus a cash-on-delivery charge it calculates. That goes to the voice agent as call context, so the agent talks about the actual cart. ### How do you know the calls recover revenue? We don't have a clean number yet, which is why none is published here. The honest way to measure it is a holdout group of abandoned carts that get no call, compared over the same weeks. --- Canonical: https://www.miraiminds.co/work/ecommerce-visual-search-and-cart-recovery Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # WhatsApp Agents: our service for AI WhatsApp conversations > WhatsApp Agents is Mirai Minds' own service for running AI conversations on WhatsApp. It receives messages from Meta's webhook, waits for the customer to finish typing, builds context from a rolling summary, recent messages and Mem0 memories, and answers with Gemini. One deployment serves several business numbers, and it runs iKoMatch's founder conversations. Client: Mirai Minds (WhatsApp AI service (our own product)) · Status: production · Year: 2026 · Written by Sagar Davara ## Key facts - **Model:** Gemini, with per-owner key and model settings - **Context:** Last 20 messages, a summary of older ones, Mem0 memories - **Summaries:** Every 20 messages, 150 words at most - **Debounce:** 3 s after the customer's last message - **Accounts:** Several WhatsApp Business numbers, routed by phone number ID - **Also:** Templates, broadcasts, follow-ups, media stored in S3 ## The problem Our WhatsApp builds kept needing the same core: receive Meta's webhook, route the message to the right business account, remember the customer across weeks, answer from documents, and follow WhatsApp's rules on templates and the 24-hour window. Rebuilding that per client wasted time, so we built it once as a service. ## What we built - **Message handling.** A FastAPI webhook receives messages, looks up the account by phone number ID, saves the message and starts a 3-second debounce, so a burst of short messages gets one reply. - **Context building.** Every 20 messages are folded into a rolling summary of at most 150 words. Each reply sees that summary, the last 20 unsummarized messages and the Mem0 memories relevant to the current message, which keeps prompts small in long conversations. - **Gemini with tools.** Replies come from Gemini, with tools and document retrieval through a retrieval service shared with our [Voice Agents platform](/work/voice-agents-platform). Account owners can set their own Gemini key and model. - **Media and documents.** Images and files go to S3 and are described for the agent; decks are converted before reading. - **Outbound messaging.** Templates, broadcasts, follow-ups and conversation stages, so campaigns stay inside WhatsApp's rules. ## How it works in production The service runs [iKoMatch's](/work/ikomatch-ai-fundraising-assistant) founder conversations: signup, deck intake and the daily investor slates of a 45-day campaign. For every known number, iKoMatch's backend returns the founder's status with a matching prompt, which replaces the account's default prompt. Replies are split into short bubbles with natural pauses, so they read like texting. The patterns are described under [WhatsApp AI agents](/services/whatsapp-ai-agents). ## What we'd change - **Put human takeover in the core service.** Today the team inbox for staff replies lives in the client's dashboard, as it does for iKoMatch. Building it into the service would give every deployment the same takeover flow. - **Grade conversations every night.** iKoMatch's recommendations get a nightly LLM judge; the conversations themselves deserve one too, scoring a sample of each day's chats against a fixed list of issues. ## Stack - **AI:** Gemini (google-genai), Mem0 - **Backend:** FastAPI, PostgreSQL, SQLAlchemy (async), Alembic - **Messaging:** WhatsApp Business Platform (Cloud API) - **Storage and documents:** Amazon S3, Shared retrieval service, unoserver ## Frequently asked questions ### Why wait 3 seconds before replying? People send several short messages in a row. Waiting 3 seconds after the last one lets the agent answer everything at once instead of replying to each fragment. ### How is one deployment shared across numbers? Each WhatsApp Business number is an account with its own credentials and prompt. Every incoming webhook carries the phone number ID, which selects the account. For iKoMatch, a role-specific prompt from their backend replaces the default one for founders who are already registered. ### What happens to images and documents customers send? Media is stored in S3 and described by Gemini, so the agent can use it in the conversation. Pitch decks and other documents are converted to a readable format first. --- Canonical: https://www.miraiminds.co/work/whatsapp-agents-platform Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Outbound AI calling: a Pipecat voice bot and campaign dialer > Mirai Minds engineers worked inside an AI outbound-calling startup's platform team to build the parts that make calls work: a Pipecat voice bot over LiveKit SIP, turn detection that doesn't talk over people or into voicemail, a campaign dialer that caps live calls, and one recording per call. The platform runs outbound campaigns in production. Client: AI outbound-calling startup (Voice AI and outbound calling) · Status: production · Year: 2025–2026 · Written by Sneh Mehta ## Key facts - **Voice pipeline:** Pipecat over LiveKit SIP with Deepgram, ElevenLabs and OpenAI - **Turn-taking:** Voice activity detection, Deepgram Nova or Flux end-of-turn, silence watchdog - **Human detection:** Waits for a person; voicemail detection in English and Spanish - **Dialer:** Queue-driven worker with per-campaign and global live-call caps - **Recording:** One audio file per call through LiveKit Egress to cloud storage - **Our role:** Engineers embedded in the client's codebase, 2025–2026 ## The problem The startup's platform lets an operator define an agent (a language model, speech-to-text, text-to-speech and functions), load a contact list into a campaign and have the system call every contact. The first version ran its voice logic in an older Node service. The client needed calls that sounded natural, a dialer that respected concurrency and calling-hour limits, and recordings kept in their own cloud. ## What we built Our engineers worked inside the client's monorepo and deployment pipeline, alongside their team. - **A voice bot on Pipecat.** In July 2025 we replaced the older voice service with a Python Pipecat workflow that joins each call through LiveKit SIP. Later we added Deepgram Flux end-of-turn detection, outbound calling, handoff handling and local audio recording. - **Turn-taking in three layers.** Silero voice activity detection so short answers like "yes" register, end-of-turn detection from Deepgram Nova or Flux, and a watchdog for turns that end with nothing usable. - **Human presence detection** on outbound calls, in English and Spanish, so the greeting goes to a person and voicemail gets a polite goodbye. - **A campaign dialer.** Campaign and call-status APIs, bulk contact import, a headless worker on BullMQ, per-campaign and global live-call caps, daily dial windows, international number validation and a voicemail status for each contact. - **Recording and operations.** Per-call recording through LiveKit Egress to Azure Blob Storage with workload identity, a recordings browser and a pod-logs viewer in the admin dashboard, and Kubernetes deployments for the API and the worker. ## How it works in production Creating a campaign, or any call ending, puts a "fill" job on the queue. The worker reserves a slot against both caps, dials through LiveKit SIP and hands the audio to the Pipecat bot, which runs speech-to-text, the language model and text-to-speech and posts results back to the API. The API and the worker ship in one image but run as separate deployments, and only the API migrates the database, so replicas never race on schema changes. A repeatable backstop job reaps stuck calls, reconciles counters and marks finished campaigns complete. For the patterns behind this, see [voice AI agents](/services/voice-ai-agents); the same ideas run on our own [Voice Agents platform](/work/voice-agents-platform). ## What we'd change - **Build human presence detection before the first outbound campaign.** The bot originally greeted as soon as the line went active, which often meant talking into ringback or a voicemail greeting. - **Make turn-taking settings per agent from the start.** Thresholds that suit a quick yes-or-no call are wrong for a long, detailed conversation, and environment-wide settings turn every adjustment into a compromise. ## Stack - **Voice:** Pipecat, LiveKit SIP and Egress, Deepgram Nova and Flux, ElevenLabs, OpenAI, Silero VAD - **Backend:** NestJS on Fastify, MongoDB, BullMQ, Redis - **Admin:** React, Vite, MUI - **Infrastructure:** Kubernetes on Azure, Azure Blob Storage, Azure DevOps pipelines ## Frequently asked questions ### How does the dialer stop too many calls running at once? A call lasts minutes but a queue job finishes in milliseconds, so the queue's own concurrency can't limit live calls. We use two atomic counters in Redis, one per campaign and one global, reserved in a single Lua step before each dial. When a call ends its slot is released and the next dial is queued at once; a backstop job reconciles the counters and reaps stuck calls. ### How does the bot avoid greeting a voicemail box? On outbound calls, a line going 'active' doesn't mean a person is there. The bot stays silent through ringback, call screening and silence, starts as soon as someone says hello, and ends voicemail calls with a short goodbye. The detector handles English and Spanish. ### How are recordings handled? LiveKit Egress writes one audio-only file per call. In production those files go to the client's Azure Blob storage using workload identity, so the app holds no storage keys. Operators can search, play and delete recordings from the admin dashboard. --- Canonical: https://www.miraiminds.co/work/outbound-ai-calling-platform Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Voice Agents: our platform for AI phone agents > Voice Agents is Mirai Minds' own platform for building and running AI phone agents. Teams create assistants, run inbound lines and outbound campaigns, hand live calls to a person and get structured data from every call. Each assistant runs on our Pipecat and LiveKit pipeline or on a hosted runtime such as Vapi, with Plivo or Twilio numbers. Client: Mirai Minds (Voice AI platform (our own product)) · Status: production · Year: 2025–2026 · Written by Sneh Mehta ## Key facts - **Voice runtime:** Our Pipecat and LiveKit pipeline, or a hosted runtime such as Vapi - **Speech:** Deepgram and Sarvam recognition; Cartesia and Rime voices - **Numbers:** Plivo, Twilio and Indian DID numbers - **Handoff:** First available person joins the live call; 60 s timeout - **Integrations:** Shopify app, Google Calendar, WhatsApp, Klaviyo, LimeChat - **After each call:** Answered, engaged, callback time, meeting booked, conflict moment ## The problem Every voice project we took on started with the same plumbing: phone numbers, a speech pipeline, campaigns, call logs, handoff, billing. Clients also wanted to try a voice agent on real calls before committing to a custom build. Building that plumbing once, and well, was cheaper than rebuilding it for each client. ## What we built - **Assistants and campaigns.** Teams create assistants with prompts, variants, tools and a knowledge base, then run inbound lines or outbound campaigns from a CSV, with limits on concurrent calls and a scheduler. - **A choice of runtime per assistant.** Our own pipeline on Pipecat and LiveKit, or a hosted runtime such as Vapi. Speech recognition comes from Deepgram or Sarvam, voices from Cartesia or Rime, and numbers from Plivo, Twilio or Indian carriers. - **Live handoff.** When an assistant asks for a person, the request appears on the workspace's dashboard; the first person to accept joins the same LiveKit room. If nobody accepts within 60 seconds, the assistant says so and offers a callback. - **Data after every call.** A model reads each recording and fills structured fields: whether a person answered, whether they engaged, whether a callback was requested and for when, whether a meeting was booked, and the exact words of any conflict. A WhatsApp follow-up goes out when the assistant promised to send something. - **Integrations.** An embedded Shopify app, Google Calendar, WhatsApp, Klaviyo and LimeChat, plus MCP and API-request tools for anything else. - **Workspaces and billing.** Organizations, workspaces and roles keep each client's data apart, and usage runs on credits. ## How it works in production The platform runs at voice-agents.miraiminds.co and carries our client work too: [iKoMatch](/work/ikomatch-ai-fundraising-assistant) uses it for onboarding calls, and an [ethnic-wear brand](/work/ecommerce-visual-search-and-cart-recovery) for cart-recovery calls. Live call status streams to the dashboard over Socket.IO. Staging and production each deploy from a tagged, versioned release, so what runs can always be traced to a version. The approach is described under [voice AI agents](/services/voice-ai-agents). ## What we'd change - **Keep the judge on the production model.** Our optimizer's judge runs on the same model as live calls. When the two drift apart, prompts that score well offline behave differently on the phone, so a model change on one side has to be made on both. - **Put one interface in front of every runtime earlier.** Supporting hosted runtimes and our own pipeline per assistant is useful, but each runtime arrived with its own code paths. A single runtime interface from the start would have kept those differences in one place. ## Stack - **Voice:** Pipecat, LiveKit, Deepgram, Sarvam, Cartesia, Rime, Vapi - **Telephony:** Plivo, Twilio - **Backend:** Node.js, TypeScript, Express, MongoDB, Redis, BullMQ, Socket.IO, Typesense - **Frontend:** React 19, Redux Toolkit, Tailwind CSS 4, Vite - **Optimization:** GEPA prompt optimizer, LLM judge - **Billing:** Dodo Payments ## Frequently asked questions ### Can we run a voice agent without a custom build? Yes. Voice Agents is a hosted product: a workspace, an assistant and a phone number are enough to run calls from the dashboard. When a use case needs custom tools, languages or hosting, we build on the same platform, so the work doesn't start from zero. ### How does the Shopify app work? The embedded Shopify app connects a store with permission to read customers, orders and products and to create discount codes. Voice agents can then check orders, answer product questions and offer a time-limited discount on a recovery call. ### How are prompts improved over time? From the platform's own call history. An optimizer built on GEPA replays an assistant's past calls and scores each candidate prompt 60% on matching the real outcome and 40% on an LLM judge. The judge runs on the same model as production, GPT-4o-mini, so scores reflect how the live agent behaves. --- Canonical: https://www.miraiminds.co/work/voice-agents-platform Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Engineering drawings to SAP-ready bills of material > Mirai Minds built a document AI system for an Indian public-sector refinery that turns engineering drawings into SAP-ready material-master data. Gemini finds the bill of materials on PDF, scanned or CAD drawings and extracts every row. An engineer reviews each row beside the drawing and exports a 16-column SAP upload sheet. Built over ten months; handed over in 2026. Client: Indian public-sector refinery (Oil refining) · Status: delivered · Year: 2025–2026 · Written by Sagar Davara ## Results - **SAP material-master fields per extracted row:** 16 — source: Delivered export specification, 2026 - **SAP picklist values enforced in the review screen:** ≈370 — source: Delivered system specification, 2026 ## Key facts - **Inputs:** PDF, TIFF and JPEG scans, DWG and DXF drawings, up to 500 MB - **Extraction:** Gemini: fast model first, premium model on a reviewer's request - **Review:** Split-pane workspace; an engineer checks every row - **Output:** 16-column SAP material-master upload sheet - **Validation:** About 370 SAP picklist values; material type limits valuation class - **Timeline:** September 2025 to July 2026, then handover ## The problem Equipment drawings, parts lists and bills of quantities reach the refinery as PDFs, scans, TIFFs and DWG or DXF CAD files, often with hundreds of line items each. Every item had to be keyed into SAP with the right material-master fields: material group, valuation class, MRP type, purchasing group, profit center and more. Skilled engineers were doing clerical work, and a single wrong field meant a bad record in procurement. ## What we built A closed web application where an engineer uploads a drawing of up to 500 MB and gets back an editable, SAP-ready table. - **Extraction.** Gemini locates the bill-of-materials table on the drawing and extracts every row, plus the drawing number, item numbers and maker. Roughly 200 lines of engineering rules steer it: keep the reading order, never drop a row, preserve gaps in part numbering, and shorten names with a dictionary for more than 20 component types so text fits SAP's length limits. When the parts list omits a part number, the model reads the callouts on the drawing itself. - **Review.** A split-pane workspace shows the drawing next to the extracted table. Only the fields a reviewer touches change, and conflicting edits are rejected rather than merged. A reviewer can re-run extraction on the premium model with a plain-English hint, or compose SAP short and long texts from drag-and-drop variables. - **SAP output.** Cascading validation encodes about 370 SAP picklist values; choosing a material type narrows valuation class to the legal values. Every picklist also has an "Other" option, validated on the server. One click builds the 16-column upload sheet in the browser. ## How it works in production Progress streams to every open browser tab over Server-Sent Events: queued, downloading, extracting, persisting, completed. Large uploads are staged for 24 hours and promoted to permanent storage without a second upload. If the model returns malformed output, the parser's error goes back to the model for a retry, and each stage fails on its own with a precise message. Accounts are created by administrators only; there is no public sign-up, and deleted records can be recovered. We built it over ten months, from September 2025 to July 2026, refining the extraction rules on the refinery's real drawings, and handed it to the client's IT partner. The same pattern of extraction, human review and system-ready output fits invoices, datasheets and inspection reports; see [custom LLM and document AI](/services/custom-llm-development) and our [manufacturing work](/industries/manufacturing-industrial). ## What we'd change - **Log reviewer corrections as accuracy data from day one.** Corrections are the best measure of extraction quality. With them logged per field from the start, we could publish field-level accuracy here; we can't yet. - **Plan direct SAP integration early.** The Excel upload sheet was the right first step, but creating records through SAP interfaces removes a manual hop, and the design is easier with it in mind. - **Connect corporate sign-on sooner.** Wider rollout across the organization needs single sign-on, and it is cheaper to add before users arrive than after. ## Stack - **AI:** Google Gemini (fast and premium models) - **Backend:** FastAPI (async), MySQL 8.4, Alembic, Amazon S3 - **Frontend:** Vue 3, Vite, Tailwind CSS 4, PrimeVue - **Delivery:** Server-Sent Events, JWT with role-based access, Firebase Hosting ## Frequently asked questions ### Why keep a person reviewing every row? Because one wrong field creates a bad material-master record that spreads through procurement. The system makes review fast rather than optional: the drawing sits beside the table, edits save field by field, and SAP picklists only accept legal combinations. ### Why use two Gemini models instead of one? Cost and control. A fast, cheaper model does the first pass on every drawing. The premium model runs only when a reviewer asks, with a plain-English hint such as 'the quantity column is on the right'. Model cost is tracked per document. ### Does it write to SAP directly? Not in this version. It exports the 16-column material-master upload sheet that the SAP team loads. Creating records directly through SAP's BAPI or OData interfaces is the natural next phase. ### Who runs the system now? The client's IT partner. We consolidated the code into a single repository for handover in May 2026 and finished development in July 2026. --- Canonical: https://www.miraiminds.co/work/refinery-drawings-to-sap-bom Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Operations chat agent for a US logistics software company > Mirai Minds built an operations chat agent for a US logistics software company. Users ask about loads and customers in plain language, and the agent answers from live records by calling the client's APIs through MCP. A second model writes and checks every tool call's arguments, and each conversation keeps per-user memory and the user's time zone. Client: US logistics software company (Logistics software) · Status: delivered · Year: 2025 · Written by Sagar Davara ## Key facts - **Tool access:** Client APIs exposed as MCP servers, loaded from a registry - **Tool choice:** GPT-4.1 picks one tool per step - **Argument check:** Llama 4 Maverick fills arguments against the tool schema; up to 3 retries - **Memory:** History in MongoDB; session summary and user memory in Redis - **Built:** May to July 2025 ## The problem The client's users manage freight operations in the client's software. Simple questions, such as which loads a customer has this week, meant several screens and filters. The client wanted a chat assistant that answers from live data without giving a model free rein over their APIs. ## What we built - **An MCP tool layer.** The client's APIs are exposed as MCP servers registered in a database. The agent loads the active ones at start-up and caches tool descriptions in Redis. - **A two-stage tool loop.** GPT-4.1 reasons privately, chooses one tool per step and decides between single-record and list tools. A second model, Llama 4 Maverick through OpenRouter, fills the arguments against the tool's JSON schema. Validation errors go back for up to three retries before the agent gives up cleanly. - **Memory.** Conversations are stored in MongoDB. A rolling session summary and per-user memory live in Redis and go into the prompt with the user's local time, so "this week" means their week. - **Visible progress.** Short progress notes appear in the interface while the agent works, followed by a final answer in plain language. ## How it works in production Each message becomes a task. The loop runs until the model produces a final answer or hits its retry limit, and tool schemas are fetched once and cached rather than on every call. The service sits behind JWT authentication and reports to New Relic. We built it between May and July 2025, with engineers from our team working through prompt, memory and tool-validation changes in short cycles with the client. The general pattern is described under [AI agents and automation](/services/ai-agents). ## What we'd change - **Use native structured tool calls.** We used an XML tool protocol, which is why argument validation needed a second model. JSON-schema tool calling in current models would remove most of that stage and one source of latency. - **Start with an evaluation set of real operator questions.** We tuned the prompt through many rounds of manual testing. A fixed set of questions with expected answers, re-run on every change, would have made each round measurable instead of anecdotal. ## Stack - **Agent:** Custom tool loop, Model Context Protocol (FastMCP client), OpenRouter - **Models:** GPT-4.1, Llama 4 Maverick - **Backend:** FastAPI, MongoDB, Redis, JWT authentication - **Monitoring:** New Relic ## Frequently asked questions ### Why use two models for one tool call? They do different jobs. GPT-4.1 reads the conversation and picks the tool. A second model then writes the arguments against that tool's input schema, and if validation fails the error goes back to it, up to three times. Splitting the steps meant arguments were checked before anything reached the client's API. ### Can users see what the agent is doing? Yes. Alongside its private reasoning, the agent writes a short progress note for the user, such as 'I have the customer list, now checking loads for each customer', which the interface shows while it works. Internal IDs and tool names never appear in the final answer. ### What happens when the agent can't complete a request? It asks a clarifying question when a request is vague, and after repeated failed tool calls it stops and says so rather than guessing. It never calls a tool on a disconnected server; it tells the user that server is unavailable. --- Canonical: https://www.miraiminds.co/work/logistics-ai-agents Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Explanation and pronunciation tools for a Gurbani learning app > Mirai Minds built the AI back end for a Gurbani learning app. Given a line of Gurbani, the API transliterates it into Gurmukhi, applies pronunciation rules, writes a plain explanation in Hindi or English with the meaning of key words, and streams that explanation as speech from a self-hosted text-to-speech model. Client: Gurbani learning app (Education app) · Status: delivered · Year: 2025 · Written by Sagar Davara ## Key facts - **Steps:** Transliteration, pronunciation rules, explanation, speech - **Languages:** Explanations in Hindi or English - **Speech:** Self-hosted Kokoro text-to-speech, streamed as audio - **Model settings:** Temperature 0.1 and capped output for consistent wording - **Built:** April to June 2025 ## The problem Learners reading Gurbani often need three things for each line: how to say it, what the words mean, and what the line says as a whole, in a language they are comfortable with. The app team wanted all three on demand, as text and as audio, from one call. ## What we built A small FastAPI service with token authentication and one pipeline per request: 1. **Transliteration** of the input line into Gurmukhi, for example from Devanagari. 2. **Pronunciation rules**, a grapheme-to-phoneme step applied to the Gurmukhi text. 3. **An explanation** in Hindi or English: the meaning of key words in a fixed pattern, then the line as a whole, in a friendly, simple register. 4. **Speech**: the explanation streamed as MP3 audio from a self-hosted Kokoro model, with a blended Hindi voice or an English voice. The app can pass an optional instruction with each request, so editors can adjust tone for a particular screen without changing the service. ## How it works in production The app calls the API with a line and a language. Each model step runs at temperature 0.1 with a capped output length, so wording stays consistent from one request to the next. Audio streams while it is being generated, so playback can start before the whole explanation is synthesized. The service ships as a Docker image, and requests without the right token are refused. The general approach, chaining model steps with checks between them, is described under [custom LLM and document AI](/services/custom-llm-development). ## What we'd change - **A reviewed test set.** Explanations of scripture should be checked by people who know it well. A set of reviewed lines would make every prompt change measurable instead of a matter of taste. - **Cache audio per line and language.** Popular lines are requested again and again; caching would cut both latency and model calls. - **Fewer model calls.** For lines that already arrive in Gurmukhi, transliteration can be skipped, and some pronunciation rules could run as plain code rather than as a model step. ## Stack - **API:** FastAPI, Token authentication, Streaming responses - **Models:** OpenAI chat models, Kokoro text-to-speech - **Packaging:** Docker, uv ## Frequently asked questions ### Why split the work into several model calls? Each step has a different job and a different way to fail. Transliteration and pronunciation run first at low temperature, so the text the explanation is based on is stable. The explanation step then works from that clean text instead of fixing the script and explaining it at once. ### Why a self-hosted text-to-speech model? The app streams an explanation as audio for every line a learner opens. A self-hosted Kokoro model behind an OpenAI-compatible endpoint keeps the voices consistent, a blended Hindi voice and an English voice, and keeps them under the app team's control. ### How are explanations checked? The prompts fix the format, so every explained word follows the same pattern, and the app team reviews the output. Explanations of scripture need people who know it; a reviewed test set of lines is the first thing we'd add in a next phase. --- Canonical: https://www.miraiminds.co/work/gurbani-learning-ai-tools Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Myva.ai and CallPaaS: document chatbots and call-center AI > Mirai Minds built two products for the same founder. CallPaaS, a call-center platform, transcribes calls live with sentiment scores and uses GPT to turn a company's website and answers into Dialogflow virtual agents. Myva.ai lets businesses build and run chatbot campaigns grounded in their own documents, using LangChain, OpenAI and Pinecone. We worked on both from 2023 to 2025. Client: Myva.ai and CallPaaS (Conversational AI software) · Status: delivered · Year: 2023–2025 · Written by Sneh Mehta ## Key facts - **CallPaaS:** Live call transcription with sentiment; Dialogflow virtual agents - **Agent builder:** GPT turns a company's website and answers into intents and responses - **Myva.ai:** Chatbot campaigns grounded in uploaded documents and crawled sites - **Retrieval:** LangChain, OpenAI and Pinecone - **Years:** 2023 to 2025 ## The problem One founder, two products. CallPaaS needed call-center software that could listen to calls as they happen and answer routine ones with a virtual agent. Myva.ai needed a platform where a business uploads its documents, builds a chatbot and runs campaigns with it, without an engineer. ## What we built - **CallPaaS (2023).** Call audio from Twilio streams into Google Cloud Speech-to-Text for live transcripts, with sentiment scores from the Natural Language API. Virtual agents run on Dialogflow. A GPT-powered builder crawls the company's website and interviews the owner in rounds, producing a revised set of intents, training phrases and responses each time, plus suggestions and questions for the next round. Firebase handles authentication and data, and the client app is built with Vue and Vuetify. - **Myva.ai (2023–2025).** A Nuxt 3 web app, a Node.js API and a Python AI service. Chatbots are grounded in uploaded documents and crawled websites through LangChain, OpenAI and Pinecone. Subscriptions run on Stripe and live chat on Socket.IO, and the AI service is built and deployed on Google Cloud. ## How it works in production Myva.ai's retrieval path is the classic one: split, embed, store, retrieve the closest passages, answer from them. The AI service runs on Google Cloud with Firestore and Cloud Storage. CallPaaS ran on Firebase with Google Cloud's speech and language APIs. Over three years we kept extending both products, adding ingestion sources and billing, and later an MCP client in Myva's AI service so its chatbots could call external tools. The founder's verdict is on this page. The patterns now live in our [voice AI agents](/services/voice-ai-agents) and [custom LLM](/services/custom-llm-development) work, and in our own [Voice Agents platform](/work/voice-agents-platform). ## What we'd change - **Replace intent trees with an agent.** Dialogflow intents made sense for phone calls in 2023. An LLM agent with a few guarded tools, tested on real call transcripts, is simpler to build and much easier to change. - **Test generated agents before owners approve them.** The GPT builder produced intents in rounds; running a set of sample calls against each round would have shown the owner what changed, not just what was written. ## Stack - **CallPaaS:** Twilio, Google Cloud Speech-to-Text, Google Cloud Natural Language, Dialogflow CX, OpenAI, Firebase, Vue, Vuetify - **Myva.ai:** LangChain, OpenAI, Pinecone, Firestore, Cloud Storage, Cloud Build, Nuxt 3, Node.js, Stripe, Socket.IO ## What the client said > Best place to get job done. > > — Mark Banarov, Founder, Myva.ai, CallPaaS ## Frequently asked questions ### What did GPT do in CallPaaS? It helped build the virtual agent. GPT read the company's website and the owner's answers, then proposed call categories, intents, training phrases and responses, with suggestions and follow-up questions. Each round refined that model until the owner accepted it, and the result drove the Dialogflow agent. ### How do Myva.ai chatbots stay on topic? They answer from the business's own material. Uploaded documents and crawled pages are split, embedded and stored in Pinecone; each question retrieves the closest passages, and the model answers from those passages through LangChain. ### Would you build it the same way today? Not entirely. In 2023 an intent-based Dialogflow layer was the safe choice for phone calls. Today we'd use an LLM agent with a few guarded tools and test it against real call transcripts, as we do on our own voice platform. --- Canonical: https://www.miraiminds.co/work/myva-callpaas-support-and-call-centre Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Rouh: a computer-use agent for the desktop > Mirai Minds built the prototype of Rouh, a desktop AI agent that carries out tasks on a user's own computer. The app runs a browser agent that works from screenshots, connects to MCP servers such as Google Workspace, Telegram and WhatsApp, runs scheduled tasks and keeps long-term memory with Mem0. It is a working prototype, not a released product. Client: Rouh (Personal AI assistant) · Status: prototype · Year: 2024–2025 · Written by Sagar Davara ## Key facts - **App:** Tauri v2 desktop app, Next.js interface, Python FastAPI sidecar - **Browser agent:** Screenshot, decide, click or type, repeat - **Tools:** MCP servers, including Google Workspace, Telegram and WhatsApp - **Memory:** Mem0 long-term memory - **Earlier work:** 2024 browser-extension agent for tab and search actions ## The problem Rouh's founder wanted an assistant that does things instead of only answering: open the browser, find the page, fill the form, send the message, all on the user's own computer. Many of those actions have no API, and the ones that do are spread across different apps. ## What we built - **2024: a browser-extension agent** that turned instructions into actions such as opening tabs and searching the web. - **2025: a desktop app** built with Tauri v2, a Next.js interface and a Python FastAPI sidecar packaged as a single executable. Inside it: - a browser agent that works from screenshots, scaled down for the model and mapped back to real screen coordinates; - an MCP hub where users add servers, including Google Workspace, Telegram and WhatsApp, or their own; - a manager for scheduled tasks and a listener for notifications; - long-term memory, first as an MCP memory server and later with Mem0. - **Model experiments** on screen understanding with PyTorch Lightning, screen data and synthetic data. ## How the prototype works A request goes to the agent loop, which chooses between a browser action and an MCP tool. Browser actions run through Playwright; after each one the agent gets a fresh screenshot and decides the next step. Scheduled tasks run on their own thread so they don't block the interface. Memories are written after conversations and read back when they are relevant to a new request. The approach behind it is described under [AI agents and automation](/services/ai-agents). ## What we'd change - **Start with five tasks, not an open-ended assistant.** Open-ended computer use is where agents are slowest and least reliable. A short list of tasks, each with its own test, would reach real users sooner. - **Make confirmation part of the first release.** Any irreversible step, such as sending a message or paying, should show the user exactly what will happen and wait for a yes. ## Stack - **Desktop:** Tauri v2, Next.js, Python FastAPI sidecar, PyInstaller - **Agent:** Claude, GPT-4o, Playwright, Model Context Protocol - **Memory and scheduling:** Mem0, Scheduled-task manager - **Model experiments:** PyTorch Lightning, Screen-understanding data, Synthetic data - **Web:** Vue, FastAPI, MongoDB ## What the client said > Awesome work!!! Everything works as expected. I don’t have any major feedback other than keep going. > > — Humaid Alfalahi, Founder, Rouh.ai ## Frequently asked questions ### What can the agent do on a computer? In the prototype it drives a browser: it takes a screenshot, decides where to click or what to type, acts and looks again. It can also call connected apps through MCP servers, such as mail and calendar through Google Workspace, and run tasks on a schedule the user sets. ### How is it kept safe on a personal computer? It runs locally in a desktop app and acts only through the browser and the MCP servers the user has connected. Every task comes from the user, either directly or as a schedule they set, and each app connection is added by the user. ### Why is it still a prototype? Computer-use agents are slow and can fail on long, multi-page tasks. The build proved the approach and the desktop packaging. A production release needs a narrower task list, tests for each task and a confirmation step before anything irreversible. --- Canonical: https://www.miraiminds.co/work/rouh-computer-use-agent Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # AI for contact centers: voice agents, handoff and call QA > Mirai Minds builds AI systems for contact centers and other teams that work on the phone: voice agents for inbound lines and outbound campaigns, live handoff to a person, structured data from every call, and automatic quality scoring of recorded calls. We have shipped these for an outbound-calling startup, an admissions counseling team and our own Voice Agents platform. ## Key facts - **Voice runtime:** Pipecat and LiveKit, or a hosted runtime such as Vapi - **Handoff:** A person joins the live call; 60 s timeout, then a callback offer - **Call QA:** Recorded calls scored against a weighted rubric - **Languages shipped:** English and Hindi; voicemail detection in English and Spanish - **Telephony:** Plivo, Twilio, SIP ## Use cases - **Outbound campaigns within calling limits** (shipped by Mirai Minds): A dialer that caps live calls per campaign and overall, keeps to daily dial windows and records a voicemail outcome for each contact. - **Live handoff to a person** (shipped by Mirai Minds): The agent raises a handoff and the first available person joins the same call. If nobody accepts within 60 seconds, the agent offers a callback. - **Automatic call quality scoring** (shipped by Mirai Minds): Every recorded call scored against a weighted rubric, with zero scores flagged in red for a manager. - **Structured data after every call** (shipped by Mirai Minds): A model reads each recording and fills fields such as callback requested, callback time and meeting booked, which drive follow-ups. - **Live transcription with sentiment** (shipped by Mirai Minds): Calls transcribed as they happen, with sentiment scores alongside the transcript. - **Suggested answers for human agents** (typical): Answers from the knowledge base shown to a human agent while the customer is still talking. ## What does AI change in a contact center? Three things, in order of how often they pay off. First, it takes repetitive calls: confirmations, reminders, qualification questions, simple order lookups. Second, it turns every call into data, so follow-ups, callbacks and coaching no longer depend on someone's notes. Third, it reviews calls at a scale no quality team can match by listening. It does not remove the need for people. Callers still ask for a person, some calls are too sensitive to automate, and a voice agent that cannot hand over is a dead end. Every contact-center system Mirai Minds builds has a way out to a human. ## Which calls should an AI agent take? Calls with a clear goal and a short list of outcomes. An [outbound campaign](/work/outbound-ai-calling-platform) that confirms details, asks a few questions and books a next step is a good fit. So is an inbound line where most callers want the same few answers. Calls where the caller is upset, the stakes are high, or the answer depends on judgment should reach a person quickly. We usually start by reading a sample of real call recordings or transcripts and sorting them into those buckets. That sample becomes the first test set. ## How do people stay in the loop? Through handoff during the call and review after it. On our [Voice Agents platform](/work/voice-agents-platform), an agent that needs a person raises a handoff request, which appears on the team's dashboard. The first person to accept joins the same live call; the claim is atomic, so two people never grab one caller. If nobody accepts within 60 seconds, the agent tells the caller that no one is free and offers a callback, instead of leaving them on hold. After the call, a model reads the recording and fills structured fields: whether a person answered, whether they engaged, whether they asked for a callback and when, whether a meeting was booked, and the exact words of any conflict. Supervisors work from those fields rather than from memory, and every field links back to a recording a person can check. ## How do you measure quality? With a rubric, applied to every call. [CallAuditAI](/work/callauditai) scores recorded calls against weighted categories, in one deployment opening and rapport, needs discovery, value and objection handling, and closing, and returns an Excel scorecard with any zero score flagged in red. Managers start with the red flags and listen to those recordings first. The same scoring works for human and AI calls, which matters: it lets you compare an AI agent with your team on the same rubric before you move more calls to it. Before trusting the totals, we recommend a calibration round in which managers score a sample blind and compare with the model, criterion by criterion. ## What have we shipped for contact centers? - For an [AI outbound-calling startup](/work/outbound-ai-calling-platform), a Pipecat voice bot over LiveKit SIP, three-layer turn detection, voicemail detection in English and Spanish, a campaign dialer with per-campaign and global live-call caps, and one recording per call. - For an admissions counseling company, [CallAuditAI](/work/callauditai) for scoring recorded counseling calls. - For the founder of [Myva.ai and CallPaaS](/work/myva-callpaas-support-and-call-centre), live call transcription with sentiment and GPT-assisted virtual agents. - Our own [Voice Agents platform](/work/voice-agents-platform), with campaigns, live handoff, post-call data and Hindi calls. ## What does a first project look like? A short discovery call, then a week of reading your calls and agreeing what success means for each call type. Then a pilot on one call type with one script, one number and a handoff queue staffed by your team, followed by expansion once the scores and the handoff rate look right. The service pages for [voice AI agents](/services/voice-ai-agents) and [custom LLM and document AI](/services/custom-llm-development) go deeper on the technology. ## Frequently asked questions ### Should AI replace our agents? Rarely all of them. The pattern we have shipped most is AI on the repetitive calls, a live handoff for everything else, and automatic scoring of recorded calls so managers coach from evidence. Where calls are sensitive or complex, keep people on them and use AI to review. ### Can an AI agent call our customers in Hindi? Yes. Our Voice Agents platform runs Hindi calls on Deepgram Nova-3 speech recognition with Cartesia voices and Indian phone numbers. We test on recordings of your own callers before launch. ### How do you handle consent and recording rules? They depend on your country and industry, so we agree them with you before launch: what the greeting says, which calls are recorded, where recordings are stored and for how long. For one client we wrote every recording straight to their own cloud storage. ### How long does a contact-center pilot take? Most builds take two to eight weeks. A pilot on our Voice Agents platform with one script, one number and a handoff queue sits at the short end; custom pipelines, CRM integration and new languages add time. --- Canonical: https://www.miraiminds.co/industries/contact-centres Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # AI for e-commerce: visual search, cart recovery and assistants > Mirai Minds builds AI for e-commerce and retail: visual product search from a photo or a reel, AI voice calls that follow up on abandoned carts, a Shopify app for voice agents, and catalog assistants that answer from real product data. These run for an Indian ethnic-wear brand, in a resin manufacturer's pilot and on our Voice Agents platform. ## Key facts - **Visual search:** Catalog photos and reel frames in one index - **Cart recovery:** Abandoned checkouts checked every 5 minutes - **Shopify:** Embedded app with order, product and discount permissions - **Channels:** Phone calls, WhatsApp and on-site chat - **Cash on delivery:** COD charges included in recovery-call context ## Use cases - **Visual search from a photo or a reel** (shipped by Mirai Minds): Staff photograph a product, or a video playing on a screen, and get matching catalog items back. - **Abandoned-cart recovery calls** (shipped by Mirai Minds): An AI voice agent calls about the actual cart, with items, totals and the cash-on-delivery charge. - **Catalog assistant** (shipped by Mirai Minds): Answers product questions from catalog data and shows product cards only from real search results. - **Shopify-connected voice agent** (shipped by Mirai Minds): Checks orders, answers product questions and can create discount codes through an embedded Shopify app. - **WhatsApp follow-up after a call** (shipped by Mirai Minds): When the voice agent promises to send something, a WhatsApp message follows the call. - **Returns and exchange triage** (typical): Sort return and exchange requests by reason and route the unusual ones to a person. ## Where does AI pay off in e-commerce? Where a customer or a staff member is one step from a sale and gets stuck. A shopper sees a product in a video and can't name it. A customer leaves a checkout half-finished. A buyer has a question about a product at 11 at night. Each of those is a lost order that a small, well-scoped AI system can win back, as long as it works from real catalog and order data rather than from a model's guesses. Mirai Minds builds three kinds of e-commerce systems: visual search, follow-up on abandoned carts by phone and WhatsApp, and catalog assistants. Each is described below with the client it was built for. ## How does visual search work on photos and reels? For an [ethnic-wear e-commerce brand in India](/work/ecommerce-visual-search-and-cart-recovery), staff needed to find products from what customers show them, which is often a photo or a marketing reel rather than a product name. We built a search service that holds an image-embedding index of two kinds of material: catalog product photos and frames from the brand's reels. A staff member takes a photo; the service scores it against both, keeps each product's best score, removes duplicates and returns the top 10 with direct product links. A reel match returns the products currently tagged in that reel. The search runs apart from the store's production database, uploads are capped at 300 KB so the round trip stays short from a phone, and every failure returns one clear message instead of a raw error. It has been live for the brand's staff since July 2026. ## Are AI cart-recovery calls worth it? They can be, and they should be measured before anyone claims they are. For the same brand, a small service checks abandoned checkouts every 5 minutes through the Shopify Admin API, skips carts it has already handled, adds the cash-on-delivery charge and asks our [Voice Agents platform](/work/voice-agents-platform) to place a call with the cart as context. The agent talks about the actual items and totals rather than reading a generic script. What we don't have yet is a clean recovery number. The only honest way to get one is a holdout group of abandoned carts that receive no call, compared over the same weeks, because some customers come back on their own. Until that result exists, we won't publish a rate. ## What does the Shopify app do? Our Voice Agents platform has an embedded Shopify app. A store connects it with permission to read customers, orders and products and to create discount codes. Voice agents can then check an order's status, answer product questions and offer a time-limited discount on a recovery call. After each call a model fills structured fields, such as whether a callback was requested and when, and if the agent promised to send something on WhatsApp, a message follows. Stores on other platforms can connect through webhooks and APIs instead. ## What about chat on the store itself? For a [resin manufacturer in India](/work/resin-catalogue-assistant) we built a pilot catalog assistant. Shoppers ask in plain language or upload a photo; an agent decides whether to search the catalog, ranks products with hybrid semantic and keyword search, and shows product cards only from real results. Greetings don't trigger a search, so products never appear attached to small talk. The pilot runs on a 15-product sample, which tests behavior but can't yet measure retrieval quality. For conversations that continue over days, the same ideas run on WhatsApp through our [WhatsApp AI agents](/services/whatsapp-ai-agents) work. ## What do you need to get started? Access to your catalog and order data (a read-only API key is enough for a first version), a sample of real customer questions or photos, and a person who owns the result. For recovery calls, add the hours you are allowed to call and your discount rules. Most builds take two to eight weeks. The technology behind these systems is described under [computer vision](/services/computer-vision) and [voice AI agents](/services/voice-ai-agents). ## Frequently asked questions ### Will AI calls annoy customers who abandoned a cart? They can, if they are badly timed or generic. Timing, relevance and an easy way to opt out matter more than the script. We call about the actual cart, keep the call short and set calling hours with you, and opt-outs and complaints should be tracked alongside recovered orders. ### Does visual search work on photos of screens? Yes, by design. Frames from marketing reels are indexed next to catalog photos, and a reel match returns the products tagged in that reel, so a photo of a video playing on a screen still finds the item. ### Do we need Shopify? No. Shopify has our deepest integration: an embedded app for voice agents and its Admin API for abandoned checkouts. The same pieces work with any store that exposes orders, products and checkouts through an API or webhooks. ### How do you measure whether it's working? For recovery calls, with a holdout group of carts that get no call, compared over the same weeks; without one the numbers flatter the calls. For visual search, by how often staff find the product in the top results. We don't publish a recovery rate yet because we don't have a clean holdout result. --- Canonical: https://www.miraiminds.co/industries/ecommerce-retail Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # AI for manufacturing: document AI and product assistants > Mirai Minds builds AI for manufacturers and industrial operators whose work is buried in documents and catalogs. We turned engineering drawings into SAP-ready bills of material for an Indian public-sector refinery, with an engineer reviewing every row, and built a catalog assistant with photo search for a resin manufacturer. Accuracy is always measured on your own documents. ## Key facts - **Drawings handled:** PDF, TIFF and JPEG scans, DWG and DXF CAD files - **ERP output:** 16-column SAP material-master upload sheet - **Review:** An engineer signs off every extracted row - **Catalog search:** Text and photo search over product catalogs - **Access:** Closed systems with administrator-created accounts ## Use cases - **Drawings to bills of material** (shipped by Mirai Minds): Extract every line item and the drawing metadata from PDF, scanned or CAD drawings into an editable table. - **SAP material-master preparation** (shipped by Mirai Minds): Validate material type, valuation class and other picklists, then export the exact SAP upload layout. - **Catalog assistant with photo search** (shipped by Mirai Minds): Answer product questions and find items from a customer's photo, grounded in the catalog. - **Inspection reports and test certificates** (typical): Pull readings, pass or fail results and identifiers from inspection reports and lab certificates into a quality system. - **Datasheet and manual questions** (typical): Answer engineers' questions from equipment datasheets and manuals, citing the page. ## Where does AI help in manufacturing and industrial work? Where skilled people spend their time copying information from one format into another. Engineering drawings, parts lists, bills of quantities, datasheets and certificates arrive as PDFs, scans and CAD files; ERP systems need clean, validated records. The gap between the two is usually filled by engineers typing. That is slow, it is expensive, and a single wrong field can create a bad record that spreads through procurement. Language models are now good at reading those documents, including tables, callouts and scanned pages. They are not good enough to be trusted blindly. The systems Mirai Minds builds for industrial clients pair a model that does the reading with a person who signs off, and with validation rules that stop impossible values before anyone has to catch them. ## How does document AI handle engineering drawings? For an [Indian public-sector refinery](/work/refinery-drawings-to-sap-bom), we built a system that reads equipment drawings and produces SAP-ready material-master data. An engineer uploads a drawing of up to 500 MB. Gemini finds the bill-of-materials table and extracts every row, plus the drawing number, item numbers and maker. Roughly 200 lines of engineering rules steer the extraction: keep the reading order, never drop a row, preserve gaps in part numbering, and shorten component names with a dictionary so text fits SAP's length limits. Two details matter on real drawings. When the parts list omits a part number, the model reads the numbered callouts on the drawing itself. And the cost is controlled with two tiers: a fast Gemini model does the first pass on every drawing, and the premium model runs only when a reviewer asks, with a plain-English hint such as "the quantity column is on the right". ## Why keep an engineer in the loop? Because the output feeds procurement, and procurement trusts it. In the refinery system a reviewer sees the drawing beside the extracted table, edits only the fields that are wrong, and can re-run extraction with a hint instead of retyping. Cascading validation encodes about 370 SAP picklist values: choosing a material type narrows valuation class to the legal values, so impossible combinations can't be entered at all. Nothing is exported until a person signs off, and the export is the exact 16-column upload sheet the SAP team loads. Review is also where accuracy data comes from. Every correction says which field the model got wrong. Logged per field, those corrections show where review can safely shrink, and where it can't. ## What about catalogs and customers? Manufacturers also sell, and their catalogs are often hard to search. For a [resin manufacturer in India](/work/resin-catalogue-assistant) we built a pilot catalog assistant: shoppers ask in plain language or upload a photo, an agent decides whether to search the catalog, and product cards appear only from real search results. Hybrid semantic and keyword ranking keeps search working even if embeddings fail. The pilot runs on a 15-product sample, which is enough to test behavior and not yet enough to measure retrieval quality. ## What do we need to start? Twenty to fifty representative documents, including the messy ones, the target format (for example your SAP upload sheet or the fields your quality system needs), and a domain expert who can answer "is this right?" questions for about an hour a week. We turn those into a test set before building, so every later change can be measured against it. ## What does it cost to run? Mostly model usage per document: pages and images in, structured text out, multiplied by retries and premium re-runs. Hosting is small for hosted models and larger if open-weight models run on your own GPUs. We estimate both on your sample documents before launch. Build cost depends on the review tooling, the validation rules and the ERP integration. For the technology behind this work, see [custom LLM and document AI](/services/custom-llm-development) and [computer vision](/services/computer-vision). ## Frequently asked questions ### Can it read scanned and CAD drawings, not just clean PDFs? Yes. The refinery system accepts PDF, TIFF and JPEG scans and DWG or DXF CAD files up to 500 MB. When a parts list omits a part number, the model reads the callouts on the drawing itself. Results still depend on scan quality, which is one reason every row is reviewed. ### Does the data go straight into SAP? In the delivered system, no. It exports the SAP material-master upload sheet after a reviewer signs off. Creating records directly through SAP's BAPI or OData interfaces is possible and is usually the next phase. ### Can it run inside our network? The application can run on your infrastructure with administrator-created accounts and no public sign-up. The model is the real question: hosted models such as Gemini need an outbound connection, while open-weight models can run on your own servers. We measure both on your drawings before you decide. ### How long does a document AI project take? A first extraction on your own documents comes early; a production system with review tooling, validation and ERP output takes longer. The refinery build ran ten months, from September 2025 to July 2026, including rule refinement on real drawings. --- Canonical: https://www.miraiminds.co/industries/manufacturing-industrial Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Sagar Davara Co-founder, Mirai Minds > Sagar Davara co-founded Mirai Minds, the AI engineering studio in Surat, India, in 2023 with Sneh Mehta. Sagar works on builds where AI has to fit into software and processes a client already runs: document AI, computer vision, AI agents and the platforms that serve them in production. Sagar Davara co-founded Mirai Minds in 2023 with Sneh Mehta and signs the studio's proposals. Case studies by Sagar on this site include the [document AI for an Indian public-sector refinery](/work/refinery-drawings-to-sap-bom), the [generative photo and face-search pipeline for a photo company in the theme-park and entertainment sector](/work/theme-park-ai-photo-pipeline), the [AI fundraising assistant for iKoMatch](/work/ikomatch-ai-fundraising-assistant) and the [agents for a US logistics software company](/work/logistics-ai-agents). To talk to Sagar about a build, book a call through the [contact page](/contact) or write to hello@miraiminds.co. --- Canonical: https://www.miraiminds.co/team/sagar-davara Last updated: 2026-10-06 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co --- # Sneh Mehta Co-founder, Mirai Minds > Sneh Mehta co-founded Mirai Minds, the AI engineering studio in Surat, India, in 2023 with Sagar Davara. Sneh works on the studio's voice AI: phone agents that answer and place calls, the speech recognition, voices and turn-taking behind them, and the telephony they run on. Discovery calls booked through this site are with Sneh. Sneh Mehta co-founded Mirai Minds in 2023 with Sagar Davara and works on the studio's voice AI. Case studies by Sneh on this site include the [outbound AI calling platform](/work/outbound-ai-calling-platform) built on Pipecat and LiveKit, [CallAuditAI](/work/callauditai), which scores recorded calls against a rubric, and the voice and chat systems built for [Myva.ai and CallPaaS](/work/myva-callpaas-support-and-call-centre). The studio's own [Voice Agents platform](/work/voice-agents-platform) builds on the same work. The studio's notes on speech generation, speech recognition and turn detection are on its [Hugging Face page](https://huggingface.co/miraiminds). To talk to Sneh, book a call through the [contact page](/contact). --- Canonical: https://www.miraiminds.co/team/sneh-mehta Last updated: 2026-09-23 Publisher: Mirai Minds LLP, 906 Sarthana Business Hub, Nana Varachha, Surat, Gujarat 395013, India. hello@miraiminds.co