User Guide
Table of Contents
- About HMHero
- Overview of Key Features
- How to use this User Guide
- Installation
- Quick Start
-
Commands
-
Applicant Commands
- Create a new applicant
add - Search for an applicant
find - List all applicants
list - Delete an applicant
delete - Advance an applicant
advance - Reject an applicant
reject - List all interview dates of applicants
interview - Edit an existing applicant
edit - Remind upcoming interviews
remind - Filter applicants with specific skill(s)
skill
- Create a new applicant
- Statistic Commands
- General Commands
-
Applicant Commands
- Command summary
- Troubleshooting
- FAQ
- Acknowledgements
- Glossary
About HMHero
Have you ever found managing the constant influx of applicants during each application cycle challenging? Do you struggle to filter through numerous applicants to find the right fit for the job?
Look no further as HMHero is here to ease your troubles and save your valuable time!
Overview of key features
There are two core features that HMHero provides:
- Applicant Management System
- Hiring Process Analytics
Applicant Management System
HMHero empowers you to manage applicants during hiring process.
You can:
- Easily add, edit, delete, and view your applicants.
- Quickly advance applicants through application statuses or reject them.
- Filter shortlisted applicants and sort them by interview date.
- Filter all applicants based on their skill-sets.
- View all applicants that have interviews coming up in three days.
Hiring Process Analytics
HMHero provides analysis on your hiring process.
You can:
- Find out how many applicants are accepted out of total applicants.
- Find out the average time taken to process each applicant.
How to use this User Guide
Icons and Hyperlinks
You may come across colored boxes containing text that will aid you in better understanding how to use each feature.
Highlight and display information you should pay attention to.
Highlight tips which you might find useful.
Highlight dangers and things to look out for.
Other than the icons mentioned above, you may also come across Phrases coloured in blue are hyperlinks that will bring you to another part of this documentation that is relevant to the phrase.
Purpose of User Guide
If you are a new user, head over to the Installation section to download the application.
We highly recommend that you read through this User Guide in sequential order to get a thorough understanding of how to use HMHero.
Next, you can find the necessary information to get started in the Quick Start section!
If you are an experienced user, you may head over to the Command Summary to get a quick overview of all the commands available in HMHero!
If you are stuck, please refer to the section on Troubleshooting or FAQ.
You can also refer to the Glossary for definitions of commonly used terminologies in HMHero.
To aid in your navigation, we have included the a Back to Table of Contents link in every sub-section in this User Guide so that it is easy for you to jump across different sections!
Installation
- Ensure you have downloaded
Java 11or above installed in your computer. If you have not, you may download it here. - Download the latest
HMHerofrom here. - Copy the file to an empty folder. This folder is where all the information needed for the HMHero application will reside in.
- Double-click on the jar file to launch HMHero.
- A GUI similar to the one below should appear in a few seconds. Note how the app contains some sample data.

Ensure that the file is added to an empty folder as additional data and configuration files will be created when HMHero is launched for the first time in your computer!
You will notice that a folder called “data” would have been created in the same folder as
hmhero.jar.
Do not edit this file because doing so might result in a corruption of your data, causing the application to fail!
The following section on Quick Start is a tutorial on how to use HMHero after you have launched it for the first time. Feel free to skip to the next section on Commands if you are already familiar with the application!
Quick Start
This section covers everything you should know about HMHero, as well as a tutorial on trying your first command. Take note that the Key Definitions and Command Format sections covers essential knowledge to using HMHero’s features.
User Interface
When you launch HMHero, HMHero appears on your screen as a Graphical User Interface(GUI). Let’s explore the layout of the different components of HMHero.
HMHero’s GUI consists of a single main window consisting of 3 main sections.
- Command Input Box: Input command text field
- Command Output Box: Command result
- Applicant List Box: List of applicants
The following picture of the main window shows the three components, numbered accordingly:

HMHero also has the Help Window. It is not part of the main GUI and is only shown after a Help Command is run.
The Help Window looks like the following:

Key Definitions
Applicant
An applicant in HMHero represents an individual that applied for a job at your company. HMHero tracks various attributes of an applicant. Compulsory attributes would include their name, phone number, address and email.
The following are the attributes stored for each Applicant
- Name
- Phone Number
- Address
- Application Date
- Interview Date
- Notes
Applicants are unique by name and phone number and are case sensitive. This means you cannot add two or more applicants of the same name and phone number.
Notes
A note in HMHero serves as a means of labelling the skills of an applicant. These tags are unique and case-sensitive.
We can tag multiple applicants with the same note and each applicant can have multiple notes. These notes are optional.
Feel free to make use of notes as you fit to highlight skill-sets of an applicant. Examples of such notes can include:
- Technical proficiency, e.g.
Python,Java,Flask - Soft Skills, e.g.
Project Management,Event Planning
HMHero’s Notes are unique by name and are case-sensitive. This means you cannot add two or more notes of the same name.
Flags
Flags are delimiters that enable HMHero to distinguish different parameters without ambiguity.
You could put in the corresponding Placeholder immediately after each flag.
Placeholder refers to the UPPER_CASE words that can be replaced by valid user input supplied. These placeholders follow immediately after a Flag.
Placeholders
Placeholder refers to the UPPER_CASE words that can be replaced by valid user input supplied. These placeholders follow immediately after a Flag.
Please refer to the subsequent Command Format section to see how Flags and Placeholders are used together.
| Placeholder | Corresponding Flag | Description | Restrictions |
|---|---|---|---|
| INDEX | (Not Applicable) | The INDEX of an item is the number to the left of the applicant’s name in the Item List Box. | The INDEX is restricted to the number of applicants in HMHero and cannot be negative. |
| NAME | n/ | The NAME is the text we use to identify an Applicant. | The NAME of an applicant must be alphabetic characters and no numbers are allowed. |
| PHONE | p/ | The PHONE is the text we use to represent the phone number of the Applicant. | The PHONE of an applicant must have at least 3 numbers and must be numeric characters. |
| e/ | The EMAIL is the text we use to represent the email of the Applicant. | EMAIL must be in the format username@domain username: - Should only contain alphanumeric characters and these special characters ( +, _, ., -) - Should not start or end with any special characters. domain: - Should be at least 2 characters long. - Each domain label should start and end with alphanumeric characters. - Each domain label consists of alphanumeric characters, separated only by hyphens, if any. |
|
| NOTE | note/ | The NOTE is the text we use to represent the skill of an Applicant. | NOTE cannot be longer than 45 characters long. |
| APPLICATION DATETIME | applied/ | The APPLICATION DATETIME is the text we use to represent the date and time that the Applicant applied for the job. | Format of datetime is DD-MM-YYYY HH:mm
|
| INTERVIEW DATETIME | d/ | The INTERVIEW DATETIME is the text we use to represent the date and time of the Applicant’s interview. | Format of datetime is DD-MM-YYYY HH:mm INTERVIEW DATETIME can only be scheduled after the APPLICATION DATETIME. |
Command Format
Before you delve into the different commands in Commands, let’s learn what a command consists of.
Here is an example:
A command consists of:
Command Word: Tells HMHero what action you wish to execute. These actions are covered in Commands.
Flags: Distinguishes between inputs. A flag is usually followed by a placeholder.
Placeholders: Represents data that you wish to input. Replace this with valid data.
For example, NAME in n/NAME can be replaced with n/John.
Trying your First Command
To let you become more familiar with HMHero, let’s practise executing some commands.
One of the available commands in HMHero is the command to create a new applicant.
Format: add n/NAME p/PHONE e/EMAIL a/ADDRESS [applied/APPLIED DATE TIME] [note/NOTE]
What does the format mean?
-
addtells HMHero that this is the command to create a new applicant -
Flags such as
n/andp/are delimiters that enable HMHero to distinguish different parameters supplied by you without ambiguity -
Placeholders such as
NAMEandPHONEshows you what you should place in each portion of the command
Notice that there is a pair of square brackets [] surrounding some parameters like note/NOTE and applied/APPLICATION DATE TIME
in the format. This indicates that the parameter is optional. Each of these placeholders in the parameters
have a default value based on the commands. These are documented in the Commands section for each command.
The Placeholder section covers the restrictions for respective placeholders. For example, for the format of Phone, only numeric characters can be used and there is a mimimal length of at least 3 numbers to be provided.
Let’s try an example!
Suppose you just add Thomas, 98765432, thomas@gmail.com, living at 1 Sims Drive (s)543210, and you do not feel the need to record a note for this applicant.
NAME: Thomas
PHONE: 98765432
EMAIL: thomas@gmail.com
ADDRESS: 1 Sims Drive (s)543210
The command you would like to enter into the command box would be:
add n/Thomas p/91918153 e/thomas@gmail.com a/6 Sims Drive (s)543230
Find out more about restrictions in the sections Flags, Placeholders and Commands.
Here are some pointers to look out for before running a command:
- I know the restrictions of the command
- I know what parameters are supplied to the command
- I know the flags for each parameter to be supplied
- I know the restrictions of each parameter
- I know the effects of not specifying each optional flag.
Commands
This section shares with you on how to use each command in detail.
- Square brackets indicates an optional parameter.
- In most commands, if the same parameter is repeated and only one is required, we take the last value provided.
Applicant Commands
Create a new applicant add
Format: add n/NAME p/PHONE e/EMAIL a/ADDRESS [applied/APPLIED DATE TIME] [note/NOTE]
You can create a new applicant with the provided information
- All fields apart from
APPLIED DATE TIMEandNOTEare compulsory. - Both
NAMEandPHONEtogether must be unique. -
NAMEis case-sensitive. (e.g. "Thomas" is different from "thomas"). -
PHONEdoes not require you to include the country code. Only include the numbers. - The value of
APPLIED DATE TIMEwill be the time you add a new applicant if it is not provided. - The value of
NOTEwill be empty if it is not provided. - If two or more
NOTEare added, all the notes will be added to the applicant.
Example:
- You want to create a new applicant named Adam whose information does not exist in HMHero yet.
Command Input Box: add n/Adam p/91918153 e/adam@gmail.com a/6 Sims Drive
What you should see:
- Adam is added into the Applicant list.
- Command Output Box shows that Adam is added and his details.
Search for an applicant find
Format: find n/[NAME] p/[PHONE]
You can find all applicants in HMHero using name, phone or both
- We take in name, phone or both. In this case, at least
NAMEorPHONEis required. - The
NAMEis case-insensitive. (e.g. "thomas" will match "Thomas"). - This means that providing both
NAMEandPHONEnarrows down the scope. - The
findcommand only finds applicants which has a name, phone or both that fully matches the specified search of the full name, phone or both! - This means that if the
NAMEThomas LeeandThomas Tanis in HMHero, executingThomas Leewill only findThomas Lee. - This also means that if the
PHONE91918153and9191is in HMHero, executing91918153will only findPHONE91918153. - If you try to find applicants using both
NAMEandPHONE, it will work the same as finding individually!
Example:
- You want to search for an applicant named Adam whose information exist in HMHero.
Command Input Box: find n/Adam p/91918153
What you should see:
- Adam is found in the Applicant list.
- Command Output Box shows that 1 person is listed.
List all applicants list
Format: list
You can list all applicants in HMHero
Example:
- You want to list all applicants who exist in HMHero.
Command Input Box: list
What you should see:
- The whole list of applicants in the Applicant list.
- Command Output Box shows the total applicants and numbers of applicants in each stage.
Delete an applicant delete
Format: delete n/NAME p/PHONE
You can delete an applicant in HMHero using name and phone
- All fields are compulsory.
- The
deletecommand only deletesApplicantwhich has a name and phone that fully matches the specified search.
Example:
- You want to delete an applicant who exist in HMHero.
Command Input Box: delete n/Bernice Yu p/91234567
What you should see:
- Bernice Yu is deleted from the Applicant list.
- Command Output Box shows that Bernice Yu is deleted and her details.
Advance an applicant advance
Format: advance n/NAME p/PHONE [d/INTERVIEW DATETIME]
You can advance an applicant in HMHero using name, phone and interview datetime
- The
advancecommand only advancesApplicantwhich has a name and phone that fully matches the specified search. - The
INTERVIEW DATETIMEis required to advanceApplicantfromstatusAPPLIEDtostatusSHORTLISTED. - However,
INTERVIEW DATETIMEis not required to advanceApplicantfromstatusSHORTLISTEDtostatusACCEPTED.
INTERVIEW DATETIME cannot be earlier than current time and application date time
when you advance an applicant!
Example:
- You want to advance an applicant’s status
APPLIEDwho exist in HMHero.
Command Input Box: advance n/Adam p/91918153 d/20-05-2023 12:12
What you should see:
- Adam is advanced from status
APPLIEDto statusSHORTLISTEDin the Applicant list. - Command Output Box shows that Adam is advanced, his old and new status.
Example:
- You want to advance an applicant’s status
SHORTLISTEDwho exist in HMHero.
Command Input Box: advance n/Adam p/91918153
What you should see:
- Adam is advanced from status
SHORTLISTEDto statusACCEPTEDin the Applicant list. - Command Output Box shows that Adam is advanced, his old and new status.
Reject an applicant reject
Format: reject n/NAME p/PHONE
You can reject an applicant in HMHero using name and phone
- All fields are compulsory.
- The
rejectcommand only rejectsApplicantwhich has a name and phone that fully matches the specified search. - The
NAMEandPHONEis required to rejectApplicantfromstatusAPPLIED,SHORTLISTEDandACCEPTEDtostatusREJECTED.
Example:
- You want to reject an applicant’s status
SHORTLISTEDwho exist in HMHero.
Command Input Box: reject n/Alex Yeoh p/87438807
What you should see:
- Adam is rejected from status
SHORTLISTEDto statusREJECTEDin the Applicant list. - Command Output Box shows that Adam is rejected.
REJECTED cannot be rejected again!
List all interview dates of applicants interview
Format: interview
You can list all interview dates of shortlisted applicants in HMHero in chronological order
Example:
- You want to list the interview dates of the shortlisted applicants who exist in HMHero.
Command Input Box: interview
What you should see:
- All the interview dates of the shortlisted applicants in the Applicant list.
Edit an existing applicant edit
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [d/INTERVIEW DATETIME] [note/NOTE]
You can edit an existing applicant with the provided information
- All fields apart from
INDEXare optional. However, you need to include at least one optional parameter. - If two or more values of the same parameter are provided, only the last value for that parameter will be taken.
- However for
NOTE:- If two or more values for
NOTEare provided, both parameters will be taken in. - If an empty
NOTEis provided, all notes will be removed.
- If two or more values for
- You are allowed to change
INTERVIEW DATETIMEto a value before the current datetime but after the applicant's application date time using theeditcommand.
Example:
- You want to edit the phone number and notes of an applicant who exist in HMHero.
Command Input Box: edit 2 p/91234567 note/Kotlin note/Python note/leadership
What you should see:
- Bernice’s phone number and notes are edited in the Applicant list.
- Command Output Box shows that Bernice is edited with her new information shown.
Get reminders for upcoming interviews remind
Format: remind
You can list all applicants with interviews within the next three days.
- Reminder for upcoming interview will show all applicants with interviews in the next three days. (e.g. On Monday, it will show all applicants with interviews till Thursday)
Example:
- You want to see all the applicants with interview within the next three days who exist in HMHero.
Command Input Box: remind
What you should see:
- Adam’s interview date is within the next three days which is shown in the Applicant list.
- Command Output Box shows the success message.
Filter applicants with specific skill(s) skill
Format: skill KEYWORD(s)
You can filter all applicants in HMHero using specific skill keyword(s)
- We take in
KEYWORD. In this case, at least oneKEYWORDis required. - The
KEYWORDis case-insensitive. (e.g. "java" will match "Java"). - Each
KEYWORDis separated with a space. - The
KEYWORDprovided must match the whole word. (e.g. "jav" will not match "java") - If two or more
KEYWORDare provided, it will only match with applicant(s) with all the skills specified. (e.g. if Adam haspythonandjava, while Thomas hasjavaonly in HMHero, executingskill java pythonwill only find Adam)
Example:
- You want to search for applicants with java skill that exist in HMHero.
Command Input Box: skill java
What you should see:
- Adam who has java skill is found in the Applicant list.
- Command Output Box shows that 1 person is listed.
Statistics Commands
Summary Statistics summary
Format: summary
You can show a statistical summary of the company’s hiring processes.
Example:
- You want to see the statistics for your hiring cycle in HMHero.
Command Input Box: summary
What you should see:
- A list of all applicants found in the Applicant list.
- Command Output Box shows the statistics for your hiring cycle.
General Commands
Receive help during usage help
Format: help
You can display help window for HMHero which contains link to User Guide.
Example:

Exit HMHero exit
Format: exit
You can exit HMHero
Expected Outcomes:
- All HMHero application windows will close
- Your data is saved locally in your computer.
If your data cannot be saved successfully, HMHero will not close in order to prevent data loss.
Command Summary
Applicant Commands
| Action | Format | Example |
|---|---|---|
| Add a new applicant | add n/NAME p/PHONE e/EMAIL a/ADDRESS [note/NOTE] |
add n/Tom p/98763213 e/asd@gmail.com a/6 Sims Drive (s)532123 note/Python |
| Search for an applicant |
find [n/NAME] [p/PHONE] (Minimally one of n/NAME or p/PHONE must be provided) |
find n/Tom p/98763213 |
| List all applicants | list |
list |
| Delete an applicant | delete n/NAME p/PHONE |
delete n/Tom p/98763213 |
| Advance an applicant |
advance n/NAME p/PHONE [d/INTERVIEW DATETIME] Note: You need to provide an INTERVIEW DATETIME to advance an applicant’s status from APPLIED to SHORTLISTED
|
advance n/Tom p/98763213 d/20-03-2024 12:12 |
| Reject an applicant | reject n/NAME p/PHONE |
reject n/Tom p/98763213 |
| View the interview dates of applicants | interview |
interview |
| Edit the information of an applicant | edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [d/INTERVIEW DATE TIME] [note/NOTE] |
edit 1 n/Marry p/98763245 |
| Remind an applicant’s interview date | remind |
remind |
| Filter applicants with specific skill(s) | skill KEYWORD(s) |
skill java |
Statistics Commands
| Action | Format | Example |
|---|---|---|
| Displays statistics collected by HMHero | summary |
summary |
General Commands
| Action | Format | Example |
|---|---|---|
| Shows a help dialog with a link to HMHero User Guide | help |
help |
| Exits HMHero | exit |
exit |
Troubleshooting
Problem:
The JAR file not launching even after double-clicking the file.
Solution:
- Open your terminal
- Windows:
- The default key combination to launch your terminal is Ctrl+Shift+P * Mac:
- Use Cmd+Space to open Spotlight Search
- Search for “terminal” and click it to launch.
-
Navigate to the location where “hmhero.jar” is stored within your terminal using
cd. For example,cd Downloads/ - On your terminal, run
java -jar hmhero.jar
Problem:
The JAR file not launching in Windows Subsystem for Linux (WSL).
Solution:
- Our recommendation is to run HMHero application on Windows and not on WSL.
Problem:
Unable to exit/save HMHero to data file
Solution:
- This error is due to
hmhero.jarbeing started in a protected folder. (Examples of write-protected folders includeC:\WINDOWS\System32in windows and the/etcdir in linux)
Please move thehmhero.jarfile into another folder in your computer and start HMHero application from that folder.
FAQ
Q: If I do not have Java 11, how do I install it on my computer?
A: You can navigate to this site here and download Java 11 according to your system’s specifications.
Q: Do I need an internet connection to run HMHero?
A: No, HMHero can boot up and run all functionalities without an internet connection.
Q: Can I use HMHero on my mobile device?
A: Unfortunately, HMHero is only designed to run on your desktop/laptop such that you can use the command line interface.
Q: How do I transfer my data to another computer?
A: Install HMHero on the other computer and overwrite the empty data file with the data file created by HMHero in your current computer.
Acknowledgements
HMHero is a brownfield software engineering project based off AddressBook Level-3, taken under the CS2103T Software Engineering held by School of Computing at National University of Singapore.
Java dependencies:
Documentation dependencies:
Glossary
Quick Reference
- ADDRESS (Placeholder)
- Address
- Applicant
- Applicant List Box
- Application Cycle
- COMMAND_WORD (Placeholder)
- Command
- Command Input Box
- Command Line (CLI)
- Command Output Box
- Placeholder
- Flags
- Graphical User Interface(GUI)
- Help Window
- Hiring Manager
- Input
- INTERVIEW_DATE (Placeholder)
- Interview Date
- KEYWORD (Placeholder)
- NAME (Placeholder)
- Name
- NOTES (Placeholder)
- Notes
- Operating System (OS)
- Output
- Parameter
- PHONE_NUMBER (Placeholder)
- Phone Number
- Placeholder
- STATUS (Placeholder)
- Status
- Syntax
- URL
A
ADDRESS Placeholder
The ADDRESS is a text representing the address of the applicants.
To view more information (limitations, examples, etc.), refer to the Placeholder table.Address
The address of the applicant provided by the user.
Applicant
The person who apply to the company for the job.
Applicant List Box
The region located at the bottom left of the HMHero’s main window.
To view more information, refer to the User Interface section of the User GuideApplication Cycle
All applicants added are at the Applied status by default. From there, hiring managers can advance their application status to Shortlisted, then to Accepted. Applicants can be rejected at any stage.
C
COMMAND_WORD Placeholder
The COMMAND_WORD is a text indicating a command word of a command
To view more information (limitations, examples, etc.), refer to the Placeholder table.Command
A feature or function that HMHero can perform.
Command Input Box
The region located at the top left of the HMHero’s main window.
To view more information, refer to the User Interface section of the User GuideCommand Line
The typing interface that you use to interact with HMHero. It is represented as the box where you type in commands.
Command Output Box
The region located at the right half of the HMHero’s main window.
To view more information, refer to the User Interface section of the User Guide
E
EMAIL Placeholder
The EMAIL is a text representing the email address of the applicants.
To view more information (limitations, examples, etc.), refer to the Placeholder table.The email address of the applicant provided by the user. Emails should end with a valid domain name (e.g. gmail.com, hotmail.com, etc.)
F
Flags
A marker to identify the type of input by the user. For instance, in
n/NAME,n/is the flag.
G
Graphical User Interface
A Graphical User Interface is a graphics-based interface that uses icons, menus and a mouse (to click on the icon or pull down the menus) to manage interaction with the system. In HMHero, this presents as the window that appears when launching it.
H
Help Window
A pop-up window containing help information, shown only after calling a help command.
To view more information, refer to the User Interface section of the User GuideHiring Manager
A person responsible for overseeing the recruitment process within an organization, from identifying staffing needs to making hiring decisions.
I
Input
The text that a user would enter into HMHero
INTERVIEW_DATE Placeholder
The INTERVIEW_DATE is the date indicating when the applicant is having his/her interview.
To view more information (limitations, examples, etc.), refer to the Placeholder table.Interview Date
Date where applicants are going to have their interviews. Interview date is in the format “day-month-year hour:minute”, represented in the “DD-MM-YYYY HH:MM” format.
K
KEYWORD Placeholder
The KEYWORD is the text we use search for an item. It can be
NAMEorPHONE_NUMBERof the applicant.
N
NAME Placeholder
The NAME is a text representing the name of the applicants.
To view more information (limitations, examples, etc.), refer to the Placeholder table.Name
The name of the applicant provided by the user.
NOTES Placeholder
The NOTES are some texts that use to represent the skill set of the applicants.
To view more information (limitations, examples, etc.), refer to the Placeholder table.Notes
The skill set the applicant possesses provided by the user.
O
Operating System
Is a software program that manages computer hardware and software resources, and provides common services for computer programs to run and interact with the computer hardware.
Output
The result after calling a Command. Results are displayed in the GUI.
P
Parameter
Values that are passed while calling the Commands. For instance, when calling
find n/NAME, parameter here isn/NAME.PHONE_NUMBER Placeholder
The PHONE_NUMBER is an integer representing the phone number of the applicant.
To view more information (limitations, examples, etc.), refer to the Placeholder table.Phone Number
The phone number of the applicant provided by the user.
Placeholder
Placeholders in HMHero refers to the UPPER_CASE words that appear after the flags in commands that is provided by the user. For instance,
n/NAME,NAMEis a placeholder
S
STATUS Placeholder
The STATUS is a text that represent the current state of the applicant.
To view more information (limitations, examples, etc.), refer to the Placeholder table.Status
Status has four stages, which are APPLIED, SHORTLISTED, ACCEPTED and REJECTED. Status can only be modified by using advance or reject command.
Syntax
The structure of statements/inputs users type into the Command Line.
U
URL
A hyperlink to a website.
