Job Roles
Job roles classify the positions within your organization. They standardize role titles across teams, enable reporting by function, and link vacancies to the type of hire needed.
Why Job Roles Matter
Without a consistent set of role definitions, the same position might be called "Software Engineer" in one team and "Developer" in another. Job roles provide a single taxonomy that the entire organization uses, which enables:
- Headcount reporting by role -- see how many Software Engineers, Engineering Managers, or Product Designers you have across all teams
- Salary benchmarking -- compare compensation for the same role across geographies or departments
- Vacancy planning -- when a team opens a vacancy, they select from a defined list of roles rather than entering free text
- Skills gap analysis -- identify which roles are understaffed relative to your targets
Configuring Job Roles
- Navigate to Settings > Job Roles
- Click Add Job Role
- Enter the role name and an optional description
- Click Save
Repeat for each distinct role in your organization.
TIP
Align your Flowstate job roles with the role taxonomy in your HR system (Workday, BambooHR, etc.). This makes it easier to reconcile headcount data when importing from external sources.
Data Model
| Field | Type | Description |
|---|---|---|
name | string | Role title (e.g., "Software Engineer", "Engineering Manager") |
description | string | Optional description of the role's responsibilities |
isActive | boolean | Whether the role is available for assignment (default: true) |
sortOrder | integer | Controls display ordering in lists and dropdowns (default: 0) |
Unique constraint: [organizationId, name] -- no duplicate role names within an organization.
How Job Roles Are Used
Job roles are assigned to two entity types:
- Employees (
LiveEmployee.jobRoleId) -- the role the employee currently holds - Vacancies (
LiveVacancy.jobRoleId) -- the role the vacancy is hiring for
Reporting and Grouping
Once roles are assigned, you can group and filter views across the platform by job role. For example:
- View the team page grouped by role to see the functional composition of each team
- Filter the headcount forecast to show only "Engineering Manager" positions
- Compare vacancy counts by role to identify which functions have the most open positions
Vacancies and Hiring Plans
When creating a vacancy, the selected job role communicates what type of hire is needed. This is particularly valuable in scenario planning: you can model the impact of hiring three additional "Senior Backend Engineers" versus two "DevOps Engineers" and compare the cost and capacity implications.
WARNING
Do not confuse job roles with work types. Job roles describe what someone does (e.g., Software Engineer, Product Designer). Work types describe how they are employed (e.g., Full-time, Part-time, Fixed-term contract). Both are assigned independently. See Configuration: Work Types for details.
Best Practices
- Keep the list manageable -- aim for 10 to 30 roles. Too many roles fragment your data; too few lose useful granularity
- Use clear, standardized titles -- prefer "Software Engineer" over abbreviations like "SWE" or team-specific jargon
- Include a description -- a brief sentence helps people choose the right role, especially in large organizations
- Deactivate retired roles -- set
isActivetofalserather than deleting roles that are no longer in use, to preserve historical assignment data
Required Permissions
Managing job roles requires the settings_entity_config_* permission set.
Related
- Getting Started: Employees -- how employees are assigned to job roles
- Getting Started: Vacancies -- how vacancies reference job roles for hiring plans
- Configuration: Work Types -- employment type classification (not to be confused with job roles)
- Configuration: Departments -- organizational divisions that group teams