- Scope Backend & frontend development
- Innovation GraphQL with CQRS, React Material UI with Next.js
- Technologies Frontend: React Next.js, NX, React Material UI, Apollo GraphQL Client
Backend: Node.js, Nestjs, TypeORM, Apollo GraphQL Server
- Business sector Human Resources
- Model of collaboration Time & Material
- iteo team 3 x Backend developers
2 x Frontend developers
The beginning of work
Final version of the platform
Zynca web platform allows smooth communication between the Labour Office, private companies, and jobcenters, optimizing the recruitment process cost- and time-wise. Being an intuitive and easy-to-use solution, it successfully contributes to reducing the unemployment rate in Sweden, matching companies with their perfect candidates and supporting the employers in getting valid fundings.
Business needs & goals
In 2019 the unemployment rate in Sweden has significantly increased to 6,8%. But it didn’t stop there – it spiraled in March 2020 with the outbreak of the pandemic, resulting in 8,6% of people out of work in November.
Our client decided to create a digital solution that would contribute to solving the problem to some extent.
The goal of Zynca system was to support the labor market by associating private companies with job centers and Labor Offices. This way, it was supposed to optimize the recruitment process being time and cost efficient.
A candidate is added to the Zynca system and his qualifications are analyzed according to available job offers. It works two ways – the offers are matched with the candidates and the candidates are selected for particular offers.
The platform consists of 3 panels:
Admin can add new job offers, candidates, companies, as well as other admins. He’s able to manage admins with different access levels.
Supplier can add candidates for his own company and browse diverse job offers.
Employer has access to quick logging via SMS. The panel displays his job offer with selected candidates.
The process is quite clear. First, a candidate is matched with a job offer – an employer gets an email and can invite a chosen person for an interview. If the evaluation goes well, a candidate becomes a trainee or an employee.
Each phase has its own date – it enables evaluating the time a company can apply for a so-called bidrag funding (it’s a kind of allowance an employer gets after hiring a candidate in a city hall program). Zynca system notifies a company every time a benefit is available – after 1, 2 and 3 years of employment. It can also take care of all formalities related to receiving the funding. The dates are marked in the profile.
GraphQL with CQRS
We chose an asynchronous approach to create a service layer in applications to give them a greater possibility of development and microservices division.
React Material UI with Next.js
We used some ready-made components adjusted to the delivered design. Next.js framework supports the server side rendering and the process of SEO. We turned off the possibility of serving the data from the server side with the return option.
Challenges & solutions
Creating three panels within one project
We worked with monorepository using NX. It allowed us not to copy the code in two very similar applications, but to share it between them using libraries with NX.
Apollo GraphQL server with Nest.js framework
There were about 200-300 endpoints in the application. GraphQL allowed us to substitute them with a single access point with queries. One endpoint was applied to several subpages which enabled code optimization from the end application and the queries side.
It facilitated our frontend-backend communication. We were able to create the queries ourselves which reduced the amount of transmitted data – we could choose only the necessary ones.
We managed to unify the technologies within the project. Since the official launch, Zynca gained about 1k companies and 20k candidates.