Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MATCHING BIDS FOR WORK WITH OFFERS FOR WORK
Document Type and Number:
WIPO Patent Application WO/2019/106437
Kind Code:
A2
Abstract:
Techniques are provided for matching bids for work with offers for work. An exemplary method comprises obtaining bids for work and offers for work; employing Natural Language Processing techniques to interpret work-specific terminology from the bids for work and/or the offers for work; and matching the bids for work with the offers for work based on a predefined distance measure between the bids for work and the offers for work. The bids for work comprise, for example, job postings and the offers for work comprise resumes. The predefined distance measure between the bids for work and the offers for work comprises, for example, a degree of matching between two or more of the bids for work and the offers for work and a degree of quantifiable mismatching between the two or more of the bids for work and the offers for work.

Inventors:
GUEDES PAULA (BR)
LABER EDUARDO (BR)
RENTERIA ALEXANDRE (BR)
Application Number:
PCT/IB2018/001531
Publication Date:
June 06, 2019
Filing Date:
November 29, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
JOBZI INTELIGENCIA DE DADOS NA INTERNET LTDA (BR)
International Classes:
G06Q10/08
Attorney, Agent or Firm:
Flávia Salim Lopes (BR)
Download PDF:
Claims:
CLAIMS

What is claimed: 1. A method, comprising:

obtaining one or more bids for work and one or more offers for work;

employing, using at least one processing device, Natural Language Processing techniques to interpret work-specific terminology from one or more of said bids for work and said offers for work; and

matching, using the at least one processing device, one or more of said bids for work with one or more of said offers for work based on a predefined distance measure between said bids for work and said offers for work.

2. The method of claim 1, wherein the one or more bids for work comprise job postings and the one or more offers for work comprise resumes.

3. The method of claim 1, wherein said one or more bids for work comprise bids for work by one or more of humans and machines. 4. The method of claim 1, wherein said Natural Language Processing techniques identify one or more characteristics that are implicit in one or more of said bids for work and said offers for work.

5. The method of claim 1, wherein said Natural Language Processing techniques employ a job ontology of vocabulary terms.

6. The method of claim 1, wherein said matching further comprises the steps of measuring a relevance of one or more implicit skill requirements for a given job title and identifying one or more additional job titles that demand said one or more implicit skill requirements that satisfy a predefined frequency threshold.

7. The method of claim 1, wherein said matching further comprises assigning one or more of a weight and a particularity to one or more skills for a given job title.

8. The method of claim 1, further comprising the step of evaluating a similarity between one or more of a pair of professional titles and a pair of skills.

9. The method of claim 1, wherein said predefined distance measure between said bids for work and said offers for work comprises a degree of matching between two or more of said bids for work and said offers for work and a degree of quantifiable mismatching between said two or more of said bids for work and said offers for work.

10. A system, comprising:

a memory; and

at least one processing device, coupled to the memory, operative to implement the following steps:

obtaining one or more bids for work and one or more offers for work;

employing Natural Language Processing techniques to inteipret work-specific terminology from one or more of said bids for work and said offers for work; and

matching one or more of said bids for work with one or more of said offers for work based on a predefined distance measure between said bids for work and said offers for work.

11. The system of claim 10, wherein the one or more bids for work comprise job postings and the one or more offers for work comprise resumes and wherein said one or more bids for work comprise bids for work by one or more of humans and machines.

12. The system of claim 10, wherein said Natural Language Processing techniques identify one or more characteristics that are implicit in one or more of said bids for work and said offers for work.

13. The system of claim 10, wherein said matching further comprises one or more of: (i) the steps of measuring a relevance of one or more implicit skill requirements for a given job title and identifying one or more additional job titles that demand said one or more implicit skill requirements that satisfy a predefined frequency threshold; and (ii) assigning one or more of a weight and a particularity to one or more skills for a given job title.

14. The system of claim 10, further comprising the step of evaluating a similarity between one or more of a pair of professional titles and a pair of skills.

15. The system of claim 10, wherein said predefined distance measure between said bids for work and said offers for work comprises a degree of matching between two or more of said bids for work and said offers for work and a degree of quantifiable mismatching between said two or more of said bids for work and said offers for work.

16. A computer program product, comprising a tangible machine-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device perform the following steps:

obtaining one or more bids for work and one or more offers for work;

employing Natural Language Processing techniques to interpret work-specific terminology from one or more of said bids for work and said offers for work; and

matching one or more of said bids for work with one or more of said offers for work based on a predefined distance measure between said bids for work and said offers for work.

17. The computer program product of claim 16, wherein said Natural Language Processing techniques identify one or more characteristics that are implicit in one or more of said bids for work and said offers for work.

18. The computer program product of claim 16, wherein said matching further comprises one or more of: (i) the steps of measuring a relevance of one or more implicit skill requirements for a given job title and identifying one or more additional job titles that demand said one or more implicit skill requirements that satisfy a predefined frequency threshold; and (ii) assigning one or more of a weight and a particularity to one or more skills for a given job title.

19. The computer program product of claim 16, further comprising the step of evaluating a similarity between one or more of a pair of professional titles and a pair of skills.

20. The computer program product of claim 16, wherein said predefined distance measure between said bids for work and said offers for work comprises a degree of matching between two or more of said bids for work and said offers for work and a degree of quantifiable mismatching between said two or more of said bids for work and said offers for work.

Description:
MATCHING BIDS FOR WORK WITH OFFERS FOR WORK

Cross-Reference to Related Application

The present application claims priority to United States Provisional Patent Application Serial No. 62/592,559, filed November 30, 2017, entitled "Matching Bids for Work with Offers for Work," incorporated by reference herein.

Field

The field relates generally to the processing of bids for work and offers for work, such as matching job seekers with job descriptions.

Background

Matching the appropriate combination of functions, knowledge, skills and abilities to produce a given work demand is a challenging effort. In the case of human capital, for example, the challenge of matching the right bundle of productive functions, knowledge, skills and abilities towards a given work demand is particularly cumbersome. One problem set has been the matching of job openings with job seekers. In this problem set, job openings represent a given work demand and job seekers represent a bundle of productive functions, knowledge, skills and abilities.

Matching the appropriate job seeker for a given job opening is often challenging for the seeker as well as the company that must fill the job opening. A need therefore exists for improved techniques for matching job openings with job seekers.

Summary

In one embodiment, a method comprises obtaining one or more bids for work and one or more offers for work; employing Natural Language Processing techniques to interpret work-specific terminology from one or more of the bids for work and the offers for work; and matching one or more of the bids for work with one or more of the offers for work based on a predefined distance measure between the bids for work and the offers for work. In some embodiments, the bids for work comprise job postings for work by one or more of humans and machines and the offers for work comprise resumes. In at least one embodiment, the Natural Language Processing techniques identify one or more characteristics that are implicit in one or more of the bids for work and the offers for work. The matching optionally comprises one or more of: (i) the steps of measuring a relevance of one or more implicit skill requirements for a given job title and identifying one or more additional job titles that demand the one or more implicit skill requirements that satisfy a predefined frequency threshold; and (it) assigning one or more of a weight and a particularity to one or more skills for a given job title.

In some embodiments, the predefined distance measure between the bids for work and the offers for work comprises a degree of matching between two or more of the bids for work and the offers for work and a degree of quantifiable mismatching between the two or more of the bids for work and the offers for work.

Other illustrative embodiments include, without limitation, apparatus, systems, methods and computer program products comprising processor-readable storage media.

Brief Description of the Drawings

FIG. 1 illustrates the work experience and education of a given work seeker over time, according to at least one embodiment of the disclosure;

FIG. 2 illustrates a matching system 200 for matching bids for work with offers for work, according to one embodiment;

FIG. 3A illustrates an exemplary job/resume skills intersection process performed by the job and resume skills intersection module of FIG. 2, according to some embodiments of the disclosure;

FIG. 3B illustrates a skillSetSizeFactor as a function of number of skills, as processed by the job/resume skills intersection process of FIG. 3A, according to an embodiment;

FIG. 4A illustrates an exemplary mapping from a vesumeEducationLevel and a jobEclucationLevel from a processed user’s resume to find an associated educationF actor, as employed by one or more embodiments of the disclosure; FIG. 4B illustrates an exemplary mapping from a metaWorkEducationLevel and an resumeEducationLevel, when a minimum education level requirement is not specified in a job posting, to find an associated educationF actor, as employed by at least one embodiment of the disclosure;

FIG. 5 illustrates an exemplary job/resume experience match process performed by the job/resume experience match module of FIG. 2, according to some embodiments of the disclosure;

FIG. 6 illustrates an assignment of a weight to a job/resume skills intersection based on a number of skills identified in a job posting, in one embodiment;

FIG. 7 illustrates an exemplary processing platform that may be used to implement at least a portion of one or more embodiments of the disclosure comprising a cloud infrastructure; and

FIG. 8 illustrates another exemplary processing platform that may be used to implement at least a portion of one or more embodiments of the disclosure.

Detailed Description

Illustrative embodiments of the present disclosure will be described herein with reference to exemplary communication, storage and processing devices. It is to be appreciated, however, that the disclosure is not restricted to use with the particular· illustrative configurations shown. One or more embodiments of the disclosure provide methods, apparatus and computer program products for matching bids for work with offers for work.

In one or more embodiments, bids for work and offers for work are processed using Natural Language Processing techniques to interpret work-specific terminology from the bids for work and the offers for work. A bid for work is matched with an offer for work based on a predefined distance measure between the bids for work and the offers for work. The predefined distance measure may be, for example, a degree of quantifiable matching between two or more bids for work and/or offers for work and a degree of quantifiable mismatching between two or more of bids for work and/or offers for work. The bids for work may be, for example, job postings and the offers for work may be, for example, resumes. The bids for work may request the work of humans and/or machines.

In at least one embodiment, the bids for work are matched with offers for work by measuring a relevance of implicit skills skill requirements for a given job title and identifying one or more additional job titles that demand the implicit skill requirements skills based on a predefined frequency threshold. A weight and/or a particularity are optionally assigned to skills for a given job title.

In some embodiments, the Natural Language Processing techniques identify implicit characteristics in the bids for work and/or the offers for work and employ a job ontology of vocabulary terms.

The challenges addressed in one or more embodiments of the disclosed methodology pertain to the following problems:

1 Processing Different Specialized Terminology Pertaining to the World of

Work:

a different terminology is used by job seekers and companies when describing their productive abilities and work demands, respectively; and

b this terminology is ever evolving with changing market demands.

2 Understanding the implicit requirements of bundles of work demanded and offerings (represented, for example, by job descriptions) and bundles of productive abilities (represented, for example, by resumes), as understood by an experienced human: a an example would be: if individuals have advanced knowledge of Microsoft Excel™, they inevitably have basic knowledge of Microsoft Excel™;

b another example would be a person knowing Microsoft Office™ means that they have knowledge on Microsoft Excel™, Microsoft Powerpoint™, and other functions.

3 Matching a high volume of potential combinations between bundles of productive abilities (seekers, represented by resumes) available vs. bundles of work demanded (represented by job descriptions):

a an example would be: in a scenario with a relatively small number of work offerings (e.g., 1 Million jobs) and a relatively small number of relative solutions (e.g., 10 Million resumes), there are 10 trillion possibilities; it is impossible for any human to compare the quality of 10 trillion pairs to find the best fit.

Thus, one or more embodiments of the disclosed methods relate to:

1. Using Natural Language Processing (NLP) to interpret specialized terminology pertaining to the world of work.

2. Generating a unit of measurement for distance between bundles of productive functions, knowledge, skills and abilities (resumes) and bundles of work demands (job descriptions).

3. An efficient method, in terms of computational time requirements, that is able to calculate these distances when no human could.

Among other benefits, the disclosed techniques capture whether two items are a good match, and how distant the two items are from being a good match using a concept referred to herein as Jobzi Points. Generally, and as discussed further below, Jobzi Points quantify a distance between a bundle of work functions, knowledge, skills, and abilities (e.g., as expressed in a resume) and a work requirement (e.g., as expressed in a job description) at any given point in time.

The disclosed Jobzi Points distance metric simplifies, accelerates and/or reduces costs of recruitment. For example, in some embodiments, the disclosed distance metric greatly improves the matching of the right candidate with a job position. This advantage is particularly relevant for job positions that attract, for example, thousands of candidates and resumes for a given job position.

In addition, the disclosed Jobzi Points distance metric enables and empowers recruitment to occur in a non-biased manner, without human error. In one or more embodiments, the methods disclosed herein process resumes substantially without bias, and therefore make the hiring process more fair. Further, the disclosed Jobzi Points distance metric allows millions of resumes, for example, to be automatically analyzed in seconds (which ordinarily cannot be achieved with manual or human-based techniques).

Likewise, from the perspective of jobseekers, the disclosed techniques also simplify and accelerate the job search process. Rather than having to read through multiple job descriptions to identify those that are most compatible with their resume (e.g., capturing a bundle of work functions, knowledge, skills, and abilities), one or more embodiments of the present disclosure allow jobseekers to focus strictly on the jobs for which they have the highest Jobzi Points (for example, the top N or top specified percentage of all job postings). In this manner, Jobzi Points signal work opportunities compatible with the resumes of jobseekers that they may not have been aware of or searching for, as the exemplary Jobzi Points match resumes with substantially all potential work positions in the market.

Interpretation of Job Descriptions and Job Resumes

While reading a job description and the resume of a job seeker, the system must be able to, in addition to correctly extracting the attributes and characteristics, interpret them in a way similar to a human. In other words, it is important to understand abstract concepts that are not exactly described but that are implicitly important and to learn how to weigh these concepts in a relevant manner.

Jobzi Points as a Unit of Measurement of Distance

Quantifying the distance between a bundle of work functions, knowledge, skills, and abilities (e.g., as expressed in a resume) and a work requirement (e.g., as expressed in a job description) at any given point in time can be done via Jobzi Points, disclosed herein. In this case, Jobzi Points understand the attributes that a job seeker does not possess, described in his or her resume, and that are required by the work demand described in a job description. It is important that the number of Jobzi Points reflect the importance of the attribute; in other words, the lack of an important attribute. Thus, in one or more embodiments, the present disclosure provides a unit of measurement that quantifies a degree of matching between job openings and job seekers, and in doing so also quantifies a degree of mismatching between job openings and job seekers. In other words, the disclosed techniques capture whether two items are a good match, and how distant they are from being a good match.

Computational Method for Calculating Jobzi Points

Due to the high volume of job descriptions and resumes in many environments, pre-calculating and storing Jobzi Points for all the possible matches in order to attend to job seekers in an instant manner is a challenge. A method is disclosed to perform the pre- calculation and storage in a scalable and computationally time-efficient way (for example, providing computational efficiency and time efficiency). In one or more embodiments, a point-based distance system is provided that automatically matches a bid for work and an offer for work. A bid for work demand is described in a job description document, which includes features, such as a title, a description of activities, required knowledge and recommended skills, experience level as well as education and training. A bid for work usually includes an indication of salary and benefits (such as a price paid per monthly service).

While one or more embodiments of the disclosure are described in connection with matching a bid for work and an offer for work with respect to people, the disclosure can also be applied for matching bids for work and offers for work with respect to machines. For example, a job posting for a coffee barista may be filled by a qualified person or an automated coffee machine with the appropriate capabilities, as described, for example, in a functional specification.

In addition to what is described explicitly in the work bid document (in this example, a job description), the title of the job often carries a number of implicit requirements. As an example, consider skills that are typically acquired during the advancement of any given degree or any specific skills that are related to a given professional experience. A job description may not explicitly require that a candidate know "calculus" in order to become a "civil engineer," nonetheless it is understood that in order to show interest in a work related to being a "civil engineer," the candidate must have studied "civil engineering" and during that course, he must have learned "calculus." These implicit skill requirements that are collected and aggregated by job title constitute an important concept developed in the present disclosure, denoted herein as a metaWork.

In some embodiments, methods and apparatus are provided for determining and updating tacit knowledge behind job offerings. A job seeker's productive abilities are typically described by a resume, which usually contains his or her contact information, professional experiences, academic history, certifications and skills that she considers relevant. As is the case with the job descriptions, there are a number of information items that are often implied by the resume, such as which skills a job seeker knows as a consequence of her education, the level of experience acquired over the time she's spent in previous positions or the skills acquired during her professional experience. In various embodiments, methods and apparatus are provided for calculating and inferring tacit information from candidate information (e.g., a CV (Curriculum Vitae)) and from job offerings. While reading a job description, a job seeker often infers a number of requirements for a given job that are not explicitly written. Understanding these implicit requirements is increasingly complex given that there are professions that are newly trending and old ones that are phasing out, in a continuous time series. This phenomenon may be observed in technology-related work, but may also be observed in traditional professions as well. An example is that an executive assistant used to have to be able to use a typewriter and answer the phone and now he must use a word processor, a spreadsheet and send emails. There are also specific characteristics that a company looks for when hiring, such as preferences for any given educational institution or previous work experience in a given sector. Such preferences are almost impossible to be understood by a job seeker's naked eye, but can be learned through the use of data and interpretation of relationships between hidden layers of inputs.

In at least one embodiment, methods and apparatus are provided for the identification and inference of additional tacit requirements that relate to the profile of individual hiring institutions or persons (e.g., Company A only hires 30% of its engineers from a given pool of educational institutions). Given the above context, it is increasingly challenging for a given job seeker to understand whether she possesses all qualifications required by a given work requirement. Additionally, it is hard for a job seeker to identify a set of other work openings for which she/he has a competitive resume, meaning seekers often misallocate their time towards work opportunities for which they are not fit and do not allocate enough time for the work for which they are fit. Because they do not have the data, job seekers are often also unaware of which abilities are most relevant given their interests and current abilities which means they do not know how to efficiently allocate their time in learning more.

On the recruiter's end, the challenge is equally demanding - in addition to evaluating the adequacy for a given job, there is the challenge of comparing the different resumes for a given job. it is not unusual to see over 100,000 resumes stacking up against some of the most popular jobs in Brazil, for example. Work Title Similarity and Skills Similarity

Given the great number of professional titles and skills, a method is required in one or more embodiments to evaluate the similarity between two professional titles, or two skills. It is also important that this similarity measurement is on a scale, and not binary. To that end, skills, educational levels, courses and experience in a metaWork are considered as a space of attributes (e.g., as a vector of attributes). Similarity between metaWorks can be calculated as attribute vectors, where 0 - 1 is a scale. Skills are mapped using this same methodology. Two titles or skills that are considered synonyms to a human have a similarity of 1 while two titles or skills that are not similar are considered a 0 (e.g., psychologist and stevedore). A similarity score of 0.9 indicates the titles or skills are closely similar but not synonyms (e.g., Java programmer and C# programmer).

Work Demand (Job) and Work Supply (Resume) Distance

In order to measure the quality of a match between a work demand and a work supply, a measure of distance between them is defined herein, referred to as points. In one or more embodiments, this distance captures the evolution of knowledge, skills, training, experience, understood in a given work demand and compares them with a given work supply at any specific point in time.

In one exemplary implementation, the unit of scale is a range of 0 to 100, where the closer the distance between the work demand and the work supply are to each other, the closer to 100 the Jobzi Points will be. Meanwhile, if the work demand and the work supply are very far from each other, the distance measure will be closer to 0.

FIG. 1 provides a graphical illustration 100 indicating the work experience and education of a given work seeker over time. The distance of the work seeker relative to four different job postings (jobs 1 through 4) are also shown. As observed from FIG. 1, the distance between a resume of the given work seeker that evolves as time progresses, is influenced by different factors. In the beginning of one's career, the distance of the work seeker from the four different work demands (jobs 1 through 4) is high. As the given work seeker takes a course (Education 1), the distance to the 4 work demands is reduced. The distance to work demand 1 (associated with job 1) is the one that is closest. Job 1 is a job for a work seeker with no professional experience, but with a particular educational requirement. Thus, the work seeker and Job 1 are a "market-clearing match!," 120-1 as they are within clearing distance upon the work seeker's course completion.

For Job 2, the course requirement is important and that can be observed through the reduced distance upon course completion. Job 2, however, does require professional experience. For that reason, the distance between Job 2 and the job seeker is high even upon his completion of the course requirement. As that candidate begins to acquire professional experience through Job 1, his distance to Job 2 is reduced over time. As such, the given work seeker gets closer to Job 2 until the given work seeker is close enough for there to be a second market-clearing match 120-2.

In the case of Job 3, it is not enough for the work seeker to have the academic requirement and professional experiences up to the beginning of Work Experience 2. Once the work seeker started a new course (Education 2), the distance of the given work seeker to Job 3 is reduced. Upon course completion, a third market-clearing match 120-3 is realized.

Finally, Job 4 is similar to Job 3 but requires more experience and professional seniority. This can be observed as the scores get better throughout the seeker's time at Work Experience 3, until the fourth match 120-4 occurs.

It is important to highlight the cases where distances between work seekers and the different work (Jobs 1 - 4) were reduced prior to each market-clearing match 120, but was higher after each Work Experience or Education. Such cases reflect seekers that are overqualified for these Jobs. As an example, Job 1 requires a seeker that has a zero-to-no work experience, thus, as this seeker continually gains professional experience, the work seeker is increasingly distant from Job 1.

As explained above, the quantity of experience required by a work demand must be mapped, as well as the different work experiences explicit in a work supply document (e.g., a resume). This map must encompass fuzzy concepts as well as linguistics, as discussed further below in conjunction with FIG. 5.

Matching skills demanded by work (e.g., by a job) and skills supplied (e.g., by a resume) is also important, in some embodiments. In order to appropriately match skills, it is important to be able to understand which skills are most important (and therefore would be most heavily weighted) and which skills are least important (and therefore would be the least heavily weighted).

To that end, it is important to understand that a job description does not detail all of the characteristics required for a specific work demand. As such, the implicit requirements for a given work must be understood. As previously mentioned, the metaWork is important towards knowing these skills, educations and experience levels that are explicitly required and/or implicitly required. The objective of a metaWork is to learn and inteipret the different relationships between requirements in layers that are hidden to any human reader. As an example, through data, it is learned that the AutoCAD™ computer-aided design tool is required by a very high percentage of electrical designers; therefore, if a work demand for an electrical designer does not include this skill in the description, there is still a very high likelihood that the work demand still requires the skill.

Efficient Job and Resume Match Computation

Given the substantial number of potential pairs between {job, resume}, the computation method to calculate a match between each pair must be efficient. Saving calculated pairs in a database (or memory) is not feasible given the sheer number of space that would be consumed. As an example, even in the simple case of 10 million resumes against 1 million jobs, there are a total of 10 trillion possible matches. If 0.1% of the resumes would be changed overnight, 10 billion matches would have to be recalculated. If 1,000 jobs closed and 1,000 jobs were opened, 10 billion matches would have to be identified in order to be deleted and 10 billion matches would have to be calculated for the new open positions.

A methodology is therefore provided that enables a real-time, scalable, calculation of matches {job, resume} between a pair of work demand description (e.g., by a job) and work supply description (e.g., by a resume).

FIG. 2 illustrates a matching system 200 for matching bids for work with offers for work, according to one embodiment of the disclosure. As shown in FIG. 2, the exemplary matching system 200 receives a raw job posting 205 that is processed according to a job ontology 210, as discussed further below in the section entitled "Jobzi Ontology," to generate a processed job posting 225. The processed job posting 225 is also processed by a metaWork module 215, as discussed further below in a section entitled “Metawork,” that determines the abilities and/or additional credentials required for this type of profession.

In addition, the exemplary matching system 200 also receives a raw user resume 220 that is also processed according to the Jobzi ontology 210 to generate a processed resume 230.

An Absolute Adherence module 235 processes the skills from a processed resume 230 and a metaWork 215 to calculate the absolute adherence between the processed resume 230 and the metaWork 215, as described further below in a section entitled “Absolute Adherence Module 235.”

An Experience Over Time with Time Lapse module 240 processes the work experience from the processed resume 230; the title from the processed job 225; and the education level from the metaWork 215 to calculate the experience over time for the processed resume 230 while accounting for time lapse, as described below in a section entitled“Experience Over Time with Time Lapse Module 240.”

A course experience adherence module 255 processes a metaWork maximum course weight computed by module metaWorkComseMaxWeight 245 and the experience over time value computed by the Experience Over Time with Time Lapse module 240 to calculate a courseExperienceAdherence value between a processed resume 230 and a metaWork 215, as discussed further below in the section entitled“Course Experience Adherence Module 255.”

A job and resume skills intersection module 260 processes the skills from the processed job 225, and the skills and work experience from the processed resume 230, and computes a job and resume skills intersection, as discussed further below in the section entitled“Job and Resume Skills Intersection Module 260.”

A weighted adherence module 265 computes a weighted adherence between a processed resume 230 and a metaWork 215, using a simple weighted adherence module 250, as discussed further below in the section entitled“Weighted Adherence Module 265.”

A job/resume education level match module 270 processes the education levels from the metaWork 215, processed job 225 and processed resume 230 to compute a job/resume education level match between a minimum education level requirement associated with a processed job posting 225 and the user’s resume education level, as discussed further below in the section entitled“Job/Resume Education Level Match Module 270.”

A job/resume experience match factor module 275 processes the experience requirement and title from the processed job 225 and the work experience from the processed resume 230 to compute a job/resume experience match factor between a job experience requirement and the experiences from the processed user resume 230, as discussed further below in the section entitled“Job/Resume Experience Match Factor Module 275.”

A combined skills intersection and adherence module 280 combines the weighted adherence and the job and resume skill intersection, calculated by modules 265 and 260, respectively, as discussed further below in the section entitled “Combined Skills Intersection and Adherence Module 280.”

The combined measure of skill intersection and adherence from module 280, between a user’s processed resume 230, a processed job posting 225 and its associated metaWork 215, is combined with the experience and education factors from modules 270 and 275 to determine the corresponding Jobzi points 290, as discussed further below in the section entitled“Calculation of Jobzi Points 290.”

Jobzi Ontology 210

In order to be able to process a work demand description against a work seeker’s resume, it is necessary to extract attributes (features) that are relevant and pertinent to a work description. With that objective, vocabulary terms are extracted from different contexts, such as title, skills, professional experience, courses and educational levels.

Some of these contexts are further compartmentalized into sub-contexts, which allows for a greater understanding of further complexities. An example of a sub-context is language skills, which is a sub-context of the skills context.

In one or more embodiments, the disclosed methodology generates vocabulary terms that are contextualized, placed within a hierarchy, synonym-enriched and relationship-oriented. Relationships between terms may take a variety of forms, such as “is a synonym to,”“is a part of,”“is a,” etc. As an example,“english”“is a” language skill.

A similar process to identifying work terms in work demand documents (e.g., job descriptions) is applied to work supply documents (e.g., resumes). This methodological approach enables comparison between demand and supply of work.

Meta Work 215

As noted above, a metaWork 215 is the combination of information aggregated by title, that is, the knowledge, skills, courses and professional requirements including experience and salaries, related to that profession.

By understanding work demand requirements in an aggregate fashion, it is possible to extract statistics regarding its attributes, such as skill weight, of each one of the abilities required or educational levels demanded by a type of profession, including respective demand frequencies. In addition to providing a methodology for understanding characteristics of any given work description, metaWork 215 can be compared in different ways. As an example, it is possible to measure the relevance of a certain skill for a given metaWork 215 and then find out in which other metaWork 215 it is also demanded with a high frequency. Understanding the difference between the frequency (weight) of a given skill and its particularity is important. While the weight measures the importance of a given skill, particularity measures the skill demand between all metaWorks 215. In this manner, whether a skill is specific to a profession (high particularity in a specific metaWork 215) or if it is a cross-sectional skill (low particularity against all metaWorks 215) can be understood.

Another important characteristic of a metaWork 215 is that it enables access to characteristics that are implicitly important in a work description or in the resume description. In that way, it is possible to understand which characteristics are relevant for a given work demand, whether or not it is explicitly required in the description.

Absolute Adherence Module 235

In one or more embodiments, the Absolute Adherence between a resume 220 and a metaWork 215 is calculated, as follows:

1. Given a processed job posting 225: • from the job posting 225, get the raw job title, i.e., the job title as it is written in the job posting;

• process the raw job title using the Jobzi ontology 210 to obtain a metaWork title and its skills weights and particularities (between 0 and 1); and

• for each skill, calculate the product of the weight and particularity (in some embodiments, the metaWork 215 provides a list of skills with a combined weight and particularity).

The product of the weight and particularity is computed because the substantially most relevant skills are those that have high weight and high particularity.

• rank the skills, from highest to lowest, based on their particularityWeightProduct;

• define:

° firstMetaWorkSkillParticularityWeightProduct as the skill with highest particularityWeightProduct; and

° secondMetaWorkSkillParticularityWeightProduct as the skill with second highest particularityWeightProduct.

2. Given a user’s processed resume 230 and the skills weight and particularity list associated with a metaWork 215, as discussed above in step (1):

• get the resume’s skills: both the skills declared by the user (e.g., the skills formally declared by the user as his abilities) and the skills inferred from the user’s work experiences (e.g., the skills found by the Jobzi ontology 210 in the user’s work experiences);

• get the intersection of the resume’s skills and the metaWork skills in step (1);

• define:

° firstResumeSkiUParticularityWeightProduct as the skill from the processed resume 230, also found in the metaWork 215, with highest particularityWeightProduct; and

° secondResumeSkillParticularityWeightProduct as the skill from the processed resume 230, also found in the metaWork 215, with second highest particularityWeightPioduct.

3. Given the particularityWeightProducts, as discussed above in steps (1) and (2): Define:

• Then, the Absolute Adherence using the skills found in the user resume 230, as defined in step (2), is given by:

Generally, the idea is: if the user’s processed resume 230 has the two most important skills (defined by the product of its weight and particularity) for the metaWork meaning a perfect match in terms of skills.

4. Calculate the Absolute Adherence using only the resume’s skills declared by the user:

• Repeat step (2) with only the resume’s skills declared by the user (as explained in (2), the skills formally declared by the user as his abilities)

• next, repeat step (3) with the new firstResumeSkillParticularityWeightProduct and secondResumeSkillParticularityWeightProduct

• then, the Absolute Adherence using only the skills declared by the user is given by the following expression:

5. Calculate the compounded Absolute Adherence as a convex combination of follows.

where / grows with the number of declared skills, giving more weight to them in Absolute Adherence.

Experience over Time with Time Lapse Module 240

The Experience over Time and accounting for Time Lapse is calculated, as follows, in one or more embodiments:

1. Given a processed job posting 225: • From the job posting 225, get the raw job title, i.e., the job title as it is written in the job posting

• process the raw job title using the job ontology to obtain a metaWork title.

• using the metaWork title, access the associated education level. This education level is an integer from 1 to N. The higher this number, the higher is the education level required by the metaWork title.

• convert the education level to a minimum required work experience time (defined as“k”). Usually, the higher the required job education level, the higher is the required work experience time.

2. Given a processed user resume 230:

• get work experiences

• for each work experience, calculate:

° duration: for how long the user has worked in each occupation

° lapse: how long ago has the user finished working in each occupation

3. Given the processed job posting 225 in step (1) and the work experiences of the processed resume 230 in step (2):

• for each work experience:

° get the similarity between the job posting processed title and the work experience processed title (the ontology associated with the job posting and each work experience are processed, rather than the raw titles from job posting and work experiences)

° adjust this similarity based on the work experience’s“lapse” (from above):

• if lapse = 0, then the similarity is unchanged;

• if lapse > 0, then the similarity is reduced. The higher the lapse, the bigger is the reduction.

Generally, the idea is: imagine that the job posting is asking for a“bus driver” and two candidates have worked as a“truck driver” but the first candidate worked as a“truck driver” 10 years ago and the second candidate is still working as a“truck driver”. First, “bus driver” and“truck driver” aren’t the same, but they share a lot of skills in common, so their similarity is high (although not 1 ) and it can be assumed that they fit the job requirements. Second, the fact that the first user has not been exercising his“truck driver” skills for a long time is accounted for, so his work experience similarity to the job posting is penalized (e.g., reduced) and the second candidate is not penalized.

• then define MaxSim as the maximum adjusted similarity from above.

• and rank the work experiences based on their adjusted similarities, with the biggest adjusted similarities on top.

4. Given the processed job posting 225 in (1) and the work experiences of the resume 220, ordered by their adjusted similarities by time lapse from step (3), calculate the total adjusted work experience over time:

• for each work experience (beginning with the one with the highest adjusted similarity by time lapse), until the sum of work experiences durations is less than “k” (from (1)):

° calculate the adjusted work experience duration: using the similarity between the work experience title and the job posting title, and combining with the time lapse, adjust the work experience duration.

Generally, the idea is: a job posting is asking for a“bus driver” and there are two candidates, the first one has worked 5 years as a“truck driver” but 10 years ago and the second is working for the last 5 years as a“tractor driver”. The work experience of the first candidate is adjusted two times: his work experience is adjusted because he has worked 10 years ago and is also adjusted because he has worked in a similar job. The work experience of second candidate is only penalized once because he has worked in a similar job, but there’s no adjustment from time lapse since he’s still working as a “tractor driver”.

° sum the resume’s work experience duration adjusted by similarity and time lapse

• finally, combine the sum of the resume’s work experience duration adjusted by similarity and time lapse (from above) and the work experience duration associated with MaxSim. Here, a greater weight is given to the duration of the work experience with higher similarity with the job posting. Course Experience Adherence Module 255

In one or more embodiments, the courseExperienceAdherence between a processed resume 230 and a metaWork 215 is calculated, as follows:

Generally, the idea is: some jobs posting ask for specific educational course and, in some cases, the educational course is mandatory. For example: to fulfill the requirements of a lawyer job posting, it is mandatory to have studied in a law school. On the otherhand, salesman job posting doesn’t have a specific educational course requirement.

1. Given a processed job posting 225:

• from the job posting, get the raw job title, i.e., the job title as it is written in the job posting

• process the raw job title using Jobzi ontology to obtain a metaWork title and the courses usually required by this metaWork title. For each course, the ontology provides its weight (between 0 and 1), e.g., how important an education course is to the metaWork.

• the course with the highest weight is called metaWorkCourseMuxWeight, this is most important course for the metaWork

For example, for a lawyer metaWork, the law course has a very high weight.

2. Given a user’s processed resume 230 and the course’s list associated with a metaWork 215 in step (1):

• get the resume’s courses list

• get the courses, and its weights, in common with the metaWork’s courses found in (1)

• for each course, check if the user has finished the course. If not, penalize its weight

• finally, get the course with the highest weight from the education courses in the processed resume 230 and metaWork 215 (this is a most important course for the metaWork 215 found in the user’s processed resume 230, referred to as the resumeMetaWorkCourseMaxWeight 245).

3. Given the most important course for the metaWork 215 in step (1) and the most important course for the metaWork 215 found in the user’s resume in step (2): calculate the education course match between a user’s processed resume 230 and a metaWork 215:

If the user has the same course that is the most important to the metaWork, the courseAdherence is equal to 1. This is the case of someone with a degree from a law school applying to a lawyer job.

4. Given the courseAdherence in step (3) and the experienceOverTimeWithLapse:

• calculate the courseExperienceAdherence :

As some jobs don’t require a specific educational course, or even ask for no course, instead of using the courseAdherence (which would give erroneous results), the experienceOverTimeWithLapse is used, because if the user has worked in similar jobs, he has the“training” asked by the job.

Example: there’s no educational course required to be a Bus Driver or a Truck Driver, so instead of measuring the courseAdherence of a Truck Driver applying to a Bus Driver job, its experience match given by the experienceOverTimeWithLapse is used.

Job and Resume Skills Intersection Module 260:

In one or more embodiments, the Job and Resume Skills Intersection is calculated, follows:

FIG. 3A illustrates an exemplary job/resume skills intersection process 300 performed by the job and resume skills intersection module 260 of FIG. 2, according to some embodiments of the disclosure. FIG. 3B illustrates a skillSetSizeF actor as a function of number of skills, as processed by the job/resume skills intersection process 300, according to an embodiment.

As shown in FIG. 3A, an exemplary job/resume skills intersection process 300 proceeds as follows:

1. Given a set of job skills 310 from a processed job posting 225:

for each skill in the set of job skills 310:

° get its SkillValue, a measure between 0 and 1 of how important is a skill among all jobs, from Jobzi’s Ontology. ° if the skill was found in the job’s title, the SkillValue is increased

• Defin e jobTotalSkillsValue 360 as the sum of all job’s SkillValue :

• Define skillSetSizeFactor (see graphical representation 380 of skillSetSizeFactor as a function of number of skills in FIG. 3 B), as follows:

if the number of job’s skills is 1, then skillSetSizeF actor = 0.5;

2. Given a user’s work experiences 330 from the processed resume 230:

• for each work experience in the work experiences 330, calculate the experienceRatio as the ratio between the experience’s duration adjusted by time lapse and the maximum theoretical duration adjusted by time lapse

• define maxExperienceRatio as the maximum found experienceRatio :

3. Given a user’s resume skills 320, job’s skills 310 and its SkillValues from step (1) and maxExperienceRatio from step (2):

• for each job skill in the set of job skills 310:

° if the skill is detected as trivial by the Jobzi Ontology 210, e.g., a skill that people very often don’t write in their resume because they’re commonplace or obvious, then:

resumeSkillValue = jobSkillValue . MaxExperienceRatio

check if the skill is also found in the user’s resume and define k, a value between 0 and 1 , as following:

• if the skill was found in a work experience and is also a skill declared by the user, then k = 1

• if the skill was only declared by the user, then

• if the skill was only found in a work experience, the

• if the skill was not found in the user’s resume, then k = 0

• with ° then compute:

• Define resumeTotalSkillsValue 370 as the sum of all resume’s SkillValue :

4. Given jobTotalSkiUsValue from step (1) and resumeTotalSkillsValue from step (3), define the job and resume skill intersection ratio as:

Weighted Adherence Module 265

In one or more embodiments, the weighted adherence between a processed resume 230 and a metaWork 215, is computed, as follows:

1. Given the compounded Absolute Adherence, obtained from module 235, between a processed resume 230 and a metaWork 215 and the Experience Over Time With Time Lapse {EOT), from module 240, a simpleWeightedAdlierence 250 is defined, as follows:

where k is bigger for jobs where past experience is more important than skills or education.

2. Given the metaWorkCourseMaxWeight 245 (the most important course for the metaWork), the weight of the courseExperienceAdheren.ee in the Weighted Adherence is needed. If a job has a mandatory course or a very often required course, the Weighted Adherence should give more weight to the course adherence. On the other hand, if no specific course is associated with the job, the Weighted Adherence should give more weight to skill adherence (ie, simpleWeightedAdlierence 250 from above). Then, the weight of the courseExperienceAdherence in the Weighted Adherence is defined as: weight=MIN(2.metaWorkCourseMaxWeight, 1.0).

3. Given the simpleWeightedAdherence in step (1), the courseExperienceAdherence and its weight from step (2):

Job/Resume Education Level Match Module 270:

In one or more embodiments, the job/resume education level match is computed, as follows: A job/resume education level match factor (a number between 0 and 1) is computed between a job’s minimum education level requirement and the user’s resume education level, as follows:

1. Given a processed job posting 225:

• from the job posting, get the raw job title and the raw job description;

• process the raw job title and description using the job ontology to obtain a metaWork title and also vocabulary terms associated with education level requirements found in the title and description (examples: high school, undergraduate, etc.);

• define a job education level requirement from the job posting as the lowest education level found and call it jobEducationLevel·, and

• From the associated metaWork, get the most frequent education level requirement: meta WorkEducationLevel.

2. Given a user’s processed resume 230:

• get the highest achieved education level: resumeEducationLevel.

3. Given the jobEducationLevel and metaWorkEducationLevel from step (1) and the resumeEducationLevel from step (2):

• using a mapping from resumeEducationLevel and jobEducationLevel, find the associated educationFactor, based on the exemplary mapping 400 shown in FIG. 4A.

Generally, this mapping respects the following rules:

° if resumeEducationLevel = jobEducationLevel, then educationFactor = 1, meaning a perfect education level match;

° if resumeEducationLevel < jobEducationLevel, then educationFactor < 1, meaning a under education level match;

° if resumeEducationLevel > jobEducationLevel, then educationFactor < 1, meaning a over education level match.

• if no minimum education level requirement was found in the job posting, use the metaWorkEducationLevel and the respective resumeEducationLevel and the metaWorkEducationLevel and educationF actor mapping to resumeEducationLevel, using the exemplary mapping 450 shown in FIG. 4B. Job/Re sume Experience Match Module 275

In one or more embodiments, a job/resume experience match factor 560 (a number between 0 and 1) between a job experience requirement and the experiences (not only the last one) from the processed user resume 230 is computed, as follows.

FIG. 5 illustrates an exemplary job/resume experience match process 500 performed by the job/resume experience match module of FIG. 2, according to some embodiments of the disclosure. As shown in FIG. 5, the exemplary job/resume experience match process 500 proceeds in the following manner:

1. Given a job posting 510:

• from the job posting, get the raw job title, i.e., the job title as it is written in the job posting, and the raw job description;

• process the raw job title and description using Jobzi ontology 210 to obtain a metaWork title and also vocabulary terms associated with job experience requirements found in the title and description (examples: junior, senior, etc.);

• define a job experience requirement (JER) from the job posting in the following order of priority:

° if a job experience vocabulary term is in the job title, this is JER, else:

° if a job experience vocabulary term is in the job description, this is JER, else:

° if no job experience requirement was found, consider JER as the lowest level of requirement.

• convert the JER in text format (from Jobzi ontology) in a work experience requirement in years (defined as "k"); and

• for each level of JER, define how much of the final experience match comes from “k” and the levels for under-experience and over-experience.

For example, a lower level of experience requirement, like a“junior” position, should have a high experience match with someone that just got out of school/university, even if he doesn’t have any professional experience. So, if 2 people are applying for a“junior” position, if the first one has no professional experience and the second one has 3 months of professional experience, the match factor 560 of the second one should be higher than the first one, but both match factors 560 should be high because this job position is not requiring a very experienced professional. In this case, not 100% of the job/resume experience match factor 560 comes from "k".

2. Given a user’s resume 520:

• get all work experiences; and

• for each work experience, calculate duration, i.e., for how long the user has worked in each occupation.

3. Given the job posting in step (1) and the resume’s work experiences in step (2):

• for each work experience:

° get the similarity 540 between the job posting processed title and the work experience processed title; and

• rank the resume’s work experiences from the substantially most similar to the job posting processed title to the less similar.

4. Given the job posting in step (1) and the resume’s work experiences ranked by their similarities from step (3):

• for each work experience (beginning with the one with the highest similarity), until the sum of work experiences durations is less than (from step (1)):

° calculate the adjusted resume’s work experience duration: using the similarity between the work experience title and the job posting title and using a proprietary formula, adjust (usually penalize) the work experience duration.

Generally, the idea is: if the user has worked for two years in a job with the exact title that the job posting is requiring, i.e., with similarity of 1, consider the full two years of experience. But if he has worked in a similar job, e.g., with similarity less than 1, instead of considering that he has no experience, penalize the experience and count it with less than two years.

° sum the adjusted resume’s work experience duration; • if the JER is considered as a high experience level and if the user has more experience time than then penalize the adjusted resume's work experience time (this is the case of a over-experience); and

• Once the sum of the adjusted resume's work experience time is obtained, divide the value by "k" (remember, "k" is the work experience requirement in years from the job posting), giving us a ratio between 0 and 1. If this ratio equals 1, it means that the user has worked in jobs with the same title as asked by the job posting for the amount of time required by the job posting. If the ratio equals 0, it means that the user has no experience at all, or his previous experiences doesn't fit the experience required by the job posting. Example: the job is asking for a junior lawyer and the user is a computer scientist with more than 10 years of professional experience in his field, in this case, all this professional experience is not helping to fulfill the job posting experience requirement.

Combined Skills Intersection and Adherence Module 280:

In one or more embodiments, once the Weighted Adherence and the Job and

Resume Skill Intersection have been calculated by modules 265 and 260, respectively, the values are combined by the combined skills intersection and adherence module 280 before determining a final Jobzi Points computation.

FIG. 6 illustrates an assignment 600 of a weight, w, to a job/resume skills intersection based on a number of skills identified in a job posting, in one embodiment of the disclosure. Generally, as shown in FIG. 6, the more that skills are identified from the job posting, the more that weight is given to the Job and Resume Skill Intersection (e.g., for more skills in the job posting, the more that weight assigned to the job's skills), on the other hand, the less that skills are identified from the job posting, the more that weight is given to the weighted Adherence (e.g., for less skills in job posting, the more that weight is assigned to the metaWork skills).

The combinedSkillsIntersectionAndAdherence is defined as a convex combination of weightedAdherence and J ob&ResumeSkillslntersection as follows: where w is defined by a mapping function that respect the rule of more skills, then more weight to J ob&ResumeSkillsInter section as shown in FIG. 6.

Calculation ofJobzi Points 290

Once a combined measure of skill intersection and adherence is obtained from module 280 between an user's resume, a job posting and its associated metaWork, it is combined with the experience and education factors from modules 270 and 275.

In one or more embodiments, the combinedSkillsIntersectionAndAdherence is adjusted by the educationFactor and experienceFactor giving the Jobzi's Points, as follows:

Conclusion

One or more embodiments of the disclosure provide methods and apparatus for matching task descriptions to capability descriptions. The foregoing applications and associated embodiments should be considered as illustrative only, and numerous other embodiments can be configured using the techniques disclosed herein, in a wide variety of different applications.

As noted above, the disclosed techniques capture whether two items are a good match based on predefined criteria, and how distant the two items are from being a good match using the disclosed Jobzi Points. Generally, Jobzi Points quantify the distance between a bundle of work functions, knowledge, skills, and abilities (e.g., as expressed in a resume) and a work requirement (e.g., as expressed in a job description) at any given point in time.

The disclosed Jobzi Points distance metric simplifies, accelerates and/or reduces costs of recruitment for employers. For example, in some embodiments, the disclosed distance metric greatly improves the matching of the right candidate with a job position. This advantage is particularly relevant for job positions that attract, for example, thousands of candidates and resumes for a given job position.

In addition, the disclosed Jobzi Points distance metric enables and empowers recruitment to occur in a non-biased manner, without human error. In one or more embodiments, the methods disclosed herein process resumes substantially without bias, and therefore make the hiring process more fair. Further, the disclosed Jobzi Points distance metric allows millions of resumes, for example, to be automatically analyzed in seconds (which ordinarily cannot be achieved with manual or human-based techniques).

Likewise, from the perspective of jobseekers, the disclosed techniques also simplify and accelerate the job search process. Rather than having to read through multiple job descriptions to identify those that are most compatible with their resume (e.g., capturing a bundle of work functions, knowledge, skills, and abilities), one or more embodiments of the present disclosure allow jobseekers to focus strictly on the jobs for which they have the highest Jobzi Points (for example, the top N or top specified percentage of all job postings). In this manner, Jobzi Points signal work opportunities compatible with the resumes of jobseekers that they may not have been aware of or searching for, as the exemplary Jobzi Points match resumes with substantially all potential work positions in the market.

It should also be understood that the disclosed task matching techniques, as described herein, can be implemented at least in part in the form of one or more software programs stored in memory and executed by a processor of a processing device such as a computer. As mentioned previously, a memory or other storage device having such program code embodied therein is an example of what is more generally referred to herein as a“computer program product.”

The disclosed task matching techniques may be implemented using one or more processing platforms. One or more of the processing modules or other components may therefore each run on a computer, storage device or other processing platform element. A given such element may be viewed as an example of what is more generally referred to herein as a“processing device.”

As noted above, illustrative embodiments disclosed herein can provide a number of significant advantages relative to conventional arrangements. It is to be appreciated that the particular advantages described above and elsewhere herein are associated with particular illustrative embodiments and need not be present in other embodiments. Also, the particular types of information processing system features and functionality as illustrated and described herein are exemplary only, and numerous other arrangements may be used in other embodiments. In these and other embodiments, compute services can be offered to cloud infrastructure tenants or other system users as a Platform as a Service (PaaS) offering, although numerous alternative arrangements are possible.

Some illustrative embodiments of a processing platform that may be used to implement at least a portion of an information processing system comprises cloud infrastructure including virtual machines implemented using a hypervisor that runs on physical infrastructure. The cloud infrastructure further comprises sets of applications running on respective ones of the virtual machines under the control of the hypervisor. It is also possible to use multiple hypervisors each providing a set of virtual machines using at least one underlying physical machine. Different sets of virtual machines provided by one or more hypervisors may be utilized in configuring multiple instances of various components of the system.

These and other types of cloud infrastructure can be used to provide what is also referred to herein as a multi-tenant environment. One or more system components such as matching system 200, or portions thereof, are illustratively implemented for use by tenants of such a multi-tenant environment.

Cloud infrastructure as disclosed herein can include cloud-based systems such as Amazon Web Services (AWS), Google Cloud Platform (GCP) and Microsoft Azure. Virtual machines provided in such systems can be used to implement at least portions of a task matching platform in illustrative embodiments. The cloud-based systems can include object stores such as Amazon S3, GCP Cloud Storage, and Microsoft Azure Blob Storage.

In some embodiments, the cloud infrastructure additionally or alternatively comprises a plurality of containers implemented using container host devices. For example, a given container of cloud infrastructure illustratively comprises a Docker container or other type of Linux container (LXC). The containers may run on virtual machines in a multi-tenant environment, although other arrangements are possible. The containers may be utilized to implement a variety of different types of functionality within the matching system 200. For example, containers can be used to implement respective processing devices providing compute services of a cloud-based system. Again, containers may be used in combination with other virtualization infrastructure such as virtual machines implemented using a hypervisor.

Illustrative embodiments of processing platforms will now be described in greater detail with reference to FIGS. 7 and 8. These platforms may also be used to implement at least portions of other information processing systems in other embodiments.

Referring now to FIG. 7, one possible processing platform that may be used to implement at least a portion of one or more embodiments of the disclosure comprises cloud infrastructure 700. The cloud infrastructure 700 in this exemplary processing platform comprises virtual machines (VMs) and/or container sets 702-1, 702-2, . . . 702 -L implemented using a virtualization infrastructure 704. The operating system level virtualization infrastructure illustratively comprises kernel control groups of a Linux operating system or other type of operating system. The virtualization infrastructure 704 runs on physical infrastructure 705 and illustratively comprises one or more hypervisors and/or operating system level virtualization infrastructure. The operating system level virtualization infrastructure illustratively comprises kernel control groups of a Linux operating system or other type of operating system.

The cloud infrastructure 700 further comprises sets of applications 710-1, 710-2, .

. . 710-L running on respective ones of the virtual machines 702-1, 702-2, . . . 702 -L under the control of the virtualization infrastructure 704. The VMs/container sets 802 may comprise respective VMs, respective sets of one or more containers, or respective sets of one or more containers running in VMs.

The cloud infrastructure 700 may encompass the entire given system or only portions of that given system, such as one or more of client, servers, controllers, or computing devices in the system.

Although only a single virtualization infrastructure 704 is shown in the embodiment of FIG. 7, the system may of course include multiple virtualization infrastructures each providing a set of virtual machines using at least one underlying physical machine. Different sets of virtual machines provided by one or more virtualization infrastructures may be utilized in configuring multiple instances of various components of the system. In some embodiments, the cloud infrastructure additionally or alternatively comprises a plurality of containers implemented using container host devices. For example, a given container of cloud infrastructure illustratively comprises a Docker container or other type of LXC. The containers may be associated with respective tenants of a multi-tenant environment of the system, although in other embodiments a given tenant can have multiple containers. The containers may be utilized to implement a variety of different types of functionality within the system. For example, containers can be used to implement respective compute nodes or cloud storage nodes of a cloud computing and storage system. The compute nodes or storage nodes may be associated with respective cloud tenants of a multi-tenant environment of system. Containers may be used in combination with other virtualization infrastructure such as virtual machines implemented using a virtualization infrastructure.

As is apparent from the above, one or more of the processing modules or other components of the disclosed matching system 200 may each run on a computer, server, storage device or other processing platform element. A given such element may be viewed as an example of what is more generally referred to herein as a“processing device.” The cloud infrastructure 700 shown in FIG. 7 may represent at least a portion of one processing platform.

Another example of a processing platform is processing platform 800 shown in FIG. 8. The processing platform 800 in this embodiment comprises at least a portion of the given system and includes a plurality of processing devices, denoted 802-1, 802-2, 802-3, . . . 802 -K, which communicate with one another over a network 804. The network 804 may comprise any type of network, such as a wireless area network (WAN), a local area network (LAN), a satellite network, a telephone or cable network, a cellular network, a wireless network such as WiFi or WiMAX, or various portions or combinations of these and other types of networks.

The processing device 802-1 in the processing platform 800 comprises a processor 810 coupled to a memory 812. The processor 810 may comprise a microprocessor, a microcontroller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other type of processing circuitry, as well as portions or combinations of such circuitry elements, and the memory 812, which may be viewed as an example of a “processor-readable storage media” storing executable program code of one or more software programs.

Articles of manufacture comprising such processor-readable storage media are considered illustrative embodiments. A given such article of manufacture may comprise, for example, a storage array, a storage disk or an integrated circuit containing RAM, ROM or other electronic memory, or any of a wide variety of other types of computer program products. The term “article of manufacture” as used herein should be understood to exclude transitory, propagating signals. Numerous other types of computer program products comprising processor-readable storage media can be used.

Also included in the processing device 802-1 is network interface circuitry 814, which is used to interface the processing device with the network 804 and other system components, and may comprise conventional transceivers.

The other processing devices 802 of the processing platform 800 are assumed to be configured in a manner similar to that shown for processing device 802- 1 in the figure.

Again, the particular processing platform 800 shown in the figure is presented by way of example only, and the given system may include additional or alternative processing platforms, as well as numerous distinct processing platforms in any combination, with each such platform comprising one or more computers, storage devices or other processing devices.

Multiple elements of matching system 200 may be collectively implemented on a common processing platform of the type shown in FIGS. 7 or 8, or each such element may be implemented on a separate processing platform.

For example, other processing platforms used to implement illustrative embodiments can comprise different types of virtualization infrastructure, in place of or in addition to virtualization infrastructure comprising virtual machines. Such virtualization infrastructure illustratively includes container-based virtualization infrastructure configured to provide Docker containers or other types of LXCs.

It should therefore be understood that in other embodiments different arrangements of additional or alternative elements may be used. At least a subset of these elements may be collectively implemented on a common processing platform, or each such element may be implemented on a separate processing platform. Also, numerous other arrangements of computers, servers, storage devices or other components are possible in the information processing system. Such components can communicate with other elements of the information processing system over any type of network or other communication media.

As indicated previously, components of an information processing system as disclosed herein can be implemented at least in part in the form of one or more software programs stored in memory and executed by a processor of a processing device. For example, at least portions of the functionality of the flow charts and/or pseudo code shown in various figures are illustratively implemented in the form of software running on one or more processing devices.

It should again be emphasized that the above-described embodiments are presented for purposes of illustration only. Many variations and other alternative embodiments may be used. For example, the disclosed techniques are applicable to a wide variety of other types of information processing systems. Also, the particular configurations of system and device elements and associated processing operations illustratively shown in the drawings can be varied in other embodiments. Moreover, the various assumptions made above in the course of describing the illustrative embodiments should also be viewed as exemplary rather than as requirements or limitations of the disclosure. Numerous other alternative embodiments within the scope of the appended claims will be readily apparent to those skilled in the art.