This application relates generally to the technical field of online social networking, and, in one specific example, to providing job recruiters with visual representations of attributes of pools of potential job candidates based on an analysis of profiles of the potential job candidates maintained with respect to an online social networking system.
Job recruiters may use various features of social networking systems to find potential candidates for job openings that the recruiter seeks to fill.
Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the inventive subject matter. It will be evident, however, to those skilled in the art that embodiments may be practiced without these specific details. Further, to avoid obscuring the inventive concepts in unnecessary detail, well-known instruction instances, protocols, structures, and techniques have not been shown in detail. As used herein, the term “or” may be construed in an inclusive or exclusive sense, the term “user” may be construed to include a person or a machine, and the term “interface” may be construed to include an application program interface (API) or a user interface.
In various embodiments, a method is disclosed for communicating a set of visual representations of values corresponding to a set of attributes of a set of members of a social-networking system. A query is received from a user. A set of profiles of members of a social-networking system is identified based on the query. A set of attributes of the set of members is identified. A set of visual representations of values corresponding to each of the set of attributes is generated. The set of visual representations are communicated for presentation to the user.
In various embodiments, techniques for visually comparing a first talent pool to a second talent pool are described. A first set of profiles of members of a social network is identified. A second set of profiles of members of the social network is identified. A selection of an attribute in common between the first set of profiles and the second set of profiles is received. A set of visual representations comparing values specified in data fields of the first set of profiles is generated with respect to the attribute and values specified in data fields of the second set of profiles with respect to the attribute in common. The set of visual representations is communicated for presentation in a user interface.
These and other methods or embodiments disclosed herein may be implemented as a computer system having one or more modules (e.g., hardware modules or software modules). Such modules may be executed by one or more processors of the computer system. This method and other methods or embodiments disclosed herein may be embodied as instructions stored on a machine-readable medium that, when executed by one or more processors, cause the one or more processors to perform the instructions.
As shown in
As shown in
As shown in
Consistent with some embodiments, when a person initially registers to become a member of the social networking service, the person will be prompted to provide some personal information, such as his or her name, age (e.g., birth date), gender, interests, contact information, home town, address, the names of the member's spouse and/or family members, educational background (e.g., schools, majors, etc.), current job title, job description, industry, employment history, skills, professional organizations, interests, and so on. This information is stored, for example, as profile data in the database with reference number 22.
Once registered, a member may invite other members, or be invited by other members, to connect via the social networking service. A “connection” may require a bi-lateral agreement by the members, such that both members acknowledge the establishment of the connection. Similarly, with some embodiments, a member may elect to “follow” another member. In contrast to establishing a connection, the concept of “following” another member typically is a unilateral operation, and at least with some embodiments, does not require acknowledgement or approval by the member that is being followed. When one member connects with or follows another member, the member who is connected to or following the other member may receive messages or updates (e.g., content items) in his or her personalized content stream about various activities undertaken by the other member. More specifically, the messages or updates presented in the content stream may be authored and/or published or shared by the other member, or may be automatically generated based on some activity or event involving the other member. In addition to following another member, a member may elect to follow a company, a topic, a conversation, a web page, or some other entity or object, which may or may not be included in the social graph maintained by the social networking system. With some embodiments, because the content selection algorithm selects content relating to or associated with the particular entities that a member is connected with or is following, as a member connects with and/or follows other entities, the universe of available content items for presentation to the member in his or her content stream increases.
As members interact with various applications, content, and user interfaces of the social networking system 12, information relating to the member's activity and behavior may be stored in a database, such as the database with reference number 26.
The social networking system 12 may provide a broad range of other applications and services that allow members the opportunity to share and receive information, often customized to the interests of the member. For example, with some embodiments, the social networking system 12 may include a photo sharing application that allows members to upload and share photos with other members. With some embodiments, members of a social networking system 12 may be able to self-organize into groups, or interest groups, organized around a subject matter or topic of interest. With some embodiments, members may subscribe to or join groups affiliated with one or more companies. For instance, with some embodiments, members of the social networking service 12 may indicate an affiliation with a company at which they are employed, such that news and events pertaining to the company are automatically communicated to the members in their personalized activity or content streams. With some embodiments, members may be allowed to subscribe to receive information concerning companies other than the company with which they are employed. Membership in a group, a subscription or following relationship with a company or group, as well as an employment relationship with a company, are all examples of different types of relationships that may exist between different entities, as defined by the social graph and modeled with the social graph data of the database with reference number 24.
The application logic layer includes various application server modules 20, which, in conjunction with the user interface module(s) 12, generates various user interfaces with data retrieved from various data sources or data services in the data layer. With some embodiments, individual application server modules 20 are used to implement the functionality associated with various applications, services and features of the social networking system. For instance, a messaging application, such as an email application, an instant messaging application, or some hybrid or variation of the two, may be implemented with one or more application server modules 20. A photo sharing application may be implemented with one or more application server modules 20. Similarly, a search engine enabling users to search for and browse member profiles may be implemented with one or more application server modules 20. Of course, other applications and services may be separately embodied in their own application server modules 20.
As illustrated in
As illustrated in
A database module 254 may be configured to process queries to identify database records (e.g., user profiles) corresponding to the queries.
An attribute module 256 may be configured to identify attributes corresponding to a pool of identified database records, as will be described in more detail below.
A generation module 258 may be configured to generate visual representations of a selected set of attributes of a selected set of members of the social-networking system, as will be described in more detail below.
A comparison module 260 may be configured to compare a first set of members of the social-networking system with a second set of members of the social-networking system with respect to one or more attributes, as will be described in more detail below.
Although the functionality corresponding to the various modules is depicted and described as being implemented on one of the client side or the server side, in various embodiments, some or all of the functionality corresponding to modules may be implemented on either the client side, server side, or both. Thus, for example, in various embodiments, one or more algorithms implemented on the client side or server side may utilize information collected about the user on the client or server side, such as the member's current activity, current location, past behavior, social/graph data, profile data, and so on.
At operation 302, the database module 254 may receive a query from a user (e.g., via the server communication module 252). For example, the user may enter one or more keywords in a search box of a user interface presented to the user on a device of the user. The keywords may then be communicated from the device to the query module. For example, a job recruiter seeking to fill a software engineering position may enter the keywords “software” and “engineer.” Or a job recruiter seeking to fill a position for which one of the job requirements is a particular skill, the job recruiter may enter keywords corresponding to the particular skill.
In various embodiments, the database module 254 may be configured to identify one or more predefined fields for which the user may specify one or more keywords or predefined values. For example, in the context of job recruiting, the field set may include fields such as country (e.g., of residence or place of employment), postal code (e.g., of residence or place of employment), radius (e.g., a geographical region having a radius extending from a location of residence to a place of employment), current job title, past job title, current company, past company, industry, first name, last name, years of experience, function, years in position, language (e.g., of proficiency), team activity, relationship (e.g., to user submitting query), seniority, years in company, groups (e.g., that the user has joined), status (e.g., of employment), school, degree, field of study, company followers, company type, company size, interested in (e.g., topics of interest), joined (e.g., date on which the target joined the social-networking system), and so on.
Thus, a user performing a search may submit a query that specifies keywords or predefined values corresponding to particular fields, such as queries including the phrases “years of experience=3,” “function=manager,” “degree=master of science in computer science,” and so on.
At operation 304, the database module 254 may identify a set of profiles of members of the social-networking system corresponding to the query. In various embodiments, the profiles of the members of the social-networking system may be maintained by the members of the social-networking system. In various embodiments, the information submitted by the members of the social-networking system may be structured based on a predetermined field set.
In various embodiments, the database module 254 may identify profiles corresponding to the query based on, for example, keywords specified by a first user (e.g., a job recruiter) in the query with keywords specified by a second user (e.g., a potential job candidate) in the profile of the second user. For example, a member who is currently employed as a software engineer may specify his current job title as “software engineer” in his profile. The database module 254 may then identify the user's profile as corresponding to a query based on the keywords “software” or “engineer” being specified in the query or the phrase “job title=software engineer” being included in the query.
At operation 306, the attribute module 256 may identify a set of attributes of the set of members. The set of attributes may be identified based on various factors, such as how relevant the attribute is to the user who submitted the query, how much data was provided by each of the members with respect to the attribute, and so on.
For example, a set of shared attributes may be identified based on a relevancy of the set of shared attributes to the user who submitted the query. The relevancy of the set of shared attributes to the user who submitted the query may be based on various additional factors, such as a context in which the query was submitted. For example, the attribute module 256 may identify that the user who submitted the query is a job recruiter who works for a particular company who is seeking to fill one or more particular job openings for which potential candidates must satisfy one or more job requirements. Based on this context information, the attribute module 256 may identify the relevant set of attributes as being attributes that correspond to the job requirements, to the company itself, or a combination of such attributes. For example, if the position that the recruiter intends to fill requires potential job candidates to have a particular degree, the attribute module 256 may include the degree attribute in the identified set of shared attributes.
In various embodiments, the attributes may be identified based on input from the user. For example, the user may specify (e.g., via a user interface), the attributes of the members corresponding to the search query for which the user seeks to view a visual representation.
At operation 308, the generation module 258 may generate a set of visual representations of the values corresponding to each of the identified set of shared attributes. Thus, as one example, if“degree” was included in the identified set of shared attributes, the generation module may generate a bar graph showing the names of the degrees obtained by each of potential job candidates matching the identified set of profiles.
At operation 310, the server-communication module 252 may communicate the set of visual representations for presentation to the user (e.g., via a user interface that is presented on a device of the user).
At operation 402, the database module 254 identifies a first set of members of a social network. In various embodiments, the identification of the first set of members of the social network may be based on a query submitted by a user. In various embodiments, the identification of the first set of members of the social network may be performed automatically based on a context of a request submitted by the user or based on information known about the user.
At operation 404, the database module 254 identifies a second set of members of the social network. In various embodiments, the identification of the second set of members of the social network may be based on an additional query submitted by the user. In various embodiments, the identification of the second set of members of the social network may be performed automatically based on a context of an additional request submitted by the user or based on the information known about the user.
At operation 406, the generation module 258 may generate a set of visual representations comparing the first set of members of the social network to the second set of members of the social network with respect to a set of attributes. In various embodiments, the set of attributes may be selected from a field set, such as the field set described above with respect to
At operation 408, the server-communication module 252 may communicate the set of visual representations for presentation to the user.
As an example, consider a user who wishes to compare skills of people in a first talent pool (e.g., people employed by one or more organizations, living in a particular geographic area, actively seeking a new job, and so on) to skills of people in a second talent pool. In various embodiments, the user may activate the comparison by clicking on a user interface element presented to the user on a device of the user (e.g., by clicking on a button on a web page being presented to the user). In various embodiments, the user may specify one or more criteria for identifying the first talent pool (e.g., a query specifying a current employer, geographical location, and so on), one or more criteria for identifying the second talent pool or both.
In various embodiments, one or more of the talent pools that are to be compared may be automatically selected (e.g., based on a context in which the user submitted the request for the comparison) (e.g., by the comparison module 260). For example, if the user is an job recruiter employed by a first organization and activates the request for the comparison in a competitor context (e.g., by clicking on a “Compare Talent Pool of Competing Organizations” button within a user interface being presented to the user), the first talent pool may automatically be selected to be the first organization and the second talent pool may automatically be selected to include a set of organizations that are flagged as being competitors of the organization that employs the user.
Thus, in various embodiments, the user may be presented with visual representations of comparisons of one or more of fields pertaining to attributes of employees of each talent pool, such as a comparisons of degrees earned, years of experience, and so on. Thus, the user may be able to easily determine from the visual representation of the comparison of the values which talent pool has the greatest talent (e.g., with respect to particular attributes). For example, a visual representation may compare a percentage of individuals in each talent pool having particular degrees, advanced degrees, and so on. Or the visual representation may compare a percentage of individuals in each talent pool having graduated from Ivy League schools. Or the visual representation may compare a number of years of experience of individuals in each talent pool for particular job titles. In various embodiments, the set of attributes for which the comparison between the talent pools is performed may be selected manually or automatically as described above with respect to
At operation 502, the database module 254 receives a request from a user for a visual representation of a selected skill corresponding to a pool of members of a social-networking system.
At operation 504, the database module 254 selects the pool based on a criterion (e.g., as specified in a query submitted by the user). For example, the database module selects members of the social-networking system having a computer science degree based on the user submitted a query that includes the phrase “degree=BSCS.”
At operation 506, the attribute module 256 selects the skill based on an additional criterion. For example, the user may be presented with a list of general categories of skills of each of the members included in the pool, such as skills corresponding to the field sets described above with respect to
At operation 508, the generation module 258 generates the visual representation of the selected skill of each of the members included in the pool based on an analysis of the profiles of the members. For example, if the user selects the “degree” skill, the visualization module may generate a bar graph showing a distribution of degrees earned by each of the members included in the pool. Thus, the generated bar graph may indicate the number of members in the pool having computer science degrees, electrical engineering degrees, mathematics degrees, physics degrees, and so on.
In various embodiments, the values corresponding to the attributes of the member profiles in the first talent pool and the values corresponding to the attributes of the member profiles in the second talent pool are represented as selectable user interface elements. Upon a selection of the user interface element corresponding to an attribute, the value represented is included as a new filter of the search results. Each of the currently applied filters may be represented as additional user interface elements. Each of the currently applied filters may be removed by the user (e.g., by clicking the “X” to the right of the user interface element representing the applied filter). In various embodiments, a subset of the most popular values may be presented in the user interface, along with an option for the user to display additional values (e.g., by clicking on the “More” link).
In various embodiments, the search results include references to the profiles that satisfy the filtering criteria. The search results may be ranked by relevance, as described above. In various embodiments, each of the references in the search results may include a summary of values included in the profiles associated with the references. The summary may include, for example, a photo, name, title, current employer, location, university affiliation, and so on, specified in a profile of a member. In various embodiments, a user may access an expanded version of the profile, including additional profile data, by clicking on the reference.
In various embodiments, values corresponding to attributes may be organized under different pages within the user interface, such as pages corresponding to companies, experience, education, location, and so on. Additionally, in various embodiments, all of the values may be compared on a single page (e.g., a “Compare all” page).
As another example, the visual representation may include, for each talent pool, a vertical bar graph showing the distribution of relationships between the user who submitted the request and the members included in the pool, including how many members of the pool share a group with the user, have a shared connection with the user, worked at the same company as the user, and live in the same location as the user. The visual representation may also include a summary of an assessment of the personal relationships of the user, indicating that, in this particular case, 90% of the users in the pool have something in common with the user submitting the query.
In various embodiments, a user may compare the flow of talent from one company or organization to another company or organization. For example, a user may submit a query to show a number of employees who have listed a first company as a previous employer and a second company as a current employer. A visual representation may then be generated that includes a flow chart illustrating the movement of employees back and forth between the two companies. Additional nodes for additional companies or organizations may be included in the query and visual representation such that the flow of talent between organizations (e.g., of a particular industry) may be presented to the user. In this way, a recruiter may be able to better understand and take steps to reverse a negative trend with respect to movements of employees away from an organization that the recruiter represents.
The example computer system 1200 includes a processor 1202 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 1204 and a static memory 1206, which communicate with each other via a bus 1208. The computer system 1200 may further include a video display unit 1210 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 1200 also includes an alphanumeric input device 1212 (e.g., a keyboard), a user interface (UI) navigation (or cursor control) device 1214 (e.g., a mouse), a storage unit 1216, a signal generation device 1218 (e.g., a speaker) and a network interface device 1220.
The disk drive unit 1216 includes a machine-readable medium 1222 on which is stored one or more sets of data structures and instructions 1224 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions 1224 may also reside, completely or at least partially, within the main memory 1204 and/or within the processor 1202 during execution thereof by the computer system 1200, the main memory 1204 and the processor 1202 also constituting machine-readable media. The instructions 1224 may also reside, completely or at least partially, within the static memory 1206.
While the machine-readable medium 1222 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions or data structures. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present embodiments, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and compact disc-read-only memory (CD-ROM) and digital versatile disc (or digital video disc) read-only memory (DVD-ROM) disks.
The instructions 1224 may further be transmitted or received over a communications network 1226 using a transmission medium. The network 1226 may be one of the networks 1220. The instructions 1224 may be transmitted using the network interface device 1220 and any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/986,637, filed Apr. 30, 2014, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61986637 | Apr 2014 | US |