Blog / Triage & routing / FIG. 87
Triage Meeting Requests Automatically
AI meeting triage for founders: a calendar request filter that sorts, asks for agendas, and queues replies, while you still decide who gets your time.
"Quick call?" is the most expensive two-word email in business. It has no agenda, no stated outcome, and a calendar link that assumes your time is free. AI meeting triage doesn't fix that by booking faster. It fixes it by reading the request first and sorting it before you ever see it.
This recipe builds that filter with Jev, the decision model from TypeSafe AI (what that is). Where this fits in a founder's broader automation stack is the Jev for founders page's job; this page is one machine from that stack, built end to end.
The four buckets of AI meeting triage
Every meeting request lands in one of four places:
- Yes-shaped: a customer, investor, candidate, or partner with a clear purpose. Goes to you for a quick confirm.
- Needs an agenda: plausible, but vague. Gets a polite "what would you like to cover?" draft.
- Async-able: the question could be answered in an email or a doc link. Gets a draft reply offering that.
- Decline-shaped: cold sales, unsolicited "partnerships," link-building. Goes to a low-priority folder.
Nothing gets accepted, declined, or sent automatically. The triager sorts and drafts; you press the button. That's the whole design.
Step 1: detect the request, then ask
Start upstream. If you already sort email, add one question to the existing pass. If not, the email classification page covers the general pattern, and builders report inbox-scale sorting at pocket-change prices: 500 emails classified for about 3.5 cents, as reported (build).
- Is the sender asking for a call, meeting, or calendar time? (yes/no)
Only yes messages go further. For each meeting request, ask a small battery:
- Who is the sender, relative to us: customer, prospect, investor, candidate, vendor, unknown? (choice)
- Is a specific purpose or topic stated? (yes/no)
- Does it name a concrete outcome, decision, or deliverable? (yes/no)
- Could this be handled in writing: a question, a link request, a status check? (yes/no)
- Is it unsolicited selling? (yes/no)
Include the thread history and, if you have one, whether the sender exists in your CRM. "Unknown sender, no purpose, selling" is not a hard case.
Step 2: map answers to buckets in code
The model answers questions; your code decides the bucket. Keep the mapping readable, because you'll tune it. Pseudocode only; per ecosystem documentation, Jev is reached through the Vercel AI Gateway as typesafe-ai/jev, and docs.typesafe.ai has real syntax.
# pseudocode, not real API syntax
v = judge(thread_text, MEETING_QUESTIONS)
if v.selling and v.sender in (vendor, unknown): bucket = decline_shaped
elif v.could_be_written: bucket = async_able
elif not v.purpose_stated: bucket = needs_agenda
elif v.sender in (customer, investor, candidate): bucket = yes_shaped
else: bucket = needs_agenda
if lowest_probability(v) under 0.7: bucket = review_manually
That last line matters. A low-confidence verdict doesn't get a bucket; it gets you.
Step 3: split the drafting
Jev doesn't write text, so replies come from somewhere else. Use templates for the common cases ("Happy to help, could you share what you'd like to cover?") or a chat model for tailored drafts. The decision model picks which reply; a generative model or a template writes it. Drafts sit in your outbox until you send them.
For yes-shaped requests, the triager can suggest times from your calendar. It should never place a hold or accept an invite by itself. Calendar commitments are other people's time too.
Step 4: review the misses weekly
Keep a log: request, bucket, and what you actually did. Every Friday, skim the rows where your action disagreed with the bucket. Usually one question is doing the damage, often "could this be handled in writing," which tends to over-fire on genuine relationship calls. Reword it, re-run it on the week's requests, compare.
Two honest limits. First, a vague email from your biggest customer is still your biggest customer; weight sender identity above phrasing. Second, there are no official Jev benchmarks for this, so your weekly log is the only accuracy number you'll have.
After a month, the "quick call?" emails stop landing on your calendar and start landing in a folder with a polite agenda request already drafted. Real meetings still happen. They just arrive with a reason attached, and the rest become emails, which is what most of them wanted to be.
Frequently asked questions
What is AI meeting triage?
A filter that reads incoming meeting requests, answers a few closed questions about sender and purpose, and sorts each into a bucket with a draft reply. A person still accepts or declines.
Can a calendar request filter decline meetings for me?
It can draft the decline, but sending should stay manual. Replies and calendar changes affect other people and shouldn't happen on a single model verdict.
Does Jev write the reply emails?
No. Jev only returns decisions, so replies come from templates or a chat model. The founders page shows how this fits with the rest of the inbox stack.
How accurate is it?
There's no official benchmark; measure it on your own requests. Log each bucket against what you actually did and fix the question that disagrees most.
Numbers throughout are as reported by the build authors, not verified by shipwithjev. Code-shaped examples are pseudocode; the official docs live at docs.typesafe.ai.