Skip to content

Application editability rules

Context

After an application is submitted, not all related data remains editable. This document defines which fields are mutable or immutable as a consequence of the application lifecycle.

Principle

Once an application reaches the submitted state:

  • structural data is frozen
  • contextual data remains editable
  • lifecycle data evolves only through explicit state transitions

These rules preserve historical accuracy while allowing progressive enrichment.

Editable fields matrix

Field Entity Nature Editable after submission
title Position Structural No
company Position Structural No
location Position Contextual Yes
notes Position Contextual Yes
notes Application Contextual Yes
status Application Lifecycle Yes (controlled)
applied_at Application Lifecycle No

Lifecycle interaction

Editability rules apply from the submitted state onward.

Terminal states (rejected, accepted) do not relax editability constraints. Structural data remains frozen for the entire lifecycle.

Rationale

  • Preserving historical accuracy of the job offer
  • Allowing progressive enrichment during the recruitment process
  • Avoiding unnecessary model complexity in early versions

Implementation notes

  • Enforcement happens at the service layer
  • Policies handle ownership, not editability
  • Models do not contain conditional edit logic