MIT Bootcamps Admissions Process Automation

Ruby on Rails / Bootstrap 4 / HTML5 / Heroku


MIT Bootcamps team was scaling up and needed to automate processing of student applications.

Spreadsheets were used to handle admissions process historically and with 1000+ applicants for each new class convolution of the process accumulated exponentially, resulting in occasional loss of application data.

Existing off-the-shelf options were considered did not support voting on decisions, implemented different admissions process and annual cost quoted was as much as a new custom development.


A back-office web application implementing pre-existing student admissions workflow has been created and deployed.

3x reduction in administrative staff workload
2x increase of student applications that have been accepted and paid tuition (per class)
100% data consistency


Main screen displays overview of a class, visualising how many students are on each of the application stage currently.

Admissions system dashboard screenshot
Admissions system dashboard.

The first column provides summary into the class composition and admissions process status, showing number of applicants and how many have committed to attend. Remaining columns show applications in various stages and overall pipeline: how many reached screening stage, how many went past to interviewing stage and how many admissions decisions were made for the class.

System users also use Today screen to view pending applications that are ready to be actioned.

Today page screenshot
Today screen.

Admissions system ensures that state transition follow predefined process, using state diagram that has beed defined with the admissions team during analysis.

State diagram
State diagram graph autogenerated from the code.

Application Form

Application forms filled on the website are sent to the admission system right away using its REST API. The form is editable and permits seeing everything that has been happening with the application in one place: personal data, current status, voting results, interview notes, payments.

Application Form screenshot
Application Form screen.

Consensus Student Review

Two different voting mechanisms were built to support decision-making at various stages.

Initially, applications are being reviewed by a few members of the team, who vote on whether it should proceed forward based on the application content. The vote is a simple yes/no and the application is allowed to proceed to a next stage — interviewing or rejection — only when a consensus is reached, having at least half of the admissions committee for the class in agreement.

After interview, each applicant scored using one to five scale on a number of criteria, defined for each class. The scoring can be done by any member of the admissions committee and assigned interviewer, and resulting average score can later be used to admit or reject applicant, as well as part of decision-making for scholarship.

Find Previous Applications

The system automatically looks up previous applications by name, email or phone number and cross-references application forms.

By storing all the applications in a database, admissions team were able to track who had applied before in the past. When track was kept using spreadsheets, the team had to rely on memory of the most senior member.

Interview Scheduling and Note-Taking

Interviews are assigned to an interviewer, and a rich-text editor is available for interviewers to take their notes. The notes stored for each interviewer individually and made available to the rest of the team.

Applicants List screenshot
List of applicants that reched interviewing stage.

Scholarship and Payments

Users can set up multiple payment tiers for each class. Each payment tier consists of deposit and tuition fee. Applications can be assigned to different payment tiers manually to allow for discounts or different 'packages'.

Each payment made by applicant is entered into the system.

Based on the value paid admitted applicants are automatically progressed to Deposit Paid and Tuition Paid states, allowing for quick reporting on pending payments.

Scholarship candidates are counted separately, with application able to progress through Scholarship Shortlisted state into Scholarship Granted, meaning the applicant has tuition fee waived, or Scholarship Rejected, allowing the applicant to pay normal tuition price or decide not to come.

New E-Mail screenshot
New e-mail dialog for applicants who have been interviewed for a class.

E-Mail Automation

Admissions System has an option to create an instant mailing list by class and application state. The e-mail can be controlled in granular fashion by selection applicants from the list who will receive the message and enter arbitrary e-mails for sending copies.

Automatic e-mail rules can be set up to send a template once application reaches a certain state — such as being selected for interviewing or rejected.

A wide selection of merge tags is available and all sent e-mails are archived in relevant application form history.

Access Controls

Application offers granular access control, allowing to configure Administrators who are allowed full access and Staff Members who are permitted to access only those classes in which they are members of the admissions committee.


The application has CSV import and export options that were used to import past application data from legacy spreadsheet (to show them in past applications), connect the system to marketing automation tools such as HubSpot or MailChip, and export data for future analysis.