Abstract:
A process to optimize a person&#39;s profile information into a standardized competency profile that can then be found for and measured against any specific job position or work need is disclosed herein. The process generates an optimized competency profile for a person comprising a location attribute, an education attribute, a work experience attribute, a plurality of competency matrix attributes and a plurality of job transition attributes. The process obtains the information from various sources including social networking websites, with or without the knowledge of the person. The process is preferably performed at a competency server.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    Not Applicable 
       STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
       [0002]    Not Applicable 
       BACKGROUND OF THE INVENTION 
       [0003]    1. Field of the Invention 
         [0004]    The present invention generally relates to talent identification. More specifically, the present invention relates to a process to standardize, enhance and optimize disparate personal profile information from different sources into a standardized competency based profile enabling equalized and fast candidate evaluation and selection across multiple sources for recruiting, education, training and career management purposes. 
         [0005]    2. Description of the Related Art 
         [0006]    The prior art discusses various recruitment technologies. One such reference is Wien et al., U.S. Pat. No. 6,757,674 for a Method And System For Querying And Posting To Multiple Career Websites On The Internet From A Single Interface, which discloses collecting information and mapping the information. 
         [0007]    Another reference is Hitchock et al., U.S. Pat. No. 7,376,891 for a Universal Forms Engine, which discloses data sharing between customizable forms. 
         [0008]    Yet another reference is Levy et al., U.S. Pat. No. 7,082,418 for a System And Method For Network Based Personalized Education Environment, which discloses comparing an individual&#39;s competency profile with an education template and behavior scenario to identify target training or learning areas. 
         [0009]    Yet another reference is Brunkow et al., U.S. Pat. No. 5,879,165 for a Method For Comprehensive Integrated Assessment In A Course Of Study Or Occupation which discloses assessing multiple transferable skills. 
         [0010]    Job seekers can create personal profiles and post their resumes on a multitude of career websites, corporate websites, or even on personal blogs. Employers searching for candidates to fill a position must go to each website to scan for potential employees. This method of searching for potential employees on each site is considerably time consuming, and all the different tools and processes can be overwhelming. 
         [0011]    Since each site collects and stores information according to their own systems, there are variations in data formats, in algorithms, and in specific types of information recorded from the profiles. Retrieving various data from disparate sources for potential candidates results in an inconsistent and incomplete result set which the employer cannot evaluate equally. 
         [0012]    As such, there is a need for a system to standardize the profiles from the various sources into a common format and taxonomy; to enhance the profiles in order to eliminate missing values, ensuring consistency; and then to optimize the profile to ensure that it can be appropriately qualified during a search. 
         [0013]    With such a system, an employer can perform a search from a single location while the system considers all candidates from any location equally, delivering a result set of the best candidates. 
         [0014]    Another problem is that many profile systems vary in the values they allow for their forms allow free format entry of location, specifically country, state, region or ZIP information. This causes issues as you cannot find all potential candidates if they do not conform to the same standard of data for a geo location. 
         [0015]    Another problem is a search engine allows employers to search for people within 1, 3, 5, 10, 15, 20, 35, 50 and 100 miles around a fixed point (zip code, etc). To do this requires the search process to work out which profiles to include, based on how far the profiles are away from the job&#39;s coordinates (where the employer is searching). This is typically resource intensive and takes time. 
         [0016]    Yet another problem is the Internet has made access to global information a reality, but how do you find people based on an education system that differs in each country. 
         [0017]    Yet another problem is people and employers/recruiters, all call a job title something different, there is no standardization therefore it is very hard to search for people equally, as one simple spelling mistake may render a person to be excluded in a search. 
       BRIEF SUMMARY OF THE INVENTION 
       [0018]    The present invention takes profile information in their original data format from different sources and parses that profile data into a set of standardized and optimized searchable data objects, enabling faster searches. The present invention is capable of performing sub-second searches through vast quantities of profile data. 
         [0019]    One aspect of the present invention is a process to standardize, enhance and optimize disparate personal profile information from different sources into a standardized competency based profile enabling equalized and fast candidate evaluation and selection across multiple sources for recruiting, education, training and career management purposes. 
         [0020]    Another aspect of the present invention is a process to optimize a person&#39;s profile information into a standardized competency profile that can then be found for and measured against any specific job position or work need. The process includes identifying a person&#39;s information from a plurality of sources comprising at least one business and/or one social networking website, whether self-authored or derived. The process also includes searching the person&#39;s profile information for a location string comprising at least one of zip code, metropolitan descriptor, work location, education location or country. The process also includes generating at a competency server a location attribute for a person from the location string of the person&#39;s profile information. The location attribute comprises a latitude and longitude and/or North, South, East, West coordinate area for the person. The process also includes searching the person&#39;s profile information for an education profile of the person. The education profile comprises at least one term or phrase relating to an education level. The process also includes mapping at the competency server the term or phrase to at least one standard education level of high school level, associates degree level, bachelors degree level, masters degree level, doctorates degree level and post-doctorates degree level to generate an education attribute from the standard education level for the person. The process also includes searching the person&#39;s profile information for the person&#39;s work experience profile. The process also includes generating at the competency server three experience codes for each of the person&#39;s work experiences, based on job title, industry and job overview, to generate a work experience attribute. The process also includes searching the person&#39;s work experience profile for a duration string for each work experience, containing at least one of a start date, end date or total elapsed time component for each work experience. The process also includes generating a plurality of competency matrix attributes at the competency server. The process also includes searching a data store for a list of other work experience codes. The process also includes generating a plurality of job transition attributes at the competency server. The process also includes generating at the competency server a optimized competency profile for a person comprising the location attribute, the education attribute, the work experience attribute the plurality of competency matrix attributes and the plurality of job transition attributes. 
         [0021]    The present invention receives or retrieves personal profile information from multiple sources via various Application Programming Interfaces (“API”), data transfers, or like technologies. This file is called a Raw Profile. Basic information such as name, email, location, personal overview, and so on. is extracted (where available) from the Raw Profile, without any particular unique intellectual property being specifically used or required/developed. 
         [0022]    The present invention also derives whatever location information is provided in the Raw Profile. This could be as broad as a country name, a localized slang term for a region or area of a city, right to a fully detailed country, state, city, or postal data set. 
         [0023]    Having briefly described the present invention, the above and further objects, features and advantages thereof will be recognized by those skilled in the pertinent art from the following detailed description of the invention when taken in conjunction with the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0024]      FIG. 1  is a block diagram of the general flow of a system of the present invention. 
           [0025]      FIG. 2  is a screen page illustrating a personal website containing information. 
           [0026]      FIG. 3  is a flow chart of a specific method of the present invention. 
           [0027]      FIG. 4  is a flow chart of a specific method of the present invention. 
           [0028]      FIG. 5  is a flow chart of a specific method of the present invention. 
           [0029]      FIG. 6  is a flow chart of a specific method of the present invention. 
           [0030]      FIG. 6A  is a flow chart of a specific method of the present invention. 
           [0031]      FIG. 7  is a schematic representation of the location determining function of the present invention. 
           [0032]      FIG. 8  is a flow chart of a specific method of the present invention. 
           [0033]      FIG. 9  is a flow chart of a specific method of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0034]    A system Z 1 , according to a preferred embodiment of the present invention, uses scale-out architecture with non-relational data stores, i.e., NoSQL systems. The preferred embodiment of the present invention comprises of a series of independent engines as shown in  FIG. 1 . Each engine is developed separately and is independent; so each engine is responsible for queuing and prioritizing its work, and for maintaining and processing its data. This allows various functions to scale at different rates to take advantage of unique technologies that are suited for individual engines, as applicable. 
         [0035]    A system Z 1  of the present invention simplifies utilizing Platform as a Service (PaaS) hardware. PaaS is a platform layer of cloud computing, offering hardware architecture services over the World Wide Web. A present system Z 1  utilizing PaaS speeds up deployment by allowing hardware to be functional online quickly and economically. 
         [0036]    In a preferred embodiment, the components of a system Z 1  use message queues for communication. The queues allow for multiple application instances to service any request, and allow for prioritizing tasks. 
       Overview of the Engines 
       [0037]      FIG. 1  shows a system Z 1  of the present invention. In a preferred embodiment of the present invention, a system Z 1  begins at the Profile Sourcing Engine (PSE)  10 . The PSE  10 , as one of two sources for incoming profiles, collects resume data, regardless of it&#39;s original format, off of websites. 
         [0038]      FIG. 2  illustrates a typical personal profile on a web page W 10  containing the kind of information that the PSE  10  can take in. 
         [0039]    The PSE  10  parses the resumes to standardize the profile, and then converts them into HR-XML format. HR-XML is standardized Extensible Markup Language (XML) vocabularies for human resources (HR) data, the preferred format for a system Z 1 . 
         [0040]    The externally collected resumes can be either new data to a system Z 1  or updated data of an existing profile in a system Z 1 . The PSE  10  also takes in any internal data that needs to be converted into HR-XML. All data exiting the PSE  10  is placed individually onto the update queue of the Incoming Profile Processing Engine (IPPE)  12 . 
         [0041]    For external scraping of websites such as LinkedIn (a professional networking site on the World Wide Web at linkedin.com), a role is placed on Azure (the Window Azure Queue delivers the messages for the application), which requests files from 80 legs (a service for web crawling and processing web content). The files are read one profile at a time and processed by the PSE  10 . 
         [0042]    In another embodiment of the present invention, the Profile API (application programming interface)  11 , or pAPI, is another source for incoming profiles. 
         [0043]    The standardized HR-XML profile data produced by the PSE  10  is called the Raw Profile R 10 . This Raw Profile R 10  data is passed via a message onto the update queue for the IPPE  12 . 
         [0044]    The message is de-queued and the Raw Profile R 10  is categorized based on the data supplied. The categorization includes determining the profile&#39;s geographical location and applying specific codes to their work experiences. 
         [0045]    After categorization, the Raw Profile R 10  is then further optimized with additional inferred data. The IPPE  12  preferably holds data locally but alternatively uses a reference data store to load categorization data out of a start up. 
         [0046]    The Raw Profile R 10  is then verified to determine if the profile contains sufficient data to be searchable. If the profile does not contain sufficient data to be searchable, the profile is never saved or the profile is deleted from the system Z 1 , depending on whether or not the profile is present in the database. 
         [0047]    The Display Data Engine (DDE)  14  determines if a profile exists in the database. If the profile exists, then it is sent to the IPPE  12  to be processed for deletion by forwarding the Profile to the Profile Delete Engine  17 . If the profile does not exist, then the profile is passed onto the Profile Management Engine (PME)  13 . 
         [0048]    The Profile Delete Engine (PDE)  17  deletes profiles that are no longer needed in a system Z 1 . 
         [0049]    The PME  13  determines if a profile has a profile key, and creates profile keys for profiles that do not have one. The PME  13  returns the Profile to the IPPE  12 , which forwards the Profile to the DDE  14  to save the display data of the Profile. That display data is confirmed saved before the Profile is added to the Search Engine (SE)  15 . 
         [0050]    The PME  13  consists of two parts. One part stores the details, as shown in Table I, for every Profile in a distributed non-relational data store. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                 TABLE I 
               
               
                   
                   
               
               
                   
                 Property 
                 Details 
               
               
                   
                   
               
             
             
               
                   
                 SourceType 
                 Details of the system the resume was obtained 
               
               
                   
                   
                 from. E.g., Quiet Agent, LinkedIn, AllianceQ, 
               
               
                   
                   
                 WMW. 
               
               
                   
                 SourceID 
                 A unique identifier for a specific source: e.g., a 
               
               
                   
                   
                 URL. 
               
               
                   
                 ProfileID 
                 An integer. 
               
               
                   
                 ClaimID 
                 This ID is only set if the Profile has been claimed. 
               
               
                   
                 SponsorType 
                 An enumeration type that determines if the profile 
               
               
                   
                   
                 appears in the sponsored listing. 
               
               
                   
                 Created 
               
               
                   
                 Modified 
               
               
                   
                   
               
             
          
         
       
     
         [0051]    The second part of the PME  13  contains Claimed Profile data, which is stored in a distributed partitioned data store. A Claimed Profile is a Profile of which is claimed by a real person as their own; after the person is identified and verified. 
         [0052]    The DDE  14  also holds the ProfileID and the display data object for each profile in order to minimize overhead when displaying profile data. When a Website  18  calls for the display data of a profile, the DDE  14  routes the call to the appropriate node, which provides the display data object for the called profile. 
         [0053]    In a preferred embodiment: the Website  18  executes calls for all profiles in parallel; the object is composed of arrays of the text sections to populate sections of the screen; and display calls take priority over save calls or delete calls. 
         [0054]    The Search Engine (SE)  15  consists of a small number of master nodes that redistribute work out to child nodes. The child nodes all contain a portion of redundant, in memory copies of the total search data. When the child nodes are given search parameters they return a list of the top n-ranked, where n is an integer (e.g., “top  10 ”, “top  100 ”), ZIDs in the section of data. ZIDs are a unique internal (Z) identification number (ID) assigned to each profile by a system Z 1 . The master nodes then sort the results of the top n-ranked profiles and return the result set to the Website  18 . 
         [0055]    If any nodes fail to return a list within the specified time, the same request is then released to a second instance in the node. Whichever instance returns first supplies the data for the search. 
         [0056]    Partitioning for the nodes is done on the basis of IDs, such as 0-1,000,000 on the first server, 1,000,001-2,000,000 on the second server, and so on. 
         [0057]    The Sponsored Profile Engine (SPE)  16  provides the Sponsored Profile data for a search. A Sponsored Profile is a profile that an individual or an organization pays to have that profile show up at the top of relevant search results. 
         [0058]    The Website  18  has a small partitioned data store for the employer with search and fixed data. However, all of the profile data for the Website  18  is provided by the DDE  14 , while the SE  15  and the SPE  16  provides the Website  18  with the ZIDs to display. 
       Standardizing the Profile 
       [0059]    The present invention derives whatever location information is provided from the Raw Profile R 10 . Location information can be directly found in the Raw Profile data, or location information can be formulated by any, or all, of the location discovery processes, as shown in  FIG. 3  through  FIG. 6A . 
         [0060]    Location information directly found within a profile can be a variety of types; such as, but not limited to, a country name, a localized slang term for a region or area of a city, or a complete postal address set of city, state, country and ZIP code. 
         [0061]    If the Raw Profile R 10  has any location data then the present invention retrieves that information through a process L 100 , as shown in  FIG. 3 . 
         [0062]    If the profile R 10  does not have location information L 20 , then the profile moves on to the Uncover Location Process UL 100 , or to the Discard Profile Process DP 100 . 
         [0063]    If the profile has location information L 20 , then the data goes to the Get Location Process GL 100 . 
         [0064]    If the location is found L 30  after the Get Location Process GL 100 , then that location is passed to the Write Location Process WL 100 . The profile is then discarded, Discard Profile Process DP 100 . 
         [0065]    If the location is not found L 30  after the Get Location Process GL 100 , then the profile is passed to the Uncover Location Process UL 100 . 
         [0066]    If the location is found L 40  after the Uncover Location Process UL 100 , then that location is passed to the Write Location Process WL 100 . The profile is then discarded, Discard Profile Process DP 100 . 
         [0067]    If the location is not found L 40  after the Uncover Location Process UL 100 , then the profile is passed to the Discard Profile Process DP 100 . 
         [0068]    The Write Location Process WL 100  is a geocoding process, which will be explained at the end of all the location processes below. 
         [0069]    The Discard Profile Process DP 100  discards the profile from being processed repeatedly, to end processing. 
       Get Location Process 
       [0070]      FIG. 4  shows the Get Location Process GL 100  of the present invention. 
         [0071]    If the Raw Profile R 10  has a ZIP code GL 20 , then the ZIP code is looked up in the ZIP code list to find the corresponding country name GL 30 . If the ZIP code is matched GL 35  to a country name from the tables, then a “SUCCESS” result SC 1  is sent back to the calling process (herein referenced as a SUCCESS call SC 1 ). 
         [0072]    Otherwise, if there is no ZIP code GL 20  in the Raw Profile R 10 , then the next step is to search for a free format location description (Location String) GL 40  in the profile, such as “Greater Boston Area”. 
         [0073]    If a String is found GL 40  in the profile, then the country name is found by matching the Location String against the Location Slang list in the data tables GL 50 . If the country is found GL 55 , return a SUCCESS call SC 1 . Otherwise, if the country cannot be determined GL 55  from the Location String, then the Location String is passed (GL 500 ) to the Google Maps API Process (GMA Process) GM 100 . 
         [0074]    Otherwise, if there is no Location String recognized in the Raw Profile GL 40 , then the next step GL 60  is to search for data elements that contain any other address information from the profile; such as, but not limited to, a city, a region, a state, or a town. If other address information is found GL 60 , then a Location String will be concatenated GL 70  from whatever location information that is available. 
         [0075]    The concatenated Location String will be matched against the Location Slang list GL 50  to determine the country. 
         [0076]    If the country is found from the concatenated Location String GL 55 , then return a SUCCESS call SC 1 . 
         [0077]    Otherwise, if the concatenated Location String cannot be matched to a country GL 55 , then the Location String is passed (GL 500 ) to the GMA Process GM 100 . 
         [0078]    The GMA Process GM 100  uses the public Google Maps Application Programming Interface (API) to determine a geographical name from the Location String. If a geographical name is determined and it is a single match (for example, “Orange County” is not a single match because there is an Orange County, California and an Orange County, Florida), then the search parameters and the results are both saved to the data tables for future use in searches. 
         [0079]    The Location String is passed to the GMA Process GM 100 . 
         [0080]    If Google returns a single match option GL 80 , then return a SUCCESS call SC 1 . 
         [0081]    Otherwise, if there is no match or if there are multiple matches GL 80 , and the Location String has not been passed GL 90  through the Clean Location Process CL 100 , then the next step is to pass the Location String to the Clean Location Process CL 100 . Then, the Cleaned Location String CS 10  is passed back through the GMA process GM 100  again. 
         [0082]    Otherwise, if there is no match or if there are multiple matches GL 80  and the Location String has already been passed GL 90  through the Clean Location Process CL 100 , then the Cleaned Location String is matched against the Location Slang list GL 110  to determine the country. 
         [0083]    If the country is found from a match GL 115 , then return a SUCCESS call SC 1 . 
         [0084]    Otherwise, if the country could not be found GL 115 , then the next step (GL 510 ) is to move on to the Uncover Location Process UL 100 . 
       Clean Location Process 
       [0085]    The Clean Location Process CL 100 , as shown in  FIG. 5 , takes ambiguous location descriptions, such as “The Greater Boston Area”, and cleans out common words and characters used by people to describe an area. 
         [0086]    The Clean Location Process CL 100  starts with a string of words or a phrase (Location String LS 10 ). The Location Cleaner table CL 110  is used to match up words in the table with words in the Location String LS 10  that should be removed from location name. The table has words that people and systems use to define general or specific geographical areas that are typically not standard for the name of a location; such as, but not limited to, “AND”, “&amp;”, “GREATER”, “AREA”, and “LOCAL”. Words can be added to this table at any time. 
         [0087]    After removing matching words CL 120  from the Location String LS 10 , the process returns just the geographical name a system (e.g., Google, a search engine), uses to define locations. The process writes CL 130  the remaining words to the clean Location String, resulting in a Cleaned Location String CS 10 . 
       Uncover Location Process 
       [0088]      FIG. 6  shows the Uncover Location Process flow UL 100 . 
         [0089]    The Uncover Location Process UL 100  derives a probable location attribute of the person based on the sum of the other location information in the Raw Profile R 10 . The process will assess information such as, but not limited to, the person&#39;s current job location, locations in their history of jobs, and their education records. 
         [0090]    The Uncover Location Process UL 100  starts with any work experience records, Work Record WR 10 , of the Raw Profile R 10 . 
         [0091]    If the profile has work experience UL 20 , then each Work Record WR 10  is checked to see if there is a “CURRENT JOB” property by using the process (UL 40  and UL 50 ) below: 
         [0092]    Search the Work Record WR 10  for any key words pertaining to a current job UL 40 , such as “CURRENT”, “CURRENT EMPLOYER”, “STILL EMPLOYED”, and so on; OR, 
         [0093]    Search the Work Record WR 10  for a null employment “END DATE” property UL 50 . 
         [0094]    If the Work Record WR 10  is not a “Current” record UL 60 , then the process checks for more Work Records WR 10  (UL 90 ), until every Work Record WR 10  is checked for a “Current” property. 
         [0095]    If a work record is derived as “Current” UL 60 , per the two-step process above, then whatever location information is obtained from that work record is passed on to the Get Location Process GL 100 . 
         [0096]    If the location is found UL 70  after the Get Location Process GL 100 , then that location is passed on to the Write Location Process WL 100 . 
         [0097]    If a Location is not found UL 70  after the Get Location Process GL 100 , then the employer name in the Raw Profile&#39;s R 10  Work Record WR 10  is matched up UL 80  against other profiles that contain employer data in their records. 
         [0098]    If the employer name matches another employer with location data UL 85 , then the location information of that employer is passed on to the Write Location Process WL 100 . 
         [0099]    If the employer name is not found UL 85  and if there are any more Work Records UL 90 , the next Work Record WR 10  is checked. 
         [0100]    If after each Work Record WR 10  is checked and none are recognized as “Current” UL 90 , then the next process UL 600  is to search for location information from the Raw Profile&#39;s R 10  work history. 
         [0101]    This next process UL 600 , as shown in the second half of  FIG. 6 , calculates the most common location from the collective work locations of the person&#39;s work history by determining where the person has spent most of their time. This process will produce at least a state, but can also produce any other location description, such as, but not limited to, city, ZIP code, or Location String. 
         [0102]    This process UL 600  also compares the Work Record&#39;s WR 10  employer name with other profile data to determine a location from their employer data. 
         [0103]    For each Work Record WR 10 , any location information the Work Record WR 10  contains UL 110  is passed to the Get Location Process GL 100 . 
         [0104]    If there is no location information UL 110 , then the Education Records E 10  are checked in another process UL 700 . 
         [0105]    If the location is found UL 71 , then the information is saved UL 120  and the next Work Record WR 10  is checked, if any more exist UL 130 . 
         [0106]    If the Get Location Process GL 100  did not find a location UL 71 , then the employer name is checked against other profile information UL 81 . 
         [0107]    If the employer name search UL 81  finds a location UL 86 , then the location information is saved UL 120 , and the process continues to check UL 130  for more Work Records WR 10 . If the employer name search UL 80  does not find a location UL 85 , then the next Work Record WR 10  is checked UL 510 . After the last Work Record WR 10  is processed UL 130 , the saved location information is used UL 145  to calculate a work location UL 140 . 
         [0108]    After the last Work Record WR 10  is processed, similar work record locations are grouped into an array by: COUNTRY, STATE, CITY, ZIP, and/or GEO COORDINATES. Then the highest count (being the total number of times a person worked in the same area, representing the most common location a person has worked in across their career), representing the most common location a person has worked in throughout their career, is selected. 
         [0109]    If the highest count is less than 2, then the location is set to the most recent work experience, and this location is passed to the Write Location Process WL 100 . 
         [0110]    If there are two more locations with the same count of greater than 1, then the location is set to the highest count with the most recent work experience. This location is passed to the Write Location Process WL 100 . 
         [0111]    If the Raw Profile R 10  does not have any Work Records WR 10  (at UL 20 ), then the educational records, Education Records E 10 , are searched for location data through another process UL 700 , as shown in  FIG. 6   b.    
         [0112]    This process is particularly important for determining the location of those without work records: such as students, the unemployed, others who lack work experience, or from social networking sites such as Facebook (found on the World Wide Web at facebook.com). 
         [0113]    If the Raw Profile R 10  has Education Records UL 210 , then each Education Record E 10  of the profile is scanned for a “Current” student status by the process below (UL 230  and UL 240 ):
       Search the Education Record E 10  for any “Graduation” data properties, “Graduated” flags, or any key words pertaining to graduation UL 230 , such as a “GRADUATION”, “FINISH DATE”, “DEGREE RECEIVED”, and so on; OR,   Search the Education Record E 10  for a null education “END DATE” property UL 240 .       
 
         [0116]    If the Education Record E 10  is derived as “Current” UL 250  from the two-step process above, then any location information obtained from that Education Record E 10  is passed to the Get Location Process GL 100 . Then, any location information found UL 260  is passed to the Write Location Process WL 100 . 
         [0117]    If a location is not found UL 260  from the Get Location Process GL 100 , then the institution name from the Education Record E 10  is matched UL 270  against other profiles that contain the same institution name data in their education records. 
         [0118]    If the institution name is found UL 275 , then the data is passed to the Write Location Process WL 100 . 
         [0119]    Otherwise, if the institution name is not found UL 275 , the process moves on to the next Education Record E 10 , if any UL 280 . 
         [0120]    If there is no Education Record E 10  in the Raw Profile R 10  (at UL 210 ), or after reviewing every Education Record E 10  (at UL 280 ), then the Raw Profile R 10  is passed to the Discard Profile Process DP 100 . 
         [0121]    The Discard Profile Process DP 100  process removes the Raw Profile R 10  from the processing queues. 
       Write Location Process 
       [0122]    The Write Location Process WL 100  is the geocoding process. This process simply takes the data collected from the various location discovery processes and sets the geographic coordinates (Geo Coordinates) of the “Current Location” field of a Raw Profile R 10 . The Geo Coordinates, written as longitude and latitude coordinates, represent a person&#39;s residential location. 
       Optimizing the Profile for Geo Searching 
       [0123]    In the process for optimizing the Raw Profile R 10  for geo searching, a series of coordinate values defining the searchable areas this person can be found for is pre-calculated and written to their Optimized Profile. The series of coordinate values is a set of pre-determined distances from the Profile&#39;s geo coordinates, such as 5, 10, 25, or 50 miles away from the Profile&#39;s location. 
         [0124]    The pre-calculated distances in the Optimized Profiles enable faster searching capability, eliminating the time and resource intensive processes of real-time calculations. 
         [0125]      FIG. 7 , illustrates an area that a series of coordinates (e.g., 5, 10, 25, and 50 miles away from a profile&#39;s house) encompasses OP 100 . These pre-determined coordinates are in the Optimized Profile. When Employer A searches for candidates within 45 miles of the warehouse OP 120 , the profile OP 110  will show up in the search results of potential candidates for Employer A. When Employer B searches for candidates within 35 miles of the office OP 130 , the profile OP 110  will not show up in the results of potential candidates for Employer B. 
       Education Records 
       [0126]    In  FIG. 8 , a process ER 100  extracts a country name, either from the Raw Profile&#39;s R 10  Education Records E 10  or from the Profile&#39;s R 10  location information, for use in the Standardize Education Process SE 100 . 
         [0127]    For each Education Record E 10  the person has in their Raw Profile R 10 , the name of the institution is checked against institutional names that have a corresponding country in the data tables E 20 . 
         [0128]    If the institution name is matched and a corresponding country is found E 25 , the name of the country is passed to the Standardize Education Process SE 100 . 
         [0129]    Otherwise, if the institution name is not matched E 25  to a country, the Education Record E 10  is passed to the Get Location Process GL 100 . 
         [0130]    If a country is found E 30  after going through the Get Location Process GL 100 , then the country is passed to the Standardize Education Process SE 100 . 
         [0131]    Otherwise, if a country is not found E 30  after going through the Get Location Process GL 100 , then the country of the profile&#39;s location E 40  is passed to the Standardize Education Process SE 100 . 
       Standardize Education Process 
       [0132]    The Standardize Education Process SE 100  standardizes the various ways people enter, spell, reference, or notate the level of education, in terms of academic degrees, to basic groups (Group). 
         [0133]    The data that enters the Standardize Education Process SE 100  is the entire Education Record E 10 . 
         [0134]    The Education Record E 10  is searched against map-translation terms assigned to each of the educational levels for a country. 
         [0135]    Table II shows the map-translation terms; each country has a table of all the country&#39;s educational levels. 
         [0000]    
       
         
               
               
               
               
             
           
               
                   
                 TABLE II 
               
               
                   
                   
               
               
                   
                 Level 
                 Slang 
                 Group 
               
               
                   
                   
               
             
             
               
                   
                 GED 
                 GED, General Ed Degree, General 
                 High School 
               
               
                   
                   
                 Ed, ED, general 
               
               
                   
                 Bachelors 
                 Bachelors, BA, BS 
                 Bachelors 
               
               
                   
                 Masters 
                 Masters, MA, MS 
                 Advanced 
               
               
                   
                 Doctorate 
                 Double doctorate, PhD 
                 Advanced 
               
               
                   
                   
               
             
          
         
       
     
         [0136]    A field in each record contains the slang or common terms used to define each educational level. The profile data entering into a system Z 1  comes from profile/candidate systems and databases that allow people to enter free-format or loose information; a person can enter in any type of value rather than pick from a structured list. 
         [0137]    The field with the slang terms eliminates the issues a recruiter faces in trying to provide an equal recruitment process, especially with spelling differences or when information is missing. 
         [0138]    Each educational level is assigned a Group name, which is recorded into the Raw Profile&#39;s R 10  Optimized Profile. 
         [0139]    Since people are not always sure what level of education they want in their candidate requirements to a specific degree, such as a Master&#39;s degree or a Doctoral degree, the educational levels are grouped into basic selection Groups to make the search process simpler for the end user: HIGH SCHOOL, ASSOCIATES, BACHELORS, ADVANCED. Thus, a search result for ADVANCED levels of education will return candidates with Master&#39;s degrees or Doctoral degrees, or other advanced degrees. 
       Globalizing Education Levels 
       [0140]    Educational levels are mapped globally, as shown in Table III, enabling a search to include people with foreign degrees. 
         [0141]    Globalizing educational levels allows a United States (U.S.) based user searching Globally, for someone with at least a BACHELORS level of education, to find profiles of people with international degrees equivalent to the U.S. BACHELORS degree. 
         [0000]    
       
         
               
             
               
               
               
               
             
           
               
                 TABLE III 
               
             
             
               
                   
               
               
                 International Degree Equivalency 
               
             
          
           
               
                 Level 
                 Slang 
                 Group 
                 Regional 
               
               
                   
               
               
                 GED 
                 GED, General Ed 
                 High 
                 New Zealand: School 
               
               
                   
                 Degree, General ed, ed, 
                 School 
                 Certificate 
               
               
                   
                 general, and so on. 
                   
                 New Zealand: Sixth 
               
               
                   
                   
                   
                 Form Certificate 
               
               
                   
                   
                   
                 Australia: Certificate 1 
               
               
                   
                   
                   
                 Other countries . . . 
               
               
                 Bachelors 
                 Bachelors, ba, bs, and 
                 Bachelors 
                 United Kingdom - 
               
               
                   
                 so on. 
                   
                 O Level 
               
               
                   
                   
                   
                 Other countries . . . 
               
               
                 Masters 
                 Masters, ma, and so on 
                 Advanced 
                 Germany: Diplom 
               
               
                   
                   
                   
                 Germany: Magister 
               
               
                   
                   
                   
                 Other countries . . . 
               
               
                 Doctorate 
                 Double doctorate, PhD, 
                 Advanced 
                 Argentina: doctorado 
               
               
                   
                 and so on. 
                   
                 Other countries . . . 
               
               
                   
               
             
          
         
       
     
       Standardize Work Experience Records 
       [0142]    The Optimized Profile is based on a standard taxonomy structure and rule set. Essentially, there is a fixed set of options that every element of information is selected from. The elements are stored in the profile data. 
         [0143]    A standard taxonomy resolves the exclusion of applicable candidates due to spelling errors, and resolves differing job titles to enable equalized candidate results. 
         [0144]    To determine which set of fixed options to exercise on select profiles at select terms, a series of processes, similar to the location processes, determines the element from the taxonomy that best represents the information. 
         [0145]    Part of the taxonomy includes using a public standard for job information that provides job attributes; such as skills, tasks, competencies, work activities and a number of other parameters useful in defining the job&#39;s ideal person or candidate. 
         [0146]    In a preferred embodiment of system Z 1 , the public standard for job information utilized is the United States Department of Labor/Employment and Training Administration (USDOL/ETA) O*NET (Occupational Information Network) OnLine resource, found on the World Wide Web at online.onetcenter.org. 
         [0147]    In another embodiment of system Z 1 , another data set or a future public standard can be utilized as the standard for job information. 
         [0148]    To derive the best potential O*NET Standard Occupational Classification (SOC) Code, a third-party product, O*NET-SOC AutoCoder is used. The O*NET-SOC AutoCoder takes a block of text, such as a job description, and returns a list of probable O*NET SOC occupational codes that are suitable for job classification. 
         [0149]    The use of O*NET eliminates the problems of various job titles being interchangeably used for the same job description or function. In a search for “ACCOUNTANT”, a typical search engine that works on key words will find people who are or have been an “ACCOUNTANT”, provided that “ACCOUNTANT” is written somewhere in their job title or description. Using the O*NET-SOC AutoCoder as part of the process below allows searches to uncover not only an “ACCOUNTANT”, but also; “FINANCIAL ANALYST”; “CFO”; “BOOKKEEPER”; and other titles that do not necessarily have “ACCOUNTANT” in their job title or description. 
         [0150]    Another outcome of the search can be potential accountants; people who are not accountants but are qualified to become one based on their job history. 
       Get AutoCoder Process 
       [0151]    The Get AutoCoder process AC 100  is shown in  FIG. 9 . This process retrieves the O*NET SOC occupational codes for the profile&#39;s Work Records WR 10 , as Experience Codes. 
         [0152]    Each Work Record WR 10  of the Raw Profile R 10  is passed to the Get AutoCoder Process AC 100 . 
         [0153]    The Raw Profile&#39;s JOB TITLE is passed into the AutoCoder: JobTitle API field AC 30 . 
         [0154]    The Raw Profile&#39;s JOB INDUSTRY is passed to the AutoCoder: Industry API field AC 31 . 
         [0155]    Then the Raw Profile&#39;s JOB TITLE, JOB INDUSTRY, and any JOB OVERVIEW contained in the Raw Profile R 10  is passed to the AutoCoder: Description API field AC 32 . 
         [0156]    If the AutoCoder returns no matches AC 40 , then the Work Record WR 10  is discarded and the next Record WR 10  is passed AC 50 . 
         [0157]    If the AutoCoder returns one or more results AC 40 , but there are no matches above 50% AC 60 , then the Record WR 10  is discarded and the next Record WR 10  is passed AC 50 . The percentage is of match relevance, this score is provided by O*NET SOC&#39;s AutoCoder. 
         [0158]    If the AutoCoder returns one or more results AC 40  and they have more than a 50% match AC 60 , then the top three scoring results are selected AC 70  for the Primary, Secondary, and Third Experience Codes for the Profile. 
         [0159]    From the top three scoring results, the highest scoring result&#39;s O*NET Code is saved as the Primary Experience Code AC 70  for the Work Record WR 10 . 
         [0160]    If there is a second match AC 80 , then the second highest scoring result&#39;s O*NET Code is saved as the Secondary Experience Code AC 81 . 
         [0161]    Otherwise, if there is no second match AC 80 , then the Primary Experience Code is saved as the Secondary Experience Code AC 82 . 
         [0162]    If there is a third match AC 90 , then the third match&#39;s O*NET Code is saved as the Third Experience Code AC 91 . 
         [0163]    Otherwise, if there is no third match AC 90 , then the Primary Experience Code is also saved as the Third Experience Code AC 92 . 
         [0164]    The Get AutoCoder Process AC 100 , produces three O*NET-SOC Codes, shown in Table IV, which are then assigned to the individual Work Record WR 10 . 
         [0000]    
       
         
               
               
               
               
               
             
           
               
                   
                 TABLE IV 
               
               
                   
                   
               
               
                   
                 Job Title 
                 Primary 
                 Secondary 
                 Third 
               
               
                   
                   
               
             
             
               
                   
                 Accountant 
                 13-2011.01 
                 13-2011.00 
                 13-2011.04 
               
               
                   
                   
               
             
          
         
       
     
         [0165]    In the Get Auto-Coder Process AC 100  above, a free format job title is rationalized down to three highly probable O*NET-SOC Code matches. This allows the profile to be included in the search process for any job that falls into these three job categories. This typically represents three n×n chances the profile can be found for a relevant job (potential opportunity). “n” is the number of jobs in that category. 
         [0166]    Profiles that were slightly misclassified by the Auto-Coder due to some anomaly or to poorly written job titles making it difficult to determine the exact O*NET match can still be found in a search. The Z system basically gives us a ‘fuzzy logic’ approach to help decide WHO gets included in a search based purely on their work history. 
       Optimizing the Profile 
       [0167]    Optimizing the Profile normalizes skills, tasks, competencies, work activities, knowledge and working styles that a person has or can have accumulated over their entire career, enabling searches to produce a quality result set, as well as enabling a ranked result set. 
         [0168]    The WEAM (Work Experience Attribute Matrix) is a predictive competency matrix summarizing all the skills and experiences a person has or can have amassed over their entire career. 
         [0169]    In a preferred embodiment, the attributes in the WEAM are based off of the USDOL O*NET standard. 
         [0170]    In another embodiment, the attributes in the WEAM can be based off of any occupational standard database. 
         [0171]    The WEAM is essentially a score for each attribute required in a job, that relates to the level of application, proficiency, and/or exposure a candidate performing the job should be at, when compared in specific time periods. 
         [0172]    Each O*NET job (a job with an assigned O*NET-SOC Code) includes a series of attributes (Attributes) that define the skills, competencies, tasks, and other related requirements specific to the job. 
         [0173]    O*NET has defined these core job related Attribute Sets as: SKILLS; TOOLS &amp; TECHNOLOGY; KNOWLEDGE; ABILITIES; WORK ACTIVITIES; WORK CONTEXT; WORK STYLES; and WORK VALUES. 
         [0174]    In each Attribute Set there are a number of relevant Attributes: Critical Thinking, Decision Making, and Systems Analysis are just a few of the many Attributes under the SKILLS Attribute Set for an ACCOUNTANT. 
         [0175]    O*NET assigns each Attribute a weight, quantifying the importance of that Attribute to the associated job. The value of the weight is utilized as a multiplier to extract an accumulated score amassed during a person&#39;s time in a job position for each Attribute pertaining to that job. 
         [0176]    The multiplier produces approximately 50,000 different job Attributes, which are ordered, ranked, and weighted for a profile. These job Attributes are mapped and scored during a search to deliver a ranked result set based on the combination of predicative competency across individual Attributes and across Attribute Sets as they apply to various jobs. 
         [0177]    The mapping and scoring allows for two individuals with almost an identical work history to be ranked by their experiences or actual performance, as opposed to just by their job titles. If two people working in the same role for the same amount of time move into the same promotion at the same time, but one person also performed a specific function in the previous role that enhances the person&#39;s skills for the promotion, then the person without the additional skills will rank lower in competency (shared Attribute scores) than the other person. 
         [0178]    Each Attribute for each job in the profile&#39;s work history is scored and then formulated to result in a single “Competency Score”, which is the total acquired competency a person has in each Attribute. 
         [0179]    The Competency Score given to a profile for any Attribute is determined by a few factors:
       a. The length of time performing the job that requires the Attribute;   b. The length of time passed since the person performed the job; and   c. The level of the job, based on requirements, such as experience, training, education, or skills.       
 
         [0183]    Accordingly, the Competency Score will rank a person who is currently performing a job for 3 years higher than a person who performed the same job for 10 years, but 5 years ago. 
         [0184]    Attributes Sets are also ranked according to importance. The Attribute Set is valued in relation to the effect its score has on the overall search. 
         [0185]    Table V shows the Multipliers, or nominal values, which are used to calculate each individual Attribute. A score for a SKILL based Attribute is about twice as valuable as an Attribute from TOOLS &amp; TECHNOLOGY. 
         [0186]    This multiplier is known as the AttributeSet.Multiple. 
         [0000]    
       
         
               
               
               
             
               
               
               
             
           
               
                   
                 TABLE V 
               
               
                   
                   
               
               
                   
                   
                 Multiplier 
               
               
                   
                   
                 Importance of Attribute Set 
               
               
                   
                   
                 in relation to another (set) in 
               
               
                   
                 Attribute Set 
                 the overall Search 
               
               
                   
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 Skills 
                 2 
               
               
                   
                 Tools &amp; Technology 
                 1.2 
               
               
                   
                 Abilities 
                 1 
               
               
                   
                 Knowledge 
                 1 
               
               
                   
                 Work Activities 
                 1 
               
               
                   
                 Work Context 
                 0.8 
               
               
                   
                 Work Styles 
                 0.7 
               
               
                   
                 Work Values 
                 0.6 
               
               
                   
                   
               
             
          
         
       
     
         [0187]    Another multiplier is applied to the score based on the length of time a person performed a role. 
         [0188]    This multiplier is known as Time.Scalar, shown in Table VI. 
         [0000]    
       
         
               
               
               
             
               
               
               
             
           
               
                   
                 TABLE VI 
               
               
                   
                   
               
               
                   
                 Years in a Role 
                 Scalar 
               
               
                   
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 0-1 Year 
                 0.2 
               
               
                   
                 1-2 Years 
                 0.3 
               
               
                   
                 2-3 Years 
                 0.4 
               
               
                   
                 3-4 Years 
                 0.6 
               
               
                   
                 4-5 Years 
                 0.8 
               
               
                   
                 5-6 Years 
                 0.9 
               
               
                   
                 6-8 Years 
                 0.95 
               
               
                   
                 More than 8 Years 
                 1.0 
               
               
                   
                   
               
             
          
         
       
     
         [0189]    Another multiplier is based on the length of time passed since the person performed the job. Lapsed time since experience gained degrades or increases the value of the competency. 
         [0190]    This multiplier is known as Recent.Scalar, shown in Table VII. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                 TABLE VII 
               
               
                   
                   
               
               
                   
                 Time Set 
                 Scalar 
               
               
                   
                   
               
             
             
               
                   
                  0-3 Years ago 
                 1.0 
               
               
                   
                  3-6 Years ago 
                 0.7 
               
               
                   
                 6-10 Years ago 
                 0.5 
               
               
                   
                 More than 10 years ago 
                 0.1 
               
               
                   
                   
               
             
          
         
       
     
         [0191]    The WEAM is built using the Weighted Attributes as the starting score for the Attribute, and then the multipliers are used to formulate a Competency Score for the Attribute that relates to the person&#39;s time in the job. 
         [0192]    Weighted Attributes are Attributes with an assigned O*NET score. The score is based on the Attribute&#39;s importance in performing a job. 
         [0193]    To begin the process, each Work Record WR 10  in a profile sets a time value (TIME). 
         [0194]    If the Work Record WR 10  has a Start Date and an End Date, then the TIME is set by subtracting the Start Date from the End Date. 
         [0195]    Otherwise, if there is no Start Date in the Work Record WR 10 , then the date at the present time; i.e., Today&#39;s Date, is set as the Start Date. 
         [0196]    Otherwise, if the End Date is missing, the TIME is set as 18 Months. 
         [0197]    The Time.Scalar value corresponding to the TIME value is selected. 
         [0198]    Then the Recent.Scalar value corresponding to the length of time passed since performing the job is selected. 
         [0199]    For each Weighted Attribute identified in O*NET, related to the job, a Competency Score is calculated by the following formula: 
         [0000]      Score=WeightedAttribute.Value×Time.Scalar×Recent.Scalar×AttributeSet.Multiple.
 
         [0200]    Update WEAM.Attribute.Score=WEAM.Attribute.Score+SCORE. This is related to adding itself to itself as one builds the WEAM.Attribute.Score as one calculates the attribute across multiple work experiences leading to accumulation. For example, Competency Score=Weighted.Attribute.Value×Time Scalar×Recent Scalar×Attribute.Set.Multiple+Competency Score (being the Competency Score one started with before one calculated (ADDED) the score associated to the next work experience. 
         [0201]    The result is a compounding or aggregate “Competency Level”, as a score, for each job Attribute a person has experienced over their career. If a person has been exposed to the same Attribute multiple times from various jobs, then the WEAM.Attribute.Score ensures that the person&#39;s Competency Level adjusts appropriately in the aggregate. 
         [0202]    The WEAM is re-calculated monthly to update the scores based on real time to ensure that people with “Current” experiences continue to score higher than people with past experiences. 
       Skills &amp; Job Fit 
       [0203]    Eight O*NET Attribute Sets define key areas of work experience: 
         [0204]    d. SKILLS; 
         [0205]    e. TOOLS &amp; TECHNOLOGY; 
         [0206]    f. KNOWLEDGE; 
         [0207]    g. ABILITIES; 
         [0208]    h. WORK ACTIVITIES; 
         [0209]    i. WORK CONTEXT; 
         [0210]    j. WORK STYLES; and 
         [0211]    k. WORK VALUES. 
         [0212]    The individual Attributes that have been scored in the process above can be grouped into these Attribute Sets to give combined scores for a set. 
         [0213]    The Attribute Sets are bundled into two groups, SKILLS and JOB FIT, as shown in Table VIII. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                 TABLE VIII 
               
               
                   
                   
               
               
                   
                 GROUP 
                 CONTAINS O*NET ATTRIBUTE SETS 
               
               
                   
                   
               
             
             
               
                   
                 SKILLS 
                 Skills 
               
               
                   
                   
                 Tools and Technology 
               
               
                   
                 JOB FIT 
                 Knowledge 
               
               
                   
                   
                 Abilities 
               
               
                   
                   
                 Work Activities 
               
               
                   
                   
                 Work Context 
               
               
                   
                   
                 Work Styles 
               
               
                   
                   
                 Work Values 
               
               
                   
                   
               
             
          
         
       
     
         [0214]    With the two groups, two scores are pre-calculated for every job a person has performed, or for every potential job the person can perform. 
         [0215]    The SKILLS and JOB FIT SKILLS and JOB FIT scores for every job in the profile is saved to the Optimized Profile. 
         [0216]    Further use of the SKILLS and JOB FIT scores is in the Search and Rank algorithm. 
         [0217]    From the it is believed that those skilled in the pertinent art will recognize the meritorious advancement of this invention and will readily understand that while the present invention has been described in association with a preferred embodiment thereof, and other embodiments illustrated in the accompanying drawings, numerous changes, modification and substitutions of equivalents may be made therein without departing from the spirit and scope of this invention which is intended to be unlimited by the foregoing except as may appear in the following appended claim. Therefore, the embodiments of the invention in which an exclusive property or privilege is claimed are defined in the following appended claims.