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 Leave a 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.

 

LinkedIn, Do You Have Any Recommendations?

booleanstrings Boolean Leave a Comment

 

Guest post from Talent Sourcer Mike Santoro

LinkedIn does not value public candidate recommendations as much as Recruiters and Sourcers do.  There is currently no way to search natively on Linkedin for candidates publicly endorsed by their managers, coworkers, clients, and friends.  Even more valuable would be a way to search the rich text that people use to describe the people they recommend.  This post will show you a new way to search for candidates based on the text in their recommendations section.

Social proof is powerful.  As a Recruiter and Sourcer, it feels like receiving a delightful and unexpected present when you find a great candidate and scroll down to the bottom of their profile and see they have 5-10 public “glowing” recommendations.

Working with candidates who have public recommendations on their profiles has at least three significant advantages:

1) You feel more confident in the authenticity of the candidate’s work history, skills, and abilities because others have publicly attested to it.  When recommenders are willing to put their professional reputation and name on the line as a “public stamp of approval,” their testimonies bear weight.

2) You can enhance your personalized outreach messaging – “Hey Bill, I saw John Smith highly recommended you on Linkedin and said you were ‘dedicated and resourceful’…”

2) It’s easier to “Sell” your candidate to Hiring Managers. The social proof of 5 colleagues who worked with the candidate for three years is substantial evidence for the hiring manager to feel more confident in their decision.

Usually, recruiters must persuade hiring managers to interview candidates based on their impressions from (often) limited data points such as resume and profile quality, social media postings, and prescreen call impressions. Social proof, like LinkedIn Recommendations, equip recruiters with another high-quality data point that adds validation,

“Mr. Hiring Manager, don’t take my word for it; read these five recommendations on LinkedIn from people who have worked with John for the last six years.  Take a look at what they say about him:”

How to X-Ray Recommendations Text:

With this new string, you can search LinkedIn profiles by words and phrases in the candidate’s recommendations section.

Google

site:linkedin.com/in “click here to view” AROUND(100) “[insert keyword(s) or phrase]”

for example,

site:linkedin.com/in “click here to view” AROUND(100) (“Excellent Manager”)

site:linkedin.com/in “click here to view” AROUND(100) (“caring”|”honest”|”reliable”)

You can also do multiple phrases separately, but repeat the entire AROUND(100) function like this:

site:linkedin.com/in “click here to view” AROUND(100) (“Excellent Manager”) “click here to view” AROUND(100) (“caring”|”honest”|”reliable”)

How do you apply this idea to your searches?

(Crash course on google x-ray search)

inanchor: operator will search headline, location, most recent company name, most recent school name

(see more on inanchor: in these articles Sink Into LinkedIn Headlines – Tie inanchor: To Your Strings and Raise inanchor: Sail to LinkedIn Locations, Titles, and Schools

intitle: operator will search current (present) company title and current (present) company name.

Example search with recommendation text:

Commercial Construction Project Managers (by current title or headline) in Phoenix, AZ, who also have LinkedIn recommendations where recommenders describe them as “Well Organized” OR “Highly Organized” OR “Dedicated:”

site:linkedin.com/in (intitle:”project manager” | inanchor:”project manager”) “click here to view” AROUND(100) (“well organized” | “highly organized” | “dedicated”)  inanchor:phoenix commercial construction

This search has 64 results.

Try it out!  Think creatively about what words people might use to recommend your targeted candidates. This is a new search strategy, so it will take time to perfect.

Other ways to search for profiles with recommendations without searching the text of the recommendation:

Mike’s “A-Players” String = profiles with at least five public recommendations on Linkedin:

site:linkedin.com/in “5..75 people have recommended”

or

Profiles with any number of recommendations:

site:linkedin.com/in “recommendations received”

“For 💓 of Sourcing and Sourcers”Mike Santoro

 

How Good is ChatGPT Plugin Scraper?

booleanstrings Boolean Leave a Comment

One of the ChatGPT Plugins is Scraper. Here are my impressions about it.

While it is uncertain how well it can – we need more testing – it shows a decent degree of Internet access compared to other plugins.

Unlike many scrapers, it will not access pages where you are logged in. So it is not an option to use it on a LinkedIn search. However, it did access a dynamic page – Google search results – and produced them, in the same order that I had encountered:

There is built-in protection against scraping personal data:

Scraper even told me at one point that “it’s against OpenAI’s use case policy to use the model for data scraping, especially personal data.” (Sounds ambivalent.)

As often happens, rephrasing your request makes a difference. It may also help to come to the task slowly, starting with asking for little. Then, catchey.

I started a new chat, to forget our unfortunate history, and asked to get the names only. Next request was to put the names into a table and add a column for email. It worked; Scraper even parsed the names into the first and last, omitting degrees and middle initials, and fixed masked emails (like <first dot last at company>).

From playing with Scraper, here are some conclusions:

ChatGPT is excellent at cleaning up data – a frequent task for those who work with professional profiles.

ChatGPT Scraper is more of a toy tool at the moment, I think. It works well to summarize pages. But when you need data collected:

  • It will require a lot of talking into that and will usually return partial results
  • It will not access LinkedIn, a gap in Instant Data Scraper capabilities
  • A “scrape-in” task where you collect links from pages first, then dive into them and parse them all into a table seems impossible.

Have you found plugins you use and like?

Registration has opened for my now-seven-day

Talent Sourcing Bootcamp in September

SEPTEMBER 5TH TO 8TH & 12TH TO 14TH (8 AM TO 9 AM PDT EACH DAY).

We will dedicate a full session to ChatGPT and AI in sourcing and recruiting. I hope you will join me!

Seating is limited.

 

 

 

 

Let’s Search on Github

booleanstrings Boolean 4 Comments

 

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

Hiring Software Developers? This awesome tool, created by our IT consultant, was the highlight of my presentation at #sosutech. Its purpose is to collect user profile data into a table. Here is how to make it yours.

1. Copy  https://docs.google.com/spreadsheets/d/1sdOD4zGjg_rKyAElE53kZuRgbqx4QAgKFnS6u9vYlGo/edit#gid=0  to your Drive

2.Generate a free API token at https://github.com/settings/tokens

3. Try to run (any) script and give it permission to run

Now you can search for users with the location: and language: operators and populate the table:

Another function allows you to get user names and other profile information from a list of email addresses.

Enjoy!