Skip to main content

Taxonomy Domain

The Taxonomy domain (app/domains/taxonomy/ in jodapp-api) owns the shared vocabularies the rest of the platform points at: job categories and skills. It holds no operational data — other domains reference taxonomy rows, never the other way around.

Models

ModelTableWhat it is
Taxonomy::Categorytaxonomy_categoriesJob categories. Since the 2026-07 redesign: 18 active categories with display_order 1–18, every older category archived (status enum, no deletes). Employers pick one when posting a Careers::Job; gig listings carry a category name via Gig::TempJob::CATEGORY_MAP.
Taxonomy::Skilltaxonomy_skillsSkills vocabulary used by talent profiles.
Taxonomy::CategoryRequesttaxonomy_category_requestsAppend-only inbox of category requests from employers who picked "Others" — see CategoryRequest.

The 2026-07 category redesign

The original 89 seeded categories did not match our blue-collar clientele, and a broken picker meant employers only ever saw 10 of them. The redesign replaced them with 18 evidence-based categories, repaired every miscategorized job in production, and rebuilt the picker to show all options at once.

Growth rules (the short version)

  • "Others" is the escape hatch and the request inbox. If Others grows above ~5% of postings for a quarter, the taxonomy has a gap.
  • A request becomes a new category when 3+ distinct employers ask for the same concept, or 5+ similar Others postings pile up.
  • Add-only: categories are never renamed or deleted, only added (or archived with their jobs re-pointed first). Soft cap 20, hard cap 25.