Get Back More Google Results By Not Using More

booleanstrings Boolean 8 Comments

image created with DALL-E

Did you realize that since Google had replaced the convenient multi-page display with the "More results" button, its users have encountered fewer results? If previously we got up to ~300-450 results, now, by pressing the "More" button until there is nothing left, gets us no more than 130-140. (Searching using quotes and operators, or Verbatim does not help). We have tested that.

To get back the results you no longer see from the "official" UI, do not use the "More" button. Instead, set your preferences to 100 results per page and add these to the search URL in turn (until there are no more results):

  • &start=100
  • &start=200
  • &start=300
  • &start=400

For example,

The pages appear with different sets of up to 100 records. You can now collate them!

An even faster option is to use this script "Google Search Results Expander" from Mike Santoro (right-mouse-click/Inspect/Console/paste the script):

javascript:(function() {
var query = prompt("Enter your Google search query:");
if (query !== null) {
var base_url = "https://www.google.com/search?q=" + encodeURIComponent(query);
var urls = [
base_url + "&num=100&start=0&filter=0",
base_url + "&num=100&start=100&filter=0",
base_url + "&num=100&start=200&filter=0",
base_url + "&num=100&start=300&filter=0"
];
urls.forEach(function(url, index) {
setTimeout(function() {
window.open(url);
}, index * 2000);
});
}
})();

Since the Google UI change, Instant Data Scraper no longer extracts all results out-of-the-box, but you can open the tool over these pages and merge the lists of results.

Note that registration is open for the 7-Day Sourcing Bootcamp that David Galley and I will hold together, starting January 2nd - register here early:

Seven-Day Sourcing Bootcamp for Recruiters - January 2024.

We are covering all aspects of sourcing, providing materials, and support for the attendees.

Feedback has been excellent and the Bootcamp has proven to be popular, so we will likely continue updating and scheduling it 2-3 times per year.

LinkedIn’s Members and Companies Disconnect

booleanstrings Boolean Leave a Comment

Sourcing Summit Europe-2023 was awesome in every way – just look at all the reports on #sosueu on LinkedIn. It’s hard to describe how wonderful the event feels; you must go there!

My presentation was  called “Unscrambling LinkedIn for More Efficient Sourcing.” As I was preparing the slides, I ran into several problems with LinkedIn Recruiter search, and I want to tell you about them.

What this post is about:

TL;DR LinkedIn Recruiter does not find many people whose profiles do point to their current company pages by:

  • Company selection
  • Company size
  • Company type.

Consider this search: the negated company selection for Exxonmobil and Boolean (text) search for exxonmobil in the company field.

If you open the first profile in the results, you will see:


There is a current clickable company pointing to Exxonmobile’s LinkedIn company page. But LinkedIn fails to recognize that the member works at this company if you select it in the search dialog. This person will NOT be found by any company size or type either.

The majority of the 4K+ results for this search are also “lost souls;” only some work at Exxonmobil country offices (and at least have company sizes).

Take Ford Motor Company (depicted above with Midjourney) and you will see a similar picture. Profiles of many of its employees are not found by the company selection (or type, or size).

LinkedIn does a poor job categorizing its data. It means that Boolean rules – it does find Ford employees by the company name.

Bottom line:

  1. Search for companies not by selection but by Boolean (text).
  2. Do not use company size or type in most of your searches.

What does this mean for LinkedIn? Engineering wants us to find more profiles. They have redone the Skills search in Recruiter in a manner that makes Skills similar to keywords (and less useful). They could achieve the goal instead by closely examining their data and restoring the data connections that should be there but are not.

(I have discovered other things, along the same lines but different filters, and will post soon.)

To proceed with the promised AI “2024” search, it would be best if LinkedIn worked on better understanding their data first.

Speaking of AI, you are invited to the updated class “ChatGPT and AI for Sourcing and Recruitment” on October 18-19.

Where Is the AI Manual?

booleanstrings Boolean Leave a Comment

Search on YouTube for chatgpt in 2 minutes and you will find hundreds of results. The web and Social Networks are full of “easy” explanations on how to work with the new AI.

However, many professionals, having tried, say, to create an engaging email with ChatGPT, quickly give up because of the unsatisfying quality. People are turned off by AI hallucinations as well. Indeed, AI is trained to predict the next word in a sentence, which has little to do with being truthful.

Where are the best ChatGPT manual or instructions on how to use it?

When you buy a shelf at IKEA, it comes with instructions to follow.

When you build a spaceship, there is a design to follow.

When we use software, we rely on documentation created by Technical Writers.

But there is no such thing as complete instructions for ChatGPT or any AI. It is black boxes to be investigated. Practice and sharing observations with others are essential.

There are AI “prompt builders,” in some how-to posts, but I think they are even less helpful in mastering AI than Boolean builders in learning advanced Google search. To use AI, you need to turn on your creativity.

Sourcers have been prepared to face AI as a black box because we often work with software with incomplete or wrong documentation. We approach software hands-on and figure out what to expect from it.

The largest business network search algorithm is a perfect example. My blog has many posts about it, including one on the hidden search operators. Here is how we figured out the never-documented operators: we guessed them and the arguments’ format, then tested them.

To master ChatGTP and other AIs, it is important to set your expectations and test out your theories. If AI generates a long, generic, and unimpressive email, you can work with it to perfect the message. Answers about current facts from Bing and Bard should be verified. If you do not give up and tame AIs, the results can be spectacular – and time-saving.

You can also ask ChatGPT to help write prompts for itself:

So,

How Do You Learn to Write Efficient Prompts for ChatGPT?

  • Unlike a kitchen gadget or pre-AI software, ChatGPT has no instructions
  • Practice is vital – experiment!
  • Teach it using examples, provide background, and correct it in a dialog
  • Debug the prompt by verifying and assessing the output
  • Learn from peers and Social Media (but question everything)
  • Learn from AI itself

We have recently delivered “ChatGPT and AI for Sourcing and Recruitment;” a recording is available, and we plan to repeat the webinar.

P.S. I have made these pics with Midjourney, an AI image creation tool. Please check out my portfolio.

 

 

 

We Have Compared the 7 Leading AIs

booleanstrings Boolean Leave a Comment

A guest post from David Galley. By now you've heard all about how AI is "changing the game" in our - and every other -industry, replacing humans at work, or possibly ushering in the end of days. What you probably haven't heard much about is what technologies you, an individual contributor or line manager in a Talent Acquisition function, can use today that can have a positive impact on your work and workflows. This AI comparison chart is our attempt to answer that question. It is based on our extensive research:  

Please join us for an advanced ChatGPT course for Recruiters on September 13, 2023,

ChatGPT and AI for Sourcing and Recruitment.

We will go over a myriad of potential AI applications in sourcing and discuss what is reality and what is a myth.

GitHub is Paradise But Its Syntax is Jungle

booleanstrings Boolean 1 Comment

Technical Recruiters cannot afford to stay away from GitHub due to its rich data about Software Developers. It is Tech Recruiter Paradise. But GitHub user search is more of a  “Jungle.” Its syntax is incredibly complex. The documentation is helpful, yet it also contains several errors and omissions, which I will outline.

Here is an awesome list of search operators (which GitHub calls “qualifiers”) by my friends Sofia Broberger and Suzanna Frazier:

https://bit.ly/LUSOG.

Now, let us proceed to discuss

How GitHub User Search Works

If you are just getting started, practice with the advanced search dialog – it will create the right search strings for you. But it is restrictive (same as on search engines or Indeed).

Keywords

The docs say that keywords find users by name and username. But they also find things you see on the profile under the image – bio, site, X, and company. Locations and languages will not be found.

Keywords support “normal” Boolean logic operators – AND, OR, NOT.

Partial Keywords

Partial words will be found (I haven’t seen this explained.) Example:

googl language:C

Operators

The most useful for sourcing are the operators language: and location:.

  • language: takes standard values
  • location: can be any text.

The note above in the “Keywords” “chapter” means that, when searching by location, you may also want to look for it as a keyword separately – like chicago -location:chicago.

If you search for a language that is not on their list, GitHub will ignore it; language:lisp language:nonexistent is the same as language:lisp (make sure you do not get caught here.)

The operator location: does work with accented characters; it is important for global Recruiters. Example: location:Київ.

Special characters under operators for location and language serve as a divider – and give you a Boolean AND –  location:NYC*SF. They are ignored at the beginning and end of the parameter.

Partial operator arguments will not be found.

Knowing that any user can only be found by one “main” language is essential.

With the operators, the Boolean OR is the default. (Incorrect in the docs.) NOT, for a change, is written as minus.

The other two operators search for the numbers of:

  • followers:
  • repos: (repositories).

The number format accommodates for “numrange” like 2..5, and these two – >, <. Example: followers:>1000 repos:>6 language:C. You can also write followers:=<3 or followers:<=3 (but not followers:=3)

A drop-down on GitHub search allows you to sort results by “best match,” followers, repositories, and join date. (Interestingly, GitHub user search API takes extra operators followers:, repositories:, and joined:, as well as sort: to run the same functionality).

Phrases

Phrases in keywords should be in quotation marks. (Nice that they didn’t do anything unusual here 😉 ) Example: “NYC SF”.

However, spaces between quoted words under location: work as a Boolean AND! Example: location:”francisco san.” I haven’t seen this documented.

Parentheses

Parentheses are ignored. OR is executed first, then AND (same as on Google). I haven’t seen this documented.

The Good News

The good news is that, in practice, language: and location: “cover a large territory” and are often sufficient for collecting a sizeable promising user list to investigate further. Keep the search syntax subtleties covered above in mind.

Please join us for a deep dive into Github sourcing –

Leveraging GitHub: Advanced Data Mining and User Profiling

on August 30th, 2023, Wednesday.

Github Syntax and the LUSOG Tool Release

booleanstrings Boolean Leave a Comment

Hello IT Recruiters:

We have fixed, improved, and documented the tool I recently announced at Sourcing Summit Tech. Access it here:

LUSOG = Let Us Search On Github.

Ensure you follow the installation and execution instructions strictly, starting with creating a copy of the LUSOG Table. There’s Help and a silent video with guidance. We hope it is straightforward.

The tool is free and provided “as-is,” offering Technical Recruiters massive power in searching for Software Developers. (We are in parallel developing a web-based tool on our future site Brain Gain Soft; please stay tuned.)

LUSOG finds GitHub users based on your search parameters, collects complete user data, including emails, and presents this information in a Google Sheet. 

In the backend, LUSOG runs GitHub’s REST API to search GitHub. The user is responsible for providing the Tool with their (free) personal GitHub API token. To use LUSOG, you must also give AppsScript permission to run and access the GitHub API. (This means you need to have GitHub and Google accounts.)

Select “Search GitHub Users” and enter search parameters according to GitHub’s syntax (see search help and user search help).

By default, LUSOG returns 100 results per query. You can request that the following 100 results be loaded by pressing the “Load More” button at the bottom. The maximum number of results for the same query is 1,000.

Imagine obtaining and exporting information like below in a few minutes while sipping your coffee!

I would be glad to hear how the tool serves you; please email me.

Now, if you are searching for Github users, with LUSOG or not, I must warn you that:

  1. Github Boolean search syntax is a monster, 
  2. Github search documentation contains mistakes in the Boolean section.

Github User Search Syntax

Your typical search for Developers would include the operator language: and several location: operators – or “qualifiers,” as Github calls them.

NOTE: if you search by a keyword, you will find the user’s name, nickname, bio, site, X (Twitter), and company – all the things on the profile page – but not the location or repository languages.

Github User Search supports a few more qualifiers in addition to language: and location:. Search terms can be arranged in a Boolean search statement. The syntax is bizarre (and mis-documented on the site):

Please join me at a new class

Leveraging GitHub: Advanced Data Mining and User Profiling

on August 30th, 2023. We will dive deep into GitHub sourcing and cover less-known approaches. Materials and support are provided. Seating is limited.

I hope to see you there!

 

Code Interpreter for Sourcing

booleanstrings Boolean 2 Comments

Professionals generally fall into two categories: 1) people who are handy with Excel, Google Docs, merging, VLOOKUPs, etc., like David Galley, and 2) those who try to avoid working with tables, like me. I am glad to have David on the team, but I can’t bug him with every table-related task.

ChatGPT Code Interpreter (you must have a $20/mo account and select “Code Interpreter” from Settings) is a big helper for mundane tasks that are part of any sourcing process. I will go over a use case – part of my sourcing process for most projects – where Code Interpreter automates work with tables.

“Code Interpreter” is like an AI Data Analyst. You can upload files (one at a time); it will process them, give you a file to download, and report on the process it went through. It can produce clever summaries and graphs. The simple data conversions required in sourcing are a breeze for the system.

If I source, populate a project on LinkedIn Recruiter, and export files (25 records at a time,) Code Interpreter can merge the files, clean up encoding, and clean up the names, leaving first and last, e.g., Mr. Joe A. B. Doe, Esq –> Joe, Doe.

Intending to contact the potential candidates, I run the (merged) list through contact-finding systems: SalesQL, ContactOut, and SeekOut. All of them have bulk uploads.

Code Interpreter can merge the contact finders’ resulting tables with the original Recruiter export. I love that no coding or formulas are required to interact with the tool. Here is my “VLOOKUP” expressed in English. The file referenced at the top of the screenshot is a cleaned-up Recruiter export; I am uploading a SalesQL export for the same profiles.

I repeat the process with exports from the two other contact-finding systems by telling the system, “Do the same,” and uploading the relevant exports.

As the last step, I ask the tool to put all emails in one column and deduplicate.

When all is finished, the resulting table contains the original data from Recruiter; the email column is populated with data from the four systems. Since these are already vetted profiles, the output can go to the client for sourcing projects or serve as a contact list if it is full-time recruiting.

(I admit that for me, in a sense, this application of the tool is “too late” since I already have consultant-written custom scripts that do the above. But I took it as a practical, familiar example of using Code Interpreter. The process was fast.)

I also asked Code Interpreter for a summary of the file and got a solid report:

I was working with a small record set (about 40). For a larger group of profiles, a summary like this helps to understand the market and communicate with the Hiring Manager.

What impressed me throughout the dialog with Code Interpreter was that I felt a good level of understanding (if you know what I mean) compared to other AI “companions.” The tool understood things I said very briefly. It kept the content and explained what it was doing, and I never had to correct it in the experiment.

As a generalization, look into Code Interpreter if you do not like writing formulas (like some of us) but have to deal with data (as we all do). 🙂

Please check out my upcoming class –

ChatGPT and AI for Sourcing and Recruitment

on August 2, 2023. We will go over many tools and applications “in plain English.”

Integrating Social Media into Your Talent Recruitment Strategy

booleanstrings Boolean Leave a Comment

Social Media Marketing can play an important role in keeping a pipeline of potential targets informed and possibly interested. Running groups, newsletters, and events along with social media shares can make a difference in the perception of your company as well as attract the right people. Combining channels means reminders and further reach.

For starters, your profile as a marketer is important (see some LinkedIn Profile SEO tips). As of late, LinkedIn is also more likely to promote something you share if it correlates with your profile background.

Part of our work happens on Social Media. We share content, moderate Social Network groups, and also use the groups to promote our events. We have made mistakes along the way for sure, and eventually learned a few Social Marketing tips that do not require special tools, yet save time, and expand the reach. See some of our numbers below (showing that we are reaching interested people).

Here are some aspects of Online Marketing.

Events. Does your company host or participate in events attractive to your target audience? Posting them on Social Media will allow you to track the audience and even expand your email list (e.g., from LinkedIn Events).

Groups. LinkedIn Groups are long beyond their glamor days. But you can “pin” and “broadcast” messages which makes them (more) visible. Professional Facebook Groups, on the other hand, are flourishing; as an admin, you have marketing power.

Newsletters. If you set your LinkedIn profile to be in “creative mode,” you can start a newsletter. If you are busy, get help from ChatGPT for editing and Grammarly, for polishing. While “plain” LinkedIn articles are barely shown, newsletters (i.e. articles with a “newsletter” option) have a good chance to gather an audience.

I will share Social Marketing tips and techniques in a brand-new webinar

“Integrating Social Media into Your Talent Recruitment Strategy”

on JULY 27 @ 8 AM PACIFIC, and you are invited!

P.S. Our “social” numbers:

Who Needs LinkedIn Recruiter? X-Ray vs. LinkedIn Search Comparison Chart – July 2023

booleanstrings Boolean 1 Comment

Hung Lee asked me on the recent Brainfood on Air show dedicated to LinkedIn, whether the comparison chart between X-Ray and LinkedIn Recruiter remains the same as in October 2022 when I published it. Not quite. Thanks to David Galley for helping me to update it.
The changes are mostly subtle though. X-Ray remains a powerful tool.

Enjoy!

LinkedIn.com LinkedIn Recruiter Google X-Ray (finds public profiles) Google Template Example
Name Y Y intitle:<name> site:linkedin.com/in intitle:”phil tusing”
Current Job Title Y (false positives) Y (false positives) Y – intitle:<title> site:linkedin.com/in intitle:”executive assistant”
Current Company Y (false positives) Y (false positives) Y – intitle:<company> site:linkedin.com/in intitle:seekout
Last Company on Profile (even if left) N N Y – inanchor:<company> site:linkedin.com/in inanchor:”morgan stanley”
Last School on Profile N N Y – inanchor:<school> site:linkedin.com/in inanchor:ucla
Headline N Y – headline: secret operator Y – inanchor:<headline> site:linkedin.com/in inanchor:”open to work”
Summary N Y – summary: secret operator N
Current Job Title Y Y Y site:linkedin.com/in intitle:machinist
Job descriptions N N Y (by keywords) site:linkedin.com/in “scaled up” start-up cloud bay area
Self-Entered Skills Y – in Company Employees and School Alums search Y – skills: secret operator N
Skills and Assessments N Y but works almost like keywords
Past Company Y Y Y (by keywords) site:linkedin.com/in -intitle:chevron inanchor:chevron
Past Job Locations N N Y (by keywords) site:linkedin.com/in “united kingdom” canada AROUND(3) present
Past Job – <title at company> N N Y – use AROUND(X) site:linkedin.com/in “CFO” CFO AROUND(3) google
YOE N Y (but rounded) N
True Years at Company N Y (but rounded) Y – with AROUND(X) or Asterisks “present” site:linkedin.com/in “present” AROUND “2..6 years” operations manager
Years in Position N Y (but rounded) N
Current Location Y – by Area  Name Y by Area  Name or Zip/Radius Y – by Area  Name site:linkedin.com/in present AROUND(3) “greater new york” operations manager “new york”
Profile in Language Y Y Y – secondary profiles end in /<lg> – 2-letter country abbreviation site:fr.linkedin.com/in/*/fr
Spoken Languages N Y Y – approximate site:linkedin.com/in “Native or bilingual proficiency” tagalog
Function (calculated) N Y N
Seniority (calculated) N Y N
Company Type (calculated) N Y N
Company Size (calculated) N Y N
School Y (Boolean) Y (selection only) Y (by keywords; imprecise) site:linkedin.com/in “school of arts and enterprise” -intitle:”school of arts”
Last School N N Y – inanchor:<school> site:linkedin.com/in scientist inanchor:sorbonne “sorbonne”
Field of study N Y Y (by keywords) site:linkedin.com/in “quantum physics” university Phd
Industry Y Y N  
Years of study N (but see school alumni search) Y (but not tied to a school) N
Degree N Y (but may be incomplete) Y (by keywords) site:linkedin.com/in mba AROUND(3) wharton management consultant big 4
Grades at School N N Y (by keywords) site:linkedin.com/in GPA AROUND(3) “4.0” accounting
Other accomplishments – Publications/Projects/Courses/Licenses/etc N N Y (by keywords) site:linkedin.com/in/ “credential ID” AROUND(2) CDSP
Recommendations N N Y (by keywords)
Open to Work Status N Y N
Network Relationships Y (buggy) Y (buggy) N
Followers of Y N N
Connections Of Y N N
Group Member N Y N
Open to Volunteering Y N N
Service categories Y N Y (some)
To generate target public profile lists in Excel by precise search, use our tool Social List (trial, subscription) Check out my 7-Day Bootcamp starting September 5th

Let’s Search on Github Update

booleanstrings Boolean Leave a Comment

 


 

We did not anticipate such a huge response to the Let’s Seach on Github Google Sheets table.

Two things emerged:

  • The use was so (unexpectedly) high – we got tens of thousands of calls in the logs – that some people did not get the data due to timeouts.
  • Many users could not figure it out. We did not anticipate the need for customer support. Requests were coming from blog comments, Twitter, Messenger, you name it.

So here is what’s happening:

  1. The current table will remain as-is. We do not offer support for it.
  2. We are working on launching an online tool similar to the popular table but with easy-to-use UX. From a search for Github users by language and location, you would get a spreadsheet with developers’ information including profiles and emails. It will probably take a month or so to launch.

In the future, we will also populate the soon-to-be-alive BrainGainSoft site with other sourcing tools, going beyond IT sourcing. One of the next projects is a Google search results scraper. (As you may know, with the recent rearrangement of Google search results, most of those tools are broken).

[EDITED]: for updated information, please go to Github Syntax and the LUSOG Tool Release.