widal001 / interview-scheduling Goto Github PK
View Code? Open in Web Editor NEWAn algorithm for assigning and scheduling interviews based on mutual interest and availability
License: MIT License
An algorithm for assigning and scheduling interviews based on mutual interest and availability
License: MIT License
Create a Matcher
class with an match_interviews()
method which takes a set of preferences and returns a set of interview assignments based on those preferences
Matcher
with the following attributes:
candidates
- List of unique candidatespositions
- List of unique positionsc_prefs
- Dictionary of candidate preferences for each positionp_prefs
- Dictionary of hiring manager preferences for each candidate by positionMatcher
class has a match_interviews()
method which accepts the following inputs:
c_min
- The minimum number of interviews a candidate must have to be considered "matched"c_max
- The minimum number of interviews a candidate can havep_min
- The minimum number of candidates that must be interviewing for a position in order for it to be considered "matched"p_max
- The maximum number of candidates that can interview for a positionself.c_matches
self.p_matches
self.c_remaining
self.p_remaining
self.logs
Add logging to the Matcher
class to keep track of the steps that happen during the deferred acceptance algorithm
MatchLogger
classMatchResult
object returned by theCreate a class Scheduler
and a method schedule_interviews()
to schedule interviews based on mutual availability of candidates and hiring managers
__init__()
method for Scheduler
accepts the following inputs:
c_availability
- Dictionary of candidate availability with following format {"candidate name": ["Block 1, "Block 2", "Block 3"]p_availability
- Dictionary of hiring manager availability by position with same format as c_availability
interviews
- List of tuples that represent the candidate position pairing for each interview that needs to be scheduledschedule_interviews()
returns the following values
self.interview_schedule
A dictionary that maps interview tuples to the blocks during which they'll occurComplete the basic setup for the project
docs/
sub-directorydocs/
pytest
mdformat
flake8
black
pre-commit hooks
Update repo structure to incorporate best practices from python boilerplate template project
poetry
projectLICENSE
CODE_OF_CONDUCT
CONTRIBUTING.md
poetry install
Refactor algorithms to make them a bit more modularized and add Position
and Candidate
classes to reduce the amount of data stored directly on the Matcher
and Scheduler
class
self.candidates
List of candidates applying for the cohortself.positions
List of positions applying to be filled as part of the cohortself.matcher
Instance of the Matcher
class used to assign interviews and placementsself.scheduler
Instance of the Scheduler
class used to scheduleself.assign_interviews()
Assigns candidates to interviews with positions based on mutual rankingsself.schedule_interviews()
Schedules the interviews assigned to time slots based on mutual availabilityself.assign_placements()
Assigns candidates to placements with positions based on mutual rankingsself.list_interviews()
Returns the set of assigned interviews in the format specifiedself.list_placements()
Returns the set of assigned placements in one of a number of formatA declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.