## 3 Service Development Methodology
### Curriculum Designer  
Another service that was built on top of JobCrawler and the Skill Extraction service is the Curriculum Designer. The main objective of this service is to help higher education institutions update their curricula according to the job market requirements and, as a result, be more targeted to their students' projected careers. The Curriculum Designer takes as input a school's curriculum and the job posts of a relevant profession and identifies the skills that are highly appreciated by the job market but are not taught in the context of the given curriculum. As a next step, it identifies the courses that are suitable to introduce this skill in their syllabus. The results of this service are presented to the users through useful visualizations, along with importance scores for the skills, as well as relevance scores for the proposed courses that measure how relevant skills are to each of the courses, where they are proposed to be introduced. The curriculum that is provided as input is analyzed and modeled as a set of courses where each course is accompanied by a list of skills that are taught in its context. In order to achieve this, the Skill Extraction service played a major role as it identified the skills taught from a course's description. Finally, the results were stored in a relational database, as well as an Elasticsearch engine for advanced text operations. Concerning the identification of missing skills, initially, the most popular skills are identified through the Knowledge Extraction service based on the number of job posts in which they appear. Afterwards, these skills are searched in the \"taught skills\" section of the given curriculum. In case they cannot be found, they are considered missing, and the goal is to find courses that are relevant to these skills so that the service can recommend their introduction to these courses. This is achieved through association rules mining [29]. With this technique, relations between skills are unraveled. More specifically, all the job posts are scanned to find the probability that two (or more) skills appear together in a job post (support metric) and to what extent finding one skill in a job post leads to a high probability of also finding another specific skill in the same job post (confidence metric). Finally, another metric is calculated, which measures to what extent the fact that two skills appear together is random (lift metric). For instance, if two skills are extremely common, it is highly probable that they will appear together, but this does not mean that they are actually related. Of course, it is very expensive in terms of computational resources to calculate these metrics for all the possible combinations of skills. Therefore, the Apriori [30] algorithm is utilized to calculate the aforementioned metrics only for sets of skills that seem related. It is a given that the association rules cannot be calculated on each request, as it is not computationally feasible. For this reason, and since the job market demand is not changing rapidly within a short time period, the association rules are saved in a data storage to be used by the application when requested. The association rules are calculated and stored on a weekly basis. Therefore, on each request, the job market and the curriculum databases are queried to identify the missing skills, and the association rules are loaded to find relevant courses. More specifically, for each missing skill, the related skills are loaded from the association rules data, and related skills are searched in the curriculum database. Finally, if the related skills are detected in the curriculum, the courses in which they are taught are candidate courses for introducing the missing skills. In Table 1, some examples of association rules that have been identified with high probability in Greek job posts are presented alongside the scores of support, confidence, and lift, ordered by the confidence score in descending order.