Daily birthday and work anniversary shoutouts in Slack from CharlieHR

By General Input

Every morning at 9am, post a warm, personalized shoutout in your celebrations channel for anyone with a birthday or work anniversary today, pulled straight from CharlieHR.

Integrations

  • CharlieHR
  • Slack Bot

Type

Agentic Task

Categories

  • HR & People
  • Operations

Build me an agent workflow that posts warm, personalized birthday and work anniversary shoutouts to a Slack channel every morning, sourced from CharlieHR so HR doesn't have to maintain a separate list.

Trigger: cron, every day at 9:00am in our local timezone.

What the agent should do each run:

1. Walk the full CharlieHR team directory using List Team Members (paginate until done), then use Get Team Member for each person to pull their date of birth and start date. Skip anyone who is archived or no longer active.

2. Build today's celebration list. Match on month-and-day, not the full year. Include anyone whose date of birth falls on today's month and day. Also include anyone whose start date hits a full-year milestone today: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 years, and any further full-year mark beyond that. Do not include partial-year anniversaries like 6 months.

3. For each person on the list, draft a unique celebratory message. Never use a copy-paste template. Reference the specific milestone in plain English (for example, "celebrating 3 years at the company today" or "happy birthday"), tag the person, and keep the tone warm, short, and genuine. If both their birthday and a work anniversary land on the same day, combine them into one post for that person.

4. Post each shoutout as its own separate message in the configured Slack channel (default #celebrations) using the Slack Bot Send a Message action. One person per message, so reactions land on the right post.

5. If nobody qualifies today, do nothing. Do not post a "no celebrations today" message and do not send anything to Slack at all.

Inputs I want to be able to tweak without rebuilding: the Slack channel name, the run time, which weekdays it runs, and the set of anniversary milestones to celebrate. Default to every full year.

The agent's main job is writing quality. Each post should feel like a thoughtful human wrote it that morning, not boilerplate. Vary the openings, the emoji, and the phrasing across people.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them