User Guide
BizBook is built for:
- University students actively applying for internships who need to track multiple applications, deadlines, and statuses.
- Users who are comfortable with basic command-line interfaces (CLI) and prefer typing commands over navigating menus.
Welcome to BizBook – a tool designed to help students manage internship applications with speed and simplicity. BizBook streamlines your everyday tasks, such as tracking application statuses and managing deadlines, allowing you to organize important information in a fast, efficient way. By typing commands, you can quickly add, update, search, and handle your applications with minimal effort, making it a valuable companion for any busy student on an internship hunt.
Why BizBook?
Picture this: You’ve just attended the NUS Career Fair. Your bag is stuffed with brochures from Google, DBS, ByteDance, and 15 other companies. You have 8 applications to submit by next week, 3 interviews to prepare for, and a looming sense that you’re about to lose track of everything in a messy spreadsheet.
BizBook solves this chaos.
With lightning-fast commands, you can add all 20 applications in under 10 minutes, sort them by deadline to see what’s urgent, filter by industry to focus on tech roles, and update statuses as you progress—all without touching your mouse. No more hunting through spreadsheet tabs, no more missed deadlines buried on page 2, no more “Did I already apply to this company?”
How BizBook addresses the problem:
- BizBook exposes succinct commands for adding, editing, finding, filtering and sorting applications, so users can complete common tasks with a few keystrokes.
- By keeping data local and serialised as JSON, users retain full control of their data and can transfer or back it up easily.
- The combination of a CLI and a simple GUI gives both productivity (keyboard-first workflows) and visual clarity (cards, status bar and help window).
Background / comparison:
- Many users track applications with spreadsheets (Excel/Sheets) or general-purpose task managers (Trello, Notion). Those tools are flexible but often slower for repetitive text-entry tasks.
- Commercial applicant-tracking systems (e.g., Workable, Greenhouse) offer advanced features but are heavyweight and cloud-based. BizBook targets students and individuals who need a lightweight, local tool with fast keyboard-driven workflows.
Table of Contents:
- How BizBook addresses the problem:
- Background / comparison:
- Table of Contents:
- Quick start
-
Features
- Viewing help :
help - Adding an application:
add - Listing all applications :
list - Sorting applications :
sort - Editing an application :
edit - Finding applications by name :
find - Filtering applications by status and/or industry :
filter - Deleting an application :
delete - Clearing all entries :
clear - Exiting the program :
exit - Saving the data
- Editing the data file
- Viewing help :
- FAQ
- Known issues
- Command summary
Quick start
-
Ensure you have Java
17or above installed in your Computer.
Mac users: Ensure you have the precise JDK version prescribed here. -
Download the latest
.jarfile from here. -
Copy the file to the folder you want to use as the home folder for your BizBook application.
-
Open a command terminal,
cdinto the folder you put the jar file in, and use thejava -jar BizBook.jarcommand to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.

-
Let’s try typing these in order and see the result!
Step 1: Add your applications - First, let’s clear the sample data and add 3 new applications.
clearadd n/Google a/SWE Intern e/careers@google.com t/Backend microservices i/Technology s/Saved d/2024-12-31add n/DBS Bank a/Data Analyst Intern e/internships@dbs.com t/Analytics team i/Finance s/Saved d/2025-01-15add n/ByteDance a/PM Intern e/hr@bytedance.com t/TikTok team i/Technology s/Saved d/2024-12-20
Result: Your list now shows 3 applications, in the order you added them.
Step 2: Prioritize and update - You want to apply for the one with the earliest deadline first.
sort deadline
Result: The list immediately re-orders. ByteDance is now at Index 1. Let’s say you applied for it.
edit 1 s/Applied
Result: The ByteDance card at Index 1 updates its status to
Applied.Step 3: Filter and delete - Now you only want to see your “To-Do” list (status
Saved).filter s/Saved
Result: The list is filtered, hiding “ByteDance”. The status bar now says “2 applications listed”.
- DBS Bank
Looking at this filtered list, you decide you’re not interested in DBS Bank (Index 2).
delete 2
Result: The item at Index 2 of the current list (DBS Bank) is permanently deleted.
Step 4: Reset and final check - Finally, clear the filter to see all your remaining applications.
list
Result: The filter is cleared. You now see your remaining applications: ByteDance (Status:
Applied) and Google (Status:Saved).DBS Bankis gone.Step 5: Exit - Now that you have finished adding all your applications, you can now exit BizBook!
exit
-
Refer to the Features below for details of each command.
Features
Notes about the command format:
-
Words in
UPPER_CASEare the parameters to be supplied by the user.
e.g. inadd n/COMPANY_NAME,COMPANY_NAMEis a parameter which can be used asadd n/Google. -
Extraneous parameters for commands that do not take in parameters (such as
help,list,exitandclear) will be ignored.
e.g. if the command specifieshelp 123, it will be interpreted ashelp. Similarly,list abcwill be interpreted aslist, andclear xyzwill be interpreted asclear. -
Items in square brackets are optional.
e.gedit INDEX [n/COMPANY_NAME] [i/INDUSTRY] [a/JOB_ROLE] [e/EMAIL] [t/DESCRIPTION] [s/STATUS] [d/DEADLINE]can be used with or without the description. -
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
Viewing help : help
Shows a message explaining how to access the help page.

Format: help
Adding an application: add
Adds a new internship application to BizBook. All fields are mandatory — you must provide a value for every prefix in the correct format.
Format: add n/COMPANY_NAME a/JOB_ROLE e/EMAIL t/DESCRIPTION i/INDUSTRY s/STATUS d/DEADLINE
Notes:
- All fields must be filled. Omitting a field or using the wrong prefix will cause an error.
- Email (e/EMAIL) refers to the company or recruiter’s contact email for the application (e.g., careers@google.com), not your own/applicant’s email.
- The email must be provided by the user. The software will not modify, validate ownership, or enforce uniqueness of the email address. Shared email addresses (e.g., common HR or recruitment mailboxes) are allowed and expected behavior. If you use the same email for multiple applications (even across different companies), BizBook will accept all entries without warning.
-
COMPANY_NAMEcan contain alphanumeric characters, spaces, and these special characters:& . - ' ,(e.g., AT&T, McDonald’s, Apple Inc., Coca-Cola) -
INDUSTRYmust be one of: Technology, Finance, Consulting, Healthcare, Marketing, Operations, Graphic Design -
JOB_ROLEshould only contain alphanumeric characters and spaces and should not be blank. (e.g.,Software Engineer Intern,Marketing Analyst Intern) -
DESCRIPTIONmust not be empty or contain only whitespace, and cannot exceed 200 characters. At least one non-whitespace character is required. -
EMAILEmails should be of the format local-part@domain.tld and adhere to the following constraints:- The local-part should only contain alphanumeric characters and these special characters, excluding the parentheses, (+_.-). The local-part may not start or end with any special characters.
- This is followed by a ‘@’ and then a domain name (e.g., gmail, company, university).
- have each domain label start and end with alphanumeric characters
- have each domain label consist of alphanumeric characters, separated only by hyphens, if any
- The domain must be followed by a period and a top-level domain (e.g., .com, .edu, .org).
- A Top Level Domain should have at least 2 characters long
-
STATUSmust be one of: Saved, Applied, Interviewing, Offer, Rejected. -
DEADLINEmust be in the format YYYY-MM-DD (e.g., 2024-12-31) and between 2020-01-01 and before 2030-01-01 -
Duplicate detection: Two applications are considered duplicates if they have the same company name, industry, job type, AND description (case-insensitive). This means you can add multiple applications to the same company in the following cases:
-
Different job types (e.g.,
Google - SWE InternandGoogle - PM Internare both allowed) -
Different industries (e.g.,
Google - Technology - SWE InternandGoogle - Marketing - SWE Internare both allowed) -
Same company, industry, and job type, but different descriptions (e.g.,
Google - Technology - SWE Intern - Backend microservicesandGoogle - Technology - SWE Intern - Frontend developmentare both allowed, as they represent different specializations) -
Case variations are ignored (e.g.,
Googleandgoogle, orSWE Internandswe internare treated as the same)
-
Different job types (e.g.,
Examples:
add n/Google a/SWE Intern e/careers@google.com t/Backend microservices i/Technology s/Saved d/2024-12-31add n/DBS Bank a/Data Analyst Intern e/internships@dbs.com t/Analytics team i/Finance s/Applied d/2025-01-15-
add n/AT&T a/Network Intern e/careers@att.com t/5G deployment i/Technology s/Saved d/2024-12-20(company name with&) -
add n/McDonald a/Management Trainee e/hr@mcdonalds.com t/Store operations i/Operations s/Applied d/2025-01-10(company name with')
sample output from running add n/DBS Bank a/Data Analyst Intern e/internships@dbs.com t/Analytics team i/Finance s/Applied d/2025-01-15
Listing all applications : list
Shows a list of all internship applications in BizBook.
Format: list
Note: Any parameters following
listwill be ignored. For example,list 123orlist abcwill execute as if onlylistwas typed.
sample output from running list
Sorting applications : sort
Note: After sorting, the list you see is the one affected by subsequent commands like
deleteoredit. For example,delete 1will delete the first application in the sorted list currently displayed.
Sorts all internship applications in the current list by the specified field.
Format: sort FIELD
Notes:
- Ensure you run
listbefore sorting -
FIELDmust be one of:name,status, ordeadline - The field name is case-insensitive (e.g.,
sort NAMEworks the same assort name) - Sorting persists until you run another sort command with a different field
- Applications will be listed in chronological order after a command is added (e.g. add, delete, list)
Examples:
-
sort name- Sorts applications alphabetically by company name -
sort status- Sorts applications by status in logical workflow order (Saved → Applied → Interviewing → Offer → Rejected) -
sort deadline- Sorts applications chronologically by deadline (earliest first)
Typical usage:
-
listfollowed bysort deadlineshows all applications sorted by deadline to help you prioritize upcoming applications. -
sort statushelps you see your application pipeline in logical progression order.
sample output from running sort deadline
Editing an application : edit
Edits the details of an existing internship application.
Format: edit INDEX [n/COMPANY_NAME] [i/INDUSTRY] [a/JOB_ROLE] [e/EMAIL] [t/DESCRIPTION] [s/STATUS] [d/DEADLINE]
Notes:
- Edits the application at the specified
INDEX(as shown in the current list). The index is 1-based. - At least one field to edit must be provided.
- Existing values will be overwritten by the new inputs.
-
COMPANY_NAMEcan contain alphanumeric characters, spaces, and these special characters:& . - ' , - Input for
INDUSTRYandSTATUSis case-insensitive (e.g.,i/technologyands/appliedare accepted). -
DEADLINEmust be in the format YYYY-MM-DD (e.g., 2024-12-31) and between 2020-01-01 and before 2030-01-01 - Duplicate detection: After editing, the application must not be a duplicate of another existing application. Two applications are duplicates if they have the same company name, industry, job type, AND description (case-insensitive). If your edit would create a duplicate, an error message will be shown.
Examples:
edit 1 n/Google Singaporeedit 2 s/Interviewing d/2025-02-28edit 3 a/Quant Intern t/Global Markets desk
sample output from running edit 1 s/applied
Finding applications by name : find
Note: The results shown after a
findcommand form a list that can be used with commands likedeleteoredit. For example,delete 1will delete the first application in the current search results.
Finds and lists all applications whose company names contain any of the specified keywords.
Format: find KEYWORD [MORE_KEYWORDS]...
Notes:
- The search is case-insensitive (e.g.,
googlewill matchGoogle) -
Partial matches are allowed (e.g.,
Techwill matchTechCorp,FinTech, andTech Solutions) - The order of keywords does not matter (e.g.,
Bank DBSwill matchDBS Bank) - Only the company name field is searched - other fields like industry, job type, description, email, status, and deadline are not searched
- Applications matching at least one keyword will be returned (e.g.,
Google Microsoftwill return applications for both Google and Microsoft)
Examples:
-
find Googlereturns applications forGoogle,Google Singapore, andGoogleTech -
find DBS OCBCreturns applications forDBS Bank,OCBC, andDBS Group -
find TechreturnsTechCorp,FinTech,Tech Solutions, and any company with “Tech” in the name -
find MetareturnsMeta,Metaverse Inc, andMetaData Corp(partial matches work)
sample output from running find meta
Filtering applications by status and/or industry : filter
Note: The filter command only supports filtering by status (s/) and industry (i/). Filtering by job type is not supported.
Filters and displays applications based on their status and/or industry. The filter does not modify the stored data, only affects what is displayed.
Format: filter [s/STATUS] [i/INDUSTRY]
Notes:
- At least one filter criterion must be specified - you can filter by status only, industry only, or both
- When both filters are specified, only applications matching both criteria will be shown (AND logic)
- The filter is case-insensitive (e.g.,
s/appliedands/APPLIEDboth work) -
STATUSmust be one of: Saved, Applied, Interviewing, Offer, Rejected -
INDUSTRYmust be one of: Technology, Finance, Consulting, Healthcare, Marketing, Operations, Graphic Design - Use
listto clear all filters and show all applications again
Examples:
-
filter s/Applied- Shows only applications with “Applied” status -
filter i/Technology- Shows only applications in the Technology industry -
filter s/Interviewing i/Finance- Shows applications that are both “Interviewing” status AND in Finance industry -
filter i/Healthcare s/Offer- Same as above (order doesn’t matter)
Typical usage:
-
filter s/Appliedfollowed bysort deadlineto see all applied positions sorted by their deadlines -
filter i/Technology s/Savedto see all saved Technology positions you haven’t applied to yet -
listto return to viewing all applications
sample output from running filter s/offer
Deleting an application : delete
Deletes the specified internship application.
Format: delete INDEX
- Deletes the application at the specified
INDEX. - The index refers to the number shown in the current list being displayed. This includes lists shown after using commands such as
find,filter, orsort. For example, after usingfind Google,delete 1deletes the first item in the search results you currently see, not the original unfiltered list. - The index must be a positive integer 1, 2, 3, …
Examples:
-
listfollowed bydelete 2deletes the 2nd application in the list. -
find Googlefollowed bydelete 1deletes the 1st application in the search results.
sample output from running delete 1
Clearing all entries : clear
Clears all entries from BizBook.
Format: clear
Note: Any parameters following
clearwill be ignored. For example,clear 123orclear abcwill execute as if onlyclearwas typed. Only runclearif you want to clear all application, this process is irreversible.
Exiting the program : exit
Exits the program.
Format: exit
Saving the data
Data are saved to disk automatically after any command that changes data. There is no need to save manually.
Editing the data file
Data are saved automatically as a JSON file [JAR file location]/data/addressbook.json. Do not edit the JSON file manually
Furthermore, certain edits can cause the app to behave in unexpected ways (e.g., invalid values). Edit the data file only if you are confident you can update it correctly.
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 BizBook home folder.
Known issues
-
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.jsonfile created by the application before running the application again. -
If you minimize the Help Window and then run the
helpcommand (or use theHelpmenu, or the keyboard shortcutF1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.
Command summary
| Action | Format, Examples |
|---|---|
| Add |
add n/COMPANY_NAME a/JOB_ROLE e/EMAIL t/DESCRIPTION i/INDUSTRY s/STATUS d/DEADLINE e.g., add n/Google a/SWE Intern e/careers@google.com t/Backend microservices i/Technology s/Saved d/2024-12-31
|
| Clear | clear |
| Delete |
delete INDEXe.g., delete 1
|
| Edit |
edit INDEX [n/COMPANY_NAME] [i/INDUSTRY] [a/JOB_ROLE] [e/EMAIL] [t/DESCRIPTION] [s/STATUS] [d/DEADLINE]e.g., edit 2 s/Interviewing d/2025-02-28
|
| Exit | exit |
| Filter |
filter [s/STATUS] [i/INDUSTRY] e.g., filter s/Applied, filter i/Technology, filter s/Interviewing i/Finance
|
| Find |
find KEYWORD [MORE_KEYWORDS]...e.g., find Google DBS
|
| Help | help |
| List | list |
| Sort |
sort FIELD e.g., sort name, sort status, sort deadline
|