Nikunj Kothari
Nikunj, you've built a household that reminds itself, a desk that codes its own expenses, and a bedtime that paints itself, and the cart only fills on your word.
- Useful 8.5Six routines fire on their own, and nearly all of them wait for a reply that settles something
- Creative 9Pitch questions mined from your own meetings and a lobby check-in ping are the sharp ones
- Replicable 9.5Defaults, thresholds, chat-only fallbacks and dry-run checks on every routine
Every routine below is something AI runs for Nikunj. Press Copy for my agent on any of them to have your own AI build it. Built one? Tell Nikunj.
1Remind us before a family deadline slips
A message in our family chat days before a party, a return window, a school form or an appointment. It stays open until one of us says done.
Return window for the rain boots closes Friday. Drop-off spot is 6 min away; the label is in the order email. Gift for Ava's party (Saturday): nothing bought yet. Want three ideas under $40?
How to borrow it
- Reads
- both parents' email, from allowlisted senders, both parents' calendars
- Done when
- a parent replies done, not mine or snooze; the item closes or moves
- Runs on
- an assistant on a schedule
Ask first
- Whose inboxes and calendars are in scope? (default both parents)
- Which kinds of obligation count? (default parties and gifts, returns, school forms and payments, appointments, bills)
- Where should reminders arrive? (default a family group chat both parents read)
- What hour do reminders land? (default 8am local) Quiet hours? (default 9pm-7am)
- Lead time per kind? (default gifts 7 days before the party, returns 5 days before the window closes, forms 3 days before due)
Needs
- Read access to each parent's email and calendar. Say: "It reads mail from senders on an allowlist and calendar events, and only to find things someone has to do. It never sends mail."
- A sender allowlist (school, doctors, retailers, invites); start with 20-50 senders.
- A store of open items: what, whose, due date, source, status.
- If your assistant can only chat: forward or paste each school email, invite or order confirmation to it; it keeps the open list in the chat and answers "what is due this week?" each morning when asked.
Build
- 1. Read: every 15 minutes, fetch new mail from allowlisted senders and changed calendar events. First run reads 60 days back, batched; expect a few hundred model calls once.
- 2. Decide (extract): for each message, pull out obligations that need a human: a date, an action, an owner. Keep: "RSVP by Friday for the 10th." Drop: "Your payment was received" (nothing left to do). Re-check every bill-like claim once: keep it only if someone still has to pay.
- 3. Decide (dedup): the same obligation often arrives by email and calendar. Merge when the date and the thing match; when unsure, keep both. Owner: an event is "family" only when both parents are invited, otherwise it belongs to the person invited.
- 4. Decide (timing): schedule one reminder per item at its lead time, at the reminder hour, inside a window so a sleeping machine catches up the next poll. Record each reminder sent so it never repeats.
- 5. Deliver: a short message in the chat naming the item, due date and next action, with a link back to the source email. Nothing is sent to anyone outside the family.
- 6. Close: a parent replies "done", "not mine" or "snooze to Thursday"; the item closes or moves. Items past their date with no reply expire after 2 days.
Check
- Run on last month's mail with delivery off. Every open item must quote its source line; no receipts or newsletters on the list.
- Forward the same invite twice and add it to the calendar: one item, not three.
- A quiet week sends nothing beyond the daily brief.
In my version
- Runs on a small cloud server (Railway, Postgres). Gemini extracts, Claude answers in a Telegram family group through a self-hosted agent. About 50 allowlisted senders across two Gmail accounts. Roughly 3,000 model calls a month.
Built this with your AI? Tell Nikunj how it went.
2Brief our family on the day ahead
A short morning and evening message in our family chat: what is on, what is due this week, school days off, packages on the way.
Morning. Today: swim at 4, pickup is on you. This week: dentist Thursday 9:30, class photo form due Friday. No school Monday (teacher planning day). 3 packages on the way.
How to borrow it
- Reads
- family calendar, open family to-dos, shipping emails
- Runs on
- an assistant on a schedule
Ask first
- Where should the brief arrive? (default the family group chat)
- Morning and evening times? (default 7am and 8pm local)
- What belongs in it? (default today's events, items due in the next 7 days, school days off, packages on the way, anything new overnight worth a look)
- A longer look ahead once a week? (default Sunday evening covers the next 7 days)
Needs
- The open-items store from a deadline tracker, or at minimum read access to the family calendar and email.
- A school calendar of days off, typed in once a year from the district's published list.
- If your assistant can only chat: ask it each morning "what is on today and what is due this week?" and paste in anything new; it answers from what you have told it.
Build
- 1. Read: at the brief hour, collect today's events, open items due in the next 7 days, shipping notices, and items added in the last 18 hours.
- 2. Decide: drop anything already done or past. Count shipping notices into one line ("3 packages on the way") instead of listing each; only out-for-delivery, delivered or delayed get their own line. Add a school-day-off line when it applies.
- 3. Decide (write): turn the list into a short, warm message, under 12 lines, in a plain voice. If the model call fails or breaks a rule (invents an item, adds an emoji wall), send the plain bullet version instead.
- 4. Deliver: one message to the chat inside a 3-hour window from the brief hour, once per slot; record the slot as sent so a restart does not send twice. The morning brief absorbs the day's default-hour reminders so they do not arrive separately.
Check
- Run for tomorrow with delivery off; every line must trace to an event or open item.
- Run twice in the same window: the second run sends nothing.
- Set a date to a known school holiday and confirm the day-off line appears.
In my version
- Same server and Telegram group as my deadline tracker. Gemini writes the prose; a deterministic composer is the fallback. Morning 7am, evening 8pm, Sunday evening is the week-ahead version.
Built this with your AI? Tell Nikunj how it went.
3Warn me before household staples run out
Up to three messages a week naming a staple we are about to run out of, based on how often we reorder it. Replying 'add it' puts it in the cart.
Running low on dishwasher pods? Last ordered 58 days ago; you usually reorder every 60. Reply 'add it'.
How to borrow it
- Reads
- order history
- Done when
- 'add it' puts the item in the cart, or the reminder lapses
- Runs on
- an assistant on a schedule
Ask first
- Which stores' order history can it read? (default the one or two you buy household staples from)
- How often should it look? (default weekly)
- Most nudges per week? (default 3)
- Should "add it" put the item in your cart, or just remind? (default remind only)
Needs
- Order history with item names and dates, at least 6 months. Most stores have an order history page or export; if not, a year of order-confirmation emails works.
- If your assistant can only chat: paste your last few orders once a month and ask "what am I likely to run out of in the next week?"; it does the same arithmetic.
Build
- 1. Read: weekly, refresh order history and group purchases by item.
- 2. Decide (rhythm): an item has a rhythm once bought 3 or more times. Interval = days from first to last order divided by orders minus one. Keep items with an interval between 45 and 150 days (vitamins, filters, diapers); faster is groceries, slower is "buy when it breaks". Skip fee lines.
- 3. Decide (due): due when last order plus interval falls within the next 7 days. If it is more than 1.75 intervals overdue, treat it as abandoned and stay quiet. Skip anything already nudged and still open.
- 4. Decide (cap): at most 3 nudges per sweep, most overdue first.
- 5. Deliver: one message per item: "Running low on X? Last ordered 58 days ago, you usually reorder every 60." If you set up cart adds, "add it" adds it; checkout stays with you.
Check
- Run on your history with delivery off; every item must show 3+ orders and its interval.
- Pick an item you stopped buying a year ago: it must not appear.
- A week with nothing due sends nothing.
In my version
- Amazon order history, refreshed weekly by a browser session. Nudges go to our Telegram family group; "add it" adds to cart through a signed-in cloud browser.
Built this with your AI? Tell Nikunj how it went.
4Draft the weekly grocery order for one yesBuilding
A grocery list drafted from what we usually buy, edited in chat in plain words. One 'go' fills the cart; checkout stays with us.
Draft the weekly grocery order for one yes
Thursday list (from your usual rhythm):
bananas, 2 bunches
whole milk, 1 gal
eggs, 2 dozen
greek yogurt
Reply with changes, or 'go'.
How to borrow it
- Reads
- grocery order history
- Done when
- one 'go' fills the cart; a human checks out
- Runs on
- an assistant on a schedule
Ask first
- Which grocery store, and does it have order history you can read? (default the one you order from most)
- Which evening should the draft arrive? (default Thursday)
- Who approves? (default either parent)
Needs
- Grocery order history with item names and dates; 3 months minimum.
- To fill a cart: a browser the agent can drive that is already signed in to the store. No password should pass through the agent. Without that, deliver the list only.
- If your assistant can only chat: paste your last few orders and ask for this week's list each Thursday; edit it in the chat and shop from it yourself.
Build
- 1. Read: on the chosen evening, load order history.
- 2. Decide: an item is a staple once bought 3 or more times with an average interval of 45 days or less. It is due when its interval runs out within the next 4 days. No model here: this is arithmetic.
- 3. Deliver (draft): send the list to the chat. Edits come back in plain words: "add strawberries, skip cilantro".
- 4. Deliver (approve): on an explicit "go", the browser agent searches each item, prefers the exact product bought before, and allows a same-brand size swap if out of stock. Cap each run at 10 minutes and a few dollars of compute. It stops at the cart; a human checks out.
Check
- Run the draft step only on last month's history; every item must show its order count and interval.
- Approve a 2-item list into an empty cart and confirm both landed, nothing else.
In my version
- Status: building. Whole Foods via Amazon order history; draft and edits in our Telegram family group; cart filled by a Browser Use cloud agent in a saved signed-in profile.
Built this with your AI? Tell Nikunj how it went.
5Close out my company card expenses
A review file of every proposed category, memo and receipt for last month's card spend, plus a short list of questions. Writes happen only after I approve.
34 transactions. 27 ready to write, 4 need you, 3 missing receipts. Needs you: $48.20 at a cafe, Tue 2pm. No meeting on the calendar then. Who was it with?
How to borrow it
- Reads
- the company card's transactions, work email and texts, for receipts, my calendar, for who I met
- Done when
- I approve the list; it writes only empty fields and re-reads each one
- Runs on
- a script on my laptop
Ask first
- Which expense tool, and does it have an API or command-line tool? (default whatever your company card uses)
- Which date window? (default last month)
- Which fields must be complete? (default category, memo, and a receipt where policy requires one)
- Memo style? (default "Coffee with <name>, <role> at <company>" for meals; "Parking in <city> for meetings" for transport)
- Never overwrite what is already filled in? (default yes)
Needs
- Read and write access to the card's transactions. Say: "It fills empty fields only and writes nothing until you approve the full list."
- Receipt sources: work email and text messages (many receipts arrive as a text link). Your calendar, to see who you met.
- Your past coded transactions, so it learns your categories and memo style first.
- If your assistant can only chat: paste the export of uncoded transactions and your calendar for those days; it drafts category and memo for each and you type them in.
Build
- 1. Read: pull every transaction in the window; skip the ones already complete.
- 2. Decide (match): for each gap, look for a receipt by merchant, amount and date within 3 days in email and texts. Match the calendar event at that time and place to name who the meal was with.
- 3. Decide (fill): choose the category your past coding uses for that merchant. Write the memo in your style. If no calendar match explains a meal, leave the memo blank and add it to a questions list; do not write a vague memo.
- 4. Deliver (review): one file listing every proposed write and every question. Nothing is written until you approve it.
- 5. Deliver (write): after approval, write only empty fields, then re-read each transaction to confirm the write stuck. Report anything the tool refused.
Check
- Run with writes off on last month; every proposed memo must cite the calendar event or receipt it came from.
- Plant a near-miss receipt (right merchant, wrong amount): it must be flagged, not attached.
- Run again after writing: zero proposed writes.
In my version
- Ramp's command-line tool, a script on my laptop, Claude running the judgment steps. Receipts from work Gmail and iMessage. Policy at [Company] requires the person's name and company in meal memos.
Built this with your AI? Tell Nikunj how it went.
6Register office guests with the building
Outside guests on my office meetings are registered with the building's visitor system before they arrive. A direct message tells me when each one checks in.
Your 10:00 guest Sam Rivera has checked in at the lobby.
How to borrow it
- Reads
- meetings I organize at the office
- Done when
- the guest checks in and I get a message that they are downstairs
- Runs on
- a script in my calendar
Ask first
- How does your building register visitors? (default a web portal for tenants)
- Which meetings count? (default ones you organize, at the office address, with guests from outside your company)
- How long before and after the start should the pass work? (default from the start time to 60 minutes after)
- Tell you when a guest checks in? (default yes, a direct message)
Needs
- Your calendar, read only. Say: "It looks only at meetings you organize at the office, and only at guest names and emails."
- A way to create a visit in the building's system. Many have no API; the agent then drives the portal the way a person would, logged in with your tenant account.
- If your assistant can only chat: each Monday, paste the week's office meetings and ask it to list the guests to register; you enter them yourself.
Build
- 1. Read: every 15 minutes, load the next 7 days of your calendar.
- 2. Decide: keep events you organize, whose location matches the office address, with at least one guest outside your company's email domain. Name each guest from their calendar display name, then past visits, then the part of the email before the @.
- 3. Decide (dedup): skip guests already registered for that day; remember each created visit by event and guest. If the event moves, cancel and recreate; if it is deleted, cancel the visit.
- 4. Deliver: create the visit for the event's start time, rounded down to the portal's time grid, with a 60-minute entry window and you as host.
- 5. Close: poll today's visits every 2 minutes; when a guest flips to checked in, send you a direct message: "Your 10:00 guest has arrived."
Check
- Run against next week with creation off; list every visit it would make and why.
- Create one test visit for a colleague and cancel it.
- A week with no external office meetings creates nothing.
In my version
- Google Apps Script in my own calendar, calling a small service on Railway that drives the building's visitor portal. Arrival messages land in Slack. A slash command in Slack covers guests who are not on the calendar.
Built this with your AI? Tell Nikunj how it went.
7Pressure-test a pitch deck with my questions
The ten questions I would most likely ask about a deck, each tied to a slide, plus the weakest slide and what to prepare.
1. Slide 6 says 40% month-over-month. What were these customers using before you? (What a strong answer sounds like: names the old tool and why they switched.) Weakest slide: 9, the market size. It is top-down; show the first 100 customers instead.
How to borrow it
- Reads
- a pitch deck
- Runs on
- a chat assistant, when asked
Ask first
- Whose questions should it ask? (default yours, built from your own meeting notes; or start from a published investor's)
- How many questions back? (default the 10 sharpest)
- Who will use it? (default founders preparing to pitch)
Needs
- To build your own: notes or transcripts from 20 or more of your pitch meetings, from a meeting recorder or your own notes.
- A deck as a PDF or slides.
- If your assistant can only chat: paste the question bank and principles as instructions in a chat project, then upload a deck; that is the whole routine.
Build
- 1. Read (once): go through your meeting notes and pull every question you asked a founder, with the slide or claim that set it off.
- 2. Decide (once): cluster them into 8-12 recurring lines of questioning in your own words, with the follow-up you push on when the first answer is soft. Write down the bar each one tests. Drop generic ones ("what is your go-to-market?") unless you push on them in a specific way.
- 3. Read (each use): the founder's deck.
- 4. Decide: for each line of questioning, find the slide or the gap it hits. Ask the question as you would, quote the slide, say what a strong answer sounds like.
- 5. Deliver: a ranked list of the 10 questions most likely to come up, the weakest slide, and what to prepare. Warm, not a takedown.
Check
- Run it on a deck you have already passed on or invested in; the questions should match the ones you actually asked.
- Run it on a strong deck; it should still find the softest claim, not invent problems.
In my version
- Packaged as a public skill anyone can install; question bank distilled from my recorded pitch meetings. A second skill helps other investors build theirs.
Built this with your AI? Tell Nikunj how it went.
8Find the best points-or-cash option for a trip
A short trip plan comparing award and cash options, valued in cents per point, with the one to book and how to transfer points.
SFO to Tokyo, Mar 20-29, 2 in business. Book: 75k points each via a transfer partner, 3.1 cents per point vs $5,900 cash. Cash backup: $2,850 each, nonstop. Hotel: pay cash, points value is 0.8 cents.
How to borrow it
- Reads
- award availability, cash fares and hotel rates, my points balances
- Runs on
- a tool I built, when I ask
Ask first
- Which points and miles balances do you hold? (default ask once and store them)
- Cabin and how much flexibility on dates? (default business, plus or minus 2 days)
- What is a point worth to you? (default about 1.5 cents for flexible bank points)
- Hotels too? (default yes)
Needs
- Award availability sources: an award-search service with an API, or the airline sites themselves through a browser.
- Cash prices for the same trip from a flight and hotel search.
- Your balances and which programs they transfer to.
- If your assistant can only chat: give it your balances once, ask for the trip, then paste screenshots of award search results; it does the cents-per-point math and picks.
Build
- 1. Read: take the trip in plain words ("SFO to Tokyo, late March, two of us, business") and turn it into airports, dates and travellers. Confirm before searching.
- 2. Read: search award space across programs and cash prices for the same dates, in parallel. Batch nearby airports and the date range into one query per source.
- 3. Decide: for each option, cents per point = (cash price minus taxes and fees) divided by points. Drop options you cannot reach with your balances and transfer partners. Flag anything below your floor value as "pay cash".
- 4. Deliver: a short plan: best points option, best cash option, and the one to book, with the transfer steps and a booking link. Note seats left when shown.
Check
- Search a route and date you have booked before; the price it shows should match within reason.
- Ask for a trip your balances cannot cover; it must say so and recommend cash.
In my version
- A command-line tool and a voice web app I built on top of several award search services plus cash flight and hotel search. Run when planning any trip.
Built this with your AI? Tell Nikunj how it went.
9Make up a bedtime story with my kid, out loud
A five-page picture book my child narrates out loud, with a page painted after each turn.
Narrator: Where does Milo go first? Child: To the moon, with a dog! [Page 2: Milo and a spotted dog stepping onto a silver moon] Narrator: What do they find there?
How to borrow it
- Reads
- my child's voice
- Runs on
- a voice app, when asked
Ask first
- How old is the child? (default 3-7)
- Should the child appear in the pictures? (default no; yes only with a parent's photo, never stored online)
- How long? (default 5 pages)
Needs
- A voice assistant that can listen and talk back, and an image model for pictures.
- If your assistant can only chat: open voice mode, give it the instructions below, and let your child talk to it; skip the pictures or describe them in words.
Build
- 1. Read: start by asking the child's name and spelling it back letter by letter; wait for a clear yes before using it.
- 2. Decide: the narrator asks the child what happens next at each turn and builds the story from the answers. Keep it gentle: no peril that would scare a small child at bedtime; steer away and keep going.
- 3. Deliver: after each turn, paint one page that matches what the child just said, with the same hero on every page.
- 4. Close: after 5 pages, wind down with a calm ending and say goodnight.
Check
- Play it yourself as a child for one story; the hero must look the same on every page and the ending must be calm.
- Say a name the model is likely to mishear; it must not go on until you confirm the spelling.
In my version
- A web and iPhone app I built on a live voice model and an image model, used with my kids at bedtime.
Built this with your AI? Tell Nikunj how it went.
Runbook updated 14 October 2026
