Ontology Based Website for Job Posting and Searching

Searching for the jobs remains a tedious work. Whenever we search for job we getting some results which are not very relevant. So, we have to manually search through those results and find some suitable job for which we can apply. Many times, we miss out some job postings because these posting do not appear in the results. The same problem exists for recruiters also. When recruiters search for some specialization there are not getting the same results because the keywords used for searching are different from the keywords used in their resumes. So, to solve this problem we use ontology to post job and to search the jobs.


Introduction
Unemployment rate in 2017 is 5.52% according to [1]. With world population of 7.5 billion, 428 million people are unemployed. There is another category called underemployment, which means that highly qualified people who are working for under paying jobs [2]. Another problem is Skill shortage or Unemployability which means qualified degree holder is not fit for employment because of he / she lack the skill the job requires ( Eg. Problem solving skill, communication skill, advanced skill like data analytics etc) as stated by former President of India APJ Abdul Kalam [3]. For example, India has more than 300 dental colleges in India, in contrast US has around 66 dental colleges. So obviously dentists have no jobs. In this paper we try to give an outline of how to build a job search portal where people can easily search the jobs for a given skill. They know where there is skill gap in their respective field. They can search for the salary they will be getting for a particular skill. [8] in their book explains how the web should be semantic not just display the pages means we should process the data and give results for our queries.

Tradition Job Search
Most of the current job search sites provide features like search a job by keywords, search a job by salary, search a job by type, location, qualification etc for the users. They would not provide answers for queries like how many jobs are there for a particular qualification. They do not get answers for queries like what specializations are there in their domain which are offering more jobs and its comparison to other specializations in their domain

Web Ontology Language
Ontology attempts to represent different entities and their relationships. Web Ontology Language (OWL) [4] is a programming Language used for knowledge representation. It is used to represent entities and their relationships so that machine can process the knowledge and give conclusions. OWL has features to define a Class. To define a class OWL follow the XML syntax. In OWL the concept of class is similar to the concept of class in object-oriented programming (although there are some differences).
We can define the class as <owl:Class RDF:ID="name"/> Here "name" is defined as a class. OWL has features to define a sub Class of the Class, properties of the class, to define that two objects or properties are equivalent, etc.

Web Ontology Language Ontology For Posting The Job:
To create ontology for job posting [10] we have to define the vocabulary for the educational qualifications. We define the course Graduation and Post-Graduation as the class.
We define the Bachelor of Science and Bachelor of Technology to be the subclass of Graduation and Master of Science as the subclass of Post-Graduation. We define MBA to be subclass of Post-Graduation.
<owl:Class rdf:ID="B.Sc"> <rdfs:subClassOf rdf:resource="#Graduation"> </owl:class> <owl:Class rdf:ID="B.Tech"> <rdfs:subClassOf rdf:resource="#Graduation"> </owl:class> <owl:Class rdf:ID="M.Sc"> <rdfs:subClassOf rdf:resource="#Post Graduation"> </owl:class> <owl:Class rdf:ID="MBA"> <rdfs:subClassOf rdf:resource="#Post Graduation"> </owl:class> We define the Chemistry to be class and Inorganic Chemistry to be subclass of Chemistry. <owl:Class rdf:ID="Chemistry"/> <owl:Class rdf:ID="Inorganic Chemistry"> <rdfs:subClassOf rdf:resource="#Chemistry"> </owl:class> If the recruiter wants post a job on the job portal, he has to follow some predefined format. As an example, the recruiter wants to recruit a person with qualification M.Sc with specialization in Chemistry, having experience of two years, work place is Hyderabad, with cost to the company of one lakh rupees and the last date to apply for the job is 15 aug 18. Let us post the job with ID XYZ. Then the posting will look like this <owl: Suppose there are some words which have same meaning, these words can be included in the OWL as follows <owl:Thing rdf:ID="SCM"> <owl:sameAs rdf:resource="Software Configuration Management"/> </owl:Thing> <owl:Thing rdf:ID="SCM"> <owl:sameAs rdf:resource="DevOp"/> </owl:Thing> When queried with different keywords also based on the meaning it gives correct results. If the user wants to query for the jobs he has to use the SPARQL query language [5] . Suppose the user wants to find the jobs which require specialization in Chemistry, he uses the following query.
SELECT ?jobid, ?company WHERE { ?jobid job:studySpecialization Organic Chemistry ?jobid job:Company ?company } Now this query lists not only the jobs for Chemistry specialization but also the specialization of its subclasses. The above query lists the jobs posted with id XYZ because we have specified in the OWL that Organic chemistry is the subclass of chemistry. So the user does not miss the job posting of Chemistry. We get more accurate results.

Working of the website
Before you begin to format your paper, first write and save the content as a separate text file. The job portal has three different kinds of users a) employer/ recruiter b) user or the person who is looking for the job c) the website administrator

The functionalities of the employer:
i) To post the job: The employer fills a form which has the fields like qualifications, Specialization, Experience, job Location, Cost to Company, last Date to apply, etc.
For selecting qualification there will be dropdown menu for selection qualification from basic degree to highest degree. The recruiter has the option to select any PG with specialization or a particular PG with no specialization. Similarly, he has the options to select a particular PG and working experience of 2 years. Now the recruiter has the option to specify the Boolean operators like and, or, etc., with specialization and experience.
ii) Give feedback on the recent interviews conducted: After completion of the interview the recruiter has to give feedback on the average knowledge of the candidates he has interview, what are the deficiencies he has observed in the candidates, whether he got the right candidate he is looked for.
iii) Pay packages offered: What are the promotions, allowance apart from the pay he will be getting etc. iv) Search the resumes in the portals: Sometimes it happens that the recruiter does not want post his job, he will search the job portal for matching resumes and he tries to contact them directly. While searching for the resumes the job portal provides a summary of the information based on the chosen criteria. The recruiter can contact the candidates through the portal. The portal has facilities to group mail the short listed candidates.

The functionality of User:
i) To post his resume: The user who wants to post his resume will first create an account. He has to select his qualification, experience from the dropdown menu. So, there will be no ambiguity in his qualification and experience. He has to select his expertise in the areas by dropdown menus. iii) Report inappropriate results: If the user feels that he got results for his search queries which are not appropriate for the query, a feedback form will be provided to him to report the results. iv) Report relevant missing results: If the user feels that by giving a particular query he has not got some result but by giving some other query he got the result with is reverent to former query also, he can report it to the administrator by giving both the query and the results.

The functionality of administrator:
i) Accepting the jobs posted: Generate ontologies for the posted jobs by the employer. Checks for anomalies and if detected they will be reported to the employer.
ii) Update Ontology: If the employer added new qualification check its validity and add it to the ontology database. Similarly, if the User adds new qualifications to his resume he checks the validity and add it to the ontology database iii) Fine tuning the search results: If the user reports inappropriate results he checks for the error and if required he added the ontology to the database or does some intuitive work like changing the page ranking, etc. If the user reports missing results he checks for the error and if required he added the ontology to the database or does some intuitive work. iv) Generating the reports: Gives the summary of the jobs per location, per qualification, per position, etc and post them every two months. These reports are in OWL format so that we can query these reports.

Conclusion
Unemployed people can find the job by searching the web site easily based on their qualification. They can know what are the specializations available in their domain that are currently offering jobs. The unemployed people can learn these specializations and get jobs. Youth can choose their career path by search the available jobs in this website for that particular study.
With these basic ideas we hope to construct a full-fledged web site to help people with jobs searches [9]. There are many opensource webservers that supports OWL and SPARQL some examples are Apache Jena [6] , ClioPatria [7]. We hope that Commerical web sites like Shine.com, naukri.com, freshersworld.com, etc. implement this OWL in their job search.