Recruitment system - integrating Gmail, Bravely, Jira, Slack, and Copper CRM

Paweł Juraszek
Paweł Juraszek Python Developer

Read time: 13 min

Mar 20, 2020

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.

Solution

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.

Recruitment system - integrating Gmail, Bravely, Jira, Slack, and Copper CRM

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, hr@bravelab.io 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.

Recruitment system - integrating Gmail, Bravely, Jira, Slack, and Copper CRM

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:

Recruitment system - integrating Gmail, Bravely, Jira, Slack, and Copper CRM

Notification appears on slack:

Recruitment system - integrating Gmail, Bravely, Jira, Slack, and Copper CRM

And they are added to Copper CRM:

Recruitment system - integrating Gmail, Bravely, Jira, Slack, and Copper CRMRecruitment system - integrating Gmail, Bravely, Jira, Slack, and Copper CRMRecruitment system - integrating Gmail, Bravely, Jira, Slack, and Copper CRM

Conclusion

System of notification, automatic gathering, and pre-processing candidates improves speed and efficiency of the recruitment process.

Paweł Juraszek
Paweł Juraszek Paweł develops his career as a Python programmer. Learning from the best gives him opportunities to meet the highest standards and improve skills every day.

Read time: 13 min

Mar 20, 2020

Schedule /a meeting/

with our specialist Michał Maj

Michał Maj
Michał Maj Business Development Manager

Read more from our brave's writers

Our mission is to be /trusted partner
to our clients/
in the field of webplatform
development & staff augmentation

Check our rank

developmentclutchdevelopment
  • development
  • clutch
Item 1 of 3

0 Professionals

0 Finished project

Kudos.

  • “Not afraid of doing even the most difficult tasks and proposing innovative solutions. They don’t avoid challenges, rely on new technologies, and - most importantly - always carry the projects through from the beginning to the end.”

    Adam Bogdan
    Adam Bogdan Python Developer
Item 1 of 8

Let’s
/keep in touch/

We're happy to help! Leave your contact data, and we will get in touch with you within one business day.

Tell us about your needs, ask about our experience, portfolio, and even partnership programs.

Contact us

Thinking of
joining
/Bravelab/?

We are on constant lookout for new talents to join our Brave team! Don’t wait and check our latest Job openings!

Careers