Skip to main content

Gig Job Lifecycle & State Transitions

Gig Job Lifecycle & State Transitions

Gig Job States

DRAFT

Meaning: A job is being prepared but is not visible to applicants.

Purpose:

  • Allow save-for-later
  • Prevent half-created jobs from going live

Allowed actions:

  • Edit job details
  • Publish job (move to OPEN)
  • Delete job

OPEN

Meaning: The job is published and accepting applications.

Entered when:

  • Job is published from DRAFT
  • Job is newly created

Allowed actions:

  • Applicants can apply
  • Hiring Manager can edit job details
  • Hiring Manager can cancel the job

CONFIRMED

Meaning: At least one applicant has been selected for the job.

Entered when:

  • Hiring Manager selects 1 or more applicant(s)

Allowed actions:

  • Another applicant can still apply
  • Selected applicant can acknowledge the job
  • Hiring Manager can cancel applicant
  • Hiring Manager can cancel the job
  • Selected applicant can cancel the job

ACTIVE

Meaning: The job has started and work is in progress.

Entered when:

  • Job start time is reached, or
  • First clock-in occurs

Allowed actions:

  • Applicants can do clock in / clock out
  • Hiring Manager can review before clock out
  • Applicants can review before clock out
  • Cancellation is restricted
  • Job details are locked

PENDING_PAYMENT (Need Review)

Meaning: The applicants have already clocked out and payment is being processed.

Entered when:

  • The job is done
  • All applicants have clocked out

Allowed actions:

  • Cancellation is restricted

COMPLETED

Meaning: All processes are completed.

Entered when:

  • All selected applicants have received payment
  • Credits have been deducted from company/outlet

Allowed actions:

  • Job becomes read-only

CANCELLED

Meaning: The job will not proceed or was stopped before completion.

Entered when:

  • Hiring Manager cancels the job

EXPIRED_NO_APPLICATIONS

Meaning: The job reached its expiration time without receiving any applications.

Entered when:

  • Job remains OPEN
  • No applicants applied
  • Expire date passed

EXPIRED_NO_SELECTION

Meaning: The job received applications, but no applicant was selected before expiration.

Entered when:

  • Job remains OPEN
  • Has applicants
  • No selection made
  • Expire date passed

Key Business Rules

These rules lock the model and prevent future ambiguity:

  • A job always starts in DRAFT or OPEN
  • Applicants can only apply when the job is OPEN
  • A job becomes CONFIRMED once ≥ 1 applicant is selected
  • A job cannot return to OPEN after becoming CONFIRMED
  • Clock-in is only allowed when job is ACTIVE
  • Expiration only applies to OPEN jobs
  • COMPLETED, CANCELLED, and EXPIRED_* are final states