/ RECRUITING

Dear recruiters

I had been pleasantly surprised last time when, after connecting on LinkedIn, a recruiter sent me a personalized mail. It was the first time it happened, and I found this gesture showed that the recruiter cared about the relationship. Besides, the job I currently have was found on LinkedIn - or more correctly, a recruiter found me for this job. This is to say that I have nothing against neither recruiters nor LinkedIn.

Unfortunately, more often than not, I usually receive such messages:

Hello Nikola,  (First name basis because we’ve known each other since a long time. And do not forget to misspell)

I’m currently searching for a junior PHP developer and I believe you would be a perfect fit. (thanks for reading my profile, I really appreciate custom tailored emails)

The job is located in Bulgaria (oh yes, relocating there has always been the goal of my life, thanks for asking!)

and the daily rate is $200 (wow, what a great incentive to relocate!)

Cheers, your friend the recruiter (located in UK, India, anywhere unrelated to my location or the job location)

Those kind of mails directly end up in my spam folder. However, last week saw another usual but still annoying story:

  • A recruiter cold-contacts me for a dream job - at least from his point of view. Fortunately, this time was by mail this time, not by phone, interrupting me during my work
  • I ask about trivial details, such as the job description and the expected salary
  • The recruiter tells me he cannot disclose them at this point

So, that’s it, dear recruiters, this is the last straw. I would really appreciate if you put yourself in my place (for once). When you take time for me, you’re doing your job - and earning your pay, while when I take time for you, it’s unrelated to what I’m paid to do. The only thing I get is only a vague possibility I can get a better job (if it’s possible). If I ask about details, it’s because I do want to optimize the time consumed, both mine and yours. By the way, I have no interest in running to your competitor and telling him about your extraordinary job offering, I’ve many more interesting things in life so telling me about the job details is mandatory, not something that I have to bargain for.

I’ve devised a little something that can help you, please read the following classes:

public class JobMatchEvaluator {

    private final Company company;

    public JobMatchEvaluator(Company company) {
        this.company = company;
    }

    public InterestLevel evaluate() {
        if (!company.focusOnSoftware()
         || !company.investInPeople()
         || !company.staysUpToDate()
         || !company.allowsAnotherLife()
         || !company.respectCandidates()) {
            return InterestLevel.NONE;
        }

        InterestLevel interest = InterestLevel.NONE;

        if (company.getTraining() == PROACTIVE || company.getTraining() == NOT_ONLY_SOFTWARE) {
            interest = interest.increase();
        }

        if (company.getConference() == ACTIVELY_SENDING) {
            interest = interest.increase();
        }

        if (company.getTime() == TWENTY_PERCENT_PET_PROJECT) {
            interest = interest.increase();
        }

        return interest;
    }
}

public class ContactDecisionHelper {

    private final JobMatchEvaluator evaluator;

    private final Recruiter recruiter;

    public ContactDecisionHelper(JobMatchEvaluator evaluator, Recruiter recruiter) {
        this.evaluator = evaluator;
        this.recruiter = recruiter;
    }

    public boolean shouldContact() {

        if (!recruiter.canDiscloseDetails()) {
            return false;
        }

        InterestLevel interest = evaluator.evaluate();

        switch(interest) {
            case NOT_ENOUGH:
            case NONE:
                return false;
            case TOTAL:
            case SPARKED:
                return true;
            default:
                throw new IllegalStateException();
        }
    }
}

Here are the guidelines to use the previous code:

  • If you don’t want to bother reading it, please don’t contact me
  • If you don’t understand the general idea, please don’t contact me
  • If you think it makes me sound better than you, please don’t contact me
  • If it doesn’t make you smile, or you find it not even remotely amusing, please don’t contact me

The complete project can be found on Github. Feel free to clone and adapt it to your needs, or even send me pull requests for generic improvements.

Nicolas Fränkel

Nicolas Fränkel

Nicolas Fränkel is a Developer Advocate with 15+ years experience consulting for many different customers, in a wide range of contexts (such as telecoms, banking, insurances, large retail and public sector). Usually working on Java/Java EE and Spring technologies, but with focused interests like Rich Internet Applications, Testing, CI/CD and DevOps. Currently working for Hazelcast. Also double as a teacher in universities and higher education schools, a trainer and triples as a book author.

Read More