Skip to content

Plan: Embedded job board (companies, roles, /jobs) #112

@kingRayhan

Description

@kingRayhan

Source of truth

Full master plan (schema, actions, routes, components, search, i18n, implementation order, out-of-scope, open questions): docs/job-listing.md

Status in doc: Draft (2026-04-05)


Summary

Embed a job board in TechDiary: companies as shared workspaces (Owner / Manager), job postings with Markdoc bodies, public discovery at /jobs, and dashboard management. Apply stays external in V1 (URL or email); no in-platform applications yet.


Key routes

Area Path
Public board /jobs
Job detail /jobs/[handle]
Company page /companies/[handle]
Dashboard jobs /dashboard/jobs, /dashboard/jobs/new, /dashboard/jobs/[id]
Dashboard company /dashboard/company, members, settings

Highlights

  • Actors: Job seeker (browse; login for bookmark / comments), Owner vs Manager with permission matrix in doc §3.2.
  • Join company: Owner invite (notification + accept) or join secret code (instant Manager).
  • Data model: company_profiles, company_members, company_invites, job_listings, job_listing_tags; extend bookmarks/comments resource_type with JOB.
  • Stack fit: SQLKit repos, server actions + Zod, MeiliSearch index job_listings, CommentSection on job detail, HomepageLayout on /jobs.

Implementation order (from doc §15)

  1. DB → domain models → repos → inputs
  2. company.actions.ts then job.actions.ts
  3. Public /jobs, /jobs/[handle], /companies/[handle]
  4. Dashboard jobs + company management
  5. Search sync, sitemaps, i18n

Out of scope (V1)

In-platform applications, application tracking, resume upload, email job alerts, paid featured listings, etc. — see doc §16.


Open questions (doc §17)

Track product decisions before / during build (posting without company, moderation, default expiry, salary requiredness, invite expiry, …).


Next steps

Break into smaller implementation issues (DB migration, company CRUD, job CRUD, public UI, search, …) and link them here as sub-tasks.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions