Back to Projects

Briefcase

Send a take-home assignment to every candidate at once — one personalised email each, with a searchable record of who got what.

Overview

Briefcase takes a list of candidates however you happen to have it, writes the assignment email with you, and sends each person their own copy with the brief attached — then keeps a searchable record of every send. It exists for the moment a week later when someone asks "did we actually send it to Priya?"

Features

  • Paste addresses separated by commas, spaces or new lines
  • Paste Name <email> pairs
  • Paste rows straight out of Excel or Google Sheets
  • Import a CSV
  • Duplicates are removed automatically
  • Names are pulled out of the pasted list automatically
  • Anything it can't read is shown back to you rather than silently dropped, so a typo becomes something you fix
  • Describe the assignment in a sentence and let AI draft the subject and body
  • Edit the AI draft however you like — or skip it and write the email yourself
  • Each candidate's copy is personalised with their name in the greeting, the deadline and the role
  • One email per person, sent individually — never a shared BCC, so no candidate can see who else is on the list
  • The PDF brief is attached to every email
  • Sending is paced so mail providers don't throttle you
  • Failures are retried automatically
  • Anything that still won't deliver is reported with the actual reason — a wrong address, a full mailbox — rather than a silent gap
  • A live progress panel ticks through the list, marking each address delivered or failed
  • Stop a run partway through
  • A per-recipient report when the run finishes
  • Every email ever sent is searchable by candidate, subject, hiring domain, status and date
  • Tag each batch with the hiring domain it's for, and the history breaks down by domain — people, sent and failed
  • Click any domain row to filter everything to it
  • A second breakdown groups by email provider, so a provider-specific deliverability problem is visible rather than mistaken for candidates ignoring you
  • Download any view as CSV

The problem

You're hiring for a Flutter role. You have a PDF brief, forty shortlisted candidates, and a deadline. Doing this by hand means forty copy-pasted emails, forty chances to attach the wrong file or address someone by the wrong name, and no reliable answer a week later when someone asks whether it actually went out. Mailing everyone at once with a bulk BCC solves the tedium and creates a worse problem: every candidate can see who else you're considering.

History and reporting

  • Tracking by hiring domain — each batch is tagged with the role it's for, and the history breaks down into people, sent and failed per domain.
  • Clicking a domain row filters everything to it, so "how many people did we send the Python assignment to, and did they all get it?" is one click rather than an archaeology expedition through a Sent folder.
  • A second breakdown groups by email provider instead. If Gmail shows 4/6 while every other provider is clean, that's a deliverability problem on your side — not four candidates who ignored you.

Tech stack

Node.js 20+Express 5NodemailerMulterAnthropic Claude APIOpenAI APIdotenvRender

Tagged

Node.jsExpressNodemailerAI
Get in touch