Skip to content
Back to work
On this page
  1. The problem
  2. What I built
  3. Everything it does
  4. The result

Bilingual school · AI writing assistant · Buenos Aires · 2025

School announcements in five minutes

Bayard Writer is the AI writing assistant I built for Colegio Bayard: it drafts the school's family communications in its exact voice, and it cut the time per message from about an hour to under five minutes.

Why a generic AI falls short

Bayard sends a lot of email to families: event invitations, schedules, trip logistics, fee updates, sensitive notices. Each one has to sound like the school and no one else. Warm but formal, its own institutional 'we,' inclusive language written a specific way, the internal terms and course codes only they use. The team wrote every message by hand, from a blank page, and it ate whole afternoons.

A generic AI drafts fast, but it drafts like an AI, which is the one thing a school does not want in front of its families. Ask it for 'warm and professional' and you get a corporate email straining to sound close. A seventy-year-old institution's voice does not live in an adjective. It lives in what it has already written.

How I encoded the school's voice

I stopped asking for descriptions and went to the source. Running code in Google Colab against the Mailchimp API, I pulled more than 3,500 of the school's real campaigns. Then I sorted them by hand, because they are not one voice but several, and grouped them into nine families: events and celebrations, operational logistics, trips and camps, fees and admissions, academics, House assignments, family workshops, institutional newsletters, and the sensitive crisis notices.

Each family writes differently, so I built a voice profile for each one. An event invitation is festive, with emojis and a clear call to confirm attendance. A fee update is short and dry, no emojis, signed by administration. A crisis notice is solemn and signed by the board. Then I encoded everything that makes an email sound like Bayard: the exact openings, the institutional 'we,' the inclusive-language rule, the school's own vocabulary (the Houses, course codes like P5 and S2), date formats, what each emoji means, and which signature each kind of message carries.

Those nine families now live inside the system as a role-filtered category taxonomy, and the voice rules sit in context files that assemble in a fixed order before every draft. The model does not invent the voice. It is encoded, based on real communications from 2024 to 2026.

bayard-writer.vercel.app/chat/docentes
Bayard Writer Teachers

What do you need to write today?

Pick the type of announcement.

EventsEducational outingsMaterialsFeesAcademics
You P4 field trip to the Science Museum on Thursday, September 18. We leave at 8:30 am and are back by 1 pm. Bring a packed lunch and a hat.
Here are three titles:
Trip to the Science Museum 🔬P4 visits the Science MuseumWe are off on a field trip 🚌
✉ Announcement readyCopy
SUBJECT: Trip to the Science Museum 🔬
Dear families:
On Thursday, September 18, our P4 students will visit the Science Museum.
🕐 We leave at 8:30 am and are back by 1 pm. 🥪 Please send a packed lunch and ☀️ a hat.
[TO COMPLETE: entrance fee, if applicable]
Kind regards, P4 TEACHERS
📌 Attach the signed permission slip if the trip needs one.
📌 Suggested review: Level Directorate.
Bayard Writer writes in the school's exact voice: the institutional "we", dates and sign-offs the way Bayard uses them, and not one made-up detail.

Everything Bayard Writer does

  • Three profiles by role (Teachers, Leadership, CEI): same base voice, different signature and available categories.
  • A chip-guided flow, not a free prompt: pick category, audience and length, then describe the event.
  • Two turns: first three titles to choose with a click, then the full announcement.
  • Voice by category: each type brings its own tone, emojis, signature and checklist.
  • Length as a real ceiling: Short, Medium or Long injects the exact character count into the model.
  • A never-invent-facts rule: if a date or amount is missing, it writes [COMPLETAR: ...] instead of hallucinating it.
  • Sensitivity modulator: for delicate notices it hardens the tone, drops emojis and signs as the board.
  • Review tips at the foot of each notice: what to attach, who to coordinate with, who reviews before sending.
  • Copy with formatting: pastes with bold and bullets intact into Gmail, Word or Bayard Hub.
  • It runs on the school's own Claude: the data stays in its account and you pay only for what you write.
  • An admin panel: role-based access and usage metrics (tokens, cost, conversations) by role and by user.

“What I value most is that it didn't end with the handover. The assistant kept adding features based on what we needed day to day, and some of them we hadn't even thought to ask for.”

— Catalina · Directora de Comunicación e Imagen, Colegio Bayard
bayard-writer.vercel.app/admin
Bayard Writer Admin panel ↻ Refresh☀ Theme← Home🔒 Log out
  • Teachers · 34 active users · Tokens this month 1,284,500 · Conversations 212
  • Cost this month US$4.87 (Teachers only) · Total account spend US$61.40 (all 3 roles, historic)
  • m.gonzalez@bayard.edu.ar · Tokens this month 486,200 (bar ~24%) · 18 conv. · 27 logins · View history →
  • p.fernandez@bayard.edu.ar · Tokens this month 1,760,000 · orange bar ~88%, near the 2M cap
TeachersDirectorsCEIView history →

I deliberately split "Cost this month" (that role, this month) from "Total account spend" (all 3 roles, historic): the total is what I check against the Anthropic balance, without mixing the month with the running total.

  • m.gonzalez@bayard.edu.ar · 18 conversations · 27 logins · 1,930,400 tokens
  • Conversation: "Family notice · Parent meeting 3rd grade" · 11/08 15:42 · 3,240 tok · 6 msg
  • User: "notice that the May 25 ceremony moves to the 26th" · Assistant: notice written and formatted
  • Login log: 12/08 09:14 · 11/08 08:03 · 08/08 14:20
Open thread✕ Delete conversationClose (Esc)

The text is cleaned for reading: internal markers ([[COMUNICADO]], [[TITULOS]]) and markdown are stripped. Deletion is always scoped to the open user email; there is no unfiltered conversation DELETE.

  • Directors · "Panel" badge · 4 emails: direccion@, vicedireccion@, secretaria@, regencia@bayard.edu.ar
  • CEI · "Vercel" badge · "Import 6 to Supabase" button to make them manageable here
  • Add: "nuevo@bayard.edu.ar" input + Add (regex-validated email, idempotent by email and role)
  • Modal "View all" for Teachers: 34 emails, search and chips, click ✕ to remove
Add✕ RemoveImport to SupabaseView all

What I edit here hits the assistant login right away: Supabase wins as soon as there is one email for the role; if empty it falls back to Vercel env vars, and if both are empty it denies. Importing seeds the old emails first, so nobody gets locked out at once.

  • Login: password field (autofocus) + Sign in; clear error "Wrong password"
  • Single password (ADMIN_PASSWORD) compared in constant time, so timing cannot leak it
  • Session via HMAC-signed cookie, httpOnly, secure, 12 hours; any 401 reloads to login
  • Without a password the panel shows "not configured"; without a database, data returns a friendly 503
Sign inLog out↻ Refresh

There is no separate cookie secret: it is an HMAC of the expiry signed with the password itself, so changing the password invalidates every session. All data access uses the service key on the server only, with RLS on.

The school runs the assistant on its own: who gets in, how much it is used, and what was written, all from the panel with no outside dependency.

From an hour to five minutes

Drafts come back recognizably the school's, by category, in minutes. What used to take close to an hour per message now takes under five: the team edits instead of writing from scratch.

The safe, repetitive categories move on their own. The delicate ones still get a human read before they go out, by design: the assistant does the voice, the people keep the judgment.

And it left a pattern I use on every project: load an organization's full context into the AI so what comes out is unmistakably theirs, not every other AI's.

“Bayard Writer completely changed our internal communication. What used to be days of back-and-forth between directors and teachers now gets resolved in minutes. And with families and students, every message goes out clear, on time, and in the school's voice.”

— Catalina · Directora de Comunicación e Imagen, Colegio Bayard

Tell me what's eating your day

If any of this sounds like yours, tell me how you're handling it today and I'll tell you what can come off your plate.

New message

To: Federico Medinilla

Subject: School announcements in five minutes

Two or three lines is plenty. Screenshots or an example can come later.

It comes straight to me. No mailing list.