Over the last few years, Google has made algorithm advances in the area of semantic search. Last Fall Google told us that their new semantic, machine-learning-based component called RankBrain is now the 3rd most important factor in ranking. With these shifts, long and bulky Boolean search templates are getting less useful and provide fewer relevant results, compared to searching in a simpler fashion, and that is what I am going to illustrate in this post.
A traditional “old school” resume search template looks like this:
inurl:resume OR inurl:cv OR inurl:vitae OR intitle:resume OR inurl:cv OR inurl:vitae OR inurl:resume -job -jobs -sample -example -apply -submit <add keywords>
Let’s add these keywords – “full stack” engineer node.js “san francisco” – and see what we find.
inurl:resume OR inurl:cv OR inurl:vitae OR intitle:resume OR inurl:cv OR inurl:vitae OR inurl:resume -job -jobs -sample -example -apply -submit -“contact us” “full stack” engineer node.js “san francisco”
This search brings up ~260 results. (They include some non-resumes from irrelevant sites, but it is not a big deal since we can exclude those in the search. We can stop seeing those sites once and forever by blocking them.)
Let’s look at the search closer to see whether the string complexity is justified. We’ll start with the OR statement at the beginning of the search, then will look at the exclusions (the words preceded by the minus), and finally will review the usage of advanced operators such as inurl:.
The Long OR Statement
Did we get additional results by including cv and vitae in addition to resume? We would expect that we got these results:
The above search does show a few results, and most are relevant:
However, if we go to the original long search (including all of resumes, CVs, and vitaes), we will notice that several of these “CV” results don’t show up!
If we start carefully comparing long OR searches with a series of searches for each of the terms in the OR statement separately, the latter way, in many cases, provides more results (see also a related blog post). It’s as if Google is telling us: “You are so clever! Are you telling me which words to use as synonyms and on which parts of the pages to look for them? I will then relax and stop working as hard.”
LESSON #1. Don’t use long OR statements on Google. If you do, you may get fewer results. If you must search for alternative terms, search for each in turn.
In fact, I will go as far as to say it’s best not to use OR in Google at all.
Exclusions (the NOTs)
Now, let’s take a look at the words we have excluded: -job -jobs -sample -example -apply -submit.
I am sorry to say, but we have lost some results with these, seemingly reasonable, exclusions. Some matching resumes include these phrases:
“One of the first 10 engineers at this groundbreaking developer-centric job”
“developed… web app for managing your job search with gamified elements.”
“system: it allows for easier management of printing hardware, customers, print jobs, accounting…”
“Published documentation, technical articles and blog entries with sample code.”
“One example would be the use of the SimplePie RSS parser.”
Lesson #2. Go easy on exclusions with the NOT (minus) on Google.
Running multiple keyword exclusions upfront is restrictive and unnecessary. Besides, a better approach would be to include extra keywords that are likely to appear in resumes but not in job posts.
Advanced Operators – intitle: and inurl:
Finally, in our exploration of the “old-school” Boolean, let’s take a look at the use of the advanced operators in the search – intitle: and inurl:. So what was the reason to search for intitle:resume OR intitle:CV OR, etc. back in the day? We were telling Google about resume synonyms. When an operator (such as intitle:) precedes a word, Google will search for the exact word. But when we search for a keyword such as resume with “no operators attached”:
- a) Google will automatically include synonyms such as CV;
- b) Google will give high rank to pages with the word resume either in the title or
Now let’s try a simple search with no operators.
Instead of excluding keywords like jobs, let’s add gmail as a keyword that is likely to appear on resumes. (We can additionally search for resumes without gmail later).
These are fine results:
A simple search requires less effort and provides more relevant results, compared to the “old school” long Boolean.
Notice that with this simple search we also getting results that are resumes that wouldn’t have been found by the original search string. For example, we find this page that doesn’t have the word resume either in the title or URL – http://benbuckman.net/work/.
Lesson #3. Don’t use advanced search operators like intitle: and inurl:, unless you have to because operators stop Google from interpreting – and you get fewer results. Rely on Google’s ability to interpret searches and automatically look for synonyms.
Of course, advanced search operators on Google still have plenty of uses. For example, X-Raying remains a great technique. However, for practical Sourcing on Google, we can stop keeping long lists of long strings, run simple, short searches and get better results. That’s good news!