It was just over a year ago when Woratana Perth and I competed in an AWS Hackathon held at Servian and built a platform to improve surveillance at Fuel Stations. We won the first prize of a fully-paid trip to AWS re:Invent 2018 in Las Vegas.
We had always wanted to go to re:Invent again since it was such an unforgetful event. It’s with my greatest interest to walk you through on how we, as Team Not Hotdog, built a recruitment application called Recruit Mate for this year’s AWS Hackathon and went on to win the first prize and our second trip to AWS re:Invent.
Hackathon Structure and Prizes
The AWS Hackathon was held on a weekend in September with the first prize being a full-paid trip to AWS re:Invent 2019 in Las Vegas, and the second and third prizes being Amazon Echo Show and Amazon Echo Dot, respectively. With 22 teams hacking away across Servian regions (Melbourne, Sydney, Brisbane, and Bengaluru), we were given 4–6 minutes for our final pitch and scored on:
- Technology (Use of AWS, Completeness, Difficulty, Polishness)
- Commerciality (Usefulness, Practicality, Impact, Business Potential)
- Innovation (Idea, Adherence to theme, Creativity)
- Presentation (Pitch)
Different from last year, we were given 3 themes to choose from, Machine Working with People, Operational Machine Learning, Master Data Management (MDM). We went with Operational Machine Learning.
Perth and I have hacked together multiple times before so we knew our team dynamics, capabilities, communications, and plans well. Perth has this amazing UX/UI skill to pull off an appealing application interface so he is usually on the front-end while I work on the back-end and architecture, and provide him with APIs and hope that it doesn’t break his UI.
In all of our Hackathons, we ask ourselves these questions when designing our idea and solution:
- What problem are we trying to solve and will the idea lead to a solution?
- Is there a story and monetary value behind this solution?
- Will the implementation be achievable in a given timeframe?
Above all of that, we have a golden rule in which we abide by:
The product we are creating must be worthy of being a Startup idea otherwise it’s not worth creating and doesn’t solve a problem.
Our Hackathon product, Recruit Mate, is a personalised candidate pre-screening recruitment platform. The platform has 3 important features, Smart Candidate Search, Resume Analysis, and Automated Video Interview, that aims to address the following recruitment issues, respectively:
- A minority of candidates (~10%) respond to LinkedIn InMails in general as recruiters often use generic messages which is often difficult to target passive candidates
- Companies spend a lot of time meeting candidates that lack foundational knowledge where statistics showed that a minimum of 36 business hours is required per hire.
- Recruiters often have limited time to analyse all of the relevant information from resumes, this can lead to missed opportunities.
I have included our AWS architectural diagram below for your reference. Being on the backend, I wanted to use AWS services that I want to learn about and don’t often use when architecting a cloud solution for the client. Consequently, some services may seem like an overkill but at least it’s free of charge.
Smart Candidate Search
This feature enables the recruiters to search for candidates on LinkedIn via keywords, hashtags or a particular user. User profile information such as job experience, education, email address, skills, profile photo, and description are extracted and recorded. Using the profile name, the platform also searches for their Twitter profile and performs a secondary profile validation using facial recognition between the extracted LinkedIn profile photo and Twitter profile photo. When the profiles match, the twitter profile address is recorded against that profile.
The platform extracts technology and cloud relevant Twitter posts using NLP from the candidate. This extracted information was used to generate a basic personalised email for candidates and tailored to the company. If we were given more time, we would create an ML model using SageMaker to personalise the email content even more and predict the candidate’s suitability based on the job description and profile information.
LinkedIn Profile Extraction
For simplicity, we leveraged off Phantom Buster API (keys are encrypted using KMS) to search LinkedIn users and to extract relevant information. Profile information was recorded in DynamoDB while the profile photo was stored in S3.
Since we were just showing a quick demo and were only interested in a few LinkedIn profiles, hence, the extraction and ingestion code sat on Lambda, however, the use of AWS Batch, EC2 or ECS (and ECR) would have been a better long-term approach as each profile take can take up to 30s to extract.
A Lambda trigger was also placed on the S3 bucket so that whenever a new profile image was uploaded, it used the profile name to search for the Twitter profile. Whenever one or more profiles were found, Rekognition’s Face Compare API was used to validate if the profiles match before writing the Twitter profile address into DynamoDB.
Using the recorded Twitter profile address, a particular candidate’s Twitter profile address can be submitted to the Twitter listener which is Python Tweepy sitting on an EC2 instance. New posts are displayed on the platform within a minute using Kinesis Firehose for ingestion.
Using AWS Comprehend (NLP as a service), we were able to extract only relevant Twitter posts and filter anything unrelated to Technology or Cloud.
We ran the extraction code on a screen to simplify multi-user extraction and it seemed like Twitter allows for multiple uses of the same API at the same time…
To help recruiters get a quick view of the resume, the platform uses the mechanics of OCR from AWS Textract to extract the text from documents and pre-process it using NLP via AWS Comprehend. This way, it only recorded technology and cloud-relevant information to display a word cloud.
Nevertheless, we had the idea of using a model that showed Candidate’s suitability score based on relevance to the job description using candidate’s professional experience and years of experience, listed skills, and attention to detail (grammar and spelling mistakes) rating, but we did not get enough time and data.
Automated Video Interview
When interviewing a few of our technical recruitment friends internally and from other companies, we found that one of their concern is putting candidates through several recruitment stages only to find out that candidates are either missing core skills required for the job, don’t have the level of knowledge required, or their resume does not match their spoken experience. At Servian, we value the candidate’s time and wanted to ensure that when the candidate meets the hiring manager, their level of knowledge is suitable to the job description.
This platform allowed candidates to record themselves answering a set of pre-screening general and technical questions. This allowed candidates to respond at a time of their convenience and if they lack the level of knowledge required, the recruiters will be able to notify the candidate early on to prepare before their technical interviews.
Using AddPipe video recording API, candidates were able to record their responses and store the MP4 file directly in S3. Upon landing in S3, the video was pre-processed to extract the text using AWS Transcribe. Once the text was extracted, it’s sent to AWS Comprehend for topic modeling where it was trained on a corpus of text that relates to questions such as “What is a NAT Gateway” to generate a response score for the candidate.
Would do it again!
Hackathons are a great way to learn something new and troubleshoot quickly and that’s why I see a lot of value doing them and would it again and again. You are in a room with like-minded people, all hacking away to create a product with lots of excitement and food.
If you’re reading this and are new to Hackathons, or haven’t competed in one before, do so, and use it as a learning opportunity. Use our Hackathon approach if you need a place to start and remember to try and use as many APIs as you can, don’t be too pessimistic (I know we programmers are), worry less about security and get things working, and above all, have fun!
As a Consultant at Servian, I have been helping businesses build scalable cloud and data solutions in the area of Data Warehousing, AI/ML and Personalisation, and have a growing interest in DevOps and Micro-services.
I love data and cloud so feel free to reach out to me on LinkedIn for a casual chat or to find out more on how we Servianites can help you with your cloud and data solutions.
How we won the Hackathon and a second trip to AWS re:Invent was originally published in WeAreServian on Medium, where people are continuing the conversation by highlighting and responding to this story.