IP Library Granted Patent US 11,373,146
Granted Patent B1
US 11,373,146 · App. 17/364,699 · Granted Jun 28, 2022

Job description generation based on machine learning

Inventors: Yuri Yerastov (San Mateo, CA); Mohan Reddy (Fremont, CA); Sean Thomas Hinton (Vancouver, CA); Mykhailo Timonin (Vancouver, CA); Sergey Bukharov (Vancouver, CA); Rupert Cosulich (Vancouver, CA)
Assignee: SKYHIVE TECHNOLOGIES INC.
G06Q10/1053G06F40/20G06F40/30G06N5/022G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,373,146
App. No.
17/364,699
Filed
Jun 30, 2021
Granted
Jun 28, 2022
Kind
B1
Art Unit
3629
USPC
705/321
Abstract

Techniques are described for automatically generating job descriptions. Job categories are identified for the documents in the job description dataset based on clustering the documents. Sections within each document in the job description dataset are automatically identified, and each identified section is automatically classified. Each type of section is analyzed independently of the other section types using natural language processing, which allows automatic generation of each section of a new job description based on the section-specific data derived from the dataset. Section- and category-specific selective phrases are identified within the job description dataset, and embeddings are generated for the identified selective phrases. A request to generate a new job description for a particular category is received. For each section of new job description, the selective phrase embeddings for the section and for the identified category are used to identify phrases to include within the section of the job description.

Claims (104)

1. A computer-implemented method, comprising:

obtaining a dependency graph for each skill name of a plurality of skill names, each dependency graph having a node for each word in said each skill name and an edge representing a syntactic relationship between words in two nodes of said each dependency graph connected by the edge;

obtaining hypernym tree data comprising hypernym trees each including a node for each meaning of one or more meanings of a word;

wherein at least one hypernym tree of the hypernym trees includes nodes for meanings of different words;

assigning, to a dependency graph for a skill name of the plurality of skill names, a meaning of a specific word selected from the skill name based on the hypernym tree that includes nodes associated with the specific word; and

building a skill knowledge graph with a plurality of skill nodes representing skill names by connecting dependency graphs based on distances between nodes of the hypernym trees for meanings that are assigned to the dependency graphs;

performing syntactic or semantic parsing, on a plurality of job descriptions comprising text data, to identify, within the plurality of job descriptions, a plurality of phrases;

for each job category of a plurality of job categories:

identifying a job category-specific set of selective phrases, from the plurality of phrases, that are selective for said each job category, comprising:

identifying a particular skill node of the plurality of skill nodes that is associated with said each job category,

identifying one or more skill nodes that are connected, either directly or indirectly, with the particular skill node within the skill knowledge graph, and

based on identifying the one or more skill nodes, identifying one or more phrases, corresponding to the one or more skill nodes, as selective phrases for said each job category;

wherein the job category-specific set of selective phrases for said each job category comprises, for each section type of a plurality of job description section types, a section-specific set of selective phrases;

receiving, by a computing system, a request to generate a new job description;

determining, by the computing system based on the request, that the request is associated with a particular job category of the plurality of job categories; and

in response to receiving the request:

for each section type of the plurality of job description section types, generating, by the computing system, a corresponding section in a generated job description by including, in the corresponding section, one or more phrases from a section-specific set of selective phrases, for the corresponding section, from a particular job category-specific set of selective phrases, specific to the particular job category, and

returning, by the computing system, the generated job description as a response to the request;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , wherein the one or more phrases for a particular section of the generated job description are included in a set of k-nearest neighbors of a centroid vector within a vector space of phrase embeddings of a particular section-specific set of selective phrases for the particular section.

3. The method of claim 2 , wherein the one or more phrases for the particular section are selected based, at least in part, on ranking the set of k-nearest neighbors based on a distance of an embedding of each phrase of the set of k-nearest neighbors from the centroid vector.

4. The method of claim 2 , wherein:

the request to generate a job description comprises one or more target phrases;

the method further comprises, in response to receiving the request, calculating the centroid vector, within the vector space of phrase embeddings of the particular section-specific set of selective phrases, based on embeddings for the one or more target phrases.

5. The method of claim 1 , further comprising:

for a particular section of the generated job description:

determining that a particular phrase, in a particular section-specific set of selective phrases for the particular section, is associated with a first skill node of the plurality of skill nodes; and

in response to determining that the particular phrase is associated with the first skill node:

identifying one or more second skill nodes, of the plurality of skill nodes, that is associated with the first skill node, and

including, in the particular section, information from the one or more second skill nodes.

6. The method of claim 5 , wherein one or more skill nodes are associated with meaning indicators, of one or more hypernym trees, and wherein one or more edges of the skill knowledge graph connect skill nodes with semantic relationships between meaning indicators of the skill nodes.

7. The method of claim 4 , further comprising:

training a machine learning model based on the skill knowledge graph to produce a trained machine learning model; and

generating phrase embeddings for the particular section-specific set of selective phrases based on the trained machine learning model.

8. The method of claim 1 , further comprising, prior to receiving the request: using one or more trained machine learning models to identify the plurality of job description section types based, at least in part, on the plurality of job descriptions.

9. The method of claim 1 , further comprising:

clustering the plurality of job descriptions to produce a plurality of job description clusters;

wherein said clustering is performed based on one or more of:

embeddings of titles of the plurality of job descriptions,

embeddings of words in the titles of the plurality of job descriptions, or

embeddings of entities identified within the plurality of job descriptions;

associating each cluster, of the plurality of job description clusters, with a respective job category of the plurality of job categories;

associating the job descriptions in each job description cluster, of the plurality of job description clusters, with the job category associated with said each job description cluster.

10. The method of claim 1 , further comprising:

calculating a plurality of job category-specific phrase counts by, for each phrase of the plurality of phrases, counting a number of times said each phrase is included in job descriptions of each job category of the plurality of job categories;

wherein identifying the job category-specific set of selective phrases for each job category of the plurality of job categories comprises, for particular one or more phrases of the plurality of phrases:

based on the plurality of job category-specific phrase counts, calculating a job category selectivity value that indicates how selective the particular one or more phrases are for said each job category,

determining whether the job category selectivity values for the particular one or more phrases satisfy selectivity criteria, and

responsive to determining that the job category selectivity values for the particular one or more phrases satisfy the selectivity criteria, including the particular one or more phrases in the set of job category-specific selective phrases for said each job category.

11. The method of claim 1 , further comprising, in response to receiving the request, generating language for a particular section, of a particular non-skill section type, in the generated job description using a trained machine learning model that has been trained based on a plurality of section samples of the particular non-skill section type.

12. One or more non-transitory computer-readable media storing one or more sequences of instructions that, when executed by one or more processors, cause:

obtaining a dependency graph for each skill name of a plurality of skill names, each dependency graph having a node for each word in said each skill name and an edge representing a syntactic relationship between words in two nodes of said each dependency graph connected by the edge;

obtaining hypernym tree data comprising hypernym trees each including a node for each meaning of one or more meanings of a word;

wherein at least one hypernym tree of the hypernym trees includes nodes for meanings of different words;

assigning, to a dependency graph for a skill name of the plurality of skill names, a meaning of a specific word selected from the skill name based on the hypernym tree that includes nodes associated with the specific word; and

building a skill knowledge graph with a plurality of skill nodes representing skill names by connecting dependency graphs based on distances between nodes of the hypernym trees for meanings that are assigned to the dependency graphs;

performing syntactic or semantic parsing, on a plurality of job descriptions comprising text data, to identify, within the plurality of job descriptions, a plurality of phrases;

for each job category of a plurality of job categories:

identifying a job category-specific set of selective phrases, from the plurality of phrases, that are selective for said each job category, comprising:

identifying a particular skill node of the plurality of skill nodes that is associated with said each job category,

identifying one or more skill nodes that are connected, either directly or indirectly, with the particular skill node within the skill knowledge graph, and

based on identifying the one or more skill nodes, identifying one or more phrases, corresponding to the one or more skill nodes, as selective phrases for said each job category;

wherein the job category-specific set of selective phrases for said each job category comprises, for each section type of a plurality of job description section types, a section-specific set of selective phrases;

receiving, by a computing system, a request to generate a new job description;

determining, by the computing system based on the request, that the request is associated with a particular job category of the plurality of job categories; and

in response to receiving the request:

for each section type of the plurality of job description section types, generating, by the computing system, a corresponding section in a generated job description by including, in the corresponding section, one or more phrases from a section-specific set of selective phrases, for the corresponding section, from a particular job category-specific set of selective phrases, specific to the particular job category, and

returning, by the computing system, the generated job description as a response to the request.

13. The one or more non-transitory computer-readable media of claim 12 , wherein the one or more phrases for a particular section of the generated job description are included in a set of k-nearest neighbors of a centroid vector within a vector space of phrase embeddings of a particular section-specific set of selective phrases for the particular section.

14. The one or more non-transitory computer-readable media of claim 13 , wherein the one or more phrases for the particular section are selected based, at least in part, on ranking the set of k-nearest neighbors based on a distance of an embedding of each phrase of the set of k-nearest neighbors from the centroid vector.

15. The one or more non-transitory computer-readable media of claim 13 , wherein:

the request to generate a job description comprises one or more target phrases;

the one or more sequences of instructions further comprise that, when executed by one or more processors, cause, in response to receiving the request, calculating the centroid vector, within the vector space of phrase embeddings of the particular section-specific set of selective phrases, based on embeddings for the one or more target phrases.

16. The one or more non-transitory computer-readable media of claim 12 , wherein the one or more sequences of instructions further comprise that, when executed by one or more processors, cause:

for a particular section of the generated job description:

determining that a particular phrase, in a particular section-specific set of selective phrases for the particular section, is associated with a first skill node of the plurality of skill nodes; and

in response to determining that the particular phrase is associated with the first skill node:

identifying one or more second skill nodes, of the plurality of skill nodes, that is associated with the first skill node, and

including, in the particular section, information from the one or more second skill nodes.

17. The one or more non-transitory computer-readable media of claim 16 , wherein one or more skill nodes are associated with meaning indicators, of one or more hypernym trees, and wherein one or more edges of the skill knowledge graph connect skill nodes with semantic relationships between meaning indicators of the skill nodes.

18. The one or more non-transitory computer-readable media of claim 15 , wherein the one or more sequences of instructions further comprise that, when executed by one or more processors, cause:

training a machine learning model based on the skill knowledge graph to produce a trained machine learning model; and

generating phrase embeddings for the particular section-specific set of selective phrases based on the trained machine learning model.

19. The one or more non-transitory computer-readable media of claim 12 , wherein the one or more sequences of instructions further comprise that, when executed by one or more processors, cause, prior to receiving the request: using one or more trained machine learning models to identify the plurality of job description section types based, at least in part, on the plurality of job descriptions.

20. A system comprising:

one or more processors; and

one or more non-transitory computer-readable media storing one or more sequences of instructions that, when executed by the one or more processors, cause:

obtaining a dependency graph for each skill name of a plurality of skill names, each dependency graph having a node for each word in said each skill name and an edge representing a syntactic relationship between words in two nodes of said each dependency graph connected by the edge;

obtaining hypernym tree data comprising hypernym trees each including a node for each meaning of one or more meanings of a word;

wherein at least one hypernym tree of the hypernym trees includes nodes for meanings of different words;

assigning, to a dependency graph for a skill name of the plurality of skill names, a meaning of a specific word selected from the skill name based on the hypernym tree that includes nodes associated with the specific word; and

building a skill knowledge graph with a plurality of skill nodes representing skill names by connecting dependency graphs based on distances between nodes of the hypernym trees for meanings that are assigned to the dependency graphs;

performing syntactic or semantic parsing, on a plurality of job descriptions comprising text data, to identify, within the plurality of job descriptions, a plurality of phrases;

for each job category of a plurality of job categories:

identifying a job category-specific set of selective phrases, from the plurality of phrases, that are selective for said each job category, comprising:

identifying a particular skill node of the plurality of skill nodes that is associated with said each job category,

identifying one or more skill nodes that are connected, either directly or indirectly, with the particular skill node within the skill knowledge graph, and

based on identifying the one or more skill nodes, identifying one or more phrases, corresponding to the one or more skill nodes, as selective phrases for said each job category;

wherein the job category-specific set of selective phrases for said each job category comprises, for each section type of a plurality of job description section types, a section-specific set of selective phrases;

receiving, by the one or more processors, a request to generate a new job description;

determining, by the one or more processors based on the request, that the request is associated with a particular job category of the plurality of job categories; and

in response to receiving the request:

for each section type of the plurality of job description section types, generating, by the one or more processors, a corresponding section in a generated job description by including, in the corresponding section, one or more phrases from a section-specific set of selective phrases, for the corresponding section, from a particular job category-specific set of selective phrases, specific to the particular job category, and

returning, by the one or more processors, the generated job description as a response to the request.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2026
From: SKYHIVE TECHNOLOGIES HOLDINGS INC.
To: CORNERSTONE ONDEMAND, INC.
Reel/Frame 074115/0410 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED ON REEL 63855 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 15, 2024
From: SKYHIVE TECHNOLOGIES INC.
To: SKYHIVE TECHNOLOGIES HOLDINGS INC.
Reel/Frame 068568/0704 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT Recorded Jul 29, 2024
From: CORNERSTONE ONDEMAND, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 068179/0653 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT Recorded Jul 26, 2024
From: CORNERSTONE ONDEMAND, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 068173/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2023
From: SKYHIVE TECHNOLOGIES, INC.
To: SKYHIVE TECHNOLOGIES HOLDINGS, INC.
Reel/Frame 063855/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2021
From: YERASTOV, YURI; REDDY, MOHAN; HINTON, SEAN THOMAS; TIMONIN, MYKHAILO; BUKHAROV, SERGEY; COSULICH, RUPERT
To: SKYHIVE TECHNOLOGIES INC.
Reel/Frame 056739/0612 →
Cited By (3)
US 12,321,428 US 12,579,517 US 12,613,928