Skip to content

Domain overview

This section documents the core domain concepts of Balyze.

The goal is to define a clear and shared vocabulary, independent from technical implementation details. Domain rules and behaviors are documented in dedicated pages.


Core concepts

Balyze revolves around a small set of explicit domain entities.

User

A User represents a person using the platform.

At the current ALPHA stage:

  • users act primarily as candidates
  • each user owns their data
  • roles and permissions are handled separately from domain rules

The User entity provides identity and ownership boundaries, but does not contain business logic.


Position

A Position represents a job opportunity or offer that a user is interested in.

A Position acts as a structural reference:

  • job title
  • company
  • source of the offer
  • descriptive information

A Position can evolve over time to include additional contextual information, without altering its structural identity.


Application

An Application represents the act of applying to a specific Position.

It is the central entity of the domain and carries:

  • the lifecycle of a candidature
  • the current status of the application
  • submission-related timestamps
  • user-specific notes and tracking information

An Application links a User to a Position and represents a point-in-time intent.


Document

A Document represents a file uploaded by a user, such as:

  • a résumé (CV)
  • a cover letter
  • supporting documents

Documents are owned by a user and may be associated with one or more Applications. They exist independently from the application lifecycle and can be reused across candidatures.


Relationships overview

At a high level:

  • a User can create multiple Positions
  • a User can submit multiple Applications
  • an Application references exactly one Position
  • a Document can be linked to multiple Applications

Ownership is always defined at the User level.


Domain scope

The domain focuses on:

  • tracking applications and their lifecycle
  • preserving historical accuracy of candidatures
  • allowing progressive enrichment of contextual information

Concerns such as analytics, external integrations, or social features are intentionally out of scope at this stage.


Further reading

Detailed domain rules and behaviors are documented in the following pages:

  • Application lifecycle
  • Application editability rules