Recr👀t .io

Recroot is a tool that automates and simplifies the recruiting process using natural language processing by extracting vital information in a sentence and converting it into an entire job description.

✨Purpose

Nobody should spend their precious time and effort on creating job descriptions. That's what Recroot is made for. Many young startups struggle with making job descriptions quickly and have to enter everything manually, often with no direction in mind. No more filling out the lengthy forms, checking boxes and selecting from drop-down lists, with Recroot all you have to do is enter a simple sentence, click enter and watch the magic happen. You can do all of this with voice recognition too. Ensuring you recroot more effectively.

Inspiration

The idea of Recroot came about due to my personally experienced struggle of finding people for my small startups, which is often the case with the majority of young companies. In particular, one of the issues I faced was making simple and to-the-point job descriptions in minimal time, and frequently I didn't really know where to start. The point of Recroot is therefore threefold: 1. to reduce the time it takes to develop a formal job description, 2. save time on making the appearance attractive and simple, and 3. Recroot helps a ton with simply making a job description that you can use as reference and expand on or improve later so that you start with having a direction to follow.

⚙️The Main Function

  1. Enter a 1-sentence description starting with "Find somebody...", either by typing or voice recognition
  2. Click enter or the submit button
  3. Verify in the grey tab that the NLP model correctly interpreted your description
  4. Copy the generated job description below and export directly to Facebook or Twitter

❓How It Works

After you submit your description, it gets fed into the Wit.ai model which identifies all the individual attributes and returns them back to Recroot. Recroot then iterates through each attribute and its sub-attributes and, using them, builds the visual description. With some additional logic, Recroot is able to generate the text description by identifying which attributes are existing and under which category they fall into in order to place them in the correct position.

What it does

Upon reaching the Recroot.io website, the first thing you will see is a search engine-like search bar that prompts you to type "Find somebody that...". The input you need to provide is a simple sentence that defines what the ideal employee you're searching for is like, in terms of 9 currently trained attributes: location, school, industries, companies, minimum years of experience, has a degree, qualities, skills, and held positions. What's best about how Recroot saves you time is that it doesn't require any capitalisation or formal grammar as long as the meaning of your sentence is clear. To provide this input you can either type it out or use the voice recognition feature to which you can dictate your sentence and it will concurrently automatically type it for you with a very high accuracy. This sentence can then be submitted by either clicking enter or the search button, or if you are completely unhappy with the sentence you can reload the search bar to blank with the button to the left. Once the description is submitted, the first thing Recroot will respond with is any errors in a gray tab below, either overly long or too short of a text. If no errors appear, then you'll be greeted with your sentence once again yet this time each attribute that the NLP model recognized will be highlighted in a specific colour in accordance with the colorcoding scheme. You can verify that the AI got everything correct and scroll down a bit further to see the final product. The first half is a visual and concise visual job description that immediately conveys what you, the employer, is looking for in terms of all attributes you provided. The second half is a more in-depth description that provides more detail as to what you are looking for in potential candidates. You can then copy the product and use either the Twitter or Facebook buttons to immediately post your job description to the social media platform.

🦋NLP Model

Accuracy

After conducting a best of 10 sentences consistently with at least 7 of the 9 attributes, the Wit.ai model had an outstanding 100% accuracy rate on 8/10 of the phrases (overall around 94%)

Training

Training data was generated using a python script and would sometimes be slightly altered manually to provide more of a variety of sentence structures and attributes. The point of using a data-generator script is to save time and fit more training data into the model before the deadline, as well as reduce the human bias I have of not exposing the model to as large of a range of sentences, attributes and keywords than a computer script can since I am more prone to frequently using similar keywords and attributes out of habit.

Implementation

The Wit.ai model would receive the sentence then analyze and identify in it which attributes are present. For each of the attributes present, the model would list what substrings in the sentence fall under that attribute, then return everything in JSON file. Recroot then uses javascript to store the JSON values in separate variables then uses logic and randomness to generate the entire job description.

🔮Future Ideas

  • Increase number of trained attributes
  • Continuously improve accuracy of model
  • Expand to other functions using the data like web-scraping
  • Create a more sophisticated training data generator script potentially using NLP
  • Make the text-based job description-creator more intelligent (maybe with AI?)

What's next for Recroot

What I think the future holds for Recroot is continuous improvement of the AI's accuracy, and this can only be achieved through more and more data, which I believe will be primarily collected through user's descriptions on the site as well as from a far more sophisticated sentence generator that might run using NLP too. To add on, I really want to continue expanding the horizon of Recroot in terms of not purely generating job descriptions, but also scraping sites like LinkedIn and returning matching people to users on the site, which was my original idea that didn't come to fruition. Lastly, it would be great if I could continue increasing the versatility of Recroot in terms of the attributes it recognizes: some to-be-employed attributes off the top of my head are timezone difference (for remote workers or startups aiming to collaborate from different countries), the exact degrees people have completed, and more.

How I built it

The main chunk of the project/website is built with standard web development languages (html, css, js) and this was very straightforward to make. The other large section is the actual AI which was entirely trained with Wit.ai from the beginning to the end (9 days) I spent making the project, and the accuracy of the AI is very successful (currently over 90%). Furthermore, since I didn't want to waste time creating training data/descriptions for the model, I wrote a python script that would randomly generate sentences using a bit of logic, randomness, and arrays of popular terms for each attribute, ei. for companies many of the most well-known enterprises.

Challenges I ran into

Initially the idea of Recroot was to actually implement web-scraping, yet 3 days before the project was due I realized I wasn't able to run scraping scripts on the client-side which meant I had to shift focus onto an entirely new idea. Luckily I managed to perform this transition effectively and still create a product that can have a lot of impact on many people. Another circumstance to note is that I only learned of the hackathon less than 2 weeks before the due date, meaning I really had to prioritize my time effectively which leads into the next point.

What I learned

As mentioned earlier, I have truly refined my time-management skills with my project due to my tight time constraints, yet I also learned how much time and energy you need to pour into a project before you start seeing tangible results. For me, that meant spending 7 hours everyday after school solely working on training the NLP model, developing the website, and failing and failing recursively yet simultaneously learning so much more about the tools and software that I use. Examples of this include myself learning Node.js to a proficient level along the way even though I didn't even implement it in the final outcome of my project.

Accomplishments that I'm proud of

The single achievement I'm most proud of is actually ultimately finalizing the project. Although it doesn't sound like much, the fact that I have dedicated so much time and have converted it into a functioning website that I see value in means a lot to me and only encourages me to continue developing interesting and practical software. It is also worth mentioning that I have endured so many errors along the way as all developers do, and as it is also my first ever large project developed, I'm really proud that I was able to manoeuvre through all the bugs and malfunctioning pieces of code to, in the end, reach a great working project.

Share this project:

Updates