DPL E.T.T is one of the hottest talent consultancies from Barcelona, specialising in temporary work. They have been matching temporary workers with companies since 2004, servicing both SMBs and large corporations all over Spain.
We built a web application based on Ruby on Rails together with an Ionic hybrid mobile application to help them to assign their temporary workers in their daily assignments for multiple clients.
When they contacted us in 2015, DPL E.T.T. were doing hundreds of manual assignments per day. Their staff would take hundreds of calls each day with every worker to assign them to their new destinations, thus causing many bottlenecks, inefficiencies, human error and most of all, stress, potentially causing burnout among the DPL employees.
After having analysed all the processes, we started building a solution to manage this matching process in an automatic and seamless way.
How did we do it? We first reworked the whole process, and then built a technological solution around it.
Redefining the workflow
Before we came in, DPL were working in a 100% reactive mode: they would wait for the daily email of the client asking for workers for the next day, and start going through the database calling their temporary workers. That email provided an estimate of the total amount of workforce needed, but the exact amount wouldn't be known until the very day, early in the morning, thus requiring a second round of calls.
You can imagine that this requires cancelling on people who get up really early, or waking up others before the sun rises.
We decided to go for a more active approach: we designed a mobile app where we'd ask the workers every week to define their availability, hence sparing DPL hundreds, if not thousands, of calls to people unable to work that day. Second, we are doing the matching through an automated process on the app, thus eliminating all calls in the process. Last of all, we send the final confirmation as soon as DPL has it to everyone at the same time, thus avoiding delays and lots of human-induced mistakes.
As an indirect benefit, people can sleep a little bit longer, and that's always good!
Mobile application for workers
As we have just seen in the previous section, DPL need to know the availability for each worker, in order to assign them to jobs. Also, they need a way to send offers to workers and notify them when they are selected, and that's why we decided to use a mobile app.
We built an Ionic hybrid application to be able to use the same code base for both the Android and the iOS app. This reduced the cost for the client and made the app easier to maintain. Also, since Ionic apps are built using AngularJS we could build it in the same way we would build a web application, using a technology we already know.
Building the app was not an easy task, especially because it needed to support a wide range of old Android devices and operating system versions. Since the users of the app are mostly blue-collar workers, we had to code and design taking into consideration a wide range of versions.
Even though the app is primarily web-based, some features required to use the native capabilities of the devices, such as the camera or push notifications. Making those work for a wide range of devices using the same codebase turned to be a challenging task but it helped us to learn more about the interaction between hybrid mobile development frameworks and native code.
Jobs engine and administrator for DPL
The other half of the equation is processing of job requests through automatic matching of workers. For that, we built a web application based on Ruby on Rails and PostgreSQL.
Job requests come via automatic emails from every client, each with its format. These emails contain information about the jobs for the next day, including the number of workers required for each.
To make the process as seamless as possible for DPL we built a parser processing all incoming emails which then automatically creates the necessary jobs based on the job data. We were able to use our expertise in email parsing acquired in other projects such as Zapptales.
Once a job is created, an engine selects the best workers to do it based on a set of criteria: availability, proximity, skills, etc. and it sends a push notification to the best candidates so they can accept or reject it. The engine keeps selecting workers iteratively until all job requirements are met.
How has this app helped our client?
In the beginning, the application was intended to be used only for jobs in one client. However, DPL found this app so useful that since then we have extended it to handle jobs of any type from any customer, thus managing to upsell clients and process more and bigger projects from each one of them.
Thanks to our application, DPL has managed to reduce the calling process from a few hours per day to bare minutes. The time required to manage a job from a customer is 100% automatic and DPL employees need only to jump in if there's a conflicting match or an unforeseen scenario, which only happens every few weeks.
Third, they have also gained more visibility and control over all the jobs and the availability of workers and have got now a dashboard where they can easily understand data which was painful to analyse before.
Another benefit for DPL is that we have managed to eliminate human-induced errors, and having to intervene in the process is now a rare happening.
Last, but not least, the burnout this manual process created while it was manual (having to wake up extremely early and having to call hundreds of time a day and process the information accurately) has now been eliminated, thus contributing to having higher employee satisfaction.
We have been working together since 2015, and we look forward to working with DPL for years to come!