Weekly
Get this week's work anniversaries by email
Each Monday you know whose anniversary is coming, in time to say something.
- Runs
- Weekly
- Apps
- BambooHR
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every Monday at 8am, email me everyone in BambooHR whose work anniversary falls this week, with how many years they've been here.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Recognition of work anniversaries and birthdays costs little and matters more than most managers expect, but it depends on someone remembering. HR keeps the dates in BambooHR, and the manager of a 25-person team keeps a mental list that is always out of date. A person who completes five years at the company gets no acknowledgment, while the person who joined last month is noticed. People talk about this kind of oversight, and it affects retention.
Each week, ClickRuntime fetches your BambooHR employee directory with hire dates and birthdays, picks out those that fall in the coming week and emails you a list. You receive names, dates and years of service, so you can prepare a card, a message or a small gift.
It is a good fit for managers and office teams that want recognition to happen without a shared spreadsheet. Office managers who buy cards and small gifts usually take over the email.
What you get out of it
Milestones are acknowledged on time
Five and ten year anniversaries are rare and meaningful. A reminder a week in advance lets you plan something thoughtful instead of apologizing for forgetting. The gesture is thoughtful instead of apologetic.
Recognition feels consistent across the team
When everyone is on the list, nobody is overlooked. Consistency matters more to people than the size of the gesture, and it reduces quiet resentment. Consistency matters to people more than size.
Retention benefits from small signals
Employees who feel noticed are more likely to stay. A short personal message on an anniversary costs minutes and shows that the company keeps track of people, not just output.
Planning ahead beats last-minute scrambling
Knowing the dates a week early gives time to order a card, set a calendar reminder or coordinate a team message. Gifts and notes do not turn into rushed afterthoughts.
No separate list to maintain
The dates come from the HR system, which is already kept current. You never need to ask for a spreadsheet or update one when someone joins or leaves. The data stays current without extra effort.
How it works
What happens, step by step
Every Monday, ClickRuntime reads your BambooHR directory with everyone's hire date.
It finds the people whose work anniversary falls this week.
You get an email listing each day, the person and how many years they have been with you.
Before it runs live
- Connect BambooHR
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other BambooHR steps into one automation
Under the hood
The code that runs this automation
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify
COMPANY = "northwind"
@on_trigger
def run(event):
resp = http.post(f"https://api.bamboohr.com/api/gateway.php/{COMPANY}/v1/reports/custom",
auth=(credentials.secret("BAMBOOHR_API_KEY"), "x"), params={"format": "JSON"},
headers={"Accept": "application/json"},
json={"fields": ["displayName", "hireDate", "status"]})
resp.raise_for_status()
monday = date.today() - timedelta(days=date.today().weekday())
week = {(monday + timedelta(days=i)).strftime("%m-%d"): monday + timedelta(days=i) for i in range(7)}
lines = []
for e in resp.json()["employees"]:
hired = e.get("hireDate") or ""
if e.get("status") == "Active" and hired[5:] in week and int(hired[:4]) < monday.year:
years = week[hired[5:]].year - int(hired[:4])
lines.append(f"{week[hired[5:]]:%a %d %b}: {e['displayName']}, {years} year{'s' * (years > 1)}")
if lines:
notify.email_me("Work anniversaries this week", "\n".join(sorted(lines)))
return {"anniversaries": len(lines)}FAQ
Common questions
Does it show people's age?
Which week does it cover?
Can it go to someone other than me?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post who's out today to Slack
Every weekday morning your team sees who is on leave, so nobody waits on a reply that won't come.
See how it worksGet an email for every new time-off request
You hear about each leave request within 15 minutes, so you can approve it or plan cover.
See how it worksAnnounce new starters and flag leavers
New starters get a welcome post in Slack, and you get an email when someone's employment ends.
See how it worksKeep exploring
Set up “Get this week's work anniversaries by email” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
