Julien Danjou Julien Danjou
April 17, 2025 · 3 min read

Handling Candidate Rejection: A Delicate Balancing Act

Handling Candidate Rejection: A Delicate Balancing Act

At Mergify, we reject with respect. This post shares how we handle one of hiring’s hardest parts: saying no. Why we keep it short, when we go deeper, and how we try to balance honesty, kindness, and efficiency — for your sake and ours.

At Mergify, we’re growing. That means we’re hiring. And hiring means rejecting candidates—sometimes, a lot of them.

It’s one of the most challenging and uncomfortable parts of our hiring process, but it’s also one of the most important.

Here’s how we do it, why we do it this way, and what we’ve learned.

Our Hiring Process

Our process is straightforward:

  1. **Technical Challenge (Homework): **A take-home exercise. It’s not about getting the “right” solution—it’s about seeing how candidates think, how they structure their code, and how they communicate.
  2. **Technical Interview: **If the challenge looks good, we go deeper with live problem-solving and discussion.
  3. **CEO Interview: **Finally, we align on values, motivation, and team fit.

The truth is, most rejections happen after step one.

Why Most Rejections Happen Early

The technical challenge gives us many signals. Code speaks louder than words. It shows your experience level, grasp of best practices, and ability to explain what you’re doing and why.

When hiring for a senior or staff-level role, we expect to see specific patterns: clean code, clear trade-offs, thoughtful structure, and strong communication.

Sometimes the code does not work.

Sometimes, that’s not what we see. And then comes the hard part: rejecting the candidate.

Two Roads: Silence or Explanation

When rejecting someone, there are two main ways to do it:

  • Short and polite: “Thanks, but you’re not a good fit for this role at this time.”
  • Detailed and honest: “Here’s what we saw in your code and why we don’t think you match the level we’re looking for.”

Both options come with trade-offs.

The Silent Treatment (a.k.a. the short reply)

Short messages feel cold. They leave candidates frustrated. Worst case, they assume we’re idiots who just didn’t get their brilliance. If they’re in a bad mood (and let’s face it, job searching is stressful), it might even become a rant.

But here’s the thing: if a candidate can’t imagine that their code might not meet expectations or ask with humility and curiosity, they’re probably not a good fit for us anyway.

We sometimes offer a little more context—“Your level of experience, as shown in the code, doesn’t match our expectations for this role”—but not much more than that.

The Honest Route (a.k.a. the detailed feedback)

This sounds great in theory. It’s respectful. It shows we care. And sometimes, yes, we take this road.

But let’s be honest: this road can be a mess.

Some candidates respond by debating with us, point by point, defending every line. We’ve heard everything from “it worked on my machine” to “we’ve always done it this way at BigCorpXYZ.”

Others treat the feedback like a code review and come back with a revised version, hoping to improve their chances.

And here’s the catch: sometimes we do see improvements. But if the first submission was at 40%, and we need the first version at 80% for a senior role, then even with effort, we’re still not there. And we hate the idea of someone spending more unpaid time reworking a challenge that won’t change the outcome.

It’s a waste of time—for them, and for us.

What We Do (And Why)

So what’s the “right” way?

There isn’t one. Hiring is messy, and people are complex. Every rejection risks hurting someone’s confidence or wasting their time.

At Mergify, we’ve chosen a middle path. We:

  • Keep our rejections respectful, but concise.
  • Give a high-level reason (usually it boils down to experience level).
  • Only go into detail if the candidate asks and we think there’s value in sharing.

We try to be fair and human. Most importantly, we avoid wasting anyone’s time with false hope.

Final Thoughts

Rejection sucks on both sides. As a candidate, you’re putting yourself out there. As a company, you’re trying to balance honesty with kindness, signal with noise, speed with thoughtfulness.

We’re not perfect. But we’ve learned a lot by talking openly with candidates, listening to their feedback, and refining our process.

So if you’re applying at Mergify: know that we appreciate the effort. Know that we’re not judging your career—just this one signal, in this one moment, for this one role.

And if you don’t make it? Please don’t take it personally. We’ve all been there. And we’re rooting for you to find the role where you’re the perfect fit.

Stay ahead in CI/CD

Blog posts, release news, and automation tips straight in your inbox.

Recommended posts

Claude Didn’t Kill Craftsmanship
February 4, 2026 · 5 min read

Claude Didn’t Kill Craftsmanship

AI doesn't remove craftsmanship: it moves it. The goal was never to protect the purity of the saw. It's to build good furniture. Engineers can now focus on intent, judgment, and product quality instead of translating tickets into code.

Rémy Duthu Rémy Duthu
Why WARNING Has No Place in Modern Logging
October 8, 2025 · 4 min read

Why WARNING Has No Place in Modern Logging

Most systems drown in meaningless WARNING logs. They waste money, obscure real errors, and help no one. Here’s why your next logging cleanup should start by deleting WARNING — and how structured logs make your production systems clearer, cheaper, and safer.

Mehdi Abaakouk Mehdi Abaakouk
AI Won't Replace Code Reviews, But It Can Fix Them
October 1, 2025 · 5 min read

AI Won't Replace Code Reviews, But It Can Fix Them

Code reviews often fail not because the code is wrong, but because no one knows why it was written that way. This post explores how AI-generated comments can add missing intent to pull requests—making both human and AI reviews smarter, faster, and more effective.

Alexandre Gaubert Alexandre Gaubert