elliot nah Resume
← All work

Open source · 2026

Gmail Brand-Inquiry Automation

Brand emails get a reply written in her own voice before she has even opened her inbox. She reads it and hits send.

A drafted reply to a brand collaboration email, offering the rate card and a Stories-only alternative, with the rate card PDF attached
A real draft, with names removed: rates, a counter-offer, and the rate card attached.

The problem

Another brand email. They love your content. What are your rates?

You've answered it a hundred times: find the rate card, attach it, explain what you will and won't do for a gifted collab, sign off nicely.

Meanwhile the one brand with a real budget is buried under newsletters, and gets its reply three days late.

For a content creator, that inbox is the income. It's also the part of the job nobody wants.

What I built

A tool that lives inside her own Google account. Every ten minutes it checks Gmail, picks out the real brand inquiries, and leaves a finished reply as a draft in the thread.

  • First contact gets her rates, the rate card attached, and a gifted option for Instagram Stories.
  • Follow-ups are read with the whole thread as context, so each reply fits where the conversation is.
  • Every inquiry is logged to a Google Sheet, a running list of brand contacts and budgets.

What makes it special

  • It sounds like her. I taught it her tone and what each kind of reply needs. The drafts don't read like AI. They read the way she would have typed them.
  • She stays in control. Plenty of people don't trust AI to speak for them. So it only ever writes drafts, and nothing goes out until she has read it.
  • A daily rundown at 6pm. A Telegram bot tells her who reached out, what is urgent, and what can wait.
  • It knows when to stop. One draft per message. If a brand passes, the thread ends there.

Under the hood

  • Google Apps Script. Plain JavaScript running inside her Google account on a ten-minute trigger. There is no server to host or maintain.
  • Claude API with structured outputs. One call classifies the email, pulls out the details and writes the reply, returned as JSON against a fixed schema so the code never has to guess at the format.
  • Labels as state. Gmail labels record what has been handled. That is what guarantees one draft per message.
  • Sending is off in code. The draft-only rule is enforced in the script itself, not left to a setting.
  • Sheets and Telegram. Every decision is appended to a Google Sheet, and a second Claude call turns the day's rows into the evening digest.

The result

She opens her inbox to replies that are already written, checks them, and sends. The code is public, with setup steps anyone can follow in about fifteen minutes.

Built for
A working content creator
My role
Design and build
Built with
Google Apps Script (JavaScript), Claude API, Gmail, Google Sheets, Telegram
Code
Open source on GitHub