The traditional onboarding buddy is a lovely idea with a tragic flaw: the buddy has a job. Day one looks warm on paper — a friendly veteran assigned to show the newcomer the ropes — and falls apart by 10 a.m., when the buddy gets pulled into a planning meeting and the new hire is left staring at a wiki that was last accurate in 2023.

So one team tried something slightly heretical. Instead of assigning a person, they assigned a bot. They named it Sprout, gave it a small green leaf for a face, and pointed it at every new hire's very first morning. The experiment was supposed to be a stopgap. It quietly became the best onboarding the team had ever run.

The problem with a human buddy

Buddies are generous and busy in equal measure. The questions a newcomer actually has — Where do expense reports go? Is it weird to DM the CTO? What does this acronym mean? — arrive in a steady trickle across two weeks, never in a tidy lump during the one scheduled coffee chat. By the time the question shows up, the buddy is heads-down on their own deadline, and the newcomer decides it's easier to just guess.

The result is the universal first-week feeling: a quiet backlog of unasked questions, each one slightly too small to justify interrupting a real person, and collectively large enough to make someone feel lost.

What Sprout actually does

Sprout is not clever. That is the entire point. At 9:00 a.m. on day one, it slides into the new hire's DMs with a single, un-intimidating message: a welcome, a name, and exactly one thing to do first. Not a forty-item checklist. One thing. Set up your laptop. The next task doesn't appear until that one is checked off.

A Slack direct message thread where a friendly green bot drips an onboarding checklist to a new hire, with the first couple of items already checked off
Not a wall of tasks dumped on day one. One nudge at a time, in the place the new hire already lives.

Over the following two weeks, Sprout drips the rest: meet your team channel, book a 1:1 with your manager, read the three documents that actually matter (and none of the forty that don't), submit your first tiny pull request by Friday. Each task lands the morning it becomes relevant, not all at once on an overwhelming first day.

The drip, not the dump

The mechanism is almost embarrassingly simple. Sprout keeps a little schedule of tasks per new hire and posts the next one when the previous gets a checkmark reaction. Slack's scheduled messages handle the timing; a reaction handler advances the queue. There is no machine learning anywhere in sight.

sprout-onboarding.ts
async function greetNewHire(userId: string) {
  const dm = await client.conversations.open({ users: userId });
  const channel = dm.channel!.id!;

  // Day one: one task, not forty.
  await postTask(channel, onboardingPlan[0]);

  // Drip the rest on the mornings they actually matter.
  for (const [index, task] of onboardingPlan.slice(1).entries()) {
    await client.chat.scheduleMessage({
      channel,
      post_at: nineAmOn(addBusinessDays(index + 1)),
      text: `${task.emoji} ${task.title}`,
      blocks: taskCard(task),
    });
  }
}

// React with ✅ and the next task unlocks. That's the whole engine.
app.event('reaction_added', async ({ event }) => {
  if (event.reaction === 'white_check_mark') {
    await unlockNextTask(event.user, event.item.ts);
  }
});

The newcomer experiences none of that plumbing. To them, Sprout simply seems to know what they need, the morning they need it — like a buddy who, for once, isn't in a meeting.

The safe place to ask a dumb question

The unexpectedly powerful part wasn't the checklist. It was the DM itself. A private message to a bot is the lowest-stakes place in the entire company to ask something. Nobody is judging. Nothing is logged in a channel where the whole team can see that the new person doesn't know what staging means.

Sprout answers what it can from a small bank of frequently-asked answers, and when it can't, it does the one thing a good buddy does: it gracefully hands the question to a real human, with context, so the newcomer never has to repeat themselves. The question that would have gone unasked now gets answered, and the answer quietly gets added to Sprout's bank for the next person.

The best onboarding buddy is the one who is never too busy, never makes you feel stupid, and remembers everything. Turns out that's a fairly low bar for software and a fairly high one for a human having a bad week.

The manager who expected this experiment to fail

Where the bot stops and the human starts

Sprout does not replace the buddy. It replaces the parts of the buddy that were always going to be neglected — the logistics, the reminders, the trivia — and frees the human to do the part that actually needed a human. The new hire still gets a real person to grab lunch with, to ask the unwritten cultural questions, to feel like a colleague rather than a ticket. They just get that person without also depending on them to remember where the expense form lives.

The teams that got this wrong tried to make the bot do everything, including the warmth. A bot can be friendly; it cannot be a friend. The ones who got it right drew a clean line: Sprout owns the checklist, the human owns the welcome.

The number that surprised everyone

Across a cohort of new hires, time-to-first-pull-request dropped by nearly half once Sprout took over the logistics. Not because the newcomers were faster coders, but because they stopped losing days to not knowing what to do next. The questions got answered the morning they appeared instead of festering until the next scheduled check-in.

None of this required a fancy agent or a roadmap. It required noticing that the most reliable presence in a new hire's first two weeks was never going to be a busy colleague — it was going to be the chat app already open on their screen. Sprout just showed up there, on time, every morning, with exactly one small thing to do. The new hire never noticed the buddy was a bot. They only noticed they never felt lost.