Boolean search for teapots and coffee drinkers

Short description

A guide for novice IT recruiters on how to search for candidates using boolean and x-ray queries has been shared. The guide suggests identifying main criteria for a job posting and researching obscure job-related terms to clarify understanding of what is required. Techniques to narrow down search results using keywords and logical operators are included. X-ray searches are recommended for LinkedIn profiles, and advice is given on how to include or exclude “synonyms” of job titles and qualifications, such as “backend” and “software engineer”. The guide concludes with tips on refining searches by location and using quotes for exact phrases.

Boolean search for teapots and coffee drinkers

Checking students’ work on the course IT recruiterI find the subject of boolean and x-ray queries difficult to understand. I want to try to use examples to tell the basics so that it becomes clearer.


Let’s start with logic. When we start working on a vacancy, we need to identify the main criteria by which we will search.

For example, we need python backend developer with experience asynchronous programming.

Jeez, what is asynchronous programming? I still can’t figure out the usual one, but here is the asynchronous one!

The first law of an IT recruiter: what I don’t know, I will Google.

When you Google “asynchronous programming” the first few articles are very good and just tell you what it is. I will not go into depth now.

Even when we enter “asynchronous programming” in the search bar, the first suggested search query line will be “asynchronous programming python”. We follow the links with descriptions, study. Well, it’s cool, right?

Let’s go back to our query. After reading several articles, we understand that there are some technologies inherent in asynchronous programming. For example, frameworks. Google “python asynchronous programming frameworks”. We get the first line of the Top 5 asynchronous web frameworks on Python: Tornado, Sanic, Vibora, Quart, FastAPI. Let’s add asyncio to it. That’s how we start to collect keywords for searching. We can conventionally name such a set of keywords synonyms, because they refer to the same feature – in our case, asynchronous programming. You should always remember about synonyms, and try to think as a developer, and how else he could indicate this in the profile.

Let’s see further. The main technology we see in the job title is python. This will also be our keyword. But analysts, data scientists, and testers can work with python.

Are you being bullied??? How to distinguish them? (what a word, huh!)

Of course, it is difficult for a novice IT recruiter to understand such subtleties. But we used to be unable to speak or walk. So we exhale and Google. And we communicate with developers as much as possible – they are the most valuable source of information.

So, about python and not testers. To make it clear which pythonists we need, the request contains the word backend. This article is for novice IT recruiters, so experts should keep quiet about the fact that web frameworks will weed out analysts. I want to visually show how to think and choose keywords for searching. Everything comes with experience, supervision and practice. Those who are reading this now, a year from now, will smile at today’s people and understand how it wasn’t scary at all.

So python is added to our keywords.

And there is also a “developer”. Is it possible to search for this word?

Yes, you can, but this is such a series. Therefore, we add “developer” to our keywords. And we think as a developer: how can I name myself in my Linkedin profile? My profile in English means developer. And there are also software engineers. So it also goes into our keyword vault.

There are quite a few words from one query: Tornado, Sanic, Vibora, Quart, FastAPI, asyncio, python, developer, developer, software engineer. Must be a very accurate delivery?

So. Zero. If in doubt – here is the link

But how so?!

Let’s figure it out. What is the possibility that a developer uses all asynchronous frameworks at once? There are uniques, of course, but even they may not add them to their profile. Therefore, it is enough for us to mention one of the features of asynchronous programming. One of the most common Tornado framework forks, it’s worth starting with.

And then what should the request look like? Tornado developer developer software engineer?

Look at the search results. Does she suit you? I think, no. Let’s figure it out further. Again, we try to think like a developer. Do I list myself as three different jobs in one profile? This can also happen, but the probability that you will meet such a guy is still not so great.

And what if they can call themselves differently? We may not see developers if we only look for developers.

There are Boolean query operators for this. And this is the next step in understanding how to find developers.

First, let’s summarize once again which keywords we selected for the search: Tornado, Sanic, Vibora, Quart, FastAPI, asyncio, python, developer, developer, software engineer. Let’s divide them by features: programming language, scope, position, asynchronous programming. The following table will appear:

Please note that I also painted the backend differently.

If we were to ask in Russian, we would ask: “Do the following words python, backend or backend or back end, developer or developer or software engineer, asynchronous programming or asyncio or Tornado or Sanic or Vibora or Quart or FastAPI appear in the profile?”. You can also ask the search engine roughly. Only he will not understand our “or”, he is a machine, so there are operators who correctly broadcast our request to this machine. And this is a very important topic. Although these operators are logical, they should still be remembered. Especially if you are not very good at English (here I will say that English is definitely worth learning!). Operators are called logical because they mean exactly what they mean when translated.

AND – Needed to find pages that contain all the specified keywords (to begin with, you can write it to understand the logic of creating a query, then you can replace it with “space”).

OR – Needed to cover categories that are essentially the same but called by different words (hello asynchronous programming).

»- Needed to exclude unnecessary words or phrases from the search (for example, we don’t want guys from a certain company). Please note that there should be no spaces after the hyphen, otherwise the search engine will not consider the word as an exception.

() — is needed to group parts of the request and set priorities (here we will combine keywords by features, in our case – by programming language, field of application, position, asynchronous programming).

“” – Needed to search for exact phrases (and this is necessary so that Google takes into account exactly “software engineer”, and not “… I like software. The engineer fixed …”). Please note that the English layout is important.

Let’s try to construct our query with these operators in mind.

(Developer OR developer OR “software engineer”) AND (Tornado OR Sanic OR Vibora OR Quart OR FastAPI OR asyncio) AND python

It’s cool, right? We took into account all the factors, we are well done! This is the sample we have.

We collect laurels and get high from our awesomeness!

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA How come?????????????!!!!!!!!!!!!!!!

Yes, life is not fair. But here we ourselves are to blame. Let’s analyze what’s wrong.

Our main output is vacancies. It is logical to exclude this factor. We remind you that we must think for those who post content – vacancy = vacancy = job = job = jobs. We need to exclude these words from our query. Will you try it yourself?

(Developer OR developer OR “software engineer”) AND (backend OR back-end OR “back end”)

Let’s see what happened.

AT! Already have Linkedin profiles! Cool! But 225,000 (the number can be different, even the location can affect the issue) is a lot, how can I review everyone?!

We think, reflect, analyze. What do we like about search results? That’s right, LinkedIn profiles. We see practically the resume of the candidate. How to make a search result only with profiles in Linkedin?

There is a logical operator for this:website:“- and it will be an x-ray search, we scan a specific site for the words we need, like an x-ray.

Agree, logical? But remember that there should be no spaces between the operator and the site, otherwise the search engine will not perceive the site as a resource that needs to be searched. Shall we try? How do you like the search results? Is it cool? Want to fix something?

It would be great to see the guys from Russia, is that possible?

Ask! 😀

There are several ways to do this:

  • Add a location to the search query, for example Moscow (but remember about “synonyms”, at least the English version).

  • Add a prefix to the site name, in our case it will be ru.linkedin.com

Let’s see what happens.

Are you silent? I see delight in the eyes) and a lot of effort must be raked out) But what!

What else is possible for us?!


And much more. Example:

intitle: — you need to search only in titles (for example, the title of the position “python developer”). The same rule applies here, if we need an exact phrase, we put it in quotation marks. It will look like this intitle:”python developer”

file type: — needed to search for files of a certain format (mostly resumes are created in .pdf format, but you can also find a lot of interesting things in .doc, .docx).

anchor: – the current location that the candidate indicated in the linkedin profile (this is what is written in the profile header).


I highly recommend forming a search strategy at the start. Find all the “synonyms” for all the necessary keywords, the resources we want to cover, any additional important technologies. Record all this in a plate and take it into account during the search. So we’ll be able to track what we’ve already searched for and what we haven’t yet.

It is very important to remember some rules:

  • Search results in Google are limited, more than 300 will not be relevant. It is necessary to form the request in such a way that the issue is less than 300.

  • It is not necessary to specify synonyms in one query. Advanced sorcerers, on the contrary, do not like to do so. In order to take into account all “synonyms” there is an iterative search, this is when, after searching for one keyword, in the next iteration we exclude it, adding a new one (example: “Деревок ‑developer‑software engineer”) AND (Tornado OR Sanic OR Vibora OR Quart OR FastAPI OR asyncio) AND python” – we searched separately for “developer” and “software engineer” and now we only search for “Developer”, and we excluded the rest of the options).

  • We can always adjust the search output until it suits us.

This is a small part of what you can learn about sourcing. But fundamental. Without understanding this, it will be difficult to move on.

But then it will be very interesting)


PS: I want to share some tools that make daily work much easier:

BOOL: Boolean Search Assistant query builder

Multi Highlight highlighter of keywords on the page

The field of sourcing is so large that it is impossible to fit it all into a single article. It is important not to stop at what has been learned, but to move on. I sincerely hope that I have helped you understand the basics of Boolean queries. If you have any questions, don’t hesitate to ask!

If you look events in Mykolaiv – https://city-afisha.com/afisha/

Related posts