Sourcing for Active and Passive Candidates on Stackoverflow Careers

Stackoverflow is part of StackExchange, a “Q and A” platform. At this time it has 2.5 MLN users.

The site Stack Overflow Careers 2.0 offers the users to share their professional information if they are open to new possibilities. Search for these profiles is paid for employers and recruiters. However, you can X-Ray the site (for free).

Here’s what a profile on the “career” site looks like. Once you have found a profile, there shouldn’t be any problem finding additional professional information (if you need it), based on the shared links to social sites, the profile image, the name, and the location.

(Note that these bio/profile pages are separate. and different in structure, from the profiles of Stackoverflow users.)

A straightforward string to X-Ray the bio’s is -inurl:jobs (add some keywords), for example: -inurl:jobs Objective-C PHP MySQL

We can see (interpret) these pages in the same way as resumes on job boards: recent are for active candidates, past are for “passive”.

To find the most recent profiles you can search for -inurl:jobs profile “updated * yesterday” -inurl:jobs profile updated ..6 days ago

Naturally, when you view the profile showing “3 days ago” in the preview it may be, say, 6 days since it was updated. This gap in dates gives us some idea on how often Google visits the pages.

View the dates when the profiles was last updated by using something like -inurl:jobs profile updated on * * *

Now, who can find the profile that has not been updated the longest? :)

If you are interested in many more practical ways and examples of sites to search for Software Engineers, feel free to check out the materials for the latest webinar, exactly on that topic.


Find People on Google-Plus by Emails

Finding social profiles by email addresses have some good applications in Sourcing. Examples are cross-referencing profiles and looking up extra professional information, as well as making several guesses about an unknown email address and finding out which guess is correct. Rapportive does those look-ups; it is one of my favorite tools.

Here are some cool features that Google-Plus offers us in this regard, additional to those already described in an earlier post about Rapportive and Google-Plus.

The techniques I am going to describe work with email lists.

If you have a list of email addresses and paste the list into a new email in your Gmail account, you can locate those who have Google-Plus profiles by moving the mouse over their addresses.  From here you can add the person to circles or click on the link and go to the profile:

This information is an instant look-up in the Google-Plus membership database, so it’s up-to-date, guaranteed.

If you have Rapportive installed, you will see the information it keeps in its database of profiles as well – on the right, as usual, on mousing over an address. (In some cases Rapportive may miss the Google-plus profile, so the information may be complementary.)

This is useful! However, you will not know anything about a specific email address from your list (whether it points to a profile or not) until you move the mouse over it.

There’s a quick way to find out which email addresses in a list do point to  Google-Plus profiles without doing these individual look-ups. (Using the mouse may still be necessary, but only to scroll the list.) If you are cross-referencing a list of guesses to find the correct email address for one specific person, you will instantly see the answer, similarly to using LinkedIn for that, but faster if the profile exists on Google-Plus.

Here is how. Start “sharing” something with your list of email addresses, by pasting the list into the “share with” box on Google-Plus. (I don’t mean that you should actually share anything, just start using the sharing dialog.) The emails that point to profiles will show little icons from the profiles, or generic person icons for those who didn’t upload a profile picture. The ones with an envelope icon shown are those that do not point to profiles:

From here, too, you can add people to Google-Plus circles or view their profiles.

Lastly, for an even better viewing experience of the cross-referenced email addresses you can also try to select the “browse people” icon…

… and paste the list to see the profiles, as the screenshot below illustrates. However, at least in my experience, this gets too slow for lists with over a couple dozen or so email addresses; scrolling stops working. Still, for shorter lists this can be quite satisfactory.

P.S. Check out this post as well on - Find People On Social Networks By Email; it has some more interesting tips on the subject.

X-Raying LinkedIn is Not for Wimps


To continue the exploration of X-Raying LinkedIn for profiles, I’d like to cover two main reasons for false positives, which are not the results you might be looking for. They appear in the search results along with true “positives”, the results that do match.

The below exploration applies to any X-Ray searching, no matter for hidden names discovery or for a broader purpose of sourcing.

Compare these two searches:

LinkedIn search for “CEO at SugarCRM”: 1 (one) result

X-Ray Google search: OR -pub.dir “CEO at SugarCRM”: several hundred results – most of which are false positives, if the reason to search was to find the person.

The first results are variation URLs for the profile of the same person; then, you will see many profiles of professionals other than the CEO of SugarCRM:

The extra results are not what we looked for, but are there for a reason.

Let’s review what the following X-Ray search does; this does look like a search someone might run looking for candidates: OR -inurl:pub.dir “front-end developer at” “at Google OR Facebook OR Microsoft” “Python” “Javascript”

We are looking for people who have or had a job title “front-end developer”, worked at Google, Facebook, or Microsoft, and have keywords Python and Javascript on the profile. Seems reasonable? Now, look what happens. Here is one the results for the search.

This profile does have the two keywords in the skills section; however the person never was a Front-end developer and never worked at any of the target companies. The profile is in the search results because of the information in the “also viewed” section.

It’s a “false positive” – but a kind of a false positive that is pretty impossible to exclude by the Boolean NOT (minus) type of exclusion.

As an example, suppose I want to exclude the above result and for that I exclude the person titles (as below) OR -inurl:pub.dir “front-end developer at” “at Google OR Facebook OR Microsoft” “Python” “Javascript” -CEO -co-Founder

The problem with that, that if this CEO, co-founder person is present in some other profiles  in the “also viewed” section – those other profiles will be removed as well – but they may be a match.

The second major reason for false positives, in addition to the “also viewed”  is “find a different”, which affects search in similar ways.

You can see that X-Ray searching for LinkedIn profiles by job titles and by company names is hard-to-impossible to control to narrow down to mostly relevant results; Boolean exclusion can help but it can also hurt. Some things we can do though, to make X-Raying more useful and targeted.

We can do X-ray searches for people at specific locations; members of specific groups; those who attended specific schools We can add keywords and phrases,; that would help a lot. But we can’t be sure that each profile found would have a desired job title or a given employer that we had searched for. The search results will need to be reviewed.

We can do rather clumsy constructions with the words “current” and “past” and asterisks:

“Current OR Past * Front-End Web Developer” OR -inurl:pub.dir “at Google OR Facebook OR Microsoft” “Python” “Javascript”

If you go this route, be ready to fill out some captchas.

Conclusion: X-Raying is messy and is not for the faint of heart!

Attend the webinar Boolean Search on LinkedIn to dig deeper into the subject.

Sort Order Exploration

While many people are trying to guess how the search results are sorted on LinkedIn now - there are, apparently, several factors that are taken to account, in an attempt to make the search order more “semantic” and more satisfactory for the person who is doing the search – let me share a very interesting, easy-to-interpret, sort order in some searches, that you may not have seen before.

This is available only in LIR (LinkedIn Recruiter) and these are the results of a search with no keywords and no facets specified. By the way, you can also see today’s total number of profiles when doing this search; it was 279,790,775 when I ran it a few minutes ago. For the screenshot, I have left the first eight names and taglines and removed the detailed previews. (For the record, all 8 profiles are public.)

If you have a LIR subscription, here’s how to reproduce the search: start with a keyword, then select 1st, 2nd, and 3rd connections using checkboxes, then remove the keyword, and you will see “everyone”.

Now, for this search the order of the profiles is very specific and depends exactly on one value. The list of people is shown in the order of…

Guess what it is!

The same search order remains in place if you narrow the search down to a country, to an industry, and to a few more select-a-value type of search facets.

Why is this search order relevant? That I don’t know. But the results are quite interesting to review.

Hidden Names: What Can Go Wrong with X-Raying

At the moment we do not know of a 100% method to find the names on out-of-network profiles, – those that are displayed in the search results as “LinkedIn Member”.

With the varying ways and tools to find those hidden names, that come and go, discussed in forums, there’s always someone who comments that it’s “just a matter of Googling!” Pretty often it is. But, to cover the subject in detail and to set the expectations right, let’s review five cases where Googling will not be as helpful as you would hope.

1. The profile may be hidden from Google, marked as “private” by the member.

2. The profile may have changed since Google looked at it last time. Searching may then go wrong, because Google searches in its own cache, not on LinkedIn.

3. Hidden “LinkedIn Member” previews may show the words that are so common, that searching would produce way too many results to look through. Try, for example, to find this profile by X-Raying:

SIDE NOTE: For the cases with common keywords like the above, here is some help:

a) Do you remember what you searched for in the first place? Add that to Googling.

b) There’s a way to possibly discover more keywords by looking into “finding references”.

That would be extra legwork and could be a hit-or-miss, but if you are desperate, this may dig out more keywords to add to your X-Raying.

4. Google doesn’t include some public profiles in its index. There’s a post from 2012 from Shane Bowen illustrating it.

5. Even if Google does include a profile in its index, it would not necessarily locate the profile by the keywords or phrases that you specify. This would probably not happen too often in X-raying for hidden names, since taglines, industries, and locations would probably make it to Google’s words for indexing. But in general, not every phrase on an indexed web page would work to find that page. (I have seen some Google searching cases when a page if found by dropping the quotation marks around a phrase that is present on the page but not by the prase in “” – have you?)  That phenomena is responsible for finding fewer LinkedIn profiles by using common phrases such as “people you know” vs. using the template OR -inurl:pub.dir …

OK, that is enough “bad news” for now…

Want to become a Sourcing Ninja? Check out the incredible unique deal on my 3 top webinars, only available this week.

Excluding the Wrong Sites from Search Results

In the previous post Excluding Non-Resumes: Be Positive I explained how to “think positively” and get non-resumes out of the way when searching for resumes. There’s a different type of “wrong” results that cannot be removed by this strategy. These come from sites that make a special effort to be shown in the search results.

Paid sites that offer resume search certainly know about our

intitle:resume OR inurl:resume …

intitle:CV OR inurl:CV …

templates to find online resumes. They use this page structure (words cv or resume in page titles and URLs) to appear in search results. Two kinds of  “wrong” pages from those sites may show up in Google search:

1) Lists of resumes.

If you search for several keywords and find a list of resumes with previews, usually there’s no one resume in the list with all the keywords present – so the page is completely irrelevant. Here is an example:

2) “Blind” resumes with some important information, such as the name and contact, removed.

Here is an example:

There used to be many more “wrong” results across many searches (not just for resumes). Google is improving its filtering out “spam” sites and there’s not as many as before. Still, some show up in the results.

Blocking the “wrong” sites can be done by “being positive” and including information in search strings, that those sites won’t have, for example, contact email addresses from popular free domains, posted on real resumes:

“” OR “” OR “” (etc.)

In this case though “being positive” may not be the easiest approach, since there are too many variations of contact information that people use on resumes.

The most straightforward way to avoid these “wrong” results is to directly exclude these wrong sites. You may start adding to your search string something like (etc.)

I would also exclude; while they have good resumes, I think they are better searched separately with Indeed’s own excellent advanced resume search.

Google used to have a preference setting to list sites to be excluded from all searches but it was dropped some time ago.

Another option to block sites is by installing the Chrome Extension Personal Blocklist. Google will search as usual; this extension will just hide the results from these sites for you in your browser.

Google Custom Search Engines provide yet another option: all sites from a specified list can be excluded from the results. An additional advantage of using CSE’s is that Google will not bug you with Captchas.

If you are interested in a good coverage of Boolean Search basics and hints, check out the live repeat of my “Boolean Strings Basics” webinar along with 2 other popular webinars scheduled in the next few weeks.

Excluding Non-Resumes: Be Positive

This post is about the best practices in Boolean searching and specifically about (not) using the Boolean operator NOT (which is expressed by the minus - in Google) much and when unnecessary. The post is about online resumes, but the idea is applicable to any searching.

There’s a common practice among recruiters to exclude whole sets of the “wrong” words when searching for online resumes – the longer the exclusion list, the better. Sourcers use prepackaged strings like -job -jobs -apply -submit -eoe -template -example -sample -wizard (etc.) As an example of this popular approach, check out the discussion from a few years ago on out network:

Filtering for Only Resumes in a Google String

This “template exclusion” approach can produce decent results, but I think there are better ways to search. I’ll provide two reasons for why I don’t find it to be productive, then will suggest two ways to do better – which I practice in sourcing.

1. If you compare the search results for strings with very long (prepackaged) exclusion lists, you may find that more exclusions often do not make a big difference. Sometimes they even provide for more results – while this “should” work in the opposite way!

(In the following example I am using lots of “skill” keywords just to make the number of results small, for better illustration.)


 intitle:resume OR inurl:resume Hadoop Linux Windows Apache Java Hibernate “engineer” -job -jobs -apply -submit -eoe -template -example -sample -samples -template -wizard -required -wanted -free -send

with a shorter string:

intitle:resume OR inurl:resume Hadoop Linux Windows Apache Java Hibernate “engineer” -job -jobs -apply -submit -eoe -template -example -sample -samples

The shorter string produces fewer results (as of now). Without trying to solve the mystery, let’s take a look at an even shorter string:

intitle:resume OR inurl:resume Hadoop Linux Windows Apache Java Hibernate “engineer” -job -template

Clearly the above three search strings produce little “junk” and are quite comparable in terms of mostly generating relevant results – which is all we need.

Conclusion: The long string of exclusions is often an overkill. Searching with shorter strings are also “less mysterious”. :)

2. The words, that these search templates exclude, do appear on some resumes. If you exclude the word “job” by adding -job to the search string, you may exclude some resumes from the search results. Some of those may be from sites that have many resumes and mention jobs as well (say, on every page); that may not be such a big loss. But some “individually” posted resumes do include the word “job” as well, such as the resumes with these phrases:

“At Amazon, my primary job is to architect and develop systems for deploying”

 “Job ended due to group being shut down by the investor, and reorganized as Vindigo”

 “I also developed a batch job automation system used to process client data”

There are cases when other words from the “exclude” template – such as sample, apply, etc., – would appear on resumes. (Would you know how to find some examples of those? :))

Here’s the moral, or, perhaps, two morals of the story:

[1] “Be Less Negative”. It’s best, I think, not to use long templates for exclusion, but rather to exclude only words that really “stand in the way”. It’s best to leave templates alone and to identify words to exclude by glancing over the search results for a specific search, and exclude one word (or a phrase) at a time, then search again.

Generally, it’s best to exclude as little as possible. If only a couple results are not resumes, that’s not a big deal and it’s time to stop and review the results vs. trying to figure out what else to exclude to craft a “perfect” search string.

[2] Even better, “Be Positive”. If you name things present on resumes that you are searching for (those that would usually be absent in job descriptions and in resume samples), you will be effectively narrowing the search down to the desired results – and rarely needing to exclude anything.

Just as a matter of showing how this may work, compare these searches:

intitle:resume OR inurl:resume Hadoop Linux Windows Apache Java Hibernate “engineer” (the original search)

intitle:resume OR inurl:resume Hadoop Linux Windows Apache Java Hibernate “engineer” “responsible for”

intitle:resume OR inurl:resume Hadoop Linux Windows Apache Java Hibernate “engineer” ext:PDF

Words that are on resumes but not on job descriptions and not on sample resumes  could, of course, depend on the target skill set. Anyone wants to suggest some examples in addition to the above?

If you are interested in a good coverage of Boolean Search basics and hints, check out the live repeat of my “Boolean Strings Basics” webinar along with 2 other popular webinars scheduled in the next few weeks.


Google Knowledge Graph: Semantic Interpretation of Queries

As the time goes, Google is able to make sense of more information as known objects, or entities, not “just” as keywords. It introduced the “Knowledge Graph” back in 2012 and keeps accumulating recognizable words and phrases in the search, to which it can respond in an intelligent manner, understanding its meaning, semantically.

Google is implementing a very reasonable solution to introducing the entities it is able to recognize in the search results: it shows this information in addition to the search results.

Check out this search, for example: semantics - and you will see the definition of the term, not just keyword-based results.

While we can’t expect to paste a page-long description of the target professionals we are sourcing for and get their online profiles as the search results (so we should feel safe about keeping our jobs for now!), we do need to learn more about the Knowledge Graph, at least to make sense of what Google search shows. It may be time to start looking things up on Google, such as terms and company names, relying on its knowledge of entities, in Sourcing as well.

To get a feeling of what Knowledge Graph is about, let’s take a look at these screenshots:

Google screenshot from 2000 (copied from an article about the history of Google search pages – perhaps worth reviewing if you are curious about the history):

Actually, the “now” look has even more useful and relevant information as of today:


You can see that Google displays the data about the recognized object – the said hotel – on the right; the search results for the search string are shown “as usual” in the column on the left.

Google is in the process of accumulating data to help to recognize many, many “entitles” and relationships between them. We may not know what is recognized at every specific point in time; but we should certainly keep an eye on the possible semantic/Knowledge Graph searches and start thinking about using it is sourcing.

For now you can try these example searches and see what comes up:

  1. ceo of microsoft
  2. ceo of microsoft salary
  3. MIT
  4. MIT map
  5. what is STL
  6. banks in montreal

and perhaps explore this as well: example knowledge graph search results.


How To Find and Attract Technical Talent: Wed April 2 at 10 AM PDT

Join me for a new webinar: “How To Find and Attract Technical Talent”. 

You can register at the bottom of this page.

Who should attend: Technical Recruiters of all levels and everyone interested in recruiting technical talent.

Why you should attend: If you are searching for technical talent in 2014, you are aware how challenging it is. Technical skills are in demand. Top talented Engineers are not likely to return your calls or respond to InMails on LinkedIn.

Want to take your sourcing skills in IT Recruiting to the next level? Join me for a new webinar, covering every major tool and every way to locate technical talent online (including finding potential candidates that others won’t) and ways to attract attention of potential candidates.

Terminology and Roles. To help to navigate through searches and to be prepared to write attractive messages, we’ll discuss how to make sense of the terminology, such as programming languages, “front-end”, “back-end”, “full stack”, “open source”, Hadoop, etc. We’ll go over the specifics of different roles such as Developer, Data Scientist, Build Engineer, DBA, Network Admin, QA Engineer, etc. We’ll cover useful points for communicating with hiring managers regarding informative and appealing job descriptions.

Sourcing Methods. We’ll go over searching and sourcing methods and tips on LinkedIn, Github, Stackoverflow, Google-Plus,, and combining various sources; building custom search engines and alerts, using possible terminology variations and synonyms. We’ll also briefly go over several people aggregators such as Hiringsolved, Swoop Talent, Dice Open Web, Gild, and Entelo.

Effective Messages. Finally, I will provide insights on contacting “techies” and getting their attention and positive response, based on my own communication with Recruiters being a Software Engineer, then Manager, placed by Recruiters in my “previous” life (some years ago).

I am looking forward to sharing technical tips and insights with you!

Date/Time: Wednesday April 2 at 10 AM PDT/ 1 PM EDT

Registration/Cost: $99 (after you submit a payment you will receive a link to log in to the webinar within 24 hours, and before the webinar for sure).

Included: Attendance (optional); Slides, Video-recording, and One month of support on the subject.


Find Almost Anyone’s Email Using MS Outlook

In the following post I am going to explain how to easily and quickly test all of the guesses for a person’s email address all at once using MS Outlook.

MS Outlook has an add-on called Social Connector. I have Outlook 2013 and the Social Connector is built in; for this latest version you need to turn it on. For earlier Outlook versions you need to add it which is easily done.

You can then connect Outlook with your LinkedIn and Facebook accounts and (depending on the version) with other social sites. I was able to add XING to my Outlook.

Here’s How to Find Almost Anyone’s Email Address.

The example below is for a “sample” person with the common name David Smith who works at Microsoft.

I am starting off by generating a list of guesses for the email address (or, perhaps, several email addresses) for the person. As a sample list of guesses I am trying variations of the email using and several free email provider extensions such as gmail, yahoo, hotmail, and aol.

Note: These email guesses I am using are not “optimal” for a case like this; you are on your own to set a list of guesses. Ideas and templates are welcome; please share. What I am going to explain is how to test the guesses out all at once.

Step 1. Create a list of guesses for the email address and save in a csv file: 

Step 2. Import into Outlook pointing to these values in the file to be imported as email addresses:

Step 3. Here is what the list look like after importing. You can see the email addresses that have been identified on each of the networks!

The identified LinkedIn profiles stand out, having a little blue “in” on the pictures.

Your being connected with the people with the given addresses doesn’t affect the identification; it always works; or let’s say, it works the same for everyone.

Have you read the post up to here? :) Here are a couple of notes on relevant previous blog posts that you may have thought of.

1) Correct, you know how to find email addresses using Rapportive. It’s explained in the great post Find (Almost) Anybody’s Email Address | Distilled along with an excel table that helps to generate a list of guesses for the email addresses at

The above way is different. It’s better in some cases – and faster- because:

- it looks the email addresses up vs. looking up in the acquired data (as Rapportive does). This is more up-to-date, which can make a difference in better identification of the email address.

- it shows the whole list at once; you can have a list as long as you wish. If the list is long, you just scroll the list, there’s no need to mouse over every address. This is much faster.

If someone is not on LinkedIn and not on Facebook, but is identified by Rapportive, the referenced post would work better; if you are really after an email address, try both!

2) Great! You have read my most popular to-date post  Find Almost Anybody’s Email Address with #LinkedIn.

Compared to that, this method is also somewhat different in that:

- it doesn’t require waiting;

- it will also find people who are on other social sites, most importantly, Facebook.

Thanks for reading. Enjoy!