Skip to content

Track pending Discord gigs, applicants, and lifecycle commands with post tag updates #252

@michaelmwu

Description

@michaelmwu

Problem

We post gigs directly in Discord today, but we do not persist a first-class local record for the gig or its applicant lifecycle. We also do not have a consistent command-driven way to move the gig through its recruiting states and reflect those state changes back into the Discord post itself.

We need one workflow for:

  • creating a pending gig record from a Discord gig post
  • tracking applicants / suggested people against that gig
  • updating gig status through Discord commands
  • editing the original Discord gig post when the status changes
  • keeping Discord-visible tags in sync with the internal status

Scope

Implement pending-gig tracking for gigs posted in the Discord gigs channel.

Suggested behavior:

  • Ingest a gig post from Discord into Postgres as a pending_gig engagement
  • Store Discord provenance (guild_id, channel_id, message_id, poster, timestamps)
  • Allow applicant / candidate rows to be attached to the gig
  • Add Discord commands to update lifecycle status
  • When status changes, update the original Discord post title/body/tagging to reflect the new state

Discord Status Tags

Support at least these visible Discord tags / prefixes:

  • [RECRUITING]
  • [FILLED]
  • [OUTDATED]
  • [UNKNOWN]

Internal status can be more detailed, but these are the minimum external states that should be mirrored onto the post.

Suggested Command Surface

Examples:

  • mark gig as recruiting
  • mark gig as filled
  • mark gig as outdated
  • mark gig as unknown
  • add/remove applicant
  • list applicants for a gig

Exact slash-command names can be decided during implementation, but they should be staff-usable and auditable.

Data Model Notes

This issue should cover the local tables needed for the pending-gig stage only, including at minimum:

  • gig/engagement record
  • applicant/candidate linkage
  • event/audit history for status changes

Acceptance Criteria

  • A gig posted in the Discord gigs channel can be persisted as a local pending_gig record
  • The local record stores stable Discord identifiers for the original post
  • Applicants / suggested people can be associated with the gig
  • Staff can update gig status through Discord commands
  • Status changes update the original Discord gig post so the visible tag matches the internal state
  • Supported visible states include [RECRUITING], [FILLED], [OUTDATED], and [UNKNOWN]
  • Status changes are auditable

Parent

Part of #249

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions