So, after 5 intensive years at Better Place, I found myself out there looking for my new position. Today – I’ve been told – job hunting is nothing similar to what I knew. The added value of the placement agencies and head hunters has decreased dramatically. The key word for an executive position is connections. My outplacement consultant advice was: “Get as many connections as you can: from your past workplaces, current colleagues, friends and LinkedIn contacts. Increase your online presence and make yourself visible to as many people as you possible.”
The General Idea
Equipped with this advice, an excellent technical background and a lot of free time I decided to create my first project which will work for me rather than my employer – the LinkedIn network expander. The idea is to automate my manual tasks when I’m looking for new contacts using a robot – but with a limited level of artificial intelligence. I know, it is almost against the LinkedIn etiquette rules to make connections in such a none-personalized fashion, this is why I did it only for LIONs (LinkedIn Open Networkers) and I personally send a thank you note after accepting my auto-generated invitation.
Conceptualizing the rough idea
In order to do that, the key is to utilize LinkedIn API, use a piece of software to utilize this API and automate the following tasks:
- Search for contacts in my network which are not directly connected to me. What type of search criteria should I use? Well, I can scan all contacts in my LinkedIn groups, colleagues from my past workplaces, classmates, open-networkers (LION) and so. I just need to learn the API and construct the appropriate search criteria.
- For each contact, get some info to help me phrase the invitation. It should be somewhat personalized. This requires analysis of the contact’s profile to identify what was the source query resulting the contact (group, colleague, classmate…), common domains of interests, skill sets and so.
- Send the invitation (using the LinkedIn Invitation API) with the proper wording. For some cases it should be easy (if I share the same group/workplace/classmate) but in other cases it could be tricky since I’ll need the contact’s email address (and this will require some text analysis of sections like Summary, Additional Info etc`).
- Manage a track record to learn which invitations were accepted in order to avoid re-sending it to the same contact twice or (how embarrassing) to someone who IDK or rejected the invitation – and also put him in my black list 🙂
Realizing the concepts
Now that I have the clear and crystallized concept with the TODO list, it’s time to wear the architect’s miter and form the technical solution.
- First, I need to get the LinkedIn API (and API key) and learn it. Of course, i can use the basic REST API but I’m someone already wrapped it with an easy to use client library. A quick Googling reveals many libraries. I choose LinkedIn Developer Toolkit – a .NET (C#) open-source library (Microsoft Public License). Why? because I’m going to use Microsoft’s cloud technology.
- After I have a compiled and tested client library for LinkedIn, it’s time to build the robot which will be based on Microsoft Azure worker role. Although I’m an excellent Java pro, in this case I decided to use Microsoft Azure since I already have some similar projects I can reuse large portion of their code – call it constructive laziness.
I’m taking some time now to design and build the server side, I’ll update this post after I’ll have the first version. Also, currently the LinkedIn API allows sending invitations as friends only (this doesn’t align with my concept) but the LinkedIn team are stating in their developer web site that they will soon change it.
This is a work in progress blog and I’ll update it during the development process, so stay tuned. I’ll be happy to get your insight and ideas so don’t hesitate to drop me a comment or an email.