Winning the IBM Collaboration Solutions Developer Competition 2016

Winning the IBM Collaboration Solutions Developer Competition 2016

Just yesterday we came back to Switzerland after our 3 Weeks holidays in Indonesia. We were in Bali, Nusa Lembongan (Island next to Bali) and Rote Island (Timor). So on the 16. September 2016, after a beautiful day on the boat diving with Manta Rays, i was eager to check the contest results and received the EMail with the exciting subject:

CONGRATULATIONS! You are our winner of the ICS Developer Competition

The Idea

Right after the announcement of the ICS Developer Competition. Frank and me decided to team up and brainstormed for ideas on how to use IBM Watson Services within Collaboration Solutions. We used Connections’s Ideation Blog in order to organise the ideas and let our co workers of Belsoft Collaboration AG vote for the ideas. Many ideas came out, but the HR Assistant got the best feedback and most votes..

How it works?

The application works for 2 user roles, plus Administrator:

Job Applicant

The job applicants seeking a job can browse and search for available job offers. By pressing “apply” the job applicant can enter and submit his personal data and most important: the cover letter.

HR / Backoffice

Data is presented to the HR / Backoffice employee in a graphical manner. Only recent data is being considered in the charts. It is used to have a quick overview of recent data. Jobs, Job Applications and Companies can be managed in a convenient way. The HR / Backoffice employee can also analyze individual job applications and jobs with IBM Watson Services.


The administrator is able to manage configuration keywords.

The Application is available here:

What’s inside?


We decided to use the AdminLTE Control Panel Template ( It’s an open source admin dashboard & control panel theme. Built on top of Bootstrap 3, AdminLTE provides a range of responsive, reusable, and commonly used components.

GUI / Layout

We’re using XPages and many Custom Controls in order to display the data. We’ve avoided using SSJS to an absolute minimum, actually only for calling Java Managed Bean’s Methods with parameters.


There are a lot of Java classes, and quite a few configured managed beans in faces.config. We did not use a Java Framework (yet), but we implemented some design patterns like Factories and Dependency Injection.


All the data is stored in an IBM Cloudant NoSQL DB. To write/read JSON from/into Java objects, we use Jackson from FasterXML, easy as a pie..


What’s next?

Technical enhancements and bug fixes

Yes, there are bugs 🙂 but i hope they aren’t that obvious. We will correct them.. Also there are some enhancements on the list for which we simply didn’t had the time for yet..
We think about to make the application a bit more future proof: instead of using the XPages / Custom Control GUI, we think about creating REST APIs for all the functions and provide also a GUI that consumes these REST APIs (e.g. with Vaadin).


There are many ideas for features we want to include for the next version(s):

  • Workflow: Status integration for the main data types.
  • Using IBM Watson Document Conversion Service in order to convert uploaded files an include them in the analyse process.
  • Get out more details of the Alchemy API: This is a very powerful service and we want to get more out or fit in order to match eligible Job Applicant with eligible Jobs.

The Code is available also on GitHub:

Leave a Reply