Ideal Candidate and LinkedIn Recruiter

booleanstrings Boolean Leave a Comment

Recruiters are aware that most job descriptions lack some information necessary to source potential candidates. A job description is written to attract talent, and it is only one piece of data for Recruiters. We gain the extra info and Hiring Manager’s preferences through intake write-ups and meetings.

We have designed our sourcing intake form Brain Gain Recruiting Sourcing Checklist to solicit that extra information. I find an “ideal candidate’s profile” (or two, or three) to be especially helpful.

LinkedIn Recruiter (LIR) offers searching by an ideal candidate. The idea is admirable, but have you noticed how it is implemented?

When you search by an ideal candidate, LIR does exactly the following:

  • Sets an OR of the person’s job titles.

This means that you will be searching for past job titles, which could be more junior or even totally different from what you need.
I have a friend who once was an oboe player, then a database admin, and now is a speech therapist. If you are searching for a speech therapist, do you want to see oboe players?

  • Adds an OR of the person’s companies.

Do you want to hire from the same companies? Most often, not – especially if the “ideal” person has worked at small companies or already works at the company in a similar role.

  • Adds an OR of the person’s skills.

LIR’s skill search now looks (way) beyond self-entered skills; it finds people who have the skill keywords on the profiles. Therefore, skills search can only be separating good prospects from non-matching if you use an AND of skills.

  • Adds an OR of the person’s industries – picked from the employers and jobs past and present.

But “Industry” is a tricky filter. For the majority of professions, choosing one industry does not cover the type of work people do. Then, some members enter their “role” industry (like “Staffing and Recruiting”) while others put the employer’s industry (like “Healthcare”).
For some suggested industry selections, you will not even find that ideal candidate. For example, a good friend worked in music production years ago, before becoming a Sourcer. If you search by her profile, a suggested industry is “Entertainment” – but you will not find her when searching for it!

“Search by ideal candidate” and other features of LIR require understanding how the search “really” works and how to overcome the limiting factors. The LIR Help does not explain that.

Join us for the LinkedIn Recruiter Mastery class next Thursday, August 5th, to get clarity on its search and learn to find promising profiles that may be hidden if you just follow LIR’s prompts. As always, you can follow up with questions for a month.



Dimensions of Reverse Image Search on Google

booleanstrings Boolean Leave a Comment


Reverse Image Search is a favorite way to find online traces of someone by their social profile photo.

But if you search by image on Google, you may be missing some results. Here is why and how to overcome that.

#1. When you upload an image, Google (annoyingly) shows its “explanations” – sometimes even offensive – like “hair loss.” For my friend @Infosourcer‘s Twitter profile picture in two different dimensions, it decides on “wildlife biologist” on one and “leisure” on the other. (Who needs this feature as it is?)
The “explanation” keywords is not an “innocent” addition, though – they affect your reverse image search.

Change the automatically appeared keywords to something meaningless – just “a” would work – to stop the results from being filtered. Or change them to the person’s name (or other terms) to “guide” the search.

#2. Did you notice how, in the example above, Google’s “approach” to searching by the same image in different sizes is inconsistent – it interprets the images differently? (Also note that “Find other sizes of this image” that you may see, as in the screenshot above, usually finds little.)

Searching by the same image from different sites or in different sizes often produces complementary results.

Let me demonstrate that using my business partner David’s LinkedIn profile photo as an example.
If I search by the profile photo, I find LinkedIn and a few other sites, including our CSE book on Amazon – but not the Twitter profile (which has the same picture).

But if I resize David’s LinkedIn photo to 200×200 pixels (as above) using a simple image editor, new results show up – including Twitter! If I search by the 200×200 image from Twitter, results vary again.

Summary for reverse image search on Google:

1. Remove or change Google’s guess
2. Use different image dimensions and the same image from different sites to uncover more results.

Bonus point –

How to see a LinkedIn photo without a frame

Some LinkedIn profile photos have #opentowork or #hiring frames. For reverse image search, these “stand in the way.” Images on public profiles have no frames, but LinkedIn often would not let you open the profiles without logging in. There are fun ways to see an incognito profile, such as view it with Google Mobile-Friendly Test.

But to find the image only, you can X-Ray the person’s profile in images, like so: imagesize:200×200.



Best Site to Source Developers (Poll Results)

booleanstrings Boolean Leave a Comment

Last week, I ran a poll on LinkedIn- “Which site, do you think, is the best for sourcing Software Developers?” which attracted a massive 60K+ views and 1,400 votes.

It was a bit of a trick question. I had hoped to facilitate a discussion on combining sites for sourcing – and so it did (see the comments). Other sites were suggested, including Twitter. But most people just voted.

While the poll was intended for Technical Recruiters, it attracted Developers themselves (mostly voting for LinkedIn!) and others working in Tech. The “Other” votes included some folks who sell sourcing software 🙂

Here is a word cloud of the participants’ Headlines:

So – “which site is the best?” If I were to choose only one site, that would be LinkedIn. It is common sense: LinkedIn shows Software Developers’ job titles, companies, and years of experience and at the company. In comparison, Github does not have a field for job titles and few have filled out the company field. Stackoverflow and Twitter have free-form bios rarely disclosing the necessary info to prequalify someone for reaching out.

The fruitful approach is combining data across sites. This allows you to find prospects who will not be found on any (one) site – LinkedIn included.

As an example, someone who is popular and active on Github (but does not tell us where they work) with a “shallow” LinkedIn profile where they did not even mention programming languages, can only be identified through cross-referencing. And if you get their info from a “code authors” file, all you have is the name and email (plus you know that they worked on the project).

People aggregators like Amazing Hiring “pre-cross-reference” professional profiles for us ahead of time. That provides a productivity boost and ease of use – and I highly recommend trying them!

However, information in databases:

  1. gets outdated
  2. may not have the data for your particular needs or locations (that you can check during a trial).

You can do some “live” cross-referencing for free, targeting your requirements, and will pull today’s data. Check out the recent posts Who Are You? The Art of Cross-Referencing, Github Example, and How to Collect and Cross-Reference All Emails in Search Results for some ideas.

Our Scraping webinar next week will help if you want to dig deeper into cross-referencing – check it out!






How to Collect and Cross-Reference All Emails in Search Results

booleanstrings Boolean Leave a Comment

I want to tell you a fast way to collect prospects’ email addresses from Google search results pages and then find the professionals on LinkedIn. The result is a target list of LinkedIn profiles for which you know email addresses. The method is free and requires no coding or being “technical” whatsoever.

See the steps in a fun 7-minute demo by David Galley. (We felt it is easier to follow a video than if I described each step in a post. )

Tools you will need:

  1. Julia’s Email Extractor
  2. Linkclump or similar (to open selected links in separate tabs)
  3. Google
  4. Basic LinkedIn.

David shows how to collect and cross-reference Kubernetes Developers on Github based on X-Raying “authors” files as a use case. (The demo is complementary to my latest Github Sourcing presentation sponsored by Amazing Hiring.)

We call digging under links “in-scraping.” It is available in some commercial scrapers, but the setup is not nearly as simple.

The demoed technique is wildly fast, free, and applicable to endless other use cases. Applied to Talent Sourcing, the technique is efficient in the era of remote work when candidates’ locations are less critical.

Join us for the upcoming webinar on July 28,

Web Scraping For Recruiters

and learn how to scrape simply for your productivity.

33 more: Precise Custom Searches by Sites and Across

booleanstrings Boolean 1 Comment

Google Custom (Programmable) Engines are capable of finding particular values (such as someone’s location or employer) precisely with the aid of special search operators. The precise filtering ability is based on the “objects” defined by – such as Person, Organization, or Place – which site creators can embed in the page code. The “custom” search operators are written as more:pagemap:<custom addition> which you can shorten to more:p: 

There is no tipsheet for these operators since their syntax is often site-specific (unlike the 21 Google operators). This post can serve as the “next best” since you can alter and utilize the search examples. Also, check other (few) writeups, particularly this from my French friends Guillaume Alexandre and Pierre- André Fortin.

Expect a learning curve, but there is no coding involved.

Since David Galley and I are in the people search business, our research, book, tool, and upcoming webinar cover the object “Person” and its fields in detail.

more: operators allow you to search for specific values, as you will observe following the example links in the table below. But they also work to find pages with a given structure, regardless of the values (add your keywords):

(As a side note, people have been telling me that our book title “Custom Search Engines – Discover more: is mistyped – it is not!)

At this time, social profiles on LinkedIn, Facebook, and Twitter do not follow a Schema format that CSEs can query. LinkedIn used to have “Persons” on profiles a few years back, but, alas, it has become inconsistent.

Here is a collection of site-specific Person example searches. It is followed by searches across sites (using a “find everything” CSE). Open-ended searches across the web can find “Person-friendly” sites for your research.

I constructed the below examples using Social List, a CSE API-based tool that hides the operator complexity from end-users and collects results in Excel.

SlideShare Country
Area or City
XING Industry
Github Name
Gitlab Name
Across Sites Address
Job Title
Honorific prefix (Mr., Ms., etc.)
Honorific suffix (MBA, PhD, DDS, etc.)

Join us for an interactive two-part class, Become A Custom Search Engines Expert, on July 20-21 and learn about the unique technology. Attendees will receive the slides, recording, and one-month support. The webinar is recommended to Sourcers, #OSINT practitioners, and anyone familiar with advanced Google search and, in particular, X-Ray (the site: operator).

Search for US Voters with Custom Search Engines #OSINT

booleanstrings Boolean, OSINT Leave a Comment

US Voters site contains public information. Each record has the voter’s name and other info such as addresses, and, potentially, emails, phone numbers, and gender. The site has the data for sixteen US states. For many professionals who are not on LinkedIn or are barely online altogether, the voters’ info provides Sourcers with a way to reach out to them. There are OSINT applications outside of talent sourcing as well.

You can search by name, city, state, party, and year of birth on the site. Since the profiles are public, you can also X-Ray and search for values that you won’t find with the site. Here are, for example, Colorado voters with a Gmail address: “” colorado

You can search even better, using precise filters, with Custom (Programmable) Search Engines – CSEs (one of my favorite topics).

CSEs is a software layer on top of Google, which many know as a way to hide complex or repeated search syntax for user-friendliness and productivity. For example, you can hide the site: operator and end-users won’t need to retype or even see it yet the CSE would X-Ray the site.

But CSEs also have an extraordinary power: they can search for particular values with special (ugly-looking, sorry) search operators. Depending on what a site (such as LinkedIn, Github, XING, Voters, Gitlab, etc.) “communicates” to Googlebot when it visits profiles, you might be able to search for professional, contact, and demographic information.

The “communication” between a page and its robot visitors happens via the source code on the page that follows a standard called This code is not to tell browsers how to render the page but rather inform crawlers of the page “structure”, meaning, objects, and their values. When you search for movies and see star ratings in the search results, those come from the pages with an object Movie and those rating values. Google does not offer to search for highly-rated movies but CSEs do.

I will leave the movie search for another time (or implement it if you learn how it works, let me know!) Of interest to us is searching for people. A profile page on a social site may contain an object Person with attributes like name, address, etc. – for which we can search with CSEs.

This way, CSEs offer to search parts of the web as if they were structured databases. No other software provides a similar technique on such as scale.

You can learn all about CSEs in our new book and the upcoming interactive webinar

Become A Custom Search Engines Expert.

What about the Voters? The site has some structure: the records have a Person object and you can query them for values such as gender, email, and more, as follows. (Obviously, you cannot do that from the site.)

(If you like “fancier” vs. shorter operators, you can also replace :p: with :pagemap:)

I realize that the above is a pretty swift introduction to CSEs for those who are not familiar with the technology. If the subject is of interest, join us for the class Become A Custom Search Engines Expert to get going. Keep the materials to help with your exploration and applying the unique technique. Hope to “see” you there!

Who Are You? The Art of Cross-Referencing, Github Example

booleanstrings Boolean Leave a Comment

Yesterday I saw a recruiter’s post on Facebook asking for advice on how to figure out which candidate had texted them when they couldn’t see the name, only the number. (Has it happened to you?)

A recurring problem in sourcing is dealing with insufficient information. You want to reach out only to relevant people, but the data (say, a Github profile) does not have the essential info such as a job title, company, and often, even location. Emailing everyone who lives in Boston and writes in Java will unnecessarily bother senior managers, students, professors, retirees, people who just started a job, etc.

Let’s commit to being spam-free!

The solution to finding the missing qualifying information is cross-referencing – done by you or by software.

The obvious site to look for professional parameters is LinkedIn. And now it has become possible to find everyone by a registered email, no matter which type of account you have – Basic’s fine – by uploading an email list to LinkedIn. The list can be as long as 8-9K records, and you do not even need the first and last names. (Repeat if it didn’t work.)

Here is the process.

  1. Start with a Github search like the above and collect (public) emails. Instant Data Scraper, one of my favorite Chrome extensions, can do it, or use Julia’s Email Extractor along with Autopagerize (all marked with an Asterisk in my tools list.)
  2. There is a wise intermediate step to take before you start the list cross-referencing. In the  Instant Data Scraper search output, you will find locations and bios – you might want to filter by that first. After cross-referencing, the extra data will be “gone” – and some people will not say on LinkedIn profiles things they did in Github bios. (Also – if anyone in the Github list stands out, check them out right away.)
  3. Upload the email addresses to LinkedIn the new way, and you will arrive at a list of profiles with professional info for people for whom you already know a lot:
    • Programming languages they use (or even their numbers of repositories or followers or other Github search filters)
    • Their email address
    • Their LinkedIn profile

The idea of cross-referencing is not new, but the current improved “Contacts” functionality makes the technology available at scale.

Note that their LinkedIn profile may be “shallow” and lack the programming languages listed – but you know that they use, for example, Golang, from Github. You will be surprised how large the percentage of those “LinkedIn-shy” Github users research shows. This means that you will be steps ahead of those colleagues who still only source on LinkedIn: your results will include potential candidates who are “invisible” on LinkedIn!

The advantage of the described method is that it comes at no cost and provides the most up-to-date data. It can also be easily generalized in application to any email list, no matter what the source. (Keep the intermediate “filtering” step in mind for better targeting.)

People aggregators like AmazingHiring do this profile association for users ahead of time, eliminating hands-on cross-referencing and including sites with professional data beyond Github and LinkedIn. (I first wrote about aggregators in 2011, calling them the “Dream Software”).

I am glad to invite you to a webinar on July 14th,

Github – Recruiters’ Paradise

sponsored by AmazingHiring, where we’ll go over this and other endless Github sourcing possibilities.

[Edited: if you missed it, here is the recording:]

Interesting: Two File Types in Google Images #OSINT

booleanstrings Boolean, Google, OSINT Leave a Comment

It is new – Google Image search responds to the filetype: operator for document types such as PDF, DOCX, or PPTX.

security conference attendee list director vp filetype:pdf

This is cool because Images is a separate database – its results ranking is different, and extra results may surface. And you can preview the images before opening the results.

It is possible to combine the image search in documents with other parameters, such as image color, size, type, etc., available in the Advanced Image Search. For example, here are large blue org charts at banks: filetype:pdf orgchart bank.

Before the change, you could use the operator filetype: in Images looking for image types such as PNG, JPEG, BMP, ICO, GIF, etc. – you still can; for example, bank “new york” filetype:ICO.

Now, Google will respond to TWO filetype operators to search for images of a given type in documents of a given type: filetype:pdf filetype:png butterflies.

I sense that it is a work in progress; Google may be re-implementing its “file types” found in search. (We have seen some early signs before). This search for two different file types in the “main” Google now brings results: filetype:pdf filetype:html healthcare providers. (Expect another post. 😉 )

It is interesting and worth some research time!




Check Your Assumptions for LinkedIn Connections’ Search

booleanstrings Boolean, LinkedIn Leave a Comment

LinkedIn connections and connection levels are as old as LinkedIn itself. The underlying idea of the Social Network is based on connections!

You would think that LinkedIn (founded in 2002) has figured out the search for connection levels by now. But if you trust connection search – for example, routinely search for the second level members to connect with – you are up for disappointment: connection search has multiple issues. Here is a summary; these things (or rather, bugs) are good to keep in mind.

A. Search for each connection level vs. no level selection is not the same

You might think selecting each connection level – 1st, 2nd, and 3rd – will provide the same results as selecting no levels. (Based on the definitions, you are right.) But it is not so: compare everyone with everyone with connections levels. The latter search misses about 1% of profiles – and not necessarily out of your network.

B. Some members are not found by connection level search

This is a screenshot showing a result – a legitimate 2nd connection – which disappears when any (or all) connection levels are selected. The search depends on something about the member that matches the search and the person who searches (that contributes to the hiding effect).

That might explain why selecting connection levels results in a smaller number of profiles.

C. Third and out-of-network search returns second connections

I am sure you have experienced that. The “top” results of the third+ connections search are mostly second connections for me (ones with whom I have connections in common), not the third.

D. Some 3rd level connections are displayed as the second

But there are no common connections:


E. Some 2nd level connections are displayed as third

I invite you to find an example for this one 🙂

What about the first-level connections? Something is going on there as well.

F. Connection numbers discrepancy

Compare the number of your connections in search and in contacts and let me know if it is the same.

It helps to verify our assumptions in sourcing!

P.S. Check out our latest sourcing wisdom about LinkedIn in the LinkedIn Solved class recording.



Custom Search Engines’ Filters – Gitlab Example

booleanstrings Boolean, OSINT Leave a Comment

Gitlab, like Github, is a platform providing a Version Control System, allowing Developers to collaborate on writing code. It claims to have 30+ MLN profiles, quite comparable to Github’s 60+ MLN. There are some differences in functionality and user profiles.

(If you source for Developers, the below search syntax examples might help in finding results – scroll down to see the Gitlab CSE operator syntax. But most importantly, the Gitlab example demonstrates a powerful sourcing technique – filtered search in CSEs).

Gitlab profiles offer a rich’s Person structure, allowing you to X-Ray it in a filtered way using (a favorite subject) Custom (Programmable) Search Engines (CSEs). The structure even has a filter for emails!

If you are not familiar with filtered search available through CSEs on sites that support’s structure, here is, in brief, how it works.

Web page creators can put some “meta” code within the page source code – not for rendering but for telling Googlebot what “objects” it contains – a person, an organization, or a movie, for example. The Schema standard defines the format for “communicating” those objects.

The objects embedded in meta-code may have values – say, a page may have an object Person with the value “job title” equal to “developer.” CSEs provide a way to search for that structure and values – for example, you can search for all people with the title “developer” on a particular site (if its structure supports it). I.e., you are getting awesome search abilities- now you can search for results based on the values such as job title, company, location, and more, depending on the site to X-Ray.

David Galley‘s and my book Custom Search Engines – Discover more: is out (yay!) and is the only book about CSEs. It talks about the subject in-depth. (Make sure you get an electronic copy where you can click on links). So will our class.

Join us for an interactive class, Become a Custom Search Engines Expert, on June 29-30 (Tue-Wed) 2021, and get going with CSEs in just two days! The presentation will be of interest to Recruiters, Sourcers, OSINT Researchers, and anyone who does research using Google.

What about Gitlab? Here is the full list of its CSE search operators – use them in the GitLAB CSE below (or build your own CSE).

  1. more:p:hcard-fn:<name>
  2. more:p:person-role:<role>
  3. more:p:person-worksfor:<organization>
  4. more:p:person-location:<location>
  5. more:p:person-email:<email>
  6. more:p:metatags-og_description:<bio>


Here are the values you can search for and extract using CSE APIs – to do so, write some code or use our tool, Social List: