[go: up one dir, main page]

WO2018129550A1 - Smart recruiting systems and associated devices and methods - Google Patents

Smart recruiting systems and associated devices and methods Download PDF

Info

Publication number
WO2018129550A1
WO2018129550A1 PCT/US2018/013015 US2018013015W WO2018129550A1 WO 2018129550 A1 WO2018129550 A1 WO 2018129550A1 US 2018013015 W US2018013015 W US 2018013015W WO 2018129550 A1 WO2018129550 A1 WO 2018129550A1
Authority
WO
WIPO (PCT)
Prior art keywords
interviewers
message
list
available
revised
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2018/013015
Other languages
French (fr)
Other versions
WO2018129550A9 (en
Inventor
Yenireddy DEEPTI
Alluri NAVEEN VARMA
Shiv Kumar Agarwal
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
My Ally Inc
Original Assignee
My Ally Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by My Ally Inc filed Critical My Ally Inc
Publication of WO2018129550A1 publication Critical patent/WO2018129550A1/en
Publication of WO2018129550A9 publication Critical patent/WO2018129550A9/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups

Definitions

  • the present technology relates generally to devices, systems, and methods for managing personnel recruiting tasks and communications.
  • various embodiments of the present technology are related to smart recruiting systems and associated devices and methods.
  • Figure 1 is a block diagram illustrating an autonomous/smart recruiting system configured in accordance with embodiments of the present technology.
  • Figure 2A is a block diagram illustrating components of a natural language processing system configured in accordance with embodiments of the present technology.
  • Figure 2B is a block diagram illustrating sub-components of a natural language processing system configured in accordance with embodiments of the present technology.
  • Figures 3-5 illustrate metrics reports configured in accordance with embodiments of the present technology.
  • Figure 6 is a block diagram illustrating method for processing a task message in accordance with embodiments of the present technology.
  • Figure 7 is a block diagram illustrating a method for processing a new task message in accordance with embodiments of the present technology.
  • Figure 8 is a block diagram illustrating a method for processing a candidate reply in accordance with embodiments of the present technology.
  • Figure 9 is a block diagram illustrating a method for processing an interviewer reply in accordance with embodiments of the present technology.
  • Figure 10 is a block diagram illustrating an overview of devices on which some implementations can operate.
  • Figure 1 1 is a block diagram illustrating an overview of an environment in which some implementations can operate.
  • the system overcomes the drawbacks of existing recruiting systems that require significant user interaction and/or computing resources.
  • a recruiter is tasked with identifying potential candidates and scheduling multiple rounds of interviews (also known as "loops") to fill a requisition.
  • This typically requires multiple exchanges with job portals, other recruiters, candidates, and interviewers via email, telephone calls, text messages, Ul interaction, and/or other communication modalities.
  • the recruiter must also repeatedly interact with a scheduling system (e.g., calendars) to schedule interviews and/or reschedule interviews. In addition to taking an inordinate amount of time, all of this consumes significant processing capabilities, for example, of a computing system and/or a telecommunications system.
  • current systems are prone to errors that may arise when accessing and scheduling meetings that include multiple participants. These problems are compounded when multiple interview rounds are to be conducted.
  • Embodiments of the smart recruiting system disclosed herein provide autonomous and smart assistance in processing and analyzing task messages (e.g., received via emails, telephone calls, text messages, etc.) to schedule interviews, reschedule interviews, and/or perform follow-ups to move a candidate through the hiring process.
  • the smart recruiting system integrates with existing applicant tracking systems and is triggered by, e.g., task messages sent in natural language, text-based, or voice based, to automate the intended task.
  • the smart recruiting system can also source candidates from different platforms, engage with new candidates, and re-engage with past candidates.
  • the smart recruiting system provides efficiencies in the usage of computing and/or telecommunication resources. For example, the smart recruiting system minimizes the number of interactions that are typically required when scheduling and rescheduling interviews. By accessing calendars of both the potential candidate(s) and interviewers, the smart recruiting system can automatically check the availability of all parties and identify common available time slots. Moreover, the smart recruiting system efficiently processes and manages reschedule requests without requiring (or at least minimizing) human interaction. This results in efficient usage of computing and/or telecommunication resources, as well as reducing the occurrence of errors and mistakes.
  • FIG. 1 is a block diagram illustrating an autonomous/smart recruiting system 100 (referred to as "smart recruiting system 100") configured in accordance with embodiments of the present technology.
  • the smart recruiting system 100 comprises one or more of the following blocks, each of which is described in further detail below: Integration Layer 120, Natural Language Processing System (NLP System) 125, Workflows 130, Data Storage 135, Recommendation System 140, Sourcing System 145, User Preference Learning System 150, Candidate Engagement System 155, and Candidate Re-engagement System 160.
  • the smart recruiting system 100 can interface, via the Integration Layer 120, to one or more of the following: Applicant Tracking System (ATS) 105, Candidate Sourcing Platforms 1 10, and/or Communication Channels 1 15.
  • ATS Applicant Tracking System
  • the Integration layer 120 can communicate with ATS 105 via Rest APIs or SOAP based APIs etc.
  • ATS 105 may be an application that is designed for a recruitment tracking process. It provides an interface for users to add information about candidates, requisitions, interview loops, and/or other related information. It can also be used to trigger the smart recruiting system 100 to schedule interviews during different stages in the hiring loop. ATS 105 may also be used by the smart recruiting system 100 to communicate with potential candidates, interviewers, and related personnel.
  • the smart recruiting system 100 can integrate with existing Applicant Tracking Systems, such as Greenhouse, Taleo Business Edition, Taleo Enterprise Edition, Success Factors, Smart recruiters, and/or other similar tracking systems.
  • Candidate Sourcing Platforms 1 10 may be used to identify potential candidates for a requisition.
  • Candidate Sourcing Platforms 1 10 provides an interface for users to search/browse information about candidates (e.g., skills sets, technical profile, work history, resumes, etc.).
  • the smart recruiting system 100 can integrate with existing Candidate Sourcing Platforms 1 10, such as Linkedln, Indeed, Dice, Monster, Glassdoor, and/or other similar candidate sourcing platforms.
  • Communication channels 1 15 may be used by smart recruiting system 100 to interact with both the candidates, interviewers, and related personnel.
  • the smart recruiting system 100 can also retrieve interviewers' or candidate's availability information by accessing each party's calendar through email and calendar systems.
  • the smart recruiting system 100 may integrate with Gmail and Office 365 through their representational state transfer ("REST") APIs and Microsoft Exchange Servers (e.g., 2010, 2013 and 2016 Versions) using Microsoft's EWS REST APIs.
  • a user can also provide his/her preferences (e.g., days and/or times) for interviews through one of the communication channels.
  • the smart recruiting system 100 can take user preferences into consideration while scheduling interviews. For example, a user can send an email to the Smart recruiting system 100 to not schedule any meetings or phone calls on Monday. Smart recruiting system 100 can identify this as a preference email, extracts relevant data and update the user preferences.
  • Natural Language Processing System (NLP System) 125
  • FIG. 2A is a block diagram illustrating components of the NLP System 125 configured in accordance with embodiments of the present technology.
  • NLP System 125 comprises one or more of the following functional blocks: Entity Extraction 205, Syntactic Parsing 210, Meeting Classification 215, Free Slot Classification 220, Event Slot Selection 225, Dialog State Tracking 230, Intent Modeling 235, and Answer Generation 240.
  • Figure 2B is a block diagram illustrating sub-components that make up each functional block and examples of software packages that may be used to implement some of the functionality of the functional blocks of a natural language processing system configured in accordance with embodiments of the present technology.
  • NLP System 125 comprises various building blocks to extract required information from task messages, understand the context, and respond accordingly.
  • the Entity Extraction 205 block of the NPL System 125 may comprise a Time Reference Extractor that can extract temporal expressions (e.g., times, dates, ranges, durations, etc.) from the task messages and resolve them to a standard timestamp format.
  • the Time Reference Extractor can also combine incomplete temporal expressions that are related to each other. For example, the Time Reference Extractor may analyze the task message, "Let's meet on Monday. I'm available during 2-5pm," and combine "Monday” and "2-5pm"
  • the Time Reference Extractor may classify relevance of extracted time expressions to the meeting. Examples of software packages used by the Time Reference Extractor include, but are not limited to, SuTime annotator from Stanford CoreNLP java library.
  • the Entity Extraction 205 block of the NPL System 125 may comprise a Location Extractor that can extract location expressions occurring in the task messages.
  • the Location Extractor can convert partial location expressions to complete formatted address using, for example, APIs (e.g., Google Maps API).
  • APIs e.g., Google Maps API
  • Examples of software packages used by the Time Reference Extractor include, but are not limited to, Natural Language Toolkit (NLTK), Scikit-learn in Python, Google Maps API , etc.
  • the Entity Extraction 205 block of the NPL System 125 may further comprise a Phone Number Extractor that can extract contact information (e.g., valid phone numbers) from the task messages.
  • contact information e.g., valid phone numbers
  • Examples of software packages used by the Phone Number Extractor include, but are not limited to, NLTK.
  • the Syntactic Parsing 210 block of the NPL System 125 may comprise a Relationship Extractor.
  • the Relationship Extractor can extract relationship expressions by assigning extracted entities to their corresponding owners in the conversation. Examples of software packages used by the Relationship Extractor include, but are not limited to, Parser from Stanford CoreNLP java library, NLTK, etc.
  • the Syntactic Parsing 210 block of the NPL System 125 may comprise an Entity Relevance Classifier that can classify the relevance of extracted entities to the final meeting and ranking the order of preference.
  • Entity Relevance Classifier Examples of software packages used by the Entity Relevance Classifier include, but are not limited to, Parser from Stanford CoreNLP java library, and/or NLTK.
  • the Meeting Classification 215 block of the NPL System 125 may comprise a Type of Meeting Classifier that can classify the type of meeting (e.g., audio call, video call, in-person meeting, etc.) from the task messages.
  • the Type of Meeting Classifier can resolve conflicts from previous messages in the conversation. Examples of software packages used by the Type of Meeting Classifier include, but are not limited to, NLTK and/or Scikit-learn in Python.
  • the Meeting Classification 215 block of the NPL System 125 may comprise a Meeting Priority Classifier that can classify the priority of scheduling the meeting (e.g., urgent, non-urgent, etc.) from the task message.
  • a Meeting Priority Classifier that can classify the priority of scheduling the meeting (e.g., urgent, non-urgent, etc.) from the task message.
  • Examples of software packages used by the Meeting Priority Classifier include, but are not limited to, NLTK and/or Scikit- learn in Python.
  • the Free Slot Classification block 220 of the NPL System 125 may comprise a Free Slot Classifier that can classify if an existing calendar event is Blocked or Not Blocked from title text, attendees, duration, and/or other pertinent information.
  • the Free Slot Classifier can identify free/available time slots for one or more attendees (e.g., interviewers, candidate, etc.). Examples of software packages used by the Free Slot Classifier include, but are not limited to, NLTK and/or Scikit-learn in Python.
  • the Event Slot Selection block 225 of the NPL System 125 may comprise an Event Slot Generator that can select most favorable time slots out of all identified free slots from the calendar. Examples of software packages used by the Event Slot Generator include, but are not limited to, Scikit-learn in Python.
  • the Dialog State Tracking block 230 of the NPL System 125 may comprise a Dialog State tracker that can update and maintain the state of various predictions in the conversation like meeting time, date, duration, etc. after every task message.
  • Examples of software packages used by the Dialog State tracker include, but are not limited to, NLTK, Scikit-learn in Python.
  • the Intent Modeling block 235 of the NPL System 125 may comprise an Action Identification sub-block that can predict the action that needs to be performed next based on information contained in the task message.
  • the Action Identification sub-block can utilize the following information: textual content of the task message, other predicted data in the conversation until then, and/or similar information.
  • Examples of actions include, but are not limited to, sending time slots, sourcing contact details, follow-up, and/or reschedule.
  • Examples of software packages used by the Dialog State tracker include, but are not limited to, NLTK, Scikit-learn in Python,.
  • the Answer Generation block 240 of the NPL System 125 may comprise an Auto Response Generator that can auto-fill the message text that is to be sent in response to a task message.
  • the Auto Response Generator can use identified actions and extracted data to create the message content. Examples of software packages used by the Dialog State tracker include, but are not limited to, NLTK, Scikit-learn in Python.
  • the NPL System 125 can extract the following information this task message:
  • the NPL System 125 can use the extracted information to autonomously generate the following response:
  • the Sourcing System 145 of the smart recruiting system 100 sources candidates from platforms like job boards and social media sites, such as Linkedin, Monster, Glassdoor, and Facebook.
  • the Sourcing System 145 can use certain criteria like required years of work experience, educational background, and skill set etc. from a job description (e.g., requisition) to source potential candidates that match some or all criteria specified in the job description.
  • a job description can be related to a set of desired criteria (e.g., desired skill-set) and/or a set of optional criteria (e.g. , optional skill-set) preferred criteria and a set of essential criteria.
  • the Sourcing System 145 can source potential candidates based on similarities between candidates' information, the set of desired criteria, and/or the set of optional criteria. In some embodiments, the Sourcing System 145 can rank potential candidates based on a similarity metric computed to identify such similarities.
  • the Recommendation System 140 collects the data from multiple sources and makes relevant recommendations.
  • the Recommendation System 140 can provide recommendations based on several factors such as, role of the intended user (e.g., interviewer, recruiter, hiring manager, candidate, etc.), stage of the interviewing process (e.g., pre-screening, main round, follow-up round, etc.).
  • role of the intended user e.g., interviewer, recruiter, hiring manager, candidate, etc.
  • stage of the interviewing process e.g., pre-screening, main round, follow-up round, etc.
  • the Recommendation System 140 can suggest candidates, based on the profiles, for each requisition (e.g., job listing) by integrating with different job boards and find relevant candidates based on keyword matching, mapping past candidates in the system to new job profiles or existing job profiles based on candidates profile, and/or other suitable metrics.
  • the Recommendation System 140 can suggest requisitions based on different job profiles by identifying, based on the candidate's skillset, relevant openings in the database and recommending them to the candidate.
  • the Recommendation System 140 can provide insights to improve hiring process by providing the hiring managers with different metrics to analyze and improve the hiring process.
  • metrics include, but are not limited to: total number of interviews versus time, total number of interviews by each recruiter, total cycle time by team in days (see Figure 3), delay drivers in days (see Figure 4), cancellation by reason (see Figure 5), total number of reschedules and cancellations of interviews by each interviewer, recruiting pipeline statistics, number of times assistant was contacted, recommended interview process/stages, interviewer-candidate match, conference room booking based on priorities, custom conditions in interview process, and/or other metrics related to interviewing and job placement.
  • the User Preference Learning System 150 can learn user preferences from various sources, such as email messages, calendar data, and/or social media. User preferences can be used when the smart recruiting system 100 is determining appropriate actions based on past communications and usage history.
  • the User Preference Learning System 150 of a smart recruiting system 100 can extract following from calendar data: frequent meeting contacts, preferred meeting slots, preferred meeting locations, preferred type of meeting (e.g. , audio call, video call, in-person meeting, etc.), preferred meeting length, preferred number of meeting hours per day, and/or other calendar-related data.
  • the User Preference Learning System 150 can maintain of list of frequent contacts based on number of email communications, number of calendar events, and duration of the events.
  • Each contact can be associated with a priority score and based on which the assistant schedules a meeting.
  • the User Preference Learning System 150 can monitor to identify the preferred meeting slots for the user. It can also keep track of meetings cancellations to adjust the preferred slots accordingly. Similar to maintaining frequent meeting contacts, the User Preference Learning System 150 can autonomously learn about preferred meeting locations from calendar data based on number of meetings scheduled at a particular location. It can also suggest locations based on the user's location and past meetings. The User Preference Learning System 150 can regularly provide useful insights into user's calendar to optimize time spent for meetings.
  • the Candidate Engagement System 155 uses candidate information from, for example, the ATS 105.
  • the Candidate Engagement System 155 can trigger once the candidate enters the system.
  • the Candidate Engagement System 155 can be used to collect further profile information from the candidate regarding relevant experience, skill sets, etc., pre-screen the candidates, suggest relevant jobs and assess a candidate's interest and readiness, etc. This information can be made available to a hiring manager and/or recruiter to take appropriate next steps (e.g., schedule an interview, cancel an interview, follow-up, etc.).
  • the Candidate Engagement System 155 can also engage with the new applicants via one or more communication channels, such as text messaging, chat system, email, audio call, video call, or other communication systems.
  • Candidate Re-engagement System 160 engages with past candidates identified by the recommendation engine and/or screen them for further interviews.
  • Re- engagement process can be very similar to process mentioned in engagement system, except the type of questions and metrics applied are modified to correspond with that of a candidate that was previously in communication with the employer.
  • the Workflows system 130 determines one or more next actions to be taken by the smart recruiting system 100. These workflows can be customized by the user (e.g., an employer or a recruiter).
  • Figure 6 is a block diagram illustrating method 600 for processing a task message in accordance with embodiments of the present technology. The method 600 can be performed using the Workflows system 130 of the smart recruiting system 100 described with reference to Figures 1 -5 and/or other embodiments of smart recruiting systems including certain features of the smart recruiting system 100 described in Figures 1 -5. As shown in Figure 6, a new task message is submitted to the smart recruiting system 100 (act 605).
  • a recruiter may create and submit a requisition for a job posting using a user interface (e.g., website, mobile application, etc.).
  • the new task message may be received from the ATS 105.
  • a new task in the ATS 105 can trigger a task message to the smart recruiting system 100.
  • the task message can comprise information such as message identifier, requisition identifier, requisition hiring manager information, requisition skill-set (e.g., desired skill-set, optional skill-set, etc.), due date, and/or other relevant information.
  • the NLP System 125 can process the task message to identify a next action (act 610).
  • the smart recruiting system 100 can then send a message to one or more potential candidates with available time slots based on availability and/or preferences of interviewers (act 615).
  • the smart recruiting system 100 can take necessary steps to schedule the interview (act 620). For instance, if a candidate does not respond within a threshold time frame, the smart recruiting system 100 can send a reminder to the candidate (act 640). The reminder can include a message inquiring whether the time slots are still valid. If the time slots are not valid, process 600 can send updated time slots.
  • Process 600 can maintain a reminder counter (to count the number of reminders sent to a candidate). When the reminder counter is greater than a message reminder threshold count, process 600 can send a message to one or more entities (e.g., hiring manager, interviewer(s), user who created the task, etc.) and/or store the event in a data storage system.
  • entities e.g., hiring manager, interviewer(s), user who created the task, etc.
  • the smart recruiting system 100 can extract information from the reply message to determine if the candidate accepts one of the time slots (act 625). When the candidate does not accept a time slot, process 600 can return to act 615. When the candidate accepts one of the time slots, process 600 can extract required information (act 630) and send an invitation to one or more entities (e.g., hiring manager, interviewer(s), candidate(s), etc.) (act 635). Method for processing such candidate relies are described in further detail below with respect to Figure 8. When the event is completed, the process 600 can check for evaluation from interviewer, message interviewer to know if the smart recruiting system 100 should schedule next round, or send rejection letter based on evaluation.
  • entities e.g., hiring manager, interviewer(s), candidate(s), etc.
  • FIG. 7 is a block diagram illustrating a process 700 for processing a new task message in accordance with embodiments of the present technology.
  • the process 700 receives a task message (act 705).
  • a task message can be associated with a requisition (e.g., a job listing).
  • the process 700 can extract message information from the received task message (act 710).
  • the process 700 can utilize one or more of the following sub-blocks of a Natural Language Processing System (as shown in Figure 2) to extract message information: Entity Extraction ( Figure 2, 205), Syntactic Parsing (Figure 2, 210), Meeting Classifications (Figure 2, 215), or Intent Modeling ( Figure 2, 235).
  • the process 700 can also extract (and store) the following information: message identifier, due date (e.g., date by which the requisition should be filled), interview loop information, and/or associated information.
  • Interview loop information can include information about the stage of the interview (e.g., pre- screening(s), main round(s), follow-up(s), etc.).
  • the task message includes information about one or more candidates (e.g., candidate identifier, name, contact information, relevant experience, skill sets, preferences, etc.).
  • the process 700 can identify a list of interviewers for the received task message (act 715).
  • the list of interviewers may be based on several factors, such as interview loop information, requisition associated with the task message, and/or other information.
  • the process 700 can then automatically and autonomously access calendars and/or preferences of the interviewers in the list of interviewers (act 720). For example, the process 700 can access calendars and preferences of all Interviewers through mail client APIs.
  • Process 700 can then generate a set of available time slots (act 725).
  • the set of available time slots can include time slots during which at least a predetermined threshold of interviewers in the list of interviewers are available.
  • the process 700 can request additional information from the candidates. For example, if meeting type is audio call, then the process 700 can request candidate contact details. For an in-person meeting, the process 700 can request potential interview locations. The process 700 can then generate an interview schedule message (act 730).
  • the interview schedule message can comprise a subset of the set of available time slots, a list of scheduled interviewers, at least a portion of the interview loop information, and/or request for additional information (e.g., candidate contact details, potential interview locations, etc.).
  • the list of scheduled interviewers comprises interviewers that are available during at least one time slot in the subset of the set of available time slots.
  • the process 700 can then store the interview schedule message and/or transmit it to one or more entities (e.g., candidate, interviewer(s), hiring manager, etc.).
  • the process 700 can also update the status of the interview loop as initiated.
  • FIG. 8 is a block diagram illustrating a process 800 for processing a candidate reply in accordance with embodiments of the present technology
  • the process 800 receives a reply message from a candidate (act 805) and processes the received messaged to extract relevant information (act 810).
  • the process 800 can extract candidate information, response type (e.g., acceptance, rejection, reschedule, etc.), requisition information, original interview schedule message information, and/or other suitable reply message information.
  • the process 800 can then determine if the candidate accepted one of the time slots in the original interview schedule message (act 815). If candidate replies that none of the slots work, process 800 determines if any other time preference is mentioned by candidate in the reply message (act 850).
  • process 800 access the calendars and/or preferences of interviewers to check their availability during the alternate time slots (act 852).
  • the process 800 checks the availability of only the interviewers who were previously identified as available during the initial scheduling process (i.e., a predetermined list of interviewers).
  • the process 800 checks the availability of all interviewers.
  • the process 800 first checks the availability of the interviewers who were identified as available during the initial scheduling process. If at least a threshold number of interviewers are not available, the process 800 can then check the availability of all relevant interviewers.
  • the process 800 Upon accessing the calendars and/or preferences of interviewers, the process 800 generates a revised list of available interviewers (e.g., interviewers who are available during at least one alternate time slot specified in the reply message received from the candidate) (act 855).
  • the process 800 then generates revised interview schedule messages (including, for example, meeting invitations) for the most optimum alternate time slot (e.g., time slot with maximum interviewer availability, time slot with highest candidate preference, etc.) (act 857).
  • the revised interview schedule messages are then transmitted to one or more entities (e.g., candidate, one or more interviewers on the revised list of interviewers, hiring manager, etc.) (act 860).
  • the process 800 can send a cancellation message to interviewers who are no longer on the interview schedule (e.g., interviewers for whom the alternate time slot does not work).
  • the process 800 may then mark the interview loop as scheduled (act 865) and/or stored revised meeting details (act 870).
  • act 850 if the process 800 determines that the reply message does not include any alternate time slot, the process 800 accesses the calendars and/or preferences of interviewers to check their availability to identify the alternate time slots (act 875). In some embodiments of the present technology, the process 800 checks the availability of only the interviewers who were identified as available during the initial scheduling process (list of interviewers). In some embodiments of the present technology, the process 800 checks the availability of all interviewers. In some embodiments of the present technology, the process 800 first checks the availability of the interviewers who were identified as available during the initial scheduling process. If at least a threshold number of interviewers are not available and/or a threshold number of alternate time slots are not identified, the process 800 can then check the availability of all relevant interviewers.
  • the process 800 Upon accessing the calendars and/or preferences of interviewers, the process 800 generates a revised set of available time slots (act 880).
  • the revised set of available time slots can comprises time slots during which at least a predetermined threshold of interviewers are available.
  • the original set of available time slots and the revised set of available time slots are disjoint (i.e., the old slots are not included in the revised set).
  • the process 800 then generates revised interview schedule messages (including, for example, meeting invitations) for one or more the most optimum revised time slots (e.g., time slot with maximum interviewer availability, time slot with highest candidate preference, etc.) (act 885).
  • the revised interview schedule messages are then transmitted to one or more entities (e.g. , candidate, one or more interviewers on the revised list of interviewers, hiring manager, etc.) (act 890).
  • the process 800 determines that the candidate accepted one of the time slots in the original interview schedule message, the process 800 accesses the calendars and/or preferences of the originally scheduled interviewers to recheck their availability (act 820). Based on the availability information of the interviewers, the process 800 can generate meeting invitations (e.g., calendar invites via email APIs) (act 825). The process 800 can then send the generated meeting invitations to one or more entities (e.g., candidates, available interviewers, hiring manager, etc.) (act 835).
  • meeting invitations e.g., calendar invites via email APIs
  • the process 800 can then send the generated meeting invitations to one or more entities (e.g., candidates, available interviewers, hiring manager, etc.) (act 835).
  • the process 800 can then mark the interview loop as scheduled (act 840) and/or store the meeting details (e.g., task id, event id, sent time, interviewer details, candidate details, action after event) (act 845).
  • the action after event is to contact interviewer.
  • FIG. 9 is a block diagram illustrating a process 900 for processing an interviewer reply in accordance with embodiments of the present technology.
  • the process 900 receives a reply message from an interviewer (act 905) and processes the received messaged to extract relevant information (act 910).
  • process 900 can extract interviewer information, type of action/response (e.g., acceptance, rejection, reschedule, replacement, etc.), requisition information, original interview schedule message information, and/or other types of interview-related information.
  • the process 900 determines a type of action in the interviewer reply message (act 915).
  • Type of action can include a positive response to the candidate for an interview loop, a negative response to the candidate for an interview loop, reschedule request, replacement request, etc. If action is a positive response to the candidate, the process 900 can trigger a new task message (e.g., to schedule another interview loop, accept candidate for requisition, etc.) (act 920) and/or update the interviewer's evaluation of the candidate as acceptable (act 925). If action is a negative response to the candidate, the process 900 can mark the task as complete (act 930) and/or update the interviewer's evaluation of the candidate as rejected (act 935).
  • a new task message e.g., to schedule another interview loop, accept candidate for requisition, etc.
  • the process 900 can access the calendars and/or preferences of the interviewers (e.g., original scheduled interviewers, all interviewers, subset of interviewers, etc.) (act 940). In some embodiments of the present technology the process 900 can determine if a proposed time slot is mentioned in the interviewer's reply message and check availability of other interviewers during the proposed time slot. Based on the availability information of the interviewers, the process 900 can generate a revised set of available time slots (act 942). The revised set of available time slots can include time slots during which at least a predetermined threshold of interviewers in the list of interviewers are available.
  • the revised set of time slots incudes a time slot proposed by the interviewer.
  • the time slot proposed by the interviewer can be associated with a higher priority than other time slots.
  • the original set of available time slots and the revised set of available time slots are disjoint (i.e., the old slots are not included in the revised set).
  • the process 900 can then generate a revised interview schedule message with the new time slot(s) (act 944).
  • the revised interview schedule message can comprise a subset of the set of available time slots, a revised list of scheduled interviewers, at least a portion of the interview loop information, request for additional information (e.g., candidate contact details, potential interview locations, etc.), and/or related information.
  • the list of scheduled interviewers comprises interviewers that are available during at least one time slot in the subset of the set of available time slots.
  • the process 900 can then transmit the revised interview schedule message to one or more entities (e.g., candidate, interviewer(s), hiring manager, etc.) (act 946), mark the interview loop as rescheduled (act 948), and/or store the interview schedule message (act 950).
  • entities e.g., candidate, interviewer(s), hiring manager, etc.
  • the process 900 can access the calendars and/or preferences of other interviewers (e.g., original scheduled interviewers, all interviewers, subset of interviewers, etc.) (act 952).
  • the process 900 can determine, based on interviewers' calendars and/or preferences if at least one other interviewer is available at the originally scheduled time slot.
  • the process 900 can then generate and send a message to at least one other available interviewer to inquire whether they are available (and/or willing) to participate in the interview at the originally scheduled time (act 954).
  • the process 900 can wait for a response from at least one other available interview.
  • the process 900 can generate and send a message to other entities (e.g., originally scheduled interviewers, interviewer who requested that a replacement be found, candidate, hiring manager, etc.) that a new interviewer will participate in the interview (act 958).
  • the process 900 can then mark the interview loop as replacement found (act 960) and/or store the revised meeting details (act 962).
  • the process 900 can proceed to act 940 (discussed above).
  • FIG. 10 is a block diagram illustrating an overview of devices on which some implementations of the disclosed technology can operate.
  • the devices can comprise hardware components of a device 1000 that provide autonomous and smart assistance in processing and analyzing task messages (e.g., received via emails, telephone calls, text messages, etc.) to schedule interviews, reschedule interviews, and/or perform follow-ups to move a candidate through the hiring process.
  • Device 1000 can include one or more input devices 120 that provide input to the CPU (processor) 1010, notifying it of actions. The actions are typically mediated by a hardware controller that interprets the signals received from the input device and communicates the information to the CPU 1010 using a communication protocol.
  • Input devices 1020 include, for example, a mouse, a keyboard, a touchscreen, an infrared sensor, a touchpad, a wearable input device, a camera- or image-based input device, a microphone, or other user input devices.
  • CPU 1010 can be a single processing unit or multiple processing units in a device or distributed across multiple devices.
  • CPU 1010 can be coupled to other hardware devices, for example, with the use of a bus, such as a PCI bus or SCSI bus.
  • a bus such as a PCI bus or SCSI bus.
  • CPU 1010 can communicate with a hardware controller for devices, such as for a display 1030.
  • Display 1030 can be used to display text and graphics.
  • display 1030 provides graphical and textual visual feedback to a user.
  • display 1030 includes the input device as part of the display, such as when the input device is a touchscreen or is equipped with an eye direction monitoring system.
  • the display is separate from the input device. Examples of display devices are: an LCD display screen, an LED display screen, a projected, holographic, or augmented reality display (such as a heads-up display device or a head-mounted device), and so on.
  • Other I/O devices 1040 can also be coupled to the processor, such as a network card, video card, audio card, USB, firewire or other external device, camera, printer, speakers, CD-ROM drive, DVD drive, disk drive, or Blu-Ray device.
  • the device 1000 also includes a communication device capable of communicating wirelessly or wire-based with a network node.
  • the communication device can communicate with another device or a server through a network using, for example, TCP/IP protocols.
  • Device 1000 can utilize the communication device to distribute operations across multiple network devices.
  • the CPU 1010 can have access to a memory 1050.
  • a memory includes one or more of various hardware devices for volatile and non-volatile storage, and can include both read-only and writable memory.
  • a memory can comprise random access memory (RAM), CPU registers, read-only memory (ROM), and writable non-volatile memory, such as flash memory, hard drives, floppy disks, CDs, DVDs, magnetic storage devices, tape drives, device buffers, and so forth.
  • RAM random access memory
  • ROM read-only memory
  • writable non-volatile memory such as flash memory, hard drives, floppy disks, CDs, DVDs, magnetic storage devices, tape drives, device buffers, and so forth.
  • a memory is not a propagating signal divorced from underlying hardware; a memory is thus non-transitory.
  • Memory 1050 can include program memory 1060 that stores programs and software, such as an operating system 1062, smart recruiting system 1064, and other application programs 1066.
  • Some implementations can be operational with numerous other general purpose or special purpose computing system environments or configurations.
  • Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the technology include, but are not limited to, personal computers, server computers, handheld or laptop devices, cellular telephones, wearable electronics, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, or the like.
  • Figure 1 1 is a block diagram illustrating an overview of an environment 1 100 in which some implementations of the disclosed technology can operate.
  • Environment 1 100 can include one or more client computing devices 1 105A-D, examples of which can include device 1000.
  • Client computing devices 1 105 can operate in a networked environment using logical connections 1 1 10 through network 1 130 to one or more remote computers, such as a server computing device.
  • server 1 1 10 can be an edge server which receives client requests and coordinates fulfillment of those requests through other servers, such as servers 1 120A-C.
  • Server computing devices 1 1 10 and 1 120 can comprise computing systems, such as device 1000. Though each server computing device 1 1 10 and 1 120 is displayed logically as a single server, server computing devices can each be a distributed computing environment encompassing multiple computing devices located at the same or at geographically disparate physical locations. In some implementations, each server 1 120 corresponds to a group of servers.
  • Client computing devices 1 105 and server computing devices 1 1 10 and 1 120 can each act as a server or client to other server/client devices.
  • Server 1 1 10 can connect to a database 1 1 15.
  • Servers 1 120A-C can each connect to a corresponding database 1 125A-C.
  • each server 1 120 can correspond to a group of servers, and each of these servers can share a database or can have their own database.
  • Databases 1 1 15 and 1 125 can warehouse (e.g. store) information such as information about requisitions, candidates, interviewers.
  • databases 1 1 15 and 1 125 are displayed logically as single units, databases 1 1 15 and 1 125 can each be a distributed computing environment encompassing multiple computing devices, can be located within their corresponding server, or can be located at the same or at geographically disparate physical locations.
  • Network 1 130 can be a local area network (LAN) or a wide area network (WAN), but can also be other wired or wireless networks.
  • Network 1 130 may be the Internet or some other public or private network.
  • Client computing devices 1 105 can be connected to network 1 130 through a network interface, such as by wired or wireless communication. While the connections between server 1 1 10 and servers 1 120 are shown as separate connections, these connections can be any kind of local, wide area, wired, or wireless network, including network 1 130 or a separate public or private network.
  • the system may be implemented by any suitable computing environment.
  • aspects of the present technology are implemented as computer-executable instructions, such as routines executed by a general-purpose data processing device, e.g., a server computer, wireless device or personal computer.
  • a general-purpose data processing device e.g., a server computer, wireless device or personal computer.
  • PDAs personal digital assistants
  • wearable computers all manner of cellular or mobile phones (including Voice over IP (VoIP) phones), multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, mini-computers, mainframe computers, and the like.
  • the terms "computer,” “server,” “host,” “host system,” and the like are generally used interchangeably, and refer to any of the above devices and systems, as well as any data processor.
  • aspects of the present technology can be embodied in a special purpose computer or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions explained in detail herein. While aspects of the present technology, such as certain functions, are at times described as being performed exclusively on a single device, the present technology can also be practiced in distributed environments where functions or modules are shared among disparate processing devices, which are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
  • LAN Local Area Network
  • WAN Wide Area Network
  • program modules may be located in both local and remote memory storage devices.
  • aspects of the present technology may be stored or distributed on tangible computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media.
  • computer implemented instructions, data structures, screen displays, and other data under aspects of the present technology may be distributed over the Internet or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time, or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme).

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Smart recruiting systems and methods are disclosed herein. Smart recruiting systems configured in accordance with embodiments of the present technology can, for example, provide autonomous and smart assistance in processing and analyzing task messages (e.g., received via emails, telephone calls, text messages, etc.) to schedule interviews, reschedule interviews, and/or perform follow- ups to take a candidate through the hiring process. The smart recruiting systems can integrate with existing applicant tracking systems and may be triggered by task messages (e.g., sent in natural language, text-based or voice based communications) to automate intended tasks. The smart recruiting systems can also source candidates from different platforms, engage with new candidates, and re-engage with past candidates. By performing various steps in a recruitment process in an autonomous and smart manner, the smart recruiting system provides efficiencies in the usage of computing and/or telecommunication resources.

Description

SMART RECRUITING SYSTEMS AND ASSOCIATED DEVICES AND
METHODS
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority to U.S. Provisional Patent Application No. 62/444,231 , filed January 9, 2017, which is incorporated by reference herein in its entirety.
TECHNICAL FIELD
[0002] The present technology relates generally to devices, systems, and methods for managing personnel recruiting tasks and communications. In particular, various embodiments of the present technology are related to smart recruiting systems and associated devices and methods.
BACKGROUND
[0003] Business professionals spend an inordinate amount of time on low value scheduling activities. For example, the source-to-hire time in the US is 29 working days. Dragging recruitment process not only displeases candidates, but also adversely affects the company's productivity. Of the various stages in recruitment, interview scheduling is particularly tedious for companies with high hiring volume. Studies suggest that it takes an average of three interviews before a candidate is finalized. Each interview requires a talent acquisition team to spend hours coordinating with the candidate. Moreover, existing systems require extensive computing and telecommunication resources to receive, analyze, process, and transmit multiple communications between interviewees, the talent acquisition team (e.g. recruiters), and interviewers.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Figure 1 is a block diagram illustrating an autonomous/smart recruiting system configured in accordance with embodiments of the present technology. [0005] Figure 2A is a block diagram illustrating components of a natural language processing system configured in accordance with embodiments of the present technology.
[0006] Figure 2B is a block diagram illustrating sub-components of a natural language processing system configured in accordance with embodiments of the present technology.
[0007] Figures 3-5 illustrate metrics reports configured in accordance with embodiments of the present technology.
[0008] Figure 6 is a block diagram illustrating method for processing a task message in accordance with embodiments of the present technology.
[0009] Figure 7 is a block diagram illustrating a method for processing a new task message in accordance with embodiments of the present technology.
[0010] Figure 8 is a block diagram illustrating a method for processing a candidate reply in accordance with embodiments of the present technology.
[0011] Figure 9 is a block diagram illustrating a method for processing an interviewer reply in accordance with embodiments of the present technology.
[0012] Figure 10 is a block diagram illustrating an overview of devices on which some implementations can operate.
[0013] Figure 1 1 is a block diagram illustrating an overview of an environment in which some implementations can operate.
DETAILED DESCRIPTION
[0014] The system overcomes the drawbacks of existing recruiting systems that require significant user interaction and/or computing resources. For example, in current recruiting system models, a recruiter is tasked with identifying potential candidates and scheduling multiple rounds of interviews (also known as "loops") to fill a requisition. This typically requires multiple exchanges with job portals, other recruiters, candidates, and interviewers via email, telephone calls, text messages, Ul interaction, and/or other communication modalities. Moreover, the recruiter must also repeatedly interact with a scheduling system (e.g., calendars) to schedule interviews and/or reschedule interviews. In addition to taking an inordinate amount of time, all of this consumes significant processing capabilities, for example, of a computing system and/or a telecommunications system. Furthermore, current systems are prone to errors that may arise when accessing and scheduling meetings that include multiple participants. These problems are compounded when multiple interview rounds are to be conducted.
[0015] A software, firmware, and/or hardware system that overcomes these and other deficiencies of existing systems is disclosed. Embodiments of the smart recruiting system disclosed herein provide autonomous and smart assistance in processing and analyzing task messages (e.g., received via emails, telephone calls, text messages, etc.) to schedule interviews, reschedule interviews, and/or perform follow-ups to move a candidate through the hiring process. The smart recruiting system integrates with existing applicant tracking systems and is triggered by, e.g., task messages sent in natural language, text-based, or voice based, to automate the intended task. The smart recruiting system can also source candidates from different platforms, engage with new candidates, and re-engage with past candidates. By performing various steps in a recruitment process in an autonomous and smart manner, the smart recruiting system provides efficiencies in the usage of computing and/or telecommunication resources. For example, the smart recruiting system minimizes the number of interactions that are typically required when scheduling and rescheduling interviews. By accessing calendars of both the potential candidate(s) and interviewers, the smart recruiting system can automatically check the availability of all parties and identify common available time slots. Moreover, the smart recruiting system efficiently processes and manages reschedule requests without requiring (or at least minimizing) human interaction. This results in efficient usage of computing and/or telecommunication resources, as well as reducing the occurrence of errors and mistakes.
[0016] Various examples of the present technology are described herein with reference to Figures 1 -1 1 . The following description provides certain specific details for a thorough understanding and enabling description of these examples. One skilled in the relevant technology will understand, however, that the present technology may be practiced without many of these details. Likewise, one skilled in the relevant technology will also understand that the present technology may include many other obvious features not described in detail herein. Additionally, some well-known structures or functions may not be shown or described in detail below, to avoid unnecessarily obscuring the relevant descriptions of the various examples.
[0017] The terminology used below is to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the present technology. Indeed, certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section
[0018] Figure 1 is a block diagram illustrating an autonomous/smart recruiting system 100 (referred to as "smart recruiting system 100") configured in accordance with embodiments of the present technology. The smart recruiting system 100 comprises one or more of the following blocks, each of which is described in further detail below: Integration Layer 120, Natural Language Processing System (NLP System) 125, Workflows 130, Data Storage 135, Recommendation System 140, Sourcing System 145, User Preference Learning System 150, Candidate Engagement System 155, and Candidate Re-engagement System 160. The smart recruiting system 100 can interface, via the Integration Layer 120, to one or more of the following: Applicant Tracking System (ATS) 105, Candidate Sourcing Platforms 1 10, and/or Communication Channels 1 15. The Integration layer 120 can communicate with ATS 105 via Rest APIs or SOAP based APIs etc.
[0019] ATS 105 may be an application that is designed for a recruitment tracking process. It provides an interface for users to add information about candidates, requisitions, interview loops, and/or other related information. It can also be used to trigger the smart recruiting system 100 to schedule interviews during different stages in the hiring loop. ATS 105 may also be used by the smart recruiting system 100 to communicate with potential candidates, interviewers, and related personnel. The smart recruiting system 100 can integrate with existing Applicant Tracking Systems, such as Greenhouse, Taleo Business Edition, Taleo Enterprise Edition, Success Factors, Smart Recruiters, and/or other similar tracking systems.
[0020] Candidate Sourcing Platforms 1 10 may be used to identify potential candidates for a requisition. Candidate Sourcing Platforms 1 10 provides an interface for users to search/browse information about candidates (e.g., skills sets, technical profile, work history, resumes, etc.). The smart recruiting system 100 can integrate with existing Candidate Sourcing Platforms 1 10, such as Linkedln, Indeed, Dice, Monster, Glassdoor, and/or other similar candidate sourcing platforms.
[0021] Communication channels 1 15 (e.g., email systems, messaging systems, telecommunication systems, etc.) may be used by smart recruiting system 100 to interact with both the candidates, interviewers, and related personnel. The smart recruiting system 100 can also retrieve interviewers' or candidate's availability information by accessing each party's calendar through email and calendar systems. For example the smart recruiting system 100 may integrate with Gmail and Office 365 through their representational state transfer ("REST") APIs and Microsoft Exchange Servers (e.g., 2010, 2013 and 2016 Versions) using Microsoft's EWS REST APIs. A user can also provide his/her preferences (e.g., days and/or times) for interviews through one of the communication channels. The smart recruiting system 100 can take user preferences into consideration while scheduling interviews. For example, a user can send an email to the Smart recruiting system 100 to not schedule any meetings or phone calls on Monday. Smart recruiting system 100 can identify this as a preference email, extracts relevant data and update the user preferences.
Natural Language Processing System (NLP System) 125
[0022] Figure 2A is a block diagram illustrating components of the NLP System 125 configured in accordance with embodiments of the present technology. NLP System 125 comprises one or more of the following functional blocks: Entity Extraction 205, Syntactic Parsing 210, Meeting Classification 215, Free Slot Classification 220, Event Slot Selection 225, Dialog State Tracking 230, Intent Modeling 235, and Answer Generation 240. Figure 2B is a block diagram illustrating sub-components that make up each functional block and examples of software packages that may be used to implement some of the functionality of the functional blocks of a natural language processing system configured in accordance with embodiments of the present technology.
[0023] NLP System 125 comprises various building blocks to extract required information from task messages, understand the context, and respond accordingly. The Entity Extraction 205 block of the NPL System 125 may comprise a Time Reference Extractor that can extract temporal expressions (e.g., times, dates, ranges, durations, etc.) from the task messages and resolve them to a standard timestamp format. The Time Reference Extractor can also combine incomplete temporal expressions that are related to each other. For example, the Time Reference Extractor may analyze the task message, "Let's meet on Monday. I'm available during 2-5pm," and combine "Monday" and "2-5pm" The Time Reference Extractor may classify relevance of extracted time expressions to the meeting. Examples of software packages used by the Time Reference Extractor include, but are not limited to, SuTime annotator from Stanford CoreNLP java library.
[0024] The Entity Extraction 205 block of the NPL System 125 may comprise a Location Extractor that can extract location expressions occurring in the task messages. The Location Extractor can convert partial location expressions to complete formatted address using, for example, APIs (e.g., Google Maps API). Examples of software packages used by the Time Reference Extractor include, but are not limited to, Natural Language Toolkit (NLTK), Scikit-learn in Python, Google Maps API , etc.
[0025] The Entity Extraction 205 block of the NPL System 125 may further comprise a Phone Number Extractor that can extract contact information (e.g., valid phone numbers) from the task messages. Examples of software packages used by the Phone Number Extractor include, but are not limited to, NLTK.
[0026] The Syntactic Parsing 210 block of the NPL System 125 may comprise a Relationship Extractor. The Relationship Extractor can extract relationship expressions by assigning extracted entities to their corresponding owners in the conversation. Examples of software packages used by the Relationship Extractor include, but are not limited to, Parser from Stanford CoreNLP java library, NLTK, etc.
[0027] The Syntactic Parsing 210 block of the NPL System 125 may comprise an Entity Relevance Classifier that can classify the relevance of extracted entities to the final meeting and ranking the order of preference. Examples of software packages used by the Entity Relevance Classifier include, but are not limited to, Parser from Stanford CoreNLP java library, and/or NLTK.
[0028] The Meeting Classification 215 block of the NPL System 125 may comprise a Type of Meeting Classifier that can classify the type of meeting (e.g., audio call, video call, in-person meeting, etc.) from the task messages. The Type of Meeting Classifier can resolve conflicts from previous messages in the conversation. Examples of software packages used by the Type of Meeting Classifier include, but are not limited to, NLTK and/or Scikit-learn in Python.
[0029] The Meeting Classification 215 block of the NPL System 125 may comprise a Meeting Priority Classifier that can classify the priority of scheduling the meeting (e.g., urgent, non-urgent, etc.) from the task message. Examples of software packages used by the Meeting Priority Classifier include, but are not limited to, NLTK and/or Scikit- learn in Python.
[0030] The Free Slot Classification block 220 of the NPL System 125 may comprise a Free Slot Classifier that can classify if an existing calendar event is Blocked or Not Blocked from title text, attendees, duration, and/or other pertinent information. The Free Slot Classifier can identify free/available time slots for one or more attendees (e.g., interviewers, candidate, etc.). Examples of software packages used by the Free Slot Classifier include, but are not limited to, NLTK and/or Scikit-learn in Python.
[0031] The Event Slot Selection block 225 of the NPL System 125 may comprise an Event Slot Generator that can select most favorable time slots out of all identified free slots from the calendar. Examples of software packages used by the Event Slot Generator include, but are not limited to, Scikit-learn in Python.
[0032] The Dialog State Tracking block 230 of the NPL System 125 may comprise a Dialog State tracker that can update and maintain the state of various predictions in the conversation like meeting time, date, duration, etc. after every task message. Examples of software packages used by the Dialog State tracker include, but are not limited to, NLTK, Scikit-learn in Python.
[0033] The Intent Modeling block 235 of the NPL System 125 may comprise an Action Identification sub-block that can predict the action that needs to be performed next based on information contained in the task message. For example, the Action Identification sub-block can utilize the following information: textual content of the task message, other predicted data in the conversation until then, and/or similar information. Examples of actions include, but are not limited to, sending time slots, sourcing contact details, follow-up, and/or reschedule. Examples of software packages used by the Dialog State tracker include, but are not limited to, NLTK, Scikit-learn in Python,. [0034] The Answer Generation block 240 of the NPL System 125 may comprise an Auto Response Generator that can auto-fill the message text that is to be sent in response to a task message. The Auto Response Generator can use identified actions and extracted data to create the message content. Examples of software packages used by the Dialog State tracker include, but are not limited to, NLTK, Scikit-learn in Python.
[0035] Below is an example task message received by the smart recruiting system 100:
Email Date - 1 st Jan 2017
From - tony@avenger.com
To - jarvis@smart.ai
CC - alex@myally.ai
Subject - "Let's Catch-up"
Email Text -
Hey Jarvis,
It was great meeting you today. We can discuss the details later.
@Alex: Please schedule a lunch meeting with Jarvis sometime this thursday.
Thanks,
Tony
Malibu Point
[0036] The NPL System 125 can extract the following information this task message:
Extracted Time -
• "today" RESOLVED_AS "01 -Jan-2017"
• "this thursday" RESOLVED_AS "05-Jan-2017" Extracted Location -
• "Malibu Point" RESOLVED_AS
"Point Dume State Beach, Cliffside Dr, Malibu,
CA 90265, USA"
Extracted Contact Information (e.g. phone number) - None Relationships Extracted - • "Malibu Point" LOCATION_OF "Tony"
• "Tony" NAMEJDF tony@avenger.com
• "Jarvis" NAME_OF jarvis@smart.ai
Entity Relevance - "today" -> "Not Relevant",
"this thursday" -> "Relevant"
"Malibu Point, USA" -> "Not Relevant"
Type of Meeting - ln-person ("lunch meeting")
Meeting Priority - Not Urgent
Free Slot Classifier - No events on "05-Jan-2017" to classify Event Slots Generated -
• "05-Jan-2017 12:00" - "05-Jan-2017 13:00"
• "05-Jan-2017 13:00" - "05-Jan-2017 14:00"
Dialog State - No Previous State
Actions Identified - Send Free Lunch Slots for "05-Jan-2017",
Get Preferred Restaurant
[0037] The NPL System 125 can use the extracted information to autonomously generate the following response:
Hi Jarvis,
Pleased to meet you. Would you be available in any of the following slots for Lunch with Tony -
• 12pm - 1 pm on 5th January 2017
(Thursday)
• 1 pm - 2pm on 5th January 2017
(Thursday)
Can you also send your preferred restaurant for this meeting?
Thanks,
Alex
Tony's Smart Assistant
Sourcing System 145
[0038] The Sourcing System 145 of the smart recruiting system 100 sources candidates from platforms like job boards and social media sites, such as Linkedin, Monster, Glassdoor, and Facebook. The Sourcing System 145 can use certain criteria like required years of work experience, educational background, and skill set etc. from a job description (e.g., requisition) to source potential candidates that match some or all criteria specified in the job description. For example, in some embodiments, a job description can be related to a set of desired criteria (e.g., desired skill-set) and/or a set of optional criteria (e.g. , optional skill-set) preferred criteria and a set of essential criteria. The Sourcing System 145 can source potential candidates based on similarities between candidates' information, the set of desired criteria, and/or the set of optional criteria. In some embodiments, the Sourcing System 145 can rank potential candidates based on a similarity metric computed to identify such similarities.
Recommendation System 140
[0039] The Recommendation System 140 collects the data from multiple sources and makes relevant recommendations. The Recommendation System 140 can provide recommendations based on several factors such as, role of the intended user (e.g., interviewer, recruiter, hiring manager, candidate, etc.), stage of the interviewing process (e.g., pre-screening, main round, follow-up round, etc.). For example, for interviewers, recruiters, and/or hiring managers, the Recommendation System 140 can suggest candidates, based on the profiles, for each requisition (e.g., job listing) by integrating with different job boards and find relevant candidates based on keyword matching, mapping past candidates in the system to new job profiles or existing job profiles based on candidates profile, and/or other suitable metrics. As another example, for candidates, the Recommendation System 140 can suggest requisitions based on different job profiles by identifying, based on the candidate's skillset, relevant openings in the database and recommending them to the candidate. As another example, for hiring managers, the Recommendation System 140 can provide insights to improve hiring process by providing the hiring managers with different metrics to analyze and improve the hiring process. Examples of metrics include, but are not limited to: total number of interviews versus time, total number of interviews by each recruiter, total cycle time by team in days (see Figure 3), delay drivers in days (see Figure 4), cancellation by reason (see Figure 5), total number of reschedules and cancellations of interviews by each interviewer, recruiting pipeline statistics, number of times assistant was contacted, recommended interview process/stages, interviewer-candidate match, conference room booking based on priorities, custom conditions in interview process, and/or other metrics related to interviewing and job placement.
User Preference Learning System 150
[0040] The User Preference Learning System 150 can learn user preferences from various sources, such as email messages, calendar data, and/or social media. User preferences can be used when the smart recruiting system 100 is determining appropriate actions based on past communications and usage history. The User Preference Learning System 150 of a smart recruiting system 100 can extract following from calendar data: frequent meeting contacts, preferred meeting slots, preferred meeting locations, preferred type of meeting (e.g. , audio call, video call, in-person meeting, etc.), preferred meeting length, preferred number of meeting hours per day, and/or other calendar-related data. For example, the User Preference Learning System 150 can maintain of list of frequent contacts based on number of email communications, number of calendar events, and duration of the events. Each contact can be associated with a priority score and based on which the assistant schedules a meeting. The User Preference Learning System 150 can monitor to identify the preferred meeting slots for the user. It can also keep track of meetings cancellations to adjust the preferred slots accordingly. Similar to maintaining frequent meeting contacts, the User Preference Learning System 150 can autonomously learn about preferred meeting locations from calendar data based on number of meetings scheduled at a particular location. It can also suggest locations based on the user's location and past meetings. The User Preference Learning System 150 can regularly provide useful insights into user's calendar to optimize time spent for meetings.
Candidate Engagement System 155
[0041] The Candidate Engagement System 155 uses candidate information from, for example, the ATS 105. The Candidate Engagement System 155 can trigger once the candidate enters the system. The Candidate Engagement System 155 can be used to collect further profile information from the candidate regarding relevant experience, skill sets, etc., pre-screen the candidates, suggest relevant jobs and assess a candidate's interest and readiness, etc. This information can be made available to a hiring manager and/or recruiter to take appropriate next steps (e.g., schedule an interview, cancel an interview, follow-up, etc.). The Candidate Engagement System 155 can also engage with the new applicants via one or more communication channels, such as text messaging, chat system, email, audio call, video call, or other communication systems.
Candidate Re-engagement System 160
[0042] Candidate Re-engagement System 160 engages with past candidates identified by the recommendation engine and/or screen them for further interviews. Re- engagement process can be very similar to process mentioned in engagement system, except the type of questions and metrics applied are modified to correspond with that of a candidate that was previously in communication with the employer.
Workflows System 130
[0043] The Workflows system 130 determines one or more next actions to be taken by the smart recruiting system 100. These workflows can be customized by the user (e.g., an employer or a recruiter). Figure 6 is a block diagram illustrating method 600 for processing a task message in accordance with embodiments of the present technology. The method 600 can be performed using the Workflows system 130 of the smart recruiting system 100 described with reference to Figures 1 -5 and/or other embodiments of smart recruiting systems including certain features of the smart recruiting system 100 described in Figures 1 -5. As shown in Figure 6, a new task message is submitted to the smart recruiting system 100 (act 605). For example, a recruiter may create and submit a requisition for a job posting using a user interface (e.g., website, mobile application, etc.). The new task message may be received from the ATS 105. For example, a new task in the ATS 105 can trigger a task message to the smart recruiting system 100. The task message can comprise information such as message identifier, requisition identifier, requisition hiring manager information, requisition skill-set (e.g., desired skill-set, optional skill-set, etc.), due date, and/or other relevant information. Upon receipt of a new task message, the NLP System 125 can process the task message to identify a next action (act 610). Methods for processing such new task messages are described in further detail below with reference to Figure 7. The smart recruiting system 100 can then send a message to one or more potential candidates with available time slots based on availability and/or preferences of interviewers (act 615). [0044] Based on the candidate's response, the smart recruiting system 100 can take necessary steps to schedule the interview (act 620). For instance, if a candidate does not respond within a threshold time frame, the smart recruiting system 100 can send a reminder to the candidate (act 640). The reminder can include a message inquiring whether the time slots are still valid. If the time slots are not valid, process 600 can send updated time slots. Process 600 can maintain a reminder counter (to count the number of reminders sent to a candidate). When the reminder counter is greater than a message reminder threshold count, process 600 can send a message to one or more entities (e.g., hiring manager, interviewer(s), user who created the task, etc.) and/or store the event in a data storage system.
[0045] When the candidate responds with a reply message within a threshold time frame, the smart recruiting system 100 can extract information from the reply message to determine if the candidate accepts one of the time slots (act 625). When the candidate does not accept a time slot, process 600 can return to act 615. When the candidate accepts one of the time slots, process 600 can extract required information (act 630) and send an invitation to one or more entities (e.g., hiring manager, interviewer(s), candidate(s), etc.) (act 635). Method for processing such candidate relies are described in further detail below with respect to Figure 8. When the event is completed, the process 600 can check for evaluation from interviewer, message interviewer to know if the smart recruiting system 100 should schedule next round, or send rejection letter based on evaluation.
[0046] Figure 7 is a block diagram illustrating a process 700 for processing a new task message in accordance with embodiments of the present technology. The process 700 receives a task message (act 705). A task message can be associated with a requisition (e.g., a job listing). The process 700 can extract message information from the received task message (act 710). For example, the process 700 can utilize one or more of the following sub-blocks of a Natural Language Processing System (as shown in Figure 2) to extract message information: Entity Extraction (Figure 2, 205), Syntactic Parsing (Figure 2, 210), Meeting Classifications (Figure 2, 215), or Intent Modeling (Figure 2, 235). The process 700 can also extract (and store) the following information: message identifier, due date (e.g., date by which the requisition should be filled), interview loop information, and/or associated information. Interview loop information can include information about the stage of the interview (e.g., pre- screening(s), main round(s), follow-up(s), etc.). In some embodiments of the present technology, the task message includes information about one or more candidates (e.g., candidate identifier, name, contact information, relevant experience, skill sets, preferences, etc.).
[0047] As shown in Figure 7, the process 700 can identify a list of interviewers for the received task message (act 715). The list of interviewers may be based on several factors, such as interview loop information, requisition associated with the task message, and/or other information. The process 700 can then automatically and autonomously access calendars and/or preferences of the interviewers in the list of interviewers (act 720). For example, the process 700 can access calendars and preferences of all Interviewers through mail client APIs. Process 700 can then generate a set of available time slots (act 725). The set of available time slots can include time slots during which at least a predetermined threshold of interviewers in the list of interviewers are available. Based on the type of the meeting (e.g., audio call, video call, in-person, etc.), the process 700 can request additional information from the candidates. For example, if meeting type is audio call, then the process 700 can request candidate contact details. For an in-person meeting, the process 700 can request potential interview locations. The process 700 can then generate an interview schedule message (act 730). The interview schedule message can comprise a subset of the set of available time slots, a list of scheduled interviewers, at least a portion of the interview loop information, and/or request for additional information (e.g., candidate contact details, potential interview locations, etc.). The list of scheduled interviewers comprises interviewers that are available during at least one time slot in the subset of the set of available time slots. The process 700 can then store the interview schedule message and/or transmit it to one or more entities (e.g., candidate, interviewer(s), hiring manager, etc.). The process 700 can also update the status of the interview loop as initiated.
[0048] Figure 8 is a block diagram illustrating a process 800 for processing a candidate reply in accordance with embodiments of the present technology The process 800 receives a reply message from a candidate (act 805) and processes the received messaged to extract relevant information (act 810). For example, the process 800 can extract candidate information, response type (e.g., acceptance, rejection, reschedule, etc.), requisition information, original interview schedule message information, and/or other suitable reply message information. The process 800 can then determine if the candidate accepted one of the time slots in the original interview schedule message (act 815). If candidate replies that none of the slots work, process 800 determines if any other time preference is mentioned by candidate in the reply message (act 850). If the reply message includes at least one alternate time slot, process 800 access the calendars and/or preferences of interviewers to check their availability during the alternate time slots (act 852). In some embodiments of the present technology, the process 800 checks the availability of only the interviewers who were previously identified as available during the initial scheduling process (i.e., a predetermined list of interviewers). In some embodiments of the present technology, the process 800 checks the availability of all interviewers. In some embodiments of the present technology, the process 800 first checks the availability of the interviewers who were identified as available during the initial scheduling process. If at least a threshold number of interviewers are not available, the process 800 can then check the availability of all relevant interviewers.
[0049] Upon accessing the calendars and/or preferences of interviewers, the process 800 generates a revised list of available interviewers (e.g., interviewers who are available during at least one alternate time slot specified in the reply message received from the candidate) (act 855). The process 800 then generates revised interview schedule messages (including, for example, meeting invitations) for the most optimum alternate time slot (e.g., time slot with maximum interviewer availability, time slot with highest candidate preference, etc.) (act 857). The revised interview schedule messages are then transmitted to one or more entities (e.g., candidate, one or more interviewers on the revised list of interviewers, hiring manager, etc.) (act 860). In some embodiments of the present technology, the process 800 can send a cancellation message to interviewers who are no longer on the interview schedule (e.g., interviewers for whom the alternate time slot does not work). The process 800 may then mark the interview loop as scheduled (act 865) and/or stored revised meeting details (act 870).
[0050] In act 850, if the process 800 determines that the reply message does not include any alternate time slot, the process 800 accesses the calendars and/or preferences of interviewers to check their availability to identify the alternate time slots (act 875). In some embodiments of the present technology, the process 800 checks the availability of only the interviewers who were identified as available during the initial scheduling process (list of interviewers). In some embodiments of the present technology, the process 800 checks the availability of all interviewers. In some embodiments of the present technology, the process 800 first checks the availability of the interviewers who were identified as available during the initial scheduling process. If at least a threshold number of interviewers are not available and/or a threshold number of alternate time slots are not identified, the process 800 can then check the availability of all relevant interviewers.
[0051] Upon accessing the calendars and/or preferences of interviewers, the process 800 generates a revised set of available time slots (act 880). The revised set of available time slots can comprises time slots during which at least a predetermined threshold of interviewers are available. In some embodiments of the present technology, the original set of available time slots and the revised set of available time slots are disjoint (i.e., the old slots are not included in the revised set). The process 800 then generates revised interview schedule messages (including, for example, meeting invitations) for one or more the most optimum revised time slots (e.g., time slot with maximum interviewer availability, time slot with highest candidate preference, etc.) (act 885). The revised interview schedule messages are then transmitted to one or more entities (e.g. , candidate, one or more interviewers on the revised list of interviewers, hiring manager, etc.) (act 890).
[0052] Alternatively, if in act 815, the process 800 determines that the candidate accepted one of the time slots in the original interview schedule message, the process 800 accesses the calendars and/or preferences of the originally scheduled interviewers to recheck their availability (act 820). Based on the availability information of the interviewers, the process 800 can generate meeting invitations (e.g., calendar invites via email APIs) (act 825). The process 800 can then send the generated meeting invitations to one or more entities (e.g., candidates, available interviewers, hiring manager, etc.) (act 835). The process 800 can then mark the interview loop as scheduled (act 840) and/or store the meeting details (e.g., task id, event id, sent time, interviewer details, candidate details, action after event) (act 845). In this case, the action after event is to contact interviewer.
[0053] Figure 9 is a block diagram illustrating a process 900 for processing an interviewer reply in accordance with embodiments of the present technology. The process 900 receives a reply message from an interviewer (act 905) and processes the received messaged to extract relevant information (act 910). For example, process 900 can extract interviewer information, type of action/response (e.g., acceptance, rejection, reschedule, replacement, etc.), requisition information, original interview schedule message information, and/or other types of interview-related information. The process 900 determines a type of action in the interviewer reply message (act 915). Type of action can include a positive response to the candidate for an interview loop, a negative response to the candidate for an interview loop, reschedule request, replacement request, etc. If action is a positive response to the candidate, the process 900 can trigger a new task message (e.g., to schedule another interview loop, accept candidate for requisition, etc.) (act 920) and/or update the interviewer's evaluation of the candidate as acceptable (act 925). If action is a negative response to the candidate, the process 900 can mark the task as complete (act 930) and/or update the interviewer's evaluation of the candidate as rejected (act 935).
[0054] If the type of action is a request to reschedule the scheduled interview at a proposed time slot, the process 900 can access the calendars and/or preferences of the interviewers (e.g., original scheduled interviewers, all interviewers, subset of interviewers, etc.) (act 940). In some embodiments of the present technology the process 900 can determine if a proposed time slot is mentioned in the interviewer's reply message and check availability of other interviewers during the proposed time slot. Based on the availability information of the interviewers, the process 900 can generate a revised set of available time slots (act 942). The revised set of available time slots can include time slots during which at least a predetermined threshold of interviewers in the list of interviewers are available. In some embodiments of the present technology, the revised set of time slots incudes a time slot proposed by the interviewer. The time slot proposed by the interviewer can be associated with a higher priority than other time slots. In some embodiments of the present technology, the original set of available time slots and the revised set of available time slots are disjoint (i.e., the old slots are not included in the revised set). The process 900 can then generate a revised interview schedule message with the new time slot(s) (act 944). The revised interview schedule message can comprise a subset of the set of available time slots, a revised list of scheduled interviewers, at least a portion of the interview loop information, request for additional information (e.g., candidate contact details, potential interview locations, etc.), and/or related information. The list of scheduled interviewers comprises interviewers that are available during at least one time slot in the subset of the set of available time slots. The process 900 can then transmit the revised interview schedule message to one or more entities (e.g., candidate, interviewer(s), hiring manager, etc.) (act 946), mark the interview loop as rescheduled (act 948), and/or store the interview schedule message (act 950).
[0055] If the type of action is a request to find a replacement, the process 900 can access the calendars and/or preferences of other interviewers (e.g., original scheduled interviewers, all interviewers, subset of interviewers, etc.) (act 952). The process 900 can determine, based on interviewers' calendars and/or preferences if at least one other interviewer is available at the originally scheduled time slot. The process 900 can then generate and send a message to at least one other available interviewer to inquire whether they are available (and/or willing) to participate in the interview at the originally scheduled time (act 954). The process 900 can wait for a response from at least one other available interview. If a response is received within a threshold time frame, the process 900 can generate and send a message to other entities (e.g., originally scheduled interviewers, interviewer who requested that a replacement be found, candidate, hiring manager, etc.) that a new interviewer will participate in the interview (act 958). The process 900 can then mark the interview loop as replacement found (act 960) and/or store the revised meeting details (act 962). On the other hand, if no response is received within a threshold time frame, the process 900 can proceed to act 940 (discussed above).
[0056] Figure 10 is a block diagram illustrating an overview of devices on which some implementations of the disclosed technology can operate. The devices can comprise hardware components of a device 1000 that provide autonomous and smart assistance in processing and analyzing task messages (e.g., received via emails, telephone calls, text messages, etc.) to schedule interviews, reschedule interviews, and/or perform follow-ups to move a candidate through the hiring process. Device 1000 can include one or more input devices 120 that provide input to the CPU (processor) 1010, notifying it of actions. The actions are typically mediated by a hardware controller that interprets the signals received from the input device and communicates the information to the CPU 1010 using a communication protocol. Input devices 1020 include, for example, a mouse, a keyboard, a touchscreen, an infrared sensor, a touchpad, a wearable input device, a camera- or image-based input device, a microphone, or other user input devices.
[0057] CPU 1010 can be a single processing unit or multiple processing units in a device or distributed across multiple devices. CPU 1010 can be coupled to other hardware devices, for example, with the use of a bus, such as a PCI bus or SCSI bus. The
CPU 1010 can communicate with a hardware controller for devices, such as for a display 1030. Display 1030 can be used to display text and graphics. In some examples, display 1030 provides graphical and textual visual feedback to a user. In some implementations, display 1030 includes the input device as part of the display, such as when the input device is a touchscreen or is equipped with an eye direction monitoring system. In some implementations, the display is separate from the input device. Examples of display devices are: an LCD display screen, an LED display screen, a projected, holographic, or augmented reality display (such as a heads-up display device or a head-mounted device), and so on. Other I/O devices 1040 can also be coupled to the processor, such as a network card, video card, audio card, USB, firewire or other external device, camera, printer, speakers, CD-ROM drive, DVD drive, disk drive, or Blu-Ray device.
[0058] In some implementations, the device 1000 also includes a communication device capable of communicating wirelessly or wire-based with a network node. The communication device can communicate with another device or a server through a network using, for example, TCP/IP protocols. Device 1000 can utilize the communication device to distribute operations across multiple network devices.
[0059] The CPU 1010 can have access to a memory 1050. A memory includes one or more of various hardware devices for volatile and non-volatile storage, and can include both read-only and writable memory. For example, a memory can comprise random access memory (RAM), CPU registers, read-only memory (ROM), and writable non-volatile memory, such as flash memory, hard drives, floppy disks, CDs, DVDs, magnetic storage devices, tape drives, device buffers, and so forth. A memory is not a propagating signal divorced from underlying hardware; a memory is thus non-transitory. Memory 1050 can include program memory 1060 that stores programs and software, such as an operating system 1062, smart recruiting system 1064, and other application programs 1066. Memory 1050 can also include data memory 1070 that can include information about requisitions, candidates, interviewers, configuration data, settings, user options or preferences, etc., which can be provided to the program memory 1060 or any element of the device 1000.
[0060] Some implementations can be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the technology include, but are not limited to, personal computers, server computers, handheld or laptop devices, cellular telephones, wearable electronics, tablet devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, or the like.
[0061] Figure 1 1 is a block diagram illustrating an overview of an environment 1 100 in which some implementations of the disclosed technology can operate. Environment 1 100 can include one or more client computing devices 1 105A-D, examples of which can include device 1000. Client computing devices 1 105 can operate in a networked environment using logical connections 1 1 10 through network 1 130 to one or more remote computers, such as a server computing device.
[0062] In some implementations, server 1 1 10 can be an edge server which receives client requests and coordinates fulfillment of those requests through other servers, such as servers 1 120A-C. Server computing devices 1 1 10 and 1 120 can comprise computing systems, such as device 1000. Though each server computing device 1 1 10 and 1 120 is displayed logically as a single server, server computing devices can each be a distributed computing environment encompassing multiple computing devices located at the same or at geographically disparate physical locations. In some implementations, each server 1 120 corresponds to a group of servers.
[0063] Client computing devices 1 105 and server computing devices 1 1 10 and 1 120 can each act as a server or client to other server/client devices. Server 1 1 10 can connect to a database 1 1 15. Servers 1 120A-C can each connect to a corresponding database 1 125A-C. As discussed above, each server 1 120 can correspond to a group of servers, and each of these servers can share a database or can have their own database. Databases 1 1 15 and 1 125 can warehouse (e.g. store) information such as information about requisitions, candidates, interviewers. Though databases 1 1 15 and 1 125 are displayed logically as single units, databases 1 1 15 and 1 125 can each be a distributed computing environment encompassing multiple computing devices, can be located within their corresponding server, or can be located at the same or at geographically disparate physical locations.
[0064] Network 1 130 can be a local area network (LAN) or a wide area network (WAN), but can also be other wired or wireless networks. Network 1 130 may be the Internet or some other public or private network. Client computing devices 1 105 can be connected to network 1 130 through a network interface, such as by wired or wireless communication. While the connections between server 1 1 10 and servers 1 120 are shown as separate connections, these connections can be any kind of local, wide area, wired, or wireless network, including network 1 130 or a separate public or private network.
[0065] Overall, the system may be implemented by any suitable computing environment. Although not required, aspects of the present technology are implemented as computer-executable instructions, such as routines executed by a general-purpose data processing device, e.g., a server computer, wireless device or personal computer. Those skilled in the relevant art will appreciate that aspects of the present technology can be practiced with other communications, data processing, or computer system configurations, including: Internet appliances, hand-held devices (including personal digital assistants (PDAs)), wearable computers, all manner of cellular or mobile phones (including Voice over IP (VoIP) phones), multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, mini-computers, mainframe computers, and the like. Indeed, the terms "computer," "server," "host," "host system," and the like are generally used interchangeably, and refer to any of the above devices and systems, as well as any data processor.
[0066] Aspects of the present technology can be embodied in a special purpose computer or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions explained in detail herein. While aspects of the present technology, such as certain functions, are at times described as being performed exclusively on a single device, the present technology can also be practiced in distributed environments where functions or modules are shared among disparate processing devices, which are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
[0067] Aspects of the present technology may be stored or distributed on tangible computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media. Alternatively, computer implemented instructions, data structures, screen displays, and other data under aspects of the present technology may be distributed over the Internet or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time, or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme).
[0068] Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise," "comprising," and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of "including, but not limited to." As used herein, the terms "connected," "coupled," or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements; the coupling or connection between the elements can be physical, logical, or a combination thereof. Additionally, the words "herein," "above," "below," and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word "or" in reference to a list of two or more items covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
[0069] The above Detailed Description of examples of the present technology is not intended to be exhaustive or to limit the present technology to the precise form disclosed above. While specific examples for the present technology are described above for illustrative purposes, various equivalent modifications are possible within the scope of the present technology, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative implementations may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or subcombinations. Each of these processes or blocks may be implemented in a variety of different ways. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Further any specific numbers noted herein are only examples: alternative implementations may employ differing values or ranges.
[0070] The teachings of the present technology provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various examples described above can be combined to provide further implementations of the present technology. Some alternative implementations of the present technology may include not only additional elements to those implementations noted above, but also may include fewer elements.
[0071] Any patents and applications and other references noted above, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the present technology can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further implementations of the present technology. When statements or subject matter in an incorporated by reference conflict with statements or subject matter of this application, then this application shall control.
[0072] These and other changes can be made to the present technology in light of the above Detailed Description. While the above description describes certain examples of the present technology, and describes the best mode contemplated, no matter how detailed the above appears in text, the present technology can be practiced in many ways. Details of the system may vary considerably in its specific implementation, while still being encompassed by the present technology disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the present technology should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the present technology with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the present technology to the specific examples disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the present technology encompasses not only the disclosed examples, but also all equivalent ways of practicing or implementing the present technology under the claims.

Claims

CLAIMS We claim:
1 . A computer-implemented method of autonomous scheduling of meetings, the method comprising:
receiving, by an autonomous recruiting system, a task message,
wherein the task message comprises information about at least one requisition;
extracting, based on the task message, message information,
wherein the message information comprises a message identifier, due date, and interview loop information;
accessing, by the autonomous recruiting system, via a mail client API, at least one calendar of a list of interviewers,
wherein the list of interviewers comprises at least one interviewer associated with the requisition;
generating, based on the accessed calendars and at least a portion of the extracted message information, a set of available time slots, wherein the set of available time slots comprises time slots during which at least a predetermined threshold of interviewers in the list of interviewers are available, and
wherein the set of available time slots is based on at least a portion of the extracted message information;
generating an interview schedule message,
wherein the interview schedule message comprises a subset of the set of available time slots, a list of scheduled interviewers, and at least a portion of the interview loop information, and
wherein the list of scheduled interviewers comprise interviewers that are available during at least one time slot in the subset of the set of available time slots; and
transmitting the generated interview schedule message to the list of scheduled interviewers and at least one candidate.
2. The computer-implemented method of claim 1 wherein the message information comprises:
temporal expressions, or
location expressions, or
contact information, or
relationship expressions, or
entity relevance expressions, or
type of meeting expressions, or
priority expressions, or
action expressions, or
any combination thereof.
3. The computer-implemented method of claim 1 wherein the list of interviewers is based on the interview loop information and the at least one requisition.
4. The computer-implemented method of claim 1 , further comprising:
for each distinguished time slot in the set of available time slots:
generating a mapping between information identifying at least one interviewer in the list of interviewers and an availability indicator of the interviewer during the distinguished time slot.
5. The computer-implemented method of claim 1 , further comprising:
receiving, from the at least one candidate, a reply message to the generated interview schedule,
wherein the reply message comprises a candidate identifier and a requisition identifier; and
extracting information from the reply message to determine a next action.
6. The computer-implemented method of claim 5 wherein the reply message comprises an indicator that no time slots in the subset of the set of available time slots are acceptable to the at least one candidate.
7. The computer-implemented method of claim 6, further comprising:
determining if the reply message comprises at least one alternate time slot; and when the reply message comprises at least one alternate time slot:
accessing, by the autonomous recruiting system, via the mail client API, at least one calendar of the list of interviewers;
generating, based on the accessed calendars, a list of available interviewers,
wherein the list of available interviewers comprise interviewers that are available during the at least one alternate time slot; generating a revised interview schedule message,
wherein the revised interview schedule message comprises a calendar event for the at least one alternate time slot; and transmitting the revised interview schedule message to the list of available interviewers and the at least one candidate; and
when the reply message does not comprises at least one alternate time slot: accessing, by the autonomous recruiting system, via the mail client API, at least one calendar of the list of interviewers;
generating, based on the accessed calendars, a revised set of available time slots,
wherein the revised set of available time slots comprises time slots during which at least a predetermined threshold of interviewers in the list of interviewers are available, and wherein the set of available time slots and the revised set of available time slots are disjoint;
generating a revised interview schedule message,
wherein the revised interview schedule message comprises a subset of the revised set of available time slots, a revised list of scheduled interviewers, and at least a portion of the interview loop information, and
wherein the revised list of scheduled interviewers comprise interviewers that are available during at least one time slot in the subset of the revised set of available time slots; and transmitting the generated revised interview schedule message to the revised list of scheduled interviewers and the at least one candidate.
8. The computer-implemented method of claim 6, further comprising:
determining if the reply message comprises at least one alternate time slot; and when the reply message comprises at least one alternate time slot:
accessing, by the autonomous recruiting system, via the mail client API, at least one calendar of the list of interviewers;
generating, based on the accessed calendars, a list of available interviewers,
wherein the list of available interviewers comprise interviewers that are available during the at least one alternate time slot; identifying an optimum time slot from the at least one alternative time slot, wherein the optimum time slot is a time slot during which a predetermined number of available interviewers are available;
generating a revised interview schedule message,
wherein the revised interview schedule message comprises a calendar event for the optimum time slot; and
transmitting the revised interview schedule message to the list of available interviewers and the at least one candidate; and
when the reply message does not comprises at least one alternate time slot: accessing, by the autonomous recruiting system, via the mail client API, at least one calendar of the list of interviewers;
generating, based on the accessed calendars, a revised set of available time slots,
wherein the revised set of available time slots comprises time slots during which at least a predetermined threshold of interviewers in the list of interviewers are available, and wherein the set of available time slots and the revised set of available time slots are disjoint;
generating a revised interview schedule message, wherein the revised interview schedule message comprises a subset of the revised set of available time slots, a revised list of scheduled interviewers, and at least a portion of the interview loop information, and
wherein the revised list of scheduled interviewers comprise interviewers that are available during at least one time slot in the subset of the revised set of available time slots; and transmitting the generated revised interview schedule message to the revised list of scheduled interviewers and the at least one candidate.
9. The computer-implemented method of claim 1 , further comprising:
monitoring a response from the at least one candidate;
when a response is not received from the at least one candidate within a threshold time frame:
generating a reminder message,
wherein the reminder message comprises at least a portion of information in the interview schedule message; and
transmitting the reminder message to the at least one candidate.
10. The computer-implemented method of claim 9, further comprising:
maintaining a reminder message counter which indicates a count of the reminder messages transmitted to the at least one candidate; and when the reminder message count is greater than a message reminder threshold count, transmitting a message to a hiring manager, wherein the message to the hiring manager comprises information about the at least one candidate and the at least one requisition.
1 1 . The computer-implemented method of claim 1 , further comprising:
receiving, from at least one distinguished interviewer in the list of scheduled interviewers, a reply message to the generated interview schedule, wherein the reply message comprises an interviewer identifier and a requisition identifier; and
extracting information from the reply message to determine a next action.
12. The computer-implemented method of claim 1 1 wherein the reply message comprises a message indicating that the at least one distinguished interviewer is not available during the subset of the set of available time slots.
13. The computer-implemented method of claim 12, further comprising:
determining if the reply message comprises at least one alternate time slot; and when the reply message comprises at least one alternate time slot:
accessing, by the autonomous recruiting system, via the mail client API, at least one calendar of the list of scheduled interviewers;
generating, based on the accessed calendars, a list of available interviewers,
wherein the list of available interviewers comprise interviewers that are available during the at least one alternate time slot; generating a revised interview schedule message,
wherein the revised interview schedule message comprises a calendar event for the at least one alternate time slot; and transmitting the revised interview schedule message to the list of available interviewers and the at least one candidate; and when the reply message does not comprises at least one alternate time slot: accessing, by the autonomous recruiting system, via the mail client API, at least one calendar of the list of scheduled interviewers;
generating, based on the accessed calendars, a revised set of available time slots,
wherein the revised set of available time slots comprises time slots during which at least a predetermined threshold of interviewers in the list of scheduled interviewers are available, and
wherein the set of available time slots and the revised set of available time slots are disjoint; generating a revised interview schedule message,
wherein the revised interview schedule message comprises a subset of the revised set of available time slots, a revised list of scheduled interviewers, and at least a portion of the interview loop information, and
wherein the revised list of scheduled interviewers comprise interviewers that are available during at least one time slot in the subset of the revised set of available time slots; and transmitting the generated revised interview schedule message to the revised list of scheduled interviewers and the at least one candidate.
14. The computer-implemented method of claim 1 , further comprising:
maintaining a set of preferences of interviewers in the list of interviewers,
wherein at least one time slot in the set of available time slots is generated based on the set of preferences of interviewers.
15. The computer-implemented method of claim 1 , further comprising:
receiving a preference update message from a distinguished interviewer in the list of interviewers; and
updating at least one preference associated with the distinguished interviewer.
16. The computer-implemented method of claim 2,
wherein the type of meeting is based at least in part on the interview loop information, and
wherein the type of meeting is an audio call, a video call, or an in-person meeting.
17. The computer-implemented method of claim 1 wherein:
the task message is received from an applicant tracking system; and
the applicant tracking system provides an interface for users to add information about candidates, or requisitions, or interview loops, or any combination thereof.
18. The computer-implemented method of claim 1 , further comprising:
receiving information about a set of candidates from a candidate sourcing system; and
identifying a subset of the set of candidates based on the task message,
wherein the subset of the set of candidates comprises candidates with skill sets that match skill sets associated with the at least one requisition.
19. A tangible computer-readable storage medium excluding transitory signals, and which contains instructions for performing a method of autonomous scheduling of meetings, the method comprising:
receiving, by an autonomous recruiting system, a task message,
wherein the task message comprises information about at least one requisition;
extracting, based on the task message, message information;
wherein the message information comprises a message identifier, due date, and interview loop information;
accessing, by the autonomous recruiting system, via a mail client API, at least one calendar of a list of interviewers,
wherein the list of interviewers comprises at least one interviewer associated with the requisition;
generating, based on the accessed calendars and at least a portion of the extracted message information, a set of available time slots, wherein the set of available time slots comprises time slots during which at least a predetermined threshold of interviewers in the list of interviewers are available, and
wherein the set of available time slots is based on at least a portion of the extracted message information;
generating an interview schedule message,
wherein the interview schedule message comprises a subset of the set of available time slots, a list of scheduled interviewers, and at least a portion of the interview loop information, and wherein the list of scheduled interviewers comprise interviewers that are available during at least one time slot in the subset of the set of available time slots; and
transmitting the generated interview schedule message to the list of scheduled interviewers and at least one candidate.
20. An apparatus, coupled to a network and configured to perform autonomous scheduling of meetings, the apparatus comprising:
at least one hardware processor coupled to the network; and
at least one memory storing instructions, which when executed by the at least one processor, performs a method of—
receiving, by an autonomous recruiting system, a task message,
wherein the task message comprises information about at least one requisition;
extracting, based on the task message, message information;
wherein the message information comprises a message identifier, due date, and interview loop information;
accessing, by the autonomous recruiting system, via a mail client API, at least one calendar of a list of interviewers;
generating, based on the accessed calendars and at least a portion of the extracted message information, a set of available time slots;
generating an interview schedule message,
wherein the list of scheduled interviewers comprise interviewers that are available during at least one time slot in the subset of the set of available time slots; and
transmitting the generated interview schedule message to the list of scheduled interviewers and at least one candidate.
PCT/US2018/013015 2017-01-09 2018-01-09 Smart recruiting systems and associated devices and methods Ceased WO2018129550A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762444231P 2017-01-09 2017-01-09
US62/444,231 2017-01-09

Publications (2)

Publication Number Publication Date
WO2018129550A1 true WO2018129550A1 (en) 2018-07-12
WO2018129550A9 WO2018129550A9 (en) 2018-09-13

Family

ID=62791050

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/013015 Ceased WO2018129550A1 (en) 2017-01-09 2018-01-09 Smart recruiting systems and associated devices and methods

Country Status (1)

Country Link
WO (1) WO2018129550A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117258A (en) * 2018-07-24 2019-01-01 合肥工业大学 A kind of multiple nucleus system Static task scheduling method that task based access control is mobile
US20200160423A1 (en) * 2018-11-16 2020-05-21 International Business Machines Corporation Monitoring derived requirements for devices and services

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110047090A1 (en) * 2009-08-20 2011-02-24 Shlomit Sarusi System and apparatus to increase efficiency in matching candidates to job offers while keeping candidate privacy
US20110276507A1 (en) * 2010-05-05 2011-11-10 O'malley Matthew Carl System and method for recruiting, tracking, measuring, and improving applicants, candidates, and any resources qualifications, expertise, and feedback
US20130097093A1 (en) * 2011-10-12 2013-04-18 George Kolber Systems and Methods for Quantifying Job Candidates
US20150242816A1 (en) * 2014-02-25 2015-08-27 Vittal Srimushnam Sharing recruiting information
US20160162840A1 (en) * 2014-10-07 2016-06-09 Rick Roberts Talent acquisition and management system and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110047090A1 (en) * 2009-08-20 2011-02-24 Shlomit Sarusi System and apparatus to increase efficiency in matching candidates to job offers while keeping candidate privacy
US20110276507A1 (en) * 2010-05-05 2011-11-10 O'malley Matthew Carl System and method for recruiting, tracking, measuring, and improving applicants, candidates, and any resources qualifications, expertise, and feedback
US20130097093A1 (en) * 2011-10-12 2013-04-18 George Kolber Systems and Methods for Quantifying Job Candidates
US20150242816A1 (en) * 2014-02-25 2015-08-27 Vittal Srimushnam Sharing recruiting information
US20160162840A1 (en) * 2014-10-07 2016-06-09 Rick Roberts Talent acquisition and management system and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117258A (en) * 2018-07-24 2019-01-01 合肥工业大学 A kind of multiple nucleus system Static task scheduling method that task based access control is mobile
US20200160423A1 (en) * 2018-11-16 2020-05-21 International Business Machines Corporation Monitoring derived requirements for devices and services
US10929914B2 (en) * 2018-11-16 2021-02-23 International Business Machines Corporation Monitoring derived requirements for devices and services
US11538088B2 (en) 2018-11-16 2022-12-27 International Business Machines Corporation Monitoring derived requirements for devices and services

Also Published As

Publication number Publication date
WO2018129550A9 (en) 2018-09-13

Similar Documents

Publication Publication Date Title
US12457272B2 (en) Intent-based scheduling via digital personal assistant
US10755195B2 (en) Adaptive, personalized action-aware communication and conversation prioritization
Gans et al. Telephone call centers: Tutorial, review, and research prospects
US20210264372A1 (en) Automated human resources management and engagement system and method
CA2983124C (en) Automatic extraction of commitments and requests from communications and content
US20160335572A1 (en) Management of commitments and requests extracted from communications and content
US20170193349A1 (en) Categorizationing and prioritization of managing tasks
WO2020005648A1 (en) Meeting preparation manager
US10140591B2 (en) Method and system for supplementing job postings with social network data
US20180365713A1 (en) Streamlined data entry paths using individual account context on a mobile device
US20140025598A1 (en) Electronic sourcing management system
US20160148133A1 (en) Risk assessment through contextual analysis
US11328265B1 (en) System, method, and computer program product for allocating time to achieve objectives
US20160171452A1 (en) Automated Consecutive Scheduling
TWI865902B (en) Method for scheduling a calendar event using natural language through an artificial intelligence agent
US20200186371A1 (en) Apparatus and method
US20200387873A1 (en) Calendar optimization
US20170147982A1 (en) Dynamic system for human resource networking
US20190188624A1 (en) Automated one-to-many scheduling of interviews with candidates
WO2018129550A1 (en) Smart recruiting systems and associated devices and methods
Stray An empirical investigation of the daily stand-up meeting in Agile software development projects
US20190378079A1 (en) Determining user priorities based on electronic activity
CN117955998B (en) A data-driven application management method, device, electronic device and medium
Cromar From techie to boss: transitioning to leadership
GB2635779A (en) Handling electronic communications

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18736069

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18736069

Country of ref document: EP

Kind code of ref document: A1