One contribution of our approach is the deduplication of the job postings across portals to ensure that only unique postings are considered. Overall, the deduplication leads us to consider only 12,321 vacancies in the final data set rather than the initial 16,888 vacancies, which is around 30 percent less.<sup>19</sup> Our deduplication algorithm consists in iteratively deleting double entries based on different time horizons up to one month of publication. Thereby, it takes into account two different aspects of job postings. On the one hand, it accounts for the possibility of lagged duplications when a posting is duplicated on a different job portal within a onemonth frame. Such postings are considered duplicates. On the other hand, the algorithm acknowledges that when firms repost an identical job ad at a later time, this may indeed refer to a different work opportunity. Therefore, if the repost is done after one month (whatever the portal it is posted on), this is _not_ considered a duplicate. A detailed overview of this procedure is provided in Appendix A.III. By deduplicating the raw data, we extend previous work on online vacancies in Kosovo, most notably that of Helvetas (2016), who reports raw counts of vacancies from 2015.

The text data used for the analysis, namely the job title and the job description, contain information on skills, minimum years of experience, and minimum education requirements in a raw text format (also called “unstructured” data). That is, the information of interest is specified as raw text in the respective columns from where information is first extracted prior to analysis. A textual analysis is conducted on the job description and job title to identify the incidence of skills, as well as education and experience requirements.

The textual analysis follows that of <mark>Deming</mark> and Kahn (2018) and relies on a dictionary-based approach. The authors study variation in skill demand for professionals across firms and labor markets.<sup>20</sup> They categorize a wide range of keywords found in US job ads into 10 general skill categories and thereby create a skill dictionary (see Appendix B.I). Based on this, we create our own dictionary, which comprises 15 skill categories. For each skill category, there is a set of skill requirements (or sub-categories) which can be identified by keywords or key phrases. In total, the skill categories rely on 152 skills requirements, which are defined by 764 keywords across three languages. We draw on their dictionary of keywords and extend it in various ways documented in Appendix B.II. Finally, the dictionary of 15 skill categories is also mapped to a more aggregate framework

> 19 Note that this takes into account “trimming” the number of vacancies per posting at the 99th percentile to correct for artificial increase of total of vacancies due to outliers among job postings. In addition, a rough deduplication was performed by KosovaJob in parallel with data collection. Thus, to assess the extent of our deduplication rate, we make use of our own, daily web scraped data for three of the four portals for the overlapping period, i.e. November and December 2018. Comparing initial counts from the scraped data with the deduplicated figures from the data used in this paper suggests a deduplication rate of 20 percent vis-à-vis the raw counts. Thus, at least for November and December 2018, our deduplication rate is consistent with rates estimated, for instance, in <mark>Boselli et al. (2018).</mark>

> 20 Focusing particularly on cognitive and socio-emotional skills, the authors find positive correlations between each skill and external measures of pay and firm performance.

- 11 -