The Visidarbi.lv portal was running on legacy software for quite some time and never actually fulfilled the original requirement due to poor technical design and implementation. We took over the project from the previous vendor and created a brand new, modern and effective solution.
Visidarbi.lv is one of the most popular and fastest growing job portals in Latvia providing daily access to thousands of job ads that are collected from the most popular job and career portals, ad portals and large company websites.
Most of the Visidarbi.lv visitors are looking for job vacancies such as low and mid-level specialists, assistants, customer service staff, skilled and low-skilled workers in Riga, Latvian major cities and regions as well as jobs abroad. Visidarbi.lv offers the most job openings, specific to your town or region.
Visidarbi.lv has been operating since 2008 and is managed by CV-Online Latvia – the leading online recruitment services provider in Latvia.
One of the main requirements from the client was for us to be more than just programmers – we needed to be innovators and take the lead in project development. Luckily, that’s what we do on a daily basis for all of our customers and partners.
The clients main expectations were great performance, with a fully responsive & adaptive design, to satisfy the growing mobile user audience, providing simple and intuitive UIX, avoiding daily manual data mapping work and, finally, a solution that could be easily implemented and adjusted for other group countries.
We needed to migrate most of the data from the old system and launch the new system as smoothly as possible.
We chose to build this system based on microservice architecture to support flexibility in the future and using the best technologies for each component. The core is built on top of a Symfony framework – one of the most popular PHP frameworks widely used for web-based applications. We also use Scrapy – a fast and powerful Python framework for extracting the data from external job ad portals known as sources.
Scrapy has proven to be very reliable and flexible allowing extraction of a large amount of data very quickly – our parsers are able to deliver close to real-time data.
Obviously, the job search is the crucial and most used feature in the entire system and it needs to be fast, efficient and intuitive. Plain SQL queries to the database wouldn’t satisfy such a need, so we looked for a dedicated solution – a search engine. The main requirement for the search engine was incremental data indexing – an ability to index a single record whenever it’s modified instead of performing full data re-indexing repeatedly. The choice was narrowed down to Algolia and Elasticsearch – they are both the most popular and feature-rich engines on the market. We chose to go with self-hosted Elasticsearch to avoid additional costs as Algolia is a cloud-based solution.
In order to avoid the manual work required to map external advertisements to system countries and cities, an automatic mapping mechanism was implemented. This mechanism is based on country regions that are represented as geometric shapes – polygons. By doing so, the whole country is covered by polygons where each polygon is represented as a set of geographic coordinates.
We used Google’s Geocoding API to convert a textual address into geographic coordinates (latitude & longitude). Geo coordinates are, in fact, a point on a map – therefore we can use them with polygons to determine where the point belongs to – this was done using the point-in-polygon algorithm.
PHP7, Symfony, Python, Scrapy, Elasticsearch, MariaDB, Redis, Nginx, REST
The previous legacy software was replaced by a brand new, modern and robust solution, serving the customers` needs better than ever and accelerating Visidarbi’s ability to provide services to both employers and job seekers alike. The new system needs zero day-to-day manual work.