Eklavya Shetty

AI agents.

I build agents that do one job properly: answer customers, qualify leads, read documents, follow up, and hand over to a person when they should.

Three of them run below with made-up businesses, so you can try them on your phone. The others run inside GenWise, a programme for gifted children, and hold children's data, so they're described here and shown on a call.

Try the demosSee what's in use

Try them.

Each one is public, so each one has daily limits. The businesses and the data are fictional. Chats with Ivy show up in her public owner console, so don't type anything private. Receipt photos are not stored.

Enquiry agentLive

Ivy

For Harbour Line Renovations, a made-up renovator in Perth

Ivy answers homeowners' questions, asks what the business needs to know, books a site visit and passes anything urgent or unusual to a person. When a lead goes quiet, she follows up on her own. The owner's console shows every lead, booking, handoff and unanswered question.

Try this
Ask about a bathroom renovation and book a visit. Then ask for a discount, or say you work there.
Guardrails
Water, gas or electrical danger, complaints, refunds and discount requests go straight to a person. Prompt injection and staff impersonation are refused: 16 of 16 red-team attempts held.
Built on
Cloudflare Workers and Durable Objects, Workers AI (GLM-4.7 Flash), a hand-written tool loop

Chat with IvyOwner consoleCode

Document readerLive

Receipts

Receipt photo in, expense row out

Snap a receipt and get vendor, date, line items, tax, total, currency and category, each with a confidence score. Indian invoices get the CGST, SGST and IGST split. Rows collect into a table you can edit and download as CSV.

Try this
Upload any receipt, or tap a sample. One sample's total is wrong on purpose.
Guardrails
The sums are checked in code, not by the model, so a wrong total gets flagged. A photo too blurry to read goes to a person instead of being guessed. Images are not stored.
Tested
11 of 11 readable test receipts right on vendor, date, total, tax and currency, from India, Australia, the UK, the US, the UAE and Europe. Model picked from a four-model bench (Gemma 4 26B).

Read a receiptCode

Workflow with AI intakeLive

PO Desk

Purchase-order approvals for a fictional company

Describe what you need in plain words and the intake assistant turns it into a purchase order and checks it against policy. Orders route by amount, role and vendor risk, and a checker catches split and duplicate orders before they reach an approver.

Try this
Pick a role at the start, raise an order, then switch to the approver.
Also has
Out-of-office delegation, budget checks, e-signatures and a full audit trail. Works on a phone.
Built on
Next.js, Tailwind, Cloudflare Workers

Open PO Desk

Ivy and the receipts reader run on Cloudflare's own models, so there are no API keys to leak and a public link can't run up a bill.

In use.

Agents I built for GenWise's summer programme and for my own work. They sit behind logins, so there are no links. I'm happy to walk through any of them on a call.

Wren

Parent enquiry agent, GenWise

The problem. Parents ask the same questions about the programme at all hours, and a callback request in a busy inbox can sit for days.

What it does. Answers from the real FAQ, remembers each family, books callbacks, and follows up by itself when an interested family goes quiet. The team can teach it house rules in plain words. Questions in Hindi and Hinglish are translated first.

GuardrailsMedical, allergy, refund, safety and complaint messages always go to a person. Every "I don't know" is logged as a gap to fill.
Built onCloudflare Workers, Durable Objects, Workers AI, embeddings search

GW Desk

Team assistant on Telegram and WhatsApp, GenWise

The problem. Anyone on the team answering a parent had to dig for the right fact, the right tone and the right brochure.

What it does. Forward it a parent's question as text, a screenshot or a voice note, and it returns a reply ready to paste, a longer write-up and the right document. It learns from the replies the team actually sends, and lists the questions it couldn't answer every Monday.

GuardrailsIt never messages parents and never reads anyone's chats. A person sends every reply.
Built onCloudflare Workers, Claude Sonnet, Telegram and the WhatsApp Business API

Ops bot

WhatsApp operations, GenWise camp

The problem. During a 21-day residential camp, staff groups fill with receipts, requests and updates that someone has to sort and type up.

What it does. Reads the staff groups, sorts every message into one of 15 categories and turns photographed receipts into expense rows in the camp's dashboard.

ResultReceipt reading went from 62% to 100% on real camp receipts.
Built onClaude Haiku, an OCR chain, WhatsApp, Supabase

SOS Cockpit

Phone-first fix line, GenWise

The problem. When software breaks mid-camp, the fix can't wait for me to get to a laptop.

What it does. Someone reports a bug from their phone, an AI agent drafts the fix as a pull request, I read it and approve with a tap, and it deploys.

GuardrailsNothing ships without my approval. Every change is a reviewed pull request.
Built onNext.js, Inngest, Claude, GitHub

Voice model

My own English voice, for a daily news channel

The problem. A daily explainer channel I used to narrate needed my voice back without me recording every day, and hosted voice clones of me sounded wrong in English.

What it does. A fine-tune of an open text-to-speech model on 25 minutes of my old narration. It runs on my own PC, so each reel costs nothing to voice.

How it was pickedBy ear, against the hosted clone, over several training checkpoints.
Built onQwen3-TTS 1.7B, LoRA fine-tuning, a local GPU

How I build them.

The same rules for a weekend demo and for software that runs a camp full of children.

  1. A person approves anything that leaves.Agents draft replies, fixes and orders. Sending, deploying and paying stay with a person unless you decide otherwise.
  2. Hard rules live in code.Totals, dates, handoffs and limits are checked by plain code, so they hold even when the model has a bad day.
  3. It says when it doesn't know.A gap becomes a logged question or a handoff, never an invented answer.
  4. Tested before you see it.A test set built from your real cases, a bench of models to pick the right one, and red-team attempts to break it.
  5. Caps on anything public.Per visitor, per day and overall, so a shared link can't turn into a bill.
  6. Small and yours.No agent framework to rent. It runs on your own Cloudflare or cloud account, and you get the code.

Usually built with: Claude and open models on Cloudflare Workers AI, Cloudflare Workers and Durable Objects, Next.js, Supabase, WhatsApp, Telegram and Slack, webhooks and scheduled jobs.