Welcome to InterviewHub!

Dear Engineering Hiring Managers,

Welcome to InterviewHub! We are excited to introduce you to your new partner in recruitment and interview scheduling.

As seasoned professionals who thrive in fast-paced environments, you understand the value of time and efficiency. That is why we have optimized InterviewHub for those who can type fast, think faster, and make decisions on the fly. InterviewHub offers a command-driven interface, allowing you to navigate through applicants and schedule interviews with commands that execute in the blink of an eye.

This guide is your roadmap to mastering InterviewHub. We will guide you through each feature, helping you to leverage our interface to its full potential—so you can focus on what you do best: securing top talent.

Let us dive into InterviewHub and transform the way you recruit!


Table of Contents


Introduction - What is InterviewHub?

InterviewHub is a desktop app for engineering hiring managers to schedule job interviews and manage applicants’ contact information. InterviewHub allows users to:

  • seamlessly update and manage applicants for various job openings,
  • schedule and keep track of interviews with each applicant,

through an all-in-one user-friendly platform!

It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you are an engineering hiring manager who has a good understanding of CLI-based applications and can type fast, InterviewHub can get your interview and applicant management tasks done faster than traditional GUI apps.

Return to the Table of Contents


How to use this user guide

To quickly find the information you need, please refer to the Table of Contents located at the beginning of this guide. It lists all the chapters and sections, allowing you to jump directly to the relevant content.

Next, to get you started, we have included a Quick Start section in this user guide to ensure that you have no trouble setting up InterviewHub.

To get a better understanding of what you see, you can head over to GUI Summary for a quick overview of the User-Interface.

Along the way if you encounter unfamiliar terms, our Glossary provides definitions and explanations for product-specific terminology. Refer to it whenever needed.

Before we begin, the table below describes some symbols and syntax you may see throughout our guide:

Symbol Meaning
:warning: Warning Important information requiring attention as the action may lead to unexpected consequences
:information_source: Note Important information that you should pay attention to
:bulb: Tip Helpful information to improve your experience
Highlighted text block Commands or parameters relevant to the application
Hyperlinks Clickable links that direct you to specific sections within this document or to external resources for more information

Return to the Table of Contents


Quick Start

  1. Ensure you have Java 11 or above installed in your Computer.

  2. Download the latest InterviewHub.jar from here.

  3. Copy the file to the folder you want to use as the home folder for InterviewHub.

  4. Open a terminal, and navigate to the folder you put the JAR file in.

  5. Launch the app by using the command java -jar InterviewHub.jar in your terminal.

  6. The Graphical User Interface(GUI) should appear in a few seconds. Note that the app initially contains some sample data.

  7. Type the command in the command box and press Enter to execute it. E.g. typing help and pressing Enter will open the help window.
    Some example commands you can try to get comfortable with InterviewHub:

    • help : Opens the help window, which contains a link to this User Guide.

    • list-a : Lists all job applicants.

    • add-a n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 : Adds a job applicant’s information to InterviewHub.
      • The applicant’s name is James Ho,
      • The applicant’s phone number is 22224444,
      • the applicant’s email address is jamesho@example.com, and
      • the applicant’s residential address is at 123, Clementi Rd, 1234665.
    • delete-a 1 : Deletes the first job applicant displayed in InterviewHub.

    • exit : Exits InterviewHub.
  8. Refer to the Features below for details of each command.

Return to the Table of Contents


GUI Summary

The following is an annotated breakdown of InterviewHub’s Graphical User Interface (GUI):

GUI Summary

For each applicant, we see the following details:

Information Description
Name The full name of the applicant
Tags Custom keywords for categorizing the applicant (if any)
Phone The mobile phone number of the applicant
Address The residential address of the applicant
Email The email address of the applicant

For each interview, we see the following details:

Information Description
Name The full name of the applicant
Job Role The job role which the applicant is applying for
Start Time Start time of the interview
End Time Projected end time of the interview
Rating Interview performance rating of the applicant (from 0.0 - 5.0)

Return to the Table of Contents


Features

:information_source: Notes about the command format:

  • Words in UPPER_CASE are the parameters to be supplied by the user.
    e.g. in add-a n/NAME, NAME is a parameter which can be used as add-a n/John Doe.

  • Items in square brackets are optional.
    e.g. n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with ​ after them can be used multiple times including zero times.
    e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/friend, t/friend t/family etc.

  • Items with (S) after them can be used multiple times without the tag.
    e.g. n/KEYWORD(S) can be used as n/John, n/John Alice Bob

  • Parameters can be in any order.
    e.g. if the command specifies n/NAME p/PHONE, p/PHONE n/NAME is also acceptable.

  • Extraneous parameters for commands that do not take in parameters (such as help, list-i, list-a, list-i-done, list-i-not-done, list-i-today, sort-rate, sort-time, exit, and clear) will be ignored.
    e.g. if the command specifies help 123, it will be interpreted as help.

  • List of accepted date formats:

    • DD/MM/YYYY and time:
      • 16 Jan 2024 TIME
      • 16 January 2024 TIME
      • 16-01-2024 TIME
      • 16-01-24 TIME
      • 16/01/2024 TIME
      • 16/01/24 TIME
    • MM, DD and time:
      • 16 Jan TIME
      • 16 January TIME
      • 16/1 TIME
      • 16/01 TIME
    • The TIME placeholder can be replaced with the formats below:
      • 1515
      • 3.15pm
      • 3pm
    • The TIME must be between 9am to 5pm.
    • If the date is a parameter for the list-freetime command, please omit TIME and enter the date only (e.g. 16 May 2024)

General Features

Viewing help : help

A pop-up window, containing the link as shown below, will appear to guide you to the InterviewHub User Guide.

help message

Format: help

Return to the Table of Contents

Exiting the program : exit

Exits InterviewHub.

Format: exit

Return to the Table of Contents

Clearing all applicants and interviews : clear

Clears all applicants and interviews from InterviewHub.

Format: clear

:warning: Warning:

  • This action is irreversible. Please proceed with caution.

Return to the Table of Contents

Saving the data

Data in InterviewHub are automatically saved to the hard disk after any command that changes the data. There is no need for manual saving.

Return to the Table of Contents

Applicant Management Features

Adding an applicant : add-a

Adds an applicant to InterviewHub.

Format: add-a n/NAME p/PHONE e/EMAIL a/ADDRESS [t/TAG]...

Parameter Representation Constraints
NAME The full name of the applicant Must contain only alphanumeric characters and cannot be blank
PHONE The mobile phone number of the applicant Must contain only numbers and be at least 3 digits long
EMAIL The email address of the applicant Must be in the format: local-part@domain
ADDRESS The residential address of the applicant No constraints as long as it is not blank
TAG Custom keyword for categorizing the applicant Must be a single word containing only alphanumeric characters

Examples:

  • add-a n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/Engineer t/Frontend. Result of `add-a n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/Engineer t/Frontend`

Return to the Table of Contents

Deleting an applicant : delete-a

Deletes the applicant at the specified APPLICANT_INDEX from InterviewHub.

Format: delete-a APPLICANT_INDEX

Parameter Representation Constraints
APPLICANT_INDEX The index of the target applicant as shown in the applicant list Must be a positive unsigned integer and must not exceed the size of the current displayed applicant list

:information_source: Note about the command usage.

  • Deleting an applicant will also cause any interview the applicant has to be deleted.

:warning: Warning:

  • This action is irreversible. Please proceed with caution.

Examples:

  • delete-a 1 deletes the 1st applicant in the address book.

Return to the Table of Contents

Editing an applicant : edit-a

Edits the applicant at the specified APPLICANT_INDEX from InterviewHub.

Format: edit-a APPLICANT_INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...

Parameter Representation Constraints
APPLICANT_INDEX The index of the target applicant as shown in the applicant list Must be a positive unsigned integer and must not exceed the size of the current displayed applicant list
NAME The full name of the applicant Must contain only alphanumeric characters and cannot be blank
PHONE The mobile phone number of the applicant Must contain only numbers and be at least 3 digits long
EMAIL The email address of the applicant Must be in the format: local-part@domain
ADDRESS The residential address of the applicant No constraints as long as it is not blank
TAG Custom keyword for categorizing the applicant Must be a single word containing only alphanumeric characters

:information_source: Note about the command usage.

  • At least one of the optional fields must be provided.
  • Existing values will be updated to the input values.
  • Editing the name of an applicant will also be reflected in any interview the applicant has.

Examples:

  • edit-a 1 n/John Doe Edits the name of the 1st applicant to be John Doe.
  • edit-a 2 p/91234567 e/johndoe@example.com Edits the phone number and email address of the 2nd applicant to be 91234567 and johndoe@example.com respectively.

    Before: before edit-a command After: result for 'edit-a 2 p/91234567 e/johndoe@example.com'

Return to the Table of Contents

Finding applicants : find-a

Finds applicants whose attributes contain any of the given keywords or number.

Format: find-a [n/KEYWORD(S)] [p/NUMBER] [e/KEYWORD(S)] [a/KEYWORD(S)] [t/KEYWORD(S)]

The table below summarises how each field is matched in the search.

Prefix Field Match Examples
n/ NAME Only full words will be matched Han will match Han Bo but not Hans Bo
p/ PHONE Partial numbers will be matched 987 will match 98765432
e/ EMAIL Must be an exact match to the entire email, the part before the @, or the part after the @ john, example.com and john@example.com will all match john@example.com
a/ ADDRESS Only full words will be matched Serangoon will match Serangoon Road but not Serangoons road
t/ TAG Only full words will be matched Eng will match Eng but not Engineer

:information_source: Note about the command usage.

  • Any of the fields (name, phone, email, address, tags) can be searched
  • At least one of the optional fields must be provided
  • Multiple keywords must be either space or comma separated
  • The search is case-insensitive. e.g. hans will match Hans
  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans
  • Applicants matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Examples:

  • find-a n/alex david returns Alex Yeoh, David Li
    result for 'find-a n/alex david'
  • find-a p/874 a/serangoon ang returns 97438807, Serangoon Gardens, Serangoon Gardens Street, Ang Mo Kio
    result for 'find-a p/874 a/serangoon ang'

Return to the Table of Contents

Listing all applicants : list-a

Shows a list of all applicants in InterviewHub on the GUI.

Format: list-a

Return to the Table of Contents

Interview Management Features

Adding an interview : add-i

Adds an interview to InterviewHub.

Format: add-i app/APPLICANT_INDEX jr/JOB_ROLE start/START_DATE_AND_TIME end/END_DATE_AND_TIME

Parameter Representation Constraints
APPLICANT_INDEX The index of the target applicant as shown in the applicant list Must be a positive unsigned integer and must not exceed the size of the current displayed applicant list
JOB_ROLE The job role which the applicant is applying for No constraint
START_DATE_AND_TIME Starting time of the interview Must be in one of the accepted formats, before the end time and on the same day as the end time
END_DATE_AND_TIME Ending time of the interview Must be in one of the accepted formats, after the start time and on the same day as the start time
:bulb: Tip: JOB_ROLE allows empty strings to be entered to handle situations where the applicant is applying to the company in general.

Examples of accepted date formats (full list here):

  • DD/MM/YYYY and time:
    • 16 May 2024 1515
    • 16 May 2024 3.15pm
  • MM, DD and time:
    • 16 May 1515
    • 16 May 3.15pm

Example: Result of add-i app/3 jr/Software engineer start/12-12-2023 1400 end/12-12-2023 1500 Result of `add-i app/3 jr/Software engineer start/12-12-2023 1400 end/ 12-12-2023 1500`

A common error that you may encounter is entering an invalid time or time format, please refer to the informative error message or accepted formats list and reenter the command with proper parameters

After add-i app/4 jr/Software engineer start/Next Tuesday 4pm end/6pm that day: Result of `add-i app/4 jr/Software engineer start/Next Tuesday 4pm end/6pm that day`

Return to the Table of Contents

Deleting an interview : delete-i

Deletes the interview at the specified INTERVIEW_INDEX from InterviewHub.

Format: delete-i INTERVIEW_INDEX

Parameter Representation Constraints
INTERVIEW_INDEX The index of the target interview as shown in the interview list Must be a positive unsigned integer and must not exceed the size of the current displayed interview list

:warning: Warning:

  • This action is irreversible. Please proceed with caution.

Examples:

  • delete-i 1 deletes the 1st interview in InterviewHub.

Before delete-i: You should see the applicant and interview list (may be filtered depending on whether your previous commands filtered the lists) before `delete-i`

After delete-i 1: You should see a success message in the command result box. And the targeted interview is removed from the interview list. Also, the applicant associated with the interview will have their border change to red. result of `delete-i 1`

If you do not specify a valid index (or an index at all) you may encounter one of the informative error messages appearing in the command result box that should assist you with troubleshooting:

result of `delete-i 5`

Return to the Table of Contents

Editing an interview : edit-i

Edits an existing interview at the specified INTERVIEW_INDEX.

Format: edit-i INTERVIEW_INDEX [jr/JOB_ROLE] [start/START_DATE_AND_TIME] [end/END_DATE_AND_TIME]

Parameter Representation Constraints
INTERVIEW_INDEX The index of the target interview as shown in the interview list Must be a positive unsigned integer and must not exceed the size of the current displayed interview list
JOB_ROLE The role the applicant is interviewing for No constraints
START_DATE_AND_TIME Starting time of the interview Must be one of the accepted formats, before the end time and on the same day as the end time
END_DATE_AND_TIME Ending time of the interview Must be one of the accepted formats, after the start time and on the same day as the start time

:information_source: Note about the command usage.

  • At least one of the optional fields must be provided.
  • Existing values will be updated to the input values.
  • To edit the RATING field (re-rating an interview), please refer to the rate command.
  • An interview that is marked as done can no longer be edited.

Examples of accepted date formats (full list here):

  • DD/MM/YYYY and time:
    • 16 May 2024 1515
    • 16 May 2024 3.15pm
  • MM, DD and time:
    • 16 May 1515
    • 16 May 3.15pm

Examples:

  • edit-i 1 jr/software-engineer Edits the job role of the 1st interview to be software-engineer.
  • edit-i 2 jr/data-analyst Edits the job role of the 2nd interview to be data-analyst.

View of the Interview list before editing: before edit-i

View of the application after edit-i 1 jr/Network Engineer: result of `edit-i 1 jr/Network Engineer` You can see that Alex Yeoh’s role has been updated from Frontend Engineer to Network Engineer

Return to the Table of Contents

Finding interviews by job role : find-i

Find interviews in which job roles contain any of the given keywords.

Format: find-i KEYWORD(S)

Parameter Representation Constraints
KEYWORD The job role the interview is assigned for Each keyword must not contain any spaces, otherwise it will be treated as multiple keywords

:information_source: Note about the command usage.

  • The search is case-insensitive. e.g. ANALYST will match analyst
  • Must provide at least one keyword
  • The order of the keywords does not matter. e.g. Software Engineer will match Engineer Software
  • Only the job role is searched.
  • Only full words will be matched e.g. Analyst will not match Analysts
  • Interviews matching at least one keyword will be returned (i.e. OR search). e.g. Software Engineer will return interviews with the job role of Software Developer and System Engineer

Examples:

  • find-i software data returns Software Engineer and Data Analyst.

Return to the Table of Contents

Listing all interviews : list-i

Shows a list of all interviews in InterviewHub on the GUI.

Format: list-i

After list-i: You should see a success message in the command result box and the full list of interviews in the interview list result of `list-i`

Return to the Table of Contents

Listing all free timings for the given date : list-freetime

Displays a list of all the blocks of free time the user has in the given DATE, within the 9am to 5pm window of that day.

Format: list-freetime DATE

Parameter Representation Constraints
DATE The date for which the user wants to view the list of blocks of free time The input date must be one of the accepted formats and cannot be in the past. Must contain only the date without the time

:information_source: Note about the command usage.

  • Additional parameters separated by non-number characters will be accepted.
  • e.g. 12-12-2024hello
  • If there is no free time, there will be no blocks of free time that will be displayed
    • This indicates that the entire day is not free
  • If there are no interviews on that day, the block of free time listed will be: from: 09:00 to: 17:00
    • This indicates that the entire day is free
  • If the DATE not valid at all, this error message will be shown:Please specify a valid date!

  • If the DATE is valid but in the past, this error message will be shown:Input date cannot be in the past!

Examples:

  • list-freetime 03-11-2024
  • list-freetime 5-5-2025

Return to the Table of Contents

Listing all interviews for today : list-i-today

Shows a list of the interviews in InterviewHub which are scheduled on the day the command is executed.

Format: list-i-today

:information_source: Note about the command usage.

  • Lists all interviews that have a start date that falls on the day on which the user executed the command
    • For example, if the user executed this command on 12/12/2023, the app will display all the interviews that the user has scheduled on 12/12/2023
  • If there are no interviews scheduled on the day which the command was executed, the app will not display any interviews
  • Upon successful execution of the command, this message will be shown: Listed all interviews today

Example: list-i-today

We have three interviews scheduled on 09/11/2023 as shown below: Before `list-i-today`

Result of list-i-today on 09/11/2023. Results of `list-i-today`

Return to the Table of Contents

Marking an interview as done : mark

Mark the specified INTERVIEW_INDEX in the InterviewHub as done.

Format: mark INTERVIEW_INDEX

Parameter Representation Constraints
INTERVIEW_INDEX The index of the target interview as shown in the interview list Must be a positive unsigned integer and must not exceed the size of the current displayed interview list

:information_source: Note about the command usage.

  • You can only mark interviews with a red border (i.e. interviews that are not done).
  • Marking an interview that is already done will result in an error message.

Examples:

  • mark 1 marks the first interview shown on the list as done.
  • mark 3 marks the third interview shown on the list as done.

Return to the Table of Contents

Rating an interview : rate

Rate the specified INTERVIEW_INDEX in the InterviewHub with the indicated RATING.

Format: rate INTERVIEW_INDEX RATING

:information_source: Note about the command usage.

  • The interview has to be marked as done before it can be rated.
  • The new rating will always replace the existing rating.
Parameter Representation Constraints
INTERVIEW_INDEX The index of the target interview as shown in the interview list Must be a positive unsigned integer and must not exceed the size of the current displayed interview list
RATING The rating number to be assigned to the interview indicated Must be a positive unsigned one decimal place number between 0.0 to 5.0 inclusive

Examples:

  • rate 1 3.0 rates the first interview with a rating of 3.0.

Before rating the interview at INTERVIEW_INDEX 1: beforerate

After rating the interview at INTERVIEW_INDEX 1 with a RATING of 4.0: afterrate

Return to the Table of Contents

Listing all completed interviews : list-i-done

Shows a list of all the interviews in InterviewHub that are done on the GUI.

Format: list-i-done

:bulb: Tip: To see all interviews regardless of completion status, use the command list-i.

Before list-i-done: beforelistidone

After list-i-done: afterlistidone

Return to the Table of Contents

Listing all incomplete interviews : list-i-not-done

Show a list of all the interviews in InterviewHub that are not done on the GUI.

Format:list-i-not-done

:bulb: Tip: To see all interviews regardless of completion status, use the command list-i.

Before list-i-not-done: beforelistinotdone

After list-i-not-done: afterlistinotdone

Return to the Table of Contents

Sorting interviews by rating : sort-rate

Sort the shown interview list by rating in descending order (highest to the lowest rating).

Format: sort-rate

:bulb: Tip: To sort the full unfiltered interview list, use the command list-i before using sort-rate.

Before sort-rate: beforesort

After sort-rate: aftersort

Return to the Table of Contents

Sorting interviews by start time : sort-time

Sort the shown interview list by interview start time in chronologically ascending order (interviews with earlier start times will be shown first).

Format: sort-time

:bulb: Tip: To sort the full unfiltered interview list, use the command list-i before using sort-time.

Before sort-time: beforesorttime

After sort-time: aftersorttime

Return to the Table of Contents

Editing the data file

InterviewHub data are saved automatically as a JSON file [JAR file location]/data/interviewhub.json. Advanced users are welcome to update data directly by editing that data file.

:exclamation: Warning: If your changes to the data file makes its format invalid, InterviewHub will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.

Return to the Table of Contents


Frequently Asked Questions

Q: How do I transfer my data to another Computer?

A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous InterviewHub home folder.

Q: How do I check if I have the correct version of Java installed?

A: You can check the version of Java installed in your computer by opening the terminal and running the java --version command. The correct version of Java required to run InterviewHub is Java 11 or above. If you do not have Java installed, or if your current version is lower than 11, you can download the correct version here.

Q: Do I need an active internet connection to use InterviewHub?

A: No. It is an offline app.

Return to the Table of Contents


Known issues

  1. When using multiple screens, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the preferences.json file created by the application before running the application again.

Return to the Table of Contents


Command Summary

General Commands

Action Format, Examples
Clear all applicants and interviews clear
Help help
Exit exit

Return to the Table of Contents

Applicant Management Commands

Action Format, Examples
Add applicant add-a n/NAME p/PHONE e/EMAIL a/ADDRESS [t/TAG]
e.g., add-a n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague
Delete applicant delete-a APPLICANT_INDEX
e.g., delete-a 3
Edit applicant edit-a APPLICANT_INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]...
e.g.,edit-a 2 n/John Doe
Find applicant find-a [n/KEYWORD(S)] [p/NUMBER] [e/KEYWORD(S)] [a/KEYWORD(S)] [t/KEYWORD(S)]
e.g., find-a n/John Bob p/98765432 e/john@example.com
List applicants list-a

Return to the Table of Contents

Interview Management Commands

Action Format, Examples
Add interview add-i app/APPLICANT_INDEX jr/JOB_ROLE start/START_DATE_AND_TIME end/END_DATE_AND_TIME
e.g., add-i app/3 jr/Software Engineer start/12-12-2024 1500 end/12-12-2024 1600
Delete interview delete-i INTERVIEW_INDEX
e.g., delete-i 3
Edit interview edit-i INTERVIEW_INDEX [jr/JOB_ROLE] [start/START_DATE_AND_TIME] [end/END_DATE_AND_TIME]
e.g.,edit-i 2 jr/software-engineer
Find interview by job find-i KEYWORD(S)
e.g., find-i software-engineer
List interviews list-i
e.g. list-i
List free time list-freetime INTERVIEW_DATETIME
e.g, list-freetime 12-12-2023, list-freetime 12/12/2023, list-freetime 12/12, list-freetime 12 Dec
List interviews for today list-i-today
e.g. list-i-today
Mark interview as done mark INTERVIEW_INDEX
e.g., mark 3
Rate interview rate INTERVIEW_INDEX RATING
e.g., rate 1 3.0
List completed interviews list-i-done
e.g. list-i-done
List incomplete interviews list-i-not-done
e.g. list-i-not-done
Sort interviews by rating sort-rate
e.g. sort-rate
Sort interviews by start time sort-time
e.g. sort-time

Return to the Table of Contents


Glossary

Term Definition
JAR File JAR (Java Archive) files are archive files that include a Java-specific manifest file. They are built on the ZIP format and typically have a .jar file extension.
JSON File JSON (JavaScript Object Notation) is a lightweight data interchange format that is easy to understand and use.
CLI A CLI (Command Line Interface) is a means of interacting with a computer program by inputting lines of text called command-lines.
GUI A GUI (Graphical User Interface) is user interface that allows users to interact with the program with interactive visual components instead of text-based UIs, typed command labels or text navigation.

Return to the Table of Contents