Custom reports are available only for Enterprise plans. Custom reports enable Enterprise customers to design flexible dashboards with configurable widgets. You can build visualizations, customize tables, combine data from different sources, and organize reports to fit your internal reporting needs.
This guide walks through creating custom reports (by editing and saving existing reports or creating a new one), building widgets, managing dashboard layouts, and working with advanced configuration options.
Advanced saved reports (dashboards)
Saving reports will move them to a dashboard form and will enable you to combine multiple widgets, reuse elements from other reports, and create deeper, multi-layered analyses. Advanced capabilities include:
- Renaming widgets to provide clearer context via the pencil icon.
- Editing widget-level filters, which can override report-level filters, or freezing widget filters so that the widget always shows the same result, even when report-level filters change.
- Viewing filter activity at a glance via color-coded badges on each widget — blue when widget-level filters are active, orange when a widget filter overrides or ignores a report-level filter, and red when the filter configuration needs attention.
- Duplicating a widget within the same report creates an identical copy at the end of the dashboard, carrying over widget-level filters only.
- Copying a widget to another report using the Copy to report option in the widget's context menu (see Reusing and copying widgets for full details).
- Deleting a widget when it's no longer needed.
- Adding more widgets from either existing reports or by building new ones; the options will appear at the bottom of the dashboard.
Reusing and copying widgets
You can allocate widgets from different reports to allow consistent reporting across dashboards. There are two ways to reuse widgets:
Use existing widget
Browse widgets from pre-built or custom reports and add them to the current report.
Copy widget
Copy any widget to another report by following the steps below:
- Select the Copy to report option in the widget's context menu.
- Select an existing custom report or create a new custom report as the destination.
- Choose whether to copy report-level filters together with the widget-level filters (enabled by default). Copying the report-level filters merges them with the widget-level filters into widget-level filters in the target report. If the 'Apply report filters to the widget' toggle is off in the target widget, the report-level filters will not be copied.
Accessing the custom report builder
To begin building a new custom report from scratch, go to the Report Center, where you will see the option to start a new custom report in the upper-right corner.
Starting a new report opens a blank page. The report receives a temporary name until you save it. A custom report must contain at least one widget before it can be saved.
Creating a new widget
A custom widget is either a table displaying individual records from a dataset, or a visualization (such as a metric, chart, or pivot table) that summarizes your data.
To create a custom widget, select Create new widget at the bottom of your custom report. Building a widget involves three steps:
- Select a data source and optionally apply filters to focus on the data you need.
- Choose a visualization type.
- Configure the visualization parameters.
The first step is to select a data source. The following sources are available:
Recruiting datasets
Activities
Captures all recruiting actions and events logged across jobs and candidates — including stage transitions, interview scheduling, emails, comments, and offer-related events. Use this dataset to track team productivity, pipeline movement trends, and activity volume over time.
Candidate details
Contains profile and application data for all candidates across all jobs, including source, pipeline stage, tags, custom fields, and screening answers. Use this dataset to analyze candidate volumes, source effectiveness, and stage distribution. Note that this dataset only surfaces jobs where candidate records exist — for full job coverage, use the Job details dataset instead.
Job details
Enables custom widgets and metrics built around the full set of jobs in the account. To access it, open the widget builder and select Jobs from the dataset picker. This dataset enables:
- Full job coverage: unlike other datasets (Activities, Candidates, Requisitions), which only surface jobs where related records exist, this dataset lists every job in the account — making it a reliable basis for job-level metrics regardless of activity
- Candidate metrics including purged candidates: total, disqualified, and hired candidate counts per job, including purged candidates — these figures are not available in the Candidates dataset
Note: Candidate counts include purged candidates and may differ from what is visible on the Jobs page.
Offers
Enables custom widgets built around offer data across your account, including offer status, timelines, and compensation details. To access it, open the widget builder and select Offers from the dataset picker. Some examples of metrics you can build with this dataset:
- Average revisions per offer
- Offers created over time
- Count of offers pending approval for more than a set number of days
- Average offered salary over time
- Average salary for expired or declined offers over time
Requisitions
Contains all headcount request data from your Hiring Plan, including requisition status, approval details, linked job information, and salary fields. Use this dataset to track open positions, time-to-fill, and budget alignment. Requires the Hiring Plan feature to be enabled.
Employee management datasets
Employee details
Contains profile data for all employees in your account across all HR fields, including personal details, employment information, and custom fields. Use this dataset to build headcount reports, segment employees by department or location, and analyze workforce composition. Field-level access control applies — fields not visible to you in employee profiles will appear empty in the dataset.
Time off requests
Contains all time off requests submitted in your account, including request dates, duration, time off type, policy, and approval status. Use this dataset to track leave usage by department or policy, monitor request volumes over time, and filter by approval status.
Attendance
Tracks employee work attendance, including worked hours and deviations from scheduled hours. Use this dataset to compare scheduled vs. actual hours, identify patterns across departments or time periods, and filter by on-site or remote working days.
After selecting a data source, choose whether to build a customizable table or an aggregated visualization. The default is a customizable table.
Customizable tables (table breakdown)
Customizable tables allow you to tailor the information shown in the report. When creating a customizable table, start by selecting the columns you want to include. All available fields for the selected data source are listed — choose which ones to display and arrange them in the order that fits your reporting needs.
They support:
- Renaming the widget.
- Adjusting visible columns and column order.
- Applying widget-level filters.
- Excluding report-level filters when needed.
Table settings are saved as part of the custom report.
Aggregated visualizations (summary view)
Aggregated visualizations offer a way to summarize data or highlight trends. Depending on the selected dataset, you can use aggregation types such as:
- Count: counts all rows in the dataset that match the applied filters
- Sum, average, median: available for numeric fields
- Minimum, maximum: available for numeric or date fields
- Count distinct: counts distinct values across string, list, date, or numeric fields
Depending on the dataset and aggregation type, you can choose between multiple visualization types:
- Donut
- Bar
- Line
- Pivot table
When selecting an aggregation type other than basic count, you will be asked to select a column to apply the function to. Add widget-level filters to narrow the scope of the data shown in your visualization. After configuring your aggregation, you can add a label for the metric and select Done.
Line chart
The line chart visualization in the widget builder supports single and multiline graphs across any dataset. Line charts are best suited for visualizing data over time.
Required settings:
- Select a calculation function — default is Count
- Set at least one grouping — the chart will not render without it
Optional settings:
- Add a second grouping to generate a multiline chart, allowing comparison across data segments such as departments, stages, or team members
Date groupings:
When grouping by a date or datetime field, a bin size selector appears in the chart. This lets you control the time interval — auto, day, week, month, quarter, or year — to generate configurable time progressions.
Additional configuration options:
-
Show group labels: displays the values of the 2nd grouping (default: disabled)
-
Show x-y axis: shows or hides the values on the x and y axis (default: enabled)
-
Show values: displays or hides data values on the graph (default: disabled)
A single line tracks a single metric over a period of time. Adding a second grouping splits the chart into multiple lines for side-by-side comparison — for example, candidates by stage over time, or hiring activity by department across quarters.
Donut chart
The donut chart visualizes data as proportional segments, making it ideal for showing distribution across categories — for example, candidates by source or activities by type.
Required settings:
- Select a calculation function
- Set a grouping to define the segments
Optional settings:
- Display labels: determines whether segment labels are permanently visible on the chart or appear only on hover (default: disabled)
- Display values: determines whether the total summary count is visible at the center of the chart (default: enabled)
Add widget-level filters to narrow the scope of the data shown in the visualization.
Bar chart
Bar charts allow you to segment data on one or two dimensions — for example, grouping activities by type and then breaking them down further by department.
Required settings:
- Select a calculation function
- Set at least one grouping
Optional settings:
- Add a second grouping to further break down the data
- When using two groupings, choose between stacked or grouped bar display
- Switch between horizontal and vertical bar orientation
- Show or hide group labels
Add widget-level filters to narrow the scope of the data shown in the visualization.
Pivot table
Pivot tables let you drill down into data with up to three levels of segmentation (three groupings).
Data can be organized in the following configurations:
- One grouping as rows
- Two groupings as rows and sub-rows
- Two groupings as rows and columns
- Three groupings as rows, sub-rows, and columns
Add widget-level filters to narrow the scope of the data shown in the visualization.
Grouping options
Groupings segment your data into categories based on a field you select — for example, grouping candidates by source, stage, or department. You can apply one grouping or combine multiple groupings to compare data across dimensions. Charts and pivot tables support two or three levels of grouping for multi-level analysis.
Grouping by department
Department groupings have a special option: you can select which level of your department hierarchy to report at. After selecting department as a grouping, a department level selector appears with two options:
-
Top level: aggregates all data to the top-level department, giving a high-level view across the organization
-
Exact department: presents data for each specific department individually, without aggregation
Multi-level segmentation
When using a visualization that supports two or more groupings — line charts, bar charts, and pivot tables — additional department level combinations become available, allowing side-by-side comparison of top-level departments broken down by sub-department levels:
-
Top level + 2nd level: aggregates to top level, then breaks down by direct sub-department.
-
Top level + 3rd level: aggregates to the top level, then breaks down by the 2nd-level sub-department.
-
Top level + Exact department: aggregates to top level, then shows each department individually.
- Exact department: no further department grouping is permitted as a second grouping.
Note: When Exact department is selected as the first grouping, no further department breakdown is supported as a second grouping, as the second grouping acts as a more specific breakdown from the first.
Where it's available
The department level selector appears whenever department is used as a grouping, across the following datasets and fields:
- Candidates, Job details, Activities: Job department
- Requisitions: Job department or Requisition department
- Employee management: Department
Grouping by numeric ranges
When grouping by a numeric column in an aggregated visualization, you can configure how values are distributed across ranges. The available options are:
- Dynamic ranges (default): the system automatically selects sensible bucket sizes based on the data
- Exact values: each distinct value is plotted individually, with no bucketing applied
- Manual range selection: set a custom min/max and number of equal-width buckets to focus on a specific range
- Preset number of ranges: choose a fixed bucket count from 3, 7, 9, 11, or 15
This is supported across donut, bar chart, line chart, and pivot table widgets. Records with missing values are excluded when any bucketing is applied.
Grouping by date ranges
When grouping by a date column in an aggregated visualization, you can configure how records are grouped into calendar periods. The available options are:
- Auto (default): the system selects the period granularity based on the date range of the data
- Day, week, month, quarter, or year: manually set the period granularity
Incomplete periods at the start or end of a date range are still plotted, with a tooltip indicating they are not a full period. Records with no date value are excluded. This is supported across donut, bar chart, line chart, and pivot table widgets.
Using an existing widget
To create a new view based on an existing widget, select the Use existing widget option. Depending on the entry point of the custom report, you will have different reports available for selection or creation:
- If starting from the home page, you may select a Recruiting or HR widget. The first widget will determine the report's type
- If starting from Recruiting or Employee management, you will have only the corresponding source available
Organizing your dashboard
Once your widgets are added, you can organize them to improve readability and layout:
-
Rename widgets: select the widget name to rename and give it a more descriptive name. Widget names must be unique within the same report.
-
Reorder widgets: drag any widget from the handle in the top-left corner to reposition it on the dashboard.
-
Resize widgets: drag the handle on the right side of a widget to adjust its width. Resize options vary by widget type:
- Metric widgets: ¼, ⅓, ½, or full width
- Donut charts and bar charts: ½ or full width
- Tables: always full width and cannot be resized
-
Duplicate widgets: create an identical copy of a widget within the same report. The duplicate appears at the bottom of the dashboard and carries over only widget-level filters.
New widgets always appear at the bottom of the dashboard, but can be reordered after adding. Saving your custom report preserves all layout, naming, filter, and column selections.
Saved custom reports appear in the Custom reports section within the Recruiting and Employee management tabs of the Report Center, depending on the type of data they contain. Recently visited custom reports are also surfaced on the Report Center Home page for quick access.