User Guide

Intern Watcher (IW) is a desktop app for Human Resource Managers to manage internship applicants, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, IW can get your applicant management tasks done faster than traditional GUI apps.
You can use Intern Watcher to add, edit and delete the internship applicants. Intern Watcher also allows you to track applicants’ details such as grades and skills, as well as filter applicants by their details.
This user guide covers a quick walk-through on how to use this application, as well as the full descriptions of the features available.
- Quick start
-
Features
- Viewing help :
help - Adding an applicant:
add - Listing all applicants :
list - Viewing an applicant’s details :
view - Filtering by Fields :
filter -
Editing applicants :
edit -
Deleting an applicant :
delete - Locating applicants by name:
find - Clearing all entries :
clear - Undoing an action :
undo - Redoing an action:
redo - Exiting the program :
exit - Saving the data
- Editing the data file
- Specification of Fields
- Viewing help :
- FAQ
- Command summary
Quick start
-
Ensure you have Java
11or above installed in your computer. You can download it here. -
Download the latest
internwatcher.jarfrom here. -
Copy the file to the folder you want to use as the home folder for your Intern Watcher.
- Double-click the file to start the app. The GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
-
Type any command in the command box and press the “Enter” key to execute it. e.g. typing
helpand pressing Enter will open the help window. -
Some example commands you can try:
-
list: Lists all applicants. -
add n/John p/123 e/a@a.com g/4.50 i/NTU c/Computer Science y/06/2025 j/Software Engineer a/INTERVIEWED: Adds an applicant namedJohnwith the above details to Intern Watcher. -
find john: Lists all applicants whose name contains john. -
filter g/4.50 c/Computer Science: Lists all applicants who have a grade greater or equal to 4.50 and who are studying the Computer Science course. -
delete 3: Deletes the 3rd applicant shown in the current list. -
view 3 T: Displays the skills of the 3rd applicant shown in the current list. -
undo: Undo the last command that you entered. -
redo: Reverse the last undo command. -
clear: Deletes all applicants from the application.
-
-
To see more detailed information about each command, refer to Features.
- To see restrictions and specifications of each field, refer to Specification of Fields..
Features
Notes about the command formats:
- Words in
UPPER_CASEare the field parameters to be supplied by you.
This excludes special tags for Edit, View, Delete commands.
- e.g. in
add n/NAME,NAMEis a field parameter to be replaced. You can enteradd n/John Doe.
- e.g. in
delete ALL,ALLis to be typed the same in full capital letters.
- e.g. in
- Fields in square brackets are optional.
- e.g in
n/NAME [s/SKILL], theSKILLparameter is optional. You can entern/John Doe s/Pythonorn/John Doe.
- e.g in
- Fields with
…+notation behind them can be specified zero or more times.
- e.g.
[s/SKILL]…+can be specified as(i.e. 0 times),s/Java,s/Python s/Cetc.
- e.g.
- Fields can be specified in any order.
- e.g. if the command format specifies
n/NAME p/PHONE_NUMBER,p/PHONE_NUMBER n/NAMEis also valid.
- e.g. if the command format specifies
-
If a command expects only one instance of a field parameter, but the parameter has been specified multiple times, only the last occurrence of the parameter will be taken regardless if the previous specified parameter is valid or not.
- e.g. if you specify
p/abcdefg p/56785678, onlyp/56785678will be taken.
- e.g. if you specify
- Extra parameters for commands that do not take in parameters (such as
help,list,exitandclear) will be ignored.
- e.g. if the command is specified as
help 123, it will be interpreted ashelp.
- e.g. if the command is specified as
Viewing help : help
Displays a message explaining how to access the help page.

Format: help
Adding an applicant: add
Adds a new applicant to Intern Watcher.
Format: add n/NAME p/PHONE e/EMAIL g/GRADE i/INSTITUTION c/COURSE y/GRADUATION_YEAR_MONTH j/JOB [a/APPLICATION_STATUS] [s/SKILL]…+
- Entries with same
NAME(case-insensitive) will not be allowed. For example,John Doeandjohn doeare considered the same applicant and the second entry will not be allowed. -
APPLICATION_STATUSandSKILLare case-sensitive.
Examples:
-
add n/Jonathan Tan p/86565432 e/jonathan_tan@example.com g/4.50 i/NTU c/Computer Science y/06/2025 j/Software Engineer a/SCHEDULED s/Java s/C s/Pythonadds an applicant with the specified information.
Listing all applicants : list
Displays the list of all applicants in Intern Watcher.
Format: list
Viewing an applicant’s details : view
Displays the specified applicant’s academic records, or skills.
Format: view INDEX [T]
- If only
INDEXis specified, it will show the specified applicant’s academic records by default.-
INDEXrefers to the index number of the applicant, shown in the applicant list. -
INDEXmust be a positive integer, e.g. 1, 2, 3, … -
INDEXof 0 or less, or indexes greater than2147483647will be treated as invalid commands.
-
- Specifying
Ttogether withINDEXswitches between the academic records tab and the skills tab.
Examples:
-
listfollowed byview 1. Shows the 1st applicant’s academic records.
| Command | Effect |
|---|---|
![]() |
![]() |
-
view 2 TShows the 2nd applicant’s skills, if academic records was previously selected.
| Command | Effect |
|---|---|
![]() |
![]() |
Filtering by Fields : filter
Displays applicants in Intern Watcher that match one or more given fields.
Format: filter [g/GRADE] [i/INSTITUTION]…+ [c/COURSE]…+ [y/GRADUATION_YEAR_MONTH] [j/JOB]…+ [a/APPLICATION_STATUS]…+ [s/SKILL]…+
-
filterwill show applicants that match all fields specified. -
[i/INSTITUTION]…+,[c/COURSE]…+and[j/JOB]…+are case-insensitive and[a/APPLICATION_STATUS]…+and[s/SKILL]…+are case-sensitive. - If
[g/GRADE]is specified, it will show all applicants with grades higher or equal to theg/Gradespecified. - Likewise, if
[y/GRADUATION_YEAR_MONTH]is specified, it will show all applicants with graduation dates that is strictly before theGRADUATION_YEAR_MONTHspecified. - If
[s/SKILL]…+is specified, only applicants with all specified[s/SKILL]…+will be shown. - For either of
[c/COURSE]…+or[j/JOB]…+, if more than 1 instance of a single field, such as[j/JOB]…+is specified, applicants with their job field containing at least one of the[j/JOB]…+specified will be shown. - For either of
[i/INSTITUTION]…+or[a/APPLICATION_STATUS]…+, if more than 1 instance of a single field, such as[i/INSTITUTION]…+is specified, applicants with their field matching at least one of the[i/INSTITUTION]…+specified will be shown.
Examples:
-
filter s/Python s/Javawill show only applicants with skills in both JAVA and PYTHON.
| Command | Effect |
|---|---|
![]() |
![]() |
-
filter s/HTML g/4.50 i/NTUwill show applicants whose grade is not less than 4.50, knows HTML and is from NTU.
| Command | Effect |
|---|---|
![]() |
![]() |
Editing applicants : edit
Edits the information of an existing applicant, or the application status of all currently displayed applicants in the applicant list.
Editing a specific applicant:
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [g/GRADE] [i/INSTITUTION] [c/COURSE] [y/GRADUATION_YEAR_MONTH] [j/JOB] [a/APPLICATION_STATUS] [s/SKILL]…+
- If only
INDEXis specified, the applicant at the specifiedINDEXwill be edited.-
INDEXrefers to the index number shown in the displayed applicant list. -
INDEXmust be a positive integer e.g. 1, 2, 3, … -
INDEXof 0 or less, or indexes greater than2147483647will be treated as invalid commands.
-
- When editing skills, all existing skills of the applicant will be replaced i.e adding of skills is not cumulative.
- You can remove all the applicant’s skills by typing
s/without specifying any skills after it.
Editing all currently displayed applicants:
Format: edit ALL a/APPLICATION_STATUS
- If
ALLis specified, all applicants currently displayed in the applicant list will be edited. - Currently only the
APPLICATION_STATUSof applicants can be edited. It is unlikely that the other fields would need multi editing. - The
APPLICATION_STATUScan only be one of these 7 statuses:ACCEPTED,REJECTED,INTERVIEWED,APPLIED,SCHEDULED,RECEIVEDandOFFERED.
Examples:
-
edit 1 p/89274567 e/alex_yeoh@example.comedits the phone number and email address of the 1st applicant to be89274567andalex_yeoh@example.comrespectively.
| Command | Effect |
|---|---|
![]() |
![]() |
-
edit 1 s/clears all existing skills of the 1st applicant.
| Command | Effect |
|---|---|
![]() |
![]() |
-
filter a/APPLIEDfollowed byedit ALL a/INTERVIEWEDupdates all applicants withAPPLIEDapplication status to have theINTERVIEWEDapplication status.
| Command | Effect |
|---|---|
![]() |
![]() |
Deleting an applicant : delete
Deletes the specified applicant, or all applicants currently displayed in the applicant list.
Deleting a specific applicant:
Format: delete INDEX
- If
INDEXis specified, the applicant at the specifiedINDEXwill be deleted.-
INDEXrefers to the index number shown in the displayed applicant list. -
INDEXmust be a positive integer e.g. 1, 2, 3, … -
INDEXof 0 or less, or indexes greater than2147483647will be treated as invalid commands.
-
Deleting all currently displayed applicants:
Format: delete ALL
- If
ALLis specified, all applicants currently displayed in the applicant list will be deleted.
Examples:
-
listfollowed bydelete 2deletes the 2nd applicant in Intern Watcher.
| Command | Effect |
|---|---|
![]() |
![]() |
-
listfollowed bydelete ALLdeletes all applicants in Intern Watcher. Effect is similar toclearwhen used in conjunction withlist.
| Command | Effect |
|---|---|
![]() |
![]() |
-
find Davidfollowed bydelete 1deletes the 1st applicant in the results of thefindcommand.
| Command | Effect |
|---|---|
![]() |
![]() |
Locating applicants by name: find
Displays applicants whose names contain at least one of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
- The search is case-insensitive. e.g
hanswill matchHans. - The order of the keywords does not matter. e.g.
Hans Bowill matchBo Hans. - Only the NAME field of the applicants are searched.
- Only full words will be matched e.g.
Hanwill not matchHans. - Applicants matching at least one keyword will be returned.
- e.g.
Hans Bowill returnHans Gruber,Bo Yang
- e.g.
Examples:
-
find JohnreturnsjohnandJohn Doe -
find alex davidreturnsAlex Yeoh,David Li
Clearing all entries : clear
Clears all applicant entries from Intern Watcher.
Format: clear
Undoing an action : undo
Undo a previous command action.
Format: undo
- Only undoable command actions can be undone.
- Undoable command actions include:
add,edit,delete,clear,redo.
- Undoable command actions include:
- Consecutive
undocommands are available until the applicant list returns to its initial state at launch of the application. - If the current state of the applicant list is the initial state, the
undocommand will not be available. - The applicant detail panel state will not be preserved. For instance, after
view 1anddelete 1,undowill restore the deleted applicant to the applicant list, but the applicant detail panel will not be reverted to show the details of the deleted applicant.
Examples:
-
undo(afterdelete 2). The applicant that was removed will be restored in Intern Watcher.
| Command | Effect |
|---|---|
![]() |
![]() |
-
undo(after initial start up of Intern Watcher). As there are no previous states to restore, no undo action will be performed.
Redoing an action: redo
Reverses a previous undo command action.
Format: redo
-
redois the reverse ofundo. Only undoable command actions can be redone.- Undoable actions include:
add,edit,delete,clear,redo.
- Undoable actions include:
- Consecutive
redocommands are available until the applicant list reaches the newest state.- The newest state is the most recent change in history.
- If the current state of the applicant list is the newest state, the redo command will not be available.
- If a new undoable action is performed when the applicant list is not in its newest state, the current state becomes the newest state.
Examples:
-
clearfollowed byundofollowed byredo. The clear command will be redone.
| Command | Effect |
|---|---|
![]() |
![]() |
-
delete 2followed byredo. As the state afterdeletebecomes the newest state, there are no undoable actions to be redone.
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
Intern Watcher data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
Intern Watcher saves data as a JSON file [JAR file location]/data/internwatcher.json. Advanced users are welcome to update data directly by editing that data file.
Specification of Fields
Name : The applicant’s name. Should only include alphanumeric characters and spaces only. Should not be blank.
Phone : The applicant’s phone number. Should only contain digits from 0 to 9, with a minimum length of 3 digits.
Email : The applicant’s email address. Should be in the form of Local-part@Domain. Local-part should contain only alphanumeric characters with only these special characters +_.-.
Domain can be separated into label with . if necessary. Each label should only contain alphanumeric characters and separated and is separated by - if necessary. Domain is at least 2 characters long and needs to start and end with alphanumeric characters.
Grade : The applicant’s Grade Point Average (GPA). Should be a number in 2 decimal places from 0.00 - 5.00.
Institution : The applicant’s school. Should only include alphanumeric characters and space only. Should not be blank.
Application_Status : The applicant’s application status. Case sensitive. Should only be one of these 7 statuses, ACCEPTED , REJECTED, INTERVIEWED, APPLIED , SCHEDULED, RECEIVED and OFFERED.
Course : The applicant’s course of study in their school. Should only include alphabet characters and space only. Should not be blank.
Graduation_Year_Month : The applicant’s estimated date of graduation from their school. Should be of format MM/yyyy and be after the date 01/2020.
Job : The job/position that the applicant applied for. Should only include alphabet characters and space only. Should not be blank.
Skill: The applicant’s skillset. Should only include alphanumeric characters, spaces and +# symbols only.
FAQ
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 InternWatcher home folder.
Q: The command result shows Could not save data to file: data\internwatcher.json. File access denied, ensure save file is not set to read only., how do I fix this?
A: The internwatcher.json save file in your \data directory has been set to read only. Open the data file, right click on internwatcher.json, click properties, and make sure read-only is unchecked. Apply changes if necessary.
Command summary
| Action | Format, Examples |
|---|---|
| Help | help |
| Add |
add n/NAME p/PHONE e/EMAIL g/GRADE i/INSTITUTION c/COURSE y/GRADUATION_YEAR_MONTH j/JOB [a/APPLICATION_STATUS] [s/SKILL]…+ e.g. add n/John p/999 e/a@a.com g/4.00 i/NTU c/CS y/06/2025 j/Software Engineer a/INTERVIEWED s/Python
|
| List | list |
| View |
view INDEX [T] e.g. view 2 T
|
| Filter |
filter [g/GRADE] [i/INSTITUTION]…+ [c/COURSE]…+ [y/GRADUATION_YEAR_MONTH] [j/JOB]…+ [a/APPLICATION_STATUS]…+ [s/SKILL]…+ e.g. filter s/JAVA y/06/2022 i/NUS a/REJECTED
|
| Edit |
edit ALL a/APPLICATION_STATUS , edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [g/GRADE] [i/INSTITUTION] [c/COURSE] [y/GRADUATION_YEAR_MONTH] [j/JOB] [a/APPLICATION_STATUS] [s/SKILL]…+e.g. edit ALL a/REJECTED , edit 2 n/James Lee e/jameslee@example.com
|
| Delete |
delete INDEX, delete ALLe.g. delete 3, delete ALL
|
| Find |
find KEYWORD [MORE_KEYWORDS]e.g. find James Jake
|
| Undo | undo |
| Redo | redo |
| Clear | clear |
| Exit | exit |























