Skip to content

Use Cases

Greg Martin edited this page Oct 29, 2019 · 2 revisions

Use cases drive the interactions of any application, and inform the DB schema. So we need to first describe how people will want to use the application before we can determine what it's data and UI look like.

Sign up

A candidate (user) can sign up and begin using the tool. This means providing an email and password, and optionally resources that will be helpful for the process (links to profiles on hiring sites is a good example)

Login/Logout

A candidate can login and logout as they see fit.

Create company entry

This is more than just the company name. Additional information includes:

  • description of the company based on what the user knows.
  • links to interesting things about the company (their official website, news articles, etc.)
  • how the candidate feels about the company (good fit? not likely?)

Edit company entry

Of course, things about the company and the candidate's relation to it may change. They can update information about it as the need arises.

Archive company entry

When the job hunt hits an unfortunate end with a company (failed interview, decided not to pursue, etc.), the user can archive the company and it's related info. This means they can still see their interactions, but won't see it in their active progress view.

Delete company entry

If a company has no established progress yet, the user can delete it.

Create contact

A candidate never talks to a 'company', they talk to a person. The person is usually working for that company, but not always; they may be a recruiter working on its behalf. A user can add a contact associated with a company, which includes:

  • name
  • phone
  • email
  • relation type (recruiter, hiring manager, etc.)
  • last contact datetime

Edit contact info

Like a company, details can change over time. The user may want to update anything listed above.

Create event

An event represents any concrete action taken by the candidate or a company/contact that moves job process along. For instance, initiating contact, doing an informational call, scheduling an interview, etc. Events include:

  • date and time
  • type of event
  • link (if applicable)
  • status

Edit event info

It's especially important that events can be changed since they may need to be rescheduled, skipped, canceled, etc.

Create job hunt progress

For any given company, there is a set of events that occur that lead to a final conclusion of hire or no hire (for a variety of reasons). A progress is how far along a candidate is in that process. This is important because it tracks:

  • history of events
  • who's supposed to perform the next action
  • how close one is to being hired

Move progress

This isn't an explicit action, but is a logical one that occurs when someone creates a new event.

Complete progress

When progress hits a terminal state, the progress and associate events are archived.