Building a Brand New Job Portal and Aggregator

Aivis Brodins
Aivis Brodins
CEO of CV-Online Latvia LTD
“We started the cooperation with Arkbauer in 2016 and since 2017 it is our only IT vendor for one of CV-Online group websites – job portal & aggregator Our aim was to develop a new system for that would run more smoothly and stable, provide better security and be flexible to adopt new features while the business grows. Arkbauer team had extensive knowledge and experience in building such systems, as well as fully understood our needs and business goals, therefore we were fully confident that this is the right partner for this project. The new system was completed exactly on time, as agreed at the beginning. Job portal was also launched in Lithuania under website Communication with Arkbauer team, especially Janis Sakars, during and after the core development process, was very smooth and effective. If any problem arised, it was solved promptly. We are very satisfied with the result and would definitely recommend Arkbauer as a partner for IT development.”

The 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.

About Visidarbi 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 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. offers the most job openings, specific to your town or region. has been operating since 2008 and is managed by CV-Online Latvia – the leading online recruitment services provider in Latvia.

The Challenge

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.

The Solution

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 Results

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.

Shortly after the initial go-live, we launched the same system for the Lithuanian market as well as for Estonia –


Let's Talk
First name
Last name
Phone number entered is invalid.
Message must not be empty.