The automation is usually the easy part. Joining systems together is where it breaks — and it breaks quietly, leaving your records wrong rather than obviously broken.
One system owns each thing
Your hiring system owns where each candidate is. Everything else reads from it and asks it to change.
The moment two systems both think they own the same fact, they will disagree. Nothing will warn you. One of them will simply win, and which one wins may change from day to day.
So decide, field by field, which system is allowed to write it. If the booking tool sets the interview time, your hiring system does not. If your hiring system owns the stage, nothing else touches the stage. Do this on paper before you connect anything.
Two ways to find out something happened
You can keep asking, or you can be told.
| Keep asking | Be told | |
|---|---|---|
| How fast | As slow as your checking gap | Almost at once |
| Missing things | Rare. You re-read the current state each time | Possible. A message can get lost |
| Effort | Constant, mostly wasted | Only when something happens |
| How it fails | Falls behind | Misses one event, silently |
Use both. Be told, so it is fast. Then check every so often, so nothing stays lost.
Logins and permissions
- Connect as a system account, not as a person. A link set up under a recruiter's login stops working the day they leave — and until then it acts with everything they can see.
- Ask for as little access as possible. "See when people are free" is not the same as "read everything in their calendar". The second shows you meetings about people who are not candidates.
- Keep keys and passwords somewhere safe, not typed into a field in the automation tool.
- Log what the connection looked at. You will need that when someone asks what you hold about them.
When half the job works
Here is the failure that catches everyone. The calendar invitation goes out. Writing to your hiring system then fails.
The candidate now has an invitation. Your records show nothing. Nobody notices until an interviewer asks who this person is.
Three things prevent it:
- Do the undoable thing last. Write your own record first. Send the invitation after.
- Make it safe to try again. Give each action a unique reference, so running it twice cannot create two invitations. Without this, a slow response followed by a retry sends the candidate two invites — the most common automation embarrassment in hiring.
- Check once a day. Compare calendar entries against your records and report anything that does not match. It is a few lines of code and it catches this whole family of problems.
Which channel for what
Email and calendar reach candidates, so they need care. Chat tools are internal, and they are the right place for alerts, approvals and anything that needs a person — with one warning.
Do not paste candidate details into general chat channels. An approval message should link to the record, not repeat it. Chat history is searchable by people who should not see it, and it usually sits outside whatever deletion rules you set.
Before you connect anything
Draw the fields on one page and mark which system writes each one. Most connection problems are obvious on that page, and invisible once the software is built.