1. A method comprising: presenting, by an interview-scheduling tool executing by a processing device, a user interface to receive candidate availability information from a user for possible interview schedules for an interview candidate and to permit the user to define an interview schedule framework that specifies desired criteria for a desired interview schedule for the interview candidate, wherein the desired criteria of the interview schedule framework specify a plurality of interview sessions, and, for each of the plurality of interview sessions: an interview topic for the respective interview session; and a desired start time and a desired end time or desired duration for the respective interview session; receiving, by the interview-scheduling tool, the candidate availability information and the desired criteria, wherein at least two of the plurality of interview sessions are back-to-back interview sessions; defining, by the interview-scheduling tool, a data structure representing the interview schedule framework, wherein the data structure comprises a set of constraint satisfaction problems (CSPs), wherein defining the data structure comprises creating an input file with the set of CSPs by defining a list of variables that make up the CSPs, wherein the list of variables are provided in a two-dimensional array of integers, and wherein the set of constraints comprises: a first constraint to find a solution that has exactly one penalty from an interviewer conflict, an interview location conflict or a room change for a number of candidate availability windows to be checked for the desired interview schedule; a second constraint to enforce that the plurality of interview session are consecutive; a third constraint to enforce that each of the available interviewers has at most one interviewer role assignment unless specifically identified in the desired criteria; sending the input file to a constraint solver tool; receiving an output file from the constraint solver tool, wherein result values for the list of variables are to be returned in the output file and wherein the output file comprises data representing the zero or more interview schedule results that fit the interview schedule framework; and presenting, by the interview-scheduling tool, zero or more interview schedule results that fit the desired interview schedule for selection by the user, wherein the zero or more interview schedule results are automatically generated from the set of CSPs by the constraint solver tool and without additional user interaction at the user interface.
1. A method comprising: presenting, by an interview-scheduling tool executing by a processing device, a user interface to receive candidate availability information from a user for possible interview schedules for an interview candidate and to permit the user to define an interview schedule framework that specifies desired criteria for a desired interview schedule for the interview candidate, wherein the desired criteria of the interview schedule framework specify a plurality of interview sessions, and, for each of the plurality of interview sessions: an interview topic for the respective interview session; and a desired start time and a desired end time or desired duration for the respective interview session; receiving, by the interview-scheduling tool, the candidate availability information and the desired criteria, wherein at least two of the plurality of interview sessions are back-to-back interview sessions; defining, by the interview-scheduling tool, a data structure representing the interview schedule framework, wherein the data structure comprises a set of constraint satisfaction problems (CSPs), wherein defining the data structure comprises creating an input file with the set of CSPs by defining a list of variables that make up the CSPs, wherein the list of variables are provided in a two-dimensional array of integers, and wherein the set of constraints comprises: a first constraint to find a solution that has exactly one penalty from an interviewer conflict, an interview location conflict or a room change for a number of candidate availability windows to be checked for the desired interview schedule; a second constraint to enforce that the plurality of interview session are consecutive; a third constraint to enforce that each of the available interviewers has at most one interviewer role assignment unless specifically identified in the desired criteria; sending the input file to a constraint solver tool; receiving an output file from the constraint solver tool, wherein result values for the list of variables are to be returned in the output file and wherein the output file comprises data representing the zero or more interview schedule results that fit the interview schedule framework; and presenting, by the interview-scheduling tool, zero or more interview schedule results that fit the desired interview schedule for selection by the user, wherein the zero or more interview schedule results are automatically generated from the set of CSPs by the constraint solver tool and without additional user interaction at the user interface. 13. The method of claim 1 , wherein the input file comprises: defining, from the desired criteria of the interview schedule framework, a set of constraints that define what values can be assigned to the list of variables.