The recruitment process is complex and consists of many steps. In our system, new candidates can apply for a job position through: various external sites, dedicated email addresses, the form on our website, or any other available way.
Acquiring candidates from many sources is problematic and time-consuming. Creating one aggregated email address solves only part of the problem, especially if it aggregates other things as well, for example, notifications. Therefore, it is important to create a system that can improve effectiveness and shorten the time needed to manage the application process.
The idea was to integrate various APIs, such as Cooper CRM, Atlassian Jira, Google Gmail, and G Suite. Messages from all sources are aggregated in one email address, where they wait to be processed with our module. The task of checking the inbox is run every 15 minutes.
Accessing Gmail inbox through API requires user consent. Service accounts can bypass this with domain-wide authority. Such accounts can be created by the admin in G suite and allow us to manage messages inside the chosen inbox.
Aggregation of mailboxes may cause a massive amount of messages in one inbox, we have already had over a hundred thousand in ours. To avoid processing through the whole mailbox, the specific query has to be used.
For this purpose, it has to check if emails were forwarded from a selected list of mailboxes (for example, firstname.lastname@example.org or other used aliases). To narrow results further, only messages from the last seven days that haven't been processed yet, are considered.
From such a list, data from each email is used to create a new candidate with linked leads. Leads are used later for integration with Cooper CRM and Atlassian Jira.
To avoid making many duplicates, only the first email in the thread is allowed to create a new candidate. These criteria allow applicants to apply for multiple positions, or to reapply later.
How does it work
When email awaiting processing is found, a sequence of things happen.
The message list returned from the query contains only message ids and thread ids. In Gmail API, if they are the same, it means it's the first message in a thread. Then all needed information is extracted from such a message. From the header “From” name and email address are extracted.
From message content, regular expressions look for phone numbers. And from “parts” we extract attachment id’s and get all attachments. The message subject is also extracted.
Such information is passed to the candidate management script.
Candidates in the recruitment tab hold’s all information in a user-friendly way.
But for integration with other API’s we use an already utilized lead system. Each instance has related one of each: an email message, profile, and lead.
Interactive URLs allow for quick access to inbox and candidates as needed.
New leads create issues on Jira:
Notification appears on slack:
And they are added to Copper CRM:
System of notification, automatic gathering, and pre-processing candidates improves speed and efficiency of the recruitment process.
YOU MAY ALSO LIKE
Automate repetitive tasks to improve your business performance
Repetitive work may negatively impact your business performance. By improving business performance management, you can automate tasks and increase productivity.
Top 6 apps made with Flutter
See the most popular apps made in Google Flutter. What needs do they answer and why have they gained popularity and business success? Get inspired by them!
Trends & Insights
Surfing into the future: E-commerce is from Python
More customers? We call it scalability, the aspect that ensures the growth of your platform with the development of the number of customers. Python's comprehensive support for the development of websites is the reason it is acknowledged as an e-commerce development tool universally.
In need of software development?
At Brave we specialise in Web Software Development. We wiil help you to get your project done.
FILL IN THE FORM BELOW, OR REACH OUT TO US DIRECTLY — OFFICE@BRAVELAB.IO