Editor’s Note: In yesterday’s post, Balazs discussed three problems he has identified with Facebook Graph Search. Today, he will demonstrate how to solve these problems. This post is a part of the SourceCon Source the Web series which features articles on how to mine particular online data resources.
Facebook is busy building pages, and there is a page for everything. My profile is a page, but also, my employer which I added to my profile, Randstad Sourceright, is also a page. There are also fanpages, pages of interests, language pages, you can even check in at certain places – and as said, places and any locations listed on Facebook are also just pages. The same structure exists everywhere!
Why is it so amazing for us? Because every page Facebook has developed has a unique ID number that Graph Search is using when you enter and run a search query.
HOW THE UNIQUE PAGE ID NUMBERS WORK
This is the URL of the province I used in the example I shared in yesterday’s post, Gelderland, Netherlands:
facebook.com/pages/Gelderland-Netherlands/236523019697099
The long number code at the end of the URL is the unique ID number of the location-page. If I want to find people who live in this location I have to add this ID number together with some other URL commands as follows:
facebook.com/search/236523019697099/residents/present
In some cases it is not easy to find the unique ID number as that is not added into a page’s default URL. My employer’s page URL, for instance, does not contain this code:
facebook.com/RandstadSourceright
To figure out a page’s unique ID number you have to play around with Graph Search.
Take my employer as a sample and run a query in Graph Search searching for ‘People who work at Randstad Sourceright’. With this you can see the unique ID number of the Randstad Sourceright page in the Graph Search URL. This is it:
facebook.com/search/107632737751/employees/present
If you have any doubts whether you found the right ID number you can easily double check by adding that to the URL like this:
This above link will navigate you back to the original Randstad Sourceright page.
To see a person’s unique ID number just do the same and leverage Graph Search. For instance, this is the friends of one of my friends – check it out whose ID it is!
facebook.com/search/511207059/friends
As you can see, there are always other words (commands) in the Graph Search URL in addition to the unique ID numbers. In my next post, I will provide you with a listing of all of these commands. For now, I would like to give you some secret tricks that you can immediately build into your sourcing activity. I hope you will find it useful.
USING THE UNIQUE ID NUMBER FOR LOCATION SEARCH
For location searches you have to add the /location-ID/residents/present commands into your Graph Search URL. The command /present can be replaced with /past and /ever to find former and ‘former or current’ residents of a location.
It is also important to mention that there is a solution to run a sort of radius search. (Hey, I only said ‘sort of’…)
When you complete a search for a certain city go to the very first result and hoover your mouse over the location (‘Lives in…’). A new window will pop up (actually, that is the location-page) and that will show you which state, province and/or country your city is located in. This can be extremely helpful when running a search in a country you are little familiar with.
USING THE UNIQUE ID NUMBER TO SEARCH BASED ON LANGUAGE
Usually, you can run a language search with Graph Search in the traditional way (People who speak… or People who study…) but if you need to create a complex string (for instance, you have to find multi-lingual speakers) it is an easy way to work with the URL.
- Enter this query into Graph Search or use the language you need: Languages named “Polish”
- If you get multiple pages open the page on the top as usually that page is the most referenced by Facebook users
- Copy the page’s unique ID number
- Go to Graph Search and add this command: /language-ID/speakers
If you need to search for multiple languages use this command /language-ID1/speakers/language-ID2/speakers/intersect. The command /intersect is needed. I will explain why in my next post.
This is the URL, for instance, of people who speak Polish, French and Japanese:
facebook.com/search/107623259267486/speakers/108106272550772/speakers/
109549852396760/speakers/intersect
And this is the URL to find everyone in the Netherlands who speaks the above three languages:
facebook.com/search/106123262753066/residents/present/107623259267486/speakers/
108106272550772/speakers/109549852396760/speakers/intersect
USING THE UNIQUE ID NUMBER TO SEARCH BASED ON EMPLOYER
Here we have to apply quite a few tricks… The biggest issue with Facebook’s employer search is that Graph Search is only searching for employer pages and cannot conduct a keyword search. In addition to it, probably even worse, it is offering to go after only one employer page in one time.
One bigger employer, however, often has multiple pages on Facebook as employer pages are usually created on a country or on a business line or subsidiary basis. Randstad as an employer have more than 1000 pages on Facebook and we cannot search for all of them in the traditional Graph Search way.
The work-around for this difficulty is described below:
- The command to find Employers named “Randstad” is this one: /str/Randstad/pages-named/employer/pages/intersect (Replace the keyword “Randstad” with yours but leave the other commands unmodified)
- Now we have to make Facebook understand that we are not looking for employers but the current employees of these employers so we add the following commands to the end of the above URL:/employees/present/intersect (Again, instead of /present you can use the /past or /ever commands, too, to look for former or ‘former and current’ employees)
- Usually, when we run a search by cracking the URL Facebook is translating our commands into wording (natural language search) and adding the words into the Graph Search box (People who…). However, with this employer search, Facebook is not adding the wording to the search box… Wow, you see that?! Facebook literally became speechless but is still working on my search!
Now, you can really combine your Graph Search string and create as complex queries as you just wish. This below string, for instance, is bringing us People who currently work for companies called “Randstad” andlive in Hungary and speak “Polish”. You very-very much like it, don’t you!?
/search/str/randstad/pages-named/employer/pages/intersect/employees/present/intersect/
107623259267486/speakers/intersect/106502519386806/residents/present/intersect
USING THE UNIQUE ID TO SEARCH BASED ON WORK POSITION
The only way how you can currently search for work positions with Graph Search is using exact job titles. You can, for instance, search for People who are Linux Engineers and will get only a few results. Well, there are certainly thousands of Linux Engineers on Facebook, so instead of logging off of Facebook, work with the URL.
If you check the URL of the above query, you see that there are two pages added into it: Engineers andLinux.
facebook.com/search/107629839267064/job/106021162761735/employees-2/present
The commands following the ID numbers are different and that made me think.
After a lot of trial and error, I have figured out that if you use a keyword that has either an interest or a work position page, you can embed that into your query and use it as a sort of Boolean string keyword search. Use this one and see what you get: /106021162761735/employees. It is listing everyone who has ever used the keyword Linux in their job title!
Now you can combine it and add a second keyword as well. Below is a summary of how to do so:
- Run a search for Work position/Interest pages called “X” (your keyword; I will use IBM AIX)
- Open the top-end page and copy its ID number
- Go back to the above URL command (/106021162761735/employees) and add ID2/employees
- At the end of the URL add the command /intersect
- This is my query that searches for people who have ever had the keywords Linux AND AIX in their work position: /search/106021162761735/employees/132114323492885/employees/intersect
- As you see, Facebook’s natural language search translation (Linux employees who are IBM AIX employees), is totally false, as none of the people on my screenshot work for IBM or for Linux – this is a pure job title keyword search!
COMBINING WHAT WE HAVE LEARNED
OK, so by now, you are probably exhausted… Let me show you one last string that combines all of it. Still awake? Let’s go!
I want to find Employees of companies called “Google” who have “Account Manager” in their work position and speak French and live in Ireland. This is a search that is too complex to run with Facebook Graph Search. However, you can conduct this search if you use the tips above to crack the code on the URL’s used.
This is it: Employees of companies called “Google” who have “Account Manager” in their work position and speak French and live in Ireland
/search/108106272550772/speakers/105580162808279/residents/present
/str/google/pages-named/employer/pages/intersect-2/employees/present/intersect/
102190653156262/employees/intersect
I hope you enjoyed this tutorial – stay tuned and look for my next post about this topic. There is more to discover!