Thursday, April 9, 2009

SIMPLE BOOLEAN SEARCH FOR TECHNICAL RECRUITERS

This Boolean search strategies is being offered for free to enable technical recruiters to more effectively mine the Monster resume databases.

CAUTION: The concepts below also apply to other databases, but NOT all Boolean search engines were created equally. Some require that AND/OR be in all caps (Monster do not). Some don’t even use ‘and/or’, but use ‘+/-’ instead. I need to really stress this point,

I. THE ROLE OF PARENTHESES IN BOOLEAN SEARCHES
It makes a difference how you group the numbers below by putting in parentheses:

1+2x2=$5 million? $6 million?
1+(2x2)=5 Here we did the “multiply” first, and then the “add”…..Multiply is similar
to “and”
(1+2)x2=6 Here we did the “add” first, and then the multiply. ”Addition” is similar
to “or”
Parentheses will help us group search terms for effective searches

II. EXAMPLES OF WRITING A BOOLEAN EQUATION
JavaScript or C++ and SQL ?????, without parentheses or a ‘rule’ that says do “and” first & then “or”, or vice versa
JavaScript or (C++ and SQL) resume must have JavaScript or either C++ and SQL
(JavaScript or C++) and SQL resume must have JavaScript or C++ and SQL

III. STRING SEARCHES
As an exercise, go to any resume database and pull up a resume at random. Look over the resume and see if you can pick out a word or a group of words [WE CALL THIS A
“STRING”, because it is a string of letters in the alphabet in a specific order] that you think would be UNIQUE to this particular resume and this particular resume ALONE

If you are searching resumes for the word “JavaScript” but you enter just “Java”, you won’t find it. If you enter JavaScriptx, you won’t find JavaScript because you entered
a different string of characters. If you’re trying to locate “Brent Vaughter” but enter “Vaughter Brent”, you’ll never find Brent. If you’re looking for just “Brent”, but enter “tBren”, you won’t find him. The search string was not correct or the characters were not in the exact order necessary to find him.

IV. EXAMPLE OF AN IT/SOFTWARE SEARCH STRING
JavaScript AND C++ AND SQL is the same if you put in the following parentheses:
(JavaScript) AND (C++) AND (SQL)
Sometimes resumes will have JavaScript mis-spelled as 2 words: Java Script, so to
make sure we don’t miss these resumes, we change the above search string to:
(JavaScript OR Java Script) AND C++ AND SQL
V. DATABASE ADMINISTRATOR
Suppose you had to find candidates in a database for the following job description:
1. Must have hands on experience with data modeling or design of a database.
2. Must have experience in Microsoft SQL Server 7.0.
3. Strongly prefer a working knowledge of either C++ and/or Java.
4. Database experience with back-up, tuning, stored procedures, and security.
5. 1 year experience with XML
You’ll have go through several trial-and-error passes to come up with the right search.
Here are possible Boolean Search Strings:
Pass #1 - Microsoft SQL Server 7.0 and modeling and design and back-up and tuning
and stored procedures and security.

Notes on Pass #1: Above equation would find the perfect candidate, but highly unlikely
since the perfect resume would have to have been written. Candidate may have all the
above skills, but if they forgot to include ANY ONE of the above OR if they ASSUMED
that the recruiter would intuitively know that the candidate had the skills but just didn’t
list them on the resume, this resume WOULD NOT be surfaced out of the database. For
example a Database Administrator might have back-up and tuning in their background,
but just didn’t put it on the resume. We can solve this by Or’ing together the requirements
in bullet #4 above…... We can also drop Microsoft from the above equation.

Pass #2 – (SQL Server 7.0 and modeling and design) and (back-up or tuning or
stored procedures or security)
Notes on Pass #2: Not everybody is going to put “modeling” AND “design” in their
resume, so let’s OR those together in the next pass.

Pass #3 – SQL Server 7.0 and (modeling or design) and (back-up or tuning or stored
procedures or security)
Notes on Pass #3: After running several searches using the above Boolean search string,
we find that many of the resumes are those of Java and C++ programmers, and they only
dabbled at one point in their career in the things of the world of databases. These people
never had the title of Database Administrator. Our client is looking for a strong, databases-
are-all-I’m-interested-in kind of person, so we need to add Database Administrator.
But some resumes may have Database Administrator on them and not DBA and vice
versa, so we need to include BOTH by OR’ing these two terms together.

Pass #4 – (Database Administrator or DBA) and SQL Server 7.0 and (modeling or
design) and (back-up or tuning or stored procedures or security)
Notes on Pass #4: This is a pretty good search string, but we still aren’t getting many
hits. It turns out that SQL Server 7.0 has only been out for 1 year and there aren’t many
folks who have that. There are plenty of SQL Server 6.5 candidates, but the client FIRMLY
only wants those who have SQL Server 7.0. So now we need to get creative on how else
to find people with SQL Server 7.0 experience…………There are several alternative
ways we can find these people: 1) ‘SQL Server’ – some resumes will leave off the 7.0
even though they have it. 2) ‘SQL 7’ – some resumes will shorten the phrase by leaving
out the word ‘server’ (remember a search string engine is only looking for a very specific
‘string’ of characters is a very specific order). 3) ‘SQL Server 6.5/7.0’ DBA’s who have
had both 6.5 and 7.0 experience will frequently list their experience in this ‘/’ format. 4)
‘5/7’ - Monster doesn’t recognize non-letters or numbers, and so ‘6.5/7.0’ looks like ‘5/
7’ to Monster, so if we find the string, ‘5/7’, we’ve got a pretty good shot at finding the
right person. Now if we combine or OR all of these together, our odds go up as we
implement this in Pass #5.

Pass #5 - (Database Administrator or DBA) and (SQL Server 7.0 or SQL 7 or SQL
Server 6.5/7.0 or 5/7) and (modeling or design) and (back-up or tuning or stored
procedures or security)
Notes on Pass #5: This isn’t the end of ways to approach this search, but it gives you a
good start. Once we find these resumes, then we start prioritizing those which also have
C++ or Java (7/10) and those that have XML (5/10). Both of these are druthers.

VI. JAVA DEVELOPER JOB SPEC – (2-3 years experience person)
• Experience in java development.
• Experience in C++ development.
• Experience with ASP and/or JSP.
• Exposure (???) to relational databases (RDBMS) such as Access, SQL, Oracle,
and/or Sybase.
• ??? Experience with ODBC and/or JDBC???.
Pass1
Java and C++ and (ASP or JSP) and (RDBMS or Access or SQL or Oracle or Sybase) and (ODBC or JDBC)

Notes on Pass #1: Monster does not recognize “+” signs. Therefore Monster won’t
search for just ‘C++’**, because to Monster it looks just like ‘C’. There are several
ways around this:
1) many , but not all, programmers who have C++ experience have C also, and they usually note this on their resumes as ‘C/C++”. Monster still doesn’t recognize the ‘++’, but it certainly will identify the ‘C/C’ which is good enough to get you to C++!
2) most companies will accept Visual C++, so this can be represented as ‘Visual C’ or as ‘VC’ (for VC++). 3) C++ is an older generation programming language, at least as compared to Java. C++ is harder to program, but it generally runs faster than Java. Java is faster and easier to use BUT now it’s speed is approaching that of C++, making Java the “hot” skill, so many programmers do have C++ experience but they don’t put it on their resume because because it’s not the latest “craze”. So if you find Java, you often find C++ if you call the person and ask.
**It is best to leave the “++’s” in your search equation, because you may cut and paste
this string into Headhunter, Copernic, or some other search engine that does recognize “++”.

Pass #2 – Java and (C++ or C/C++ or Visual C++ or VC++) and (ASP or JSP) and
(RDBMS or Access or SQL or Oracle or Sybase) and (ODBC or JDBC)
Notes on Pass #3: ASP (Active Server Pages) and JSP (Java Server Pages) are software
tools that allow a web page to interact with a database. Most, if not all, databases are
RDBMS (Relational Database Management System). Access, SQL, Oracle, and Sybase
all belong in the RDBMS category. So we could conclude that a) if a person has ASP or
JSP it means that b) they are interacting with a database and that if they are interacting
with a database that c) it is highly probably that it is a RDBMS database, and if it is an
RDBMS, it is highly probable that it is one of the ones listed above. Also remember that
the job spec only required an “exposure” to an RDBMS.
All this is being stated so that we can ELIMINATE some of the above terms and pick up
more resumes to choose from out of the database..
We could also probably eliminate ODBC (Open Data Base Connectivity) and JDBC
(Java Data Base Connectivity) because both of these software tools are used to access
databases, and we have already established that a person having ASP or JSP is accessing
databases, the odds are good that they person is using either ODBC or JDBC, but if they
didn’t put it on their resume, that resume will not be surfaced out of the database. However
it is true that a person may be using something besides ODBC or JDBC to access
databases, such as ADO, RDO, or OLE. If the client is really set on ODBC and JDBC,
then you might have to leave it in the Boolean search string above. This type of situation
gets into the fuzzy judgment call area, or it may mean you have to play around with
different combinations of search terms. This process is truly one that exercises both your
right and left brain.
Some resumes won’t have ASP or JSP. Instead some will spell it out as Active Server
Pages or Java Server Pages, so if we only look for ASP or JSP, we’ll miss these folks. To
fix this, we’ll OR in some additional terms as shown below in Pass #4. Also in #4, we’ll
take out all the database access references in order to glean more good qualified resumes.
Pass #3 - Java and (C++ or C/C++ or Visual C++ or VC++) and (ASP or Active
Server Pages or Java Server Pages or JSP)
Notes on Pass #4: Now we have a pretty good search string for Java developers, but when we run Monster and get 499 resumes, we realize that it is going to be very time
consuming to go through all of these, so we need to look for ways to cut this number down without sacrificing good resumes. One way to do this is to scan down the list of job
titles for the various resumes without opening any of the actual resumes. With the above search (and I have personally encountered this many times) you will get the following unwanted’s: :

1) recruiters-”I have recruited Java, C++, ASP, JSP, etc software engineers”:
2) managers or directors or president or vice president (remember, you are looking for a 2-3 year experience person and these words are unlikely but not impossible
to appear on the target resumes.
3) business analyst – “ I did business analysis
on projects where software engineers (NOT ME THOUGH) were using Java, C++, ASP, etc.” As you scan down the list of titles, you’ll find others you want to exclude.

Pass #4 - Java and (C++ or C/C++ or Visual C++ or VC++) and (ASP or Active Server Pages or Java Server Pages or JSP) and not (recruiter or manager or director
or president or vice president or business analyst or sales manager or student or human resources or HR or marketing manager or business development)

Notes on Pass #5: This should give you a good search string, but always understand that anywhere along each of these steps you’ll probably need to tinker with the search criteria in order to get the best results for your search. The above string might knock down your list of 499 resumes to go through, down to maybe 130. Big time savings

VII. MISCELLANEOUS SEARCH STRATEGIES:
1**Looking for a Java developer and use: Java and consultant and developer and software engineer. Won’t find very much because the person will have to have all 3 titles in his resume, consultant, developer, and sofware engineer
because you “and’ed” them together. It is better to OR these 3 terms together and put a parentheses around them and then “AND” that with Java.
2**If you want to find a Java developer in the Dallas area, use the area codes: Java and (214 or 972). For smaller states, you don’t need to use area codes. For example if you are looking for someone in a small state like MA? Forget
area codes, but include surrounding small states like RI and CT. LincMad.com makes an excellent area code map.
One note of caution here: especially in Monster and Headhunter, many candidates submit “confidential resumes”
which obviously don’t have phone numbers on them, so if I’m looking for a candidate in Dallas Texas (area codes 214 & 972), the above search criteria would miss many qualified candidates.
3**Headhunter.net allows you to enter a very long search string, but you only get one pass at it. Monster.com allows
you a shorter search string, but you can enter subsequent strings that allow you to subrange down to the exact resumes
you need. One caution in using Monster, if for example, you enter Java as a search string, and are looking at the
whole U.S., you will get 500 resumes or hits. If you then enter Java and specify that you only want to look in Texas, you’ll get 500 resumes. Hmm, something is wrong here. Either all 500 Java programmers in the U.S. are in Texas and
zero Java resumes are in the other 49 states, OR something else is going on. If there are 5000 Java resumes in the U.S.
or 5000 Java resumes in Texas alone, Monster is going to pick 500 resumes for you, and you are not going to see the
other “hidden” 4500 Java resumes. So when using Monster, make sure that the search string that you can fit into the FIRST PASS narrows down the number of resumes to 499 or less. You can do this by adding more restrictive search
terms or you can tell Monster to search for resumes received in only the last 3 days. Either way you do it, you need to be at 499 or below on your first pass with Monster.
4**Sometimes you will be looking for a Java or C++ programmer and find a resume with great experience in both Java and C++, for example. Then when you read the resume more carefully, you find out that the person has no web
development experience. But how can that be? Embedded application person. More specifically, an embedded application is one in which, say, an Intel Pentium III microprocessor is ‘embedded’ into a microwave oven. This is an embedded application. A Java or C++ programmer will write a software program that is transferred to the inside of the microprocessor, never to be changed or modified again! If you take this same Intel Pentium III microprocessor and put it into a Sony laptop computer, this is a computer application. So let’s write a simplified boolean search string that will filter out these embedded/non web related resumes as follows: (Java or C++) and not embedded.
5**Use of the asterisk or ‘wildcard’: If you entered “Java programmer” as a search term, you could possibly miss
great resumes where the person never used the word “programmer” on his resume, but instead had a statement like,
“I’ve been programming in Java for 5 years”, or “I’ve programmed with Java for 5 years”. In both of these cases
if the resume used the words “programming” or “programmed”, the resume would not be surfaced, because the search string would ONLY be looking for the word “programmer”. However if you used the following search string:
Java program* , this would pick up programmer, programmed, and programming

6** There is also the double asterisk. Monster is fuzzy about their status using this. I don’t know if other databases have this feature. But the double asterisk is supposed to pick up ‘stem’ words. For example, fly** would also pick up
all the words that “stem” off this word such as flying, flew, flown. Another use of the single asterisk is: sales and manag* which will also pick up manager, managing, and management. (Note, if we had used manage* instead of
manag* above, we would have missed managing.)
7**Another way of picking up a 2-3 year experience Java programmer is to use: Java and (programm* or software engineer or software development engineer or software consultant or software developer or web developer) and
not (manager or director or vice president or CIO or CTO or president). Sometimes you need to OR together all the possible titles a software developer might have, put parentheses around all of this, and then AND it with something
else you’re looking for, or as in the case above, things you are NOT looking for.
8**Mis-spelled words: It’s tough enough finding the right resume using the right combination of search words, but our job is made even tougher when some technical terms are consistently mis-spelled. Two I can think of off the top of my
head is JavaScript (one word) which is often mis-spelled as two words, Java Script. So if you’re only search using JavaScript, you’ll miss all the people who had Java Script on their resume. Same thing with a software test/software
QA tool call Winrunner, which is often incorrectly listed on resumes as Win Runner. To correct both of these problems in a search string, you could use (JavaScript and Java Script) and (software engineer or software consultant)
and for the other one, you could use (Winrunner or win runner) and (software test or software QA).

For the recruiters community :
Here I shared some basic Boolean search techniques and strings .I appreciate recruiters if you could share your search strings and Boolean searchs which we can help all recruiters which makes their work simple……

28 comments:

That's ME! said...

This is an amazing article. Very interesting and helpful. I would recommend people to read your blog!

Keep up the good job!!

Anonymous said...

Bob, Thanks for the tips on the technical search strings. I really appreciate your sharing this with everyone.

Linda

Bob said...

Thanks linda .Appreciate ur comments to make the blog better

Cheers

Balaji(Bob)

Anonymous said...

This is for retards!

Sireesh said...

Dear Balaji,

This is really valuable tips to recruiters. i appreciate and thanks for sharing with us.

Best Regards
Sireesh

heilkräuter said...

Ability to work with minimal supervision in a high-tech fast paced environment. Efficient time management skills & work well under pressure. Strong customer service skills and a Team player.

Anonymous said...

Your blog keeps getting better and better! Your older articles are not as good as newer ones you have a lot more creativity and originality now keep it up!

Fundoo Recruiter said...

Hi BOB,
Very detailed post on boolean search.
Nicely explained.

I have also tried to explain boolean search in my words here(http://fundoorecruiter.blogspot.com/2010/01/boolean-search-explained-for-recruiters.html).

Please have a look and comment.

Anonymous said...

Genial brief and this fill someone in on helped me alot in my college assignement. Thank you as your information.

Anonymous said...

What a great web log. I spend hours on the net reading blogs, about tons of various subjects. I have to first of all give praise to whoever created your theme and second of all to you for writing what i can only describe as an fabulous article. I honestly believe there is a skill to writing articles that only very few posses and honestly you got it. The combining of demonstrative and upper-class content is by all odds super rare with the astronomic amount of blogs on the cyberspace.

Anonymous said...

hi, new to the site, thanks.

Raisingh Bhandari said...

Hi, Thanks, its really a very Nice article. Thanks a lot.

Raisingh Bhandari said...

Hi, really its a very nice article. Thanks a lot.

Anonymous said...

I think you have a great page here… today was my first time coming here.. I just happened to find it doing a google search. anyway, good post.. I’ll be bookmarking this page for sure.

Anonymous said...

This is very inspiring work you have created for us. Some people need to know that these things can ensue to anyone. You have shown me a better view now.

Anonymous said...

Yo this issue is pretty concerning. Keep it going friend !

Anonymous said...

Hi - I am definitely happy to find this. Good job!

ROLEMODEL said...

thank you

vijay said...

Its really amazing.... understandable for freshers also.... i would like to see some more features to this blog like basics for freshers....

Anonymous said...

That was a neat job. My essay was done accurately, precisely and exactly to the point.

Unknown said...

Hey Bob,

Its a great work. It Marvelous and helpful for everyone. Especially me

Thanks

Anonymous said...

Can we use parenthesis in parenthesis? ((abc or cse) and asd)? Please advice..

Dhan said...

Nice post it is informative iam going to sahre another blog post it will helps for Boolean search automation http://www.egrabber.com/blog/boolean-string-automation-for-sourcing-through-linkedin/2011/10/

Anonymous said...

Outstanding post, I conceive website owners should acquire a lot from this web site its really user pleasant. So much great information on here

Anonymous said...


Very interesting your opinion ! and thank you for your share.

Anonymous said...


Thank-you. I have incuded a website and email address. Is this acceptable? I hope this is allright:)

suvith kumar said...

extraordary information intersting one..

Anonymous said...

Just wish to say your article is as astounding. The clarity in your publish is simply excellent and i can
think you are an expert in this subject. Fine with your permission allow me to grasp your feed to stay up to
date with imminent post. Thanks one million and please keep up the enjoyable work.


my website: santa clarita

How are we utilizing Reference as part of Recruitment

We all take /use references at every point of our recruitment cycle, not mandatory some times reference works most times reference may not...