Eliminating False Positives in LinkedIn Recruiter

booleanstrings Boolean Leave a Comment

People are absent-minded. They forget to put an end date on a previous job on their LinkedIn profiles when they move to the next. Unclosed past positions are responsible for the majority of false positives in LinkedIn people search.

LinkedIn could fix it by allowing to search for the top position, but there never was such a filter. From my dialog with LinkedIn Engineering based on LinkedIn Recruiter Notes I had shared:

The “last position” feedback, the team is exploring solutions in this space. The main reason we don’t do this today is that many members hold multiple positions at one. Oftentimes, one position is their main 9-5 job and another can be advisory / volunteer / board position, etc. As a result, if we only enable “most recent position” search, we risk not including many members for their main 9-5 jobs that might be a great fit for recruiters.

We can advise only so many potential candidates about closing past positions and are unable to trigger a major LinkedIn profile update campaign. But we can try to eliminate the “absent-minded” members from search, finding more matches and fewer non-matches (and discriminating against some people with unclosed past positions, but we will search for them separately).

An average professional progresses through their career, gaining seniority. So, if you search for an engineer, use engineer NOT manager to eliminate managers with unclosed past positions. For managers, use manager NOT director, etc.

Alternatively, exclude higher levels of seniority in LinkedIn Recruiter, for example, with NOT seniority:6 (which means NOT director). Exclude company types also, for which you do not search.

If you are searching for company employees, exclude companies of other sizes and similar companies with NOTs in the Company field.

You get 17% fewer results for a search for Engineering Manager at Google if you search like this, eliminating companies:

(When these companies are included, we will find people who left Google for other companies or came from them to Google. So we should go back and find that “correct” half separately.)

Removing Seniority higher than Manager 

eliminates another 24% – mostly, correctly (though it does happen that a Manager goes back to an individual contributor role because they like to code):

I know, it is unintuitive. But it will save time.

Join me for a fully updated class

LinkedIn Recruiter Mastery

on Wednesday, December 21st. We will go over best search practices and reveal the actual functionality of the search filters, based on the new inside knowledge from the  Engineering, plus, cover 20+ hidden search operators that LinkedIn does not know about.

Are You ChatGPT Addicted Too?

booleanstrings Boolean 1 Comment

ChatGPT is is a fascinating tool, utilizing AI at a level not seen before. It is not only going to change how people Google but will affect job functions and ruin software. Apparently, it can write essays, poems, fictional short stories, software code, create, and solve quizzes. (What are some other use cases have you thought of?) It works in many languages.

As I am preparing for the upcoming free Healthcare Sourcing webinar for Recruiters, I have thought of a few applications – not necessarily industry-dependent:

  1. Create an email template to potential candidates:

2. Learn how to interview:

3. Write a job post:

4. Research:

5. More research:

6. More research:

However, when I asked ChatGPT to look for candidates matching a job description, it crashed! Industry still needs humans to source.

Please register and join us at a SeekOut-sponsored free

Healthcare Sourcing webinar for Recruiters

on December 13th at 8 AM PST. (More about it.)

And I think this one is just perfect!

A poem about non-responding candidates 😀
Darkness gathers o’er the land
As recruiters seek their next hire,
But silence reigns where once was fire
As candidates fail to take the stand.
They once were eager, full of hope
But now they’ll not return a call,
Their silence speaks, a damning toll
On recruiters who must now cope.
Alas, the job hunt is a game
Of cat and mouse, of hide and seek,
The candidates’ indifference, a leak
In recruiters’ plans, a bitter shame.
But still they persevere, undaunted
For in the end, a great hire will be found
Their persistence pays, their dreams abound
As they triumph over the non-responding.

Healthcare Sourcing Specifics (a CSE Inside)

booleanstrings Boolean Leave a Comment


A skilled Sourcer knows search principles and techniques and can work in any industry. But at a closer look, each sector has its own advantages and challenges when it comes to sourcing.

Few Healthcare professionals are online, even fewer are on LinkedIn, and reaching out is challenging. But in Healthcare, you have sources of potential candidates such as:

• US State License Registries
• Certifications – Board and other
• NPI Database
• Databases such as Doximity and Healthgrades (which you can X-Ray)
• Online directories, including insurance
• Large Hospital sites

I was recently sourcing Physicians in West Palm Beach Florida, and the amount of online data turned out to be overwhelming. The license verification site has detailed data, including board certifications and personal email addresses. A Data Portal has a full physician database of 1.5M+. The challenge was to get “less data,” filtering it to match the requirements and cross-referencing to get additional employment background.

Other states and specialties may not be as sourcer-friendly as Florida, but there is an abundance of data sources for you to find in almost every case. If it helps, here is a

When sourcing, you either cross-reference information “by hand” – more technically challenging, but customizable – or use a paid aggregator like SeekOut, which collects and cross-references professional data for you ahead of time. (Or you can do both!).

You are invited to an advanced

SeekOut-Sponsored (Free) Healthcare Sourcing/Recruiting Webinar 

Date: Tuesday, December 13
Time: 8:00 am – 9:00 am PT

In my presentation, I will review Healthcare use cases from my practice for extracting, utilizing, and cross-referencing data from non-LinkedIn sources such as license registries. A brief new SeekOut Healthcare Sourcing package demo will follow.
Who should attend: Healthcare Recruiters, Talent Acquisition professionals, and everyone interested in sourcing ideas and techniques.

P.S. You can search for Healthcare professionals by job titles and locations (and discover useful sites along the way) using this Custom Search Engine:

Dialog with LinkedIn Engineering

booleanstrings Boolean Leave a Comment

Hello All:
I am grateful for LinkedIn Engineering Management for reaching out in response to my post. We are now getting some incredible technical knowledge from a LinkedIn Engineering Director, who is reviewing a list of issues I had reported. They have already fixed one issue and acknowledged another (the need for better timeout handling). It feels like the first-ever real chance to be heard and improve the platform. Both sides are interested. My contact also responds to feature requests. 
I am sharing detailed explanations of functions, feedback on issues, and potential improvements, as I get them, on our Facebook Group “Boolean Strings.” (Unless we think of a platform. The write-ups are pretty detailed – and interesting.) There are more LinkedIn issues being reviewed, and I await further information and maybe fixes. I will eventually be sharing the progress and insights here on my blog.
Your comments and participation are welcome! 
Here are some curious bits we have learned from LinkedIn Engineering so far:
– When you enter a few words into the Skills filter in Recruiter, it invisibly puts quotes around the words – unless you use Boolean operators. This syntax is unique!
– Skills are stored together as a blob, so some of your phrase searches will catch the end of one skill and beginning of the next.
– They replaced self-entered skills search by much wider “calculated” because they want to display more results. Most LinkedIn InMails go to the same people.
– They are generally moving away from Boolean toward semantic (uh-oh).
– They won’t implement some search filters – or index more parts of profiles – because it is expensive (in terms of required software resources).
I will share some technical insights in this week’s webinar

LinkedIn Hack: Search Past the Present Pair

booleanstrings Boolean 5 Comments

Guest Post from Talent Sourcer Mike Santoro

Perhaps the most famous “pair” in recruiting and sourcing search strategy is finding candidates based on matching their “Current Job Title(s)” at “Current Company(s).” Let’s call this a “Pair of Aces.”

In this article, I’m going to show two new ways to search (on LinkedIn and via X-ray) for a NEW search combination pair:

“Past Job Title(s)” at “Past Company(s)”

I will discuss why and how this “old pair” is a powerful “new search tactic” that opens many possibilities for sourcing high-quality matching candidates for your hiring managers.

This post will teach you this new “hack.” I hope it will also inspire your creativity.

(Note, if you are wondering what is “new” about this method, it’s the “at.”  We can search for past job titles and past companies, but not for people who have a specific title at a particular company in the past.  This post shows you two ways to execute this:

1) Linkedin.Com Basic/LinkedIn Recruiter/Sales Nav/Recruiter Lite

2) Google X-ray

“For Love of Sourcing and Sourcers” –Mike Santoro ❤)

On any given weekday, you will find every Recruiter/Sourcer playing this time-tested “present pair” to win the hearts of hiring managers.  It goes something like this:

The Hiring Manager says to the Recruiter/Sourcer:

 “We need to hire an X. Please find me candidates currently working as an X and who currently works at one of our direct competitors.  Oh, and if that direct competitor happens to be a similar size company as ours, that would be even better.”

This example is oversimplified, as there are often nuances based on requirements, skills, and experiences.  But generally, a target list of job title variations and similar companies/industries is preferred in the candidate’s most recent work history.

Therefore, Recruiters and Sourcers often try to “build a hand” of Candidates with the following:

A Pair of Aces –

“Current Job Title(s)” at “Current Company(ies)”

“Current Job Title(s)” AND “Current Company(ies)”

Searching for a “Pair of Aces” is conveniently accessible with LinkedIn Search filters, but securing the interest from enough “Ace Pair” candidates is not always easy.  Therefore, recruiters naturally seek the next best option, find candidates with at least one ace “Current Job Title(s)” OR “Current Company(s)”.  These candidates have the desired job title but not the right company or industry experience.  Or, they work for the right kind of company or industry but in a different role.

The problem is such candidates are only a “half-match.” Rather than a more perfect match “Pair of Aces” we settle for playing “Ace High” candidate hands. We falsely limit our options. Then we often go to great lengths to persuade Hiring Managers that the “Ace high” (half-match) candidate is a “winning hand.” We make large bets on other skills and experiences and try to prove the candidates can be a fit. And while these bets pay off sometimes, more often the result is disappointed hiring managers and a more challenging hiring process. It’s our job to deliver to our company/client’s hiring managers the best candidates we can find that most closely align with the desired target profile.

I want to inspire you to consider alternative “next-best” hands that may be better to play than “Ace High.”

Like a “Pair of Kings!”

That is “Past Job Title(s) ” at “Past company(s)”

And what if that pair opened up the possibility of creating all kinds of other creative winning hand searches:

  • Two Pair
  • Three of A Kind
  • Straight
  • Full House
  • Straight Flush

More on these combinations later.

First, how to execute this Search Hack in 2 steps:

Step 1-

In the primary top general search bar of LinkedIn.com (or in the keywords search field in Linkedin Recruiter, Sales Navigator, or Recruiter Lite), insert this combination in double quotes:

“[Past Title] at [Past Company]”


“Software Engineer at Microsoft”


LinkedIn Recruiter:

Step 2 –

Remove -[Past Company] from the Company Search Filter (this will remove current employees and keep those who previously worked there).


LinkedIn Recruiter:

Your results are a “pair of Kings.” Former Software Engineers at Microsoft (almost exclusively).  Which may be better than only “Ace High.”

One Pair of Kings –


Former Software Engineers at Microsoft

But wait, there are now so many interesting new ways to search!

(note: there are many other powerful use cases.  These examples are to inspire you to see examples of what is possible.  i.e., build complex talent mapping lists or conduct competitive intelligence exercises)

Two Pairs –

(Current Job Title at Current Company) + (Past Job Title at Past Company)


Current Software Engineers or Developers at Amazon + Formerly a Software Engineer at Microsoft

Three-of-a-Kind –

(Past Job Title 1 at Past Company 1) OR (Past Job Title 1 at Past Company 2) OR (Past Job Title 1 at Past Company 3)


Formerly a Java Developer at Apple OR Google OR Meta

Straight –

(Current Job Title) + (Past Job Title 1 at Past Company) AND (Past Job Title 2 at Past Company)


Current Engineering Managers + Formerly a Software Engineer at Microsoft AND Formerly Software Engineer II at Microsoft

Full House –

(Current Job Title at Current Company) + (Past Job Title 1 at Past Company) OR (Past Job Title 2 at Past Company) OR (Past Job Title 3 at Past Company)

Current Software Engineers OR Developers at Google who were formerly a Software Engineer at Microsoft OR a Developer at Microsoft OR an SDE at Microsoft

Straight Flush –

(Current Company) + (Past Title 1 at Current Company) AND (Past Title 2 at Current Company) AND (Past Title 3 at Current Company)


Currently at Microsoft and has been an Engineer, Engineer II, and a Manager (all at Microsoft)

For using Linkedin Recruiter, Sales Navigator, or Recruiter lite, follow the same pattern as with basic.  The advantage is you will not have such strict limits on the size of your OR strings.

You can also do this search via Google X-Ray.  One advantage to using X-Ray is that you can use specific date ranges too at specific companies with specific titles:

  1. Past Company with Specific Date Range

i.e., worked at Amazon between 2014-2016 but does not currently work for Amazon

site:linkedin.com/in “Amazon graphic” “amazon * * jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec 2014..2016” -intitle:Amazon -inanchor:Amazon

  1. Past Company with Specific Date Range + Past Title @ Past Company during Specific Date Range

i.e., formerly worked at Amazon as an Area Manager between 2014-2016 and does not currently work for Amazon

site:linkedin.com/in “Amazon graphic” “Area Manager amazon * * jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec 2014..2016” -intitle:Amazon -inanchor:Amazon

  1. Current Job Title + Current Company + Past Company with Specific Date Range + Past Title with Specific Date Range @ Past Company

i.e., a Manager at Walmart who used to be an Area Manager at Amazon between 2014-2021

site:linkedin.com/in (inanchor:Walmart | intitle:Walmart) (inanchor:manager | intitle:manager) “amazon graphic” “Area Manager Amazon * * jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec 2014..2021” -intitle:Amazon -inanchor:Amazon

Be creative and enjoy!



Sourcing Mathematica in Closed Networks

booleanstrings Boolean Leave a Comment

I want to share my experience sourcing a Mathematica Engineer (Palo Alto) on Reddit, Discord, and a professional forum. I followed advice from Wim Dammans and Erin Mathew, who are experts in this sort of sourcing.

Here is what I learned. Mathematica Engineers working outside of Wolfram’s Mathematica are rare primarily because it is expensive and not open-source software (here is another “closed” in the scenario!) Our client does not require their customers to purchase Mathematica; they do calculations on their server. Mathematica is widely used at universities; our candidates were likely to be recent grads in CS or any sciences.

LinkedIn search returned little, so I explored “closed” channels.

Knowing the unfortunate perception that “recruiters are spammers,” I started asking on the relevant Reddit forum, where could I post such a job? I also included a link to my LinkedIn profile, as Wim teaches us. Reddit hides personalities and revealing who I am was to reassure people. Also, I could check who viewed my profile. The channel moderator asked for details which I happily shared by editing the job link into my post.

Sharing a similar message on an internal Mathematica forum received a warm welcome. The long-time site admin contacted me and no less than helped enhance the job post and my profile. (I also tried to aggregate user profiles, but the details were too slim to identify potential candidates.)

Going to Discord, I felt bold and posted the job upfront, receiving a positive reaction.

Though the search initially seemed hopeless, we now have two people in the next interview stages. (Knock on wood!)

Join us this week for a fully updated 90-minute class

How to Find and Attract Tech Talent

on Wednesday, November 30th.

LinkedIn Software Crisis (a Summary)

booleanstrings Boolean 5 Comments

A few days ago, many functions on LinkedIn broke for several hours (you can always – and hopefully will be able to – check on Twitter whether something is going on globally). LinkedIn mostly got it back together to the previous state. This post is about what remains broken. A lot, unfortunately – I don’t think it has been that bad before.

I do not know of workarounds for some of these problems. Whether you use a business account or LinkedIn Recruiter, incorporate X-Ray into your sourcing. Google’s search is reliable. And back up your data.

Broken Functions

The Strange Numbers in LinkedIn Recruiter

[update: fixed, as a result of this post!!!]
  • As of today, LinkedIn Recruiter shows 1.4B+ total members, a jump from the recent 1B+ and unexplained discrepancy with LinkedIn.com, which comes up with under 900M.
  • LinkedIn Recruiter finds 620M+ people without locations, a jump from 84K+. Some of them do have locations, though, and shouldn’t be found.

  • On the other hand, searching for these locations gives us 25 members – I think there should be more:


  • LinkedIn Recruiter finds 1B+ people without years of experience. I have no idea how this happens. Two weeks ago it found 600M+.
  • Both LinkedIn and Recruiter will incorrectly miss 910M+ (i.e., 65%) profiles if you search by Industry.

The above is not a complete list of misbehaving functions; I could go on. The broken filter functions and strange numbers in Recruiter are new.
It is a shame since we, as well as job seekers and clients, are affected by the site’s health.

I have made multiple attempts to report problems to Customer Support. It has not made a difference. I am hoping to find another channel of communication. [Edited: since posting, I have heard from two managers at LinkedIn and am hopeful.]

This post is to bring some awareness to the state of things. If you see something unexpected on LinkedIn, it is likely not you (and please share what you observe).

X-Ray, I say!

Deviations from Boolean

booleanstrings Boolean Leave a Comment

Is Boolean (newly) broken? First, let us make it clear what we mean by the question. There are:

  1. Google Boolean search
  2. Google search
  3. LinkedIn Boolean search
  4. LinkedIn search.

Out of the four, two are intentionally “broken,” and one is broken due to bugs. One works fine, but produces unexpected numbers – and lists – of results – something that has started to happen only recently. (Let me know if you need info on which is which.)

Formal Boolean search logic has been intentionally “altered” on both Google and LinkedIn for a long time (the image here is a joke.) Google gives us some control over making a search “strictly” Boolean via quotes and Verbatim. LinkedIn does not.

But Boolean deviation is not a problem if implemented well. On Google, you can benefit from its semantic algorithms when you search as everybody, i.e., to find one good answer. We all “Google” when sourcing and exploring relevant companies, job titles, associations, etc. in the Exploratory part of our jobs. These are short “questions,” easily fitting under Google’s limit of 32 keywords.

What is new on Google, is that if, unlike most humans, you are after getting as many results as possible, you need to play some games and combine results. Rephrasing a query in a formally equal, but differently expressed Boolean Strings generates widely varying results and their numbers. Even a Google Search Engineer found some search strings to return “odd results” in my post.

The reason Google returns such different results to similar queries is that our queries are of a rare, “restrictive,” kind. Google’s attention – both in the ways Engineers develop algorithms and Google AI teaches itself by watching everyone’s reaction to results – is targeted at the vast majority of population that just “Googles” and hopes to see one correct answer. We had an informal chat about this on Recruiting Brainfood last week.

I am guessing with the reasons being:

  1. The growing amount of data in Google’s Index making its fast response harder
  2. A desire to return some results if at all possible and knowing that most want only one or a few results,

Google regularly restricts numbers of results to small percentages of matching results. It picks results rather randomly when you switch or repeat keywords, mainly because it has not been trained on such “weird” requests. It never returns more than 300-400 results (which means that its displayed numbers of results mean nothing. It never did; back in 2010 we still saw up to 1,000, but no longer). However, as of recently, some queries return more (close to 400) or fewer (less than 100) results after seemingly “cosmetic” tweaks. Google stops when it “feels” it has made “enough” effort on your query.

Consequently, silly things like repeating keywords, putting some of them in quotes, or excluding non-existent keywords make Google “grab” different results that sometimes overlap very little – to our advantage. By scraping and combining records, you can beat up all the limits and get lists of over 1,000. It is similar to a spy or a thief scanning a dark room with a flashlight and getting a fuller picture.

Another effect: because Google wants to make you happy, it will trigger its semantic components, interpreting your search if it finds few exact matches. It differs from before in how much effort Google puts into varying your terms. The more keywords you add, the more extensive range of similar words you are likely to see. Google will usually initially try to make it work with one variation, like owner as a synonym for manager. If you exclude that, it will try to vary something else until it feels that you have been served. It used to be more generous with synonyms before 🙂

Quite a different story, LinkedIn personal people search is broken, and you need to know how.

Join me this Thursday for a brand-new class,

Search Is No Longer Boolean,

where I will review the specifics of the Search Universe changes, demonstrate examples, and discuss search strategies.



The Shallowest Deep Web Where Hackerranker Lives

booleanstrings Boolean Leave a Comment

Search Engines like Google index pages on the Surface Web, i.e. (roughly speaking) pages that do not require a login.

Not all of those pages are indexed. Sites can tell Google not to index parts of them. The mechanism is via robots.txt files or <meta> directives on individual pages. Even though you can view those pages in incognito, you won’t find them via X-Raying.

One example is Airtable, suggested by Alla Pavlova. There are multiple contact lists of laid-off people or conference attendees, yet site:airtable.com finds none.

Another example is Hackerrank, covered by Balazs. (In the case of Hackerrank, they have introduced those <meta> directives on every profile.)

There are two ways to discover these pages. These pages are not as “deeply” hidden as some other parts of the web, and you can sort of X-Ray for them.

1. Search on Social Networks. (No directives exist in HTML preventing links from being shared!)


Play some keyword games to eliminate irrelevant pages from Airtable (such as documentation).

You can continue with sites like Reddit, Discord, etc. “Closed networks” often hide their users’ professional backgrounds, along with their names. But “shared information” describes most of the popular posted content.

Note, though, that you can search for the words surrounding links to pages but not the page’s content. So the search needs to have those “description” or “comment” keywords – what the link is about: contact lists, attendees, events, directories, etc. In this way, it is similar to intitle: and inanchor: searches. It invites searching with “natural language” since it is likely someone’s comments on the document in addition to sharing its title and URL.

2. Apply the same logic to Google search. Look for pages with links to sites like Airtable or Hackerrank – accordingly, with words describing those links.

Example: “airtable.com” -site:airtable.com tech layoffs.

These discoverable and viewable sites are “the Shallow Part of the Deep Web.”

For an update on Google search algorithm, check out the brand-new class on Thursday, November 17th,

Search Is No Longer Boolean.


Boolean Search Is Dead

booleanstrings Boolean 1 Comment

Google search strings are often called Boolean Strings. But do you think Google search is Boolean? It is not. Neither is LinkedIn’s, despite what their help says. Both platforms apply semantic algorithms, trying to guess the searcher’s intent; one – successfully, the other – poorly, introducing bugs while at it. Both platforms break the formal Boolean rules.

You can see that the Boolean logic is broken with these simple examples, which “should” return no results, yet they do because of the interpretation:

You may want to rely on Google’s interpretation in cases like researching target companies or associations (etc.). That is a “question to Google,” like top retail companies in china or common hispanic last names, looking for one or a few “right” answers – like most people do. That is what the verb “google” implies. Where you need to apply control to eliminate some false positives, you can put single keywords in quotes, and Google will not vary them.

However, relying on one Google search is a bad idea if you are after as many matching results as possible.

1, You want to modify your search to let Google know your search is “restrictive,” which may produce many more results.

2. Modifying the search without changing its Boolean logic leads to different results! These changes will get different results and their numbers:

People – Researchers, Sourcers – like us – who want to get lots of results, for example, from an X-Ray,  are not on Google Developers’ radar since we are in the minority. From experiments and a nod from Google’s team, we should be playing “non-Boolean” games and combining results from seemingly equivalent searches. Some automation may come in handy.

Why are we still seeing mile-long OR strings on Google in posts? For a while now, using ORs on Google has been reducing search results. Compare searching for each term in turn and combining results with a search with ORs for any list of words, and you will see. Say NO or ORs.

LinkedIn is another matter.

LinkedIn is a different – and sad – story. Its premium search is buggy – it won’t find some members through keyword searches for words in their Headlines, About, and Job Descriptions. We have not been able to decipher what it does – it just seems random.

LinkedIn Job Search is broken in strange ways.

What are LinkedIn Developers doing? @LinkedIn, we can help you find good ones. Perhaps QA Engineers as well.

LinkedIn Recruiter search is unintuitive, but you can use it well.

When sourcing, you also need to be aware of how restrictive LinkedIn/Recruiter filters can be. When you use standard filters, you are down to searching among 18% of LinkedIn members.

X-Ray, it turns out, is an excellent alternative to Recruiter.

In practice, “broken Boolean” means that we should be smart and combine controlled Boolean and open-ended semantic searches to reach our goals.

I am preparing a webinar on the topic outlining what exactly happens with the Boolean rules and how to take advantage of our algorithm understanding; watch our announcements. In the meantime, join the popular, updated, Find Anyone’s Contact Info on November 9th.

Explore our Sourcing Training Library.

My friend, a philosopher and community leader Hung Lee and me will have an informal chat on the “Boolean Is Dead” topic on November 11th. Join us!