Designed an AI-Powered Prioritization System for Faster Compliance

Overview

Role

Product Designer,
Independent Contributor

Timeline

6 months

Project type

B2B SaaS · AI Product Design · GRC Workflow

Context

Self-initiated project while contracted at Vanta as internal events support. Grounded in Vanta's own GRC user research & internal strategy documents. Technical feasibility confirmed by a Vanta engineer.

Problem

Vanta helps companies reach compliance in two weeks, but teams start with 30–50 failing controls & no clear path forward. The product shows what's failing — not what to fix first.

Solution

I used Vanta's AI agent to design a prioritization system from live data that ranks controls by urgency, surfaces why each is failing, & assigns accountability so nothing fails silently. I designed:

  • The AI prompt architecture: prompt logic, guardrails, & response formatting to produce reliable, user-centered AI output
  • Prioritization table: primary UI, transforms complex findings into an actionable priority list
  • Owner assignment panel: enables clear ownership & next steps for every task
  • High-fidelity task flow: the interaction from gap identified to ownership confirmed, ensuring no control, document, or test is left unassigned

Impact

Program managers move faster — from 30–50 unranked controls to a clear, delegated action plan.

About

Vanta, a B2B SaaS Governance, Security, and Compliance (GRC) Platform.

Vanta is a B2B SaaS platform that helps companies auto-check their tools, find security issues, & collect evidence to pass compliance audits (i.e. SOC 2, ISO 27001, HIPAA).

about_vanta

RESEARCH

To identify the most important user and business problem, I...

interview_icon

Interviewed a Vanta product designer

review_internal_documents_icon

Reviewed internal strategy & user documents

explore_platform_icon

Explored the platform & user flows

ai_icon

Used Vanta's AI agent for product understanding

...and identified the following user problems.

❌    No prioritization method

Product surfaces ~30-50 compliance issues per framework with no signal on what to fix first.

❌    Dashboard lacking direction

Shows monitoring counts, not actionable signals; creates anxiety not direction.

❌    Lack of visual hierarchy

No distinction between urgent & routine, causing decision fatigue.

❌    Root cause buried

Users were frustrated not knowing how to remediate tasks.

But prioritization was the most important problem to solve.

Alphabetical sort improves organization, not prioritization or execution. Vague status & missing implementation details leave users unclear on next steps.

controls_lack_prioritization_method
research_prioritization

THE USER

Prioritization impacts Program Pam’s work the most, who manages compliance and makes sure the work gets done.

illustration_pam_captain

PAM'S NEEDS

📋    Action without paralysis

When 30-50 controls are failing, she needs a ranked list to act on.

💡    Understand root cause failure

She needs to understand why a control is failing & steps to fix.

📊    Prove progress

She needs a clear, exportable view for leadership.

Design success looks like...

PREDICTED OUTCOMES

🎯    Faster action

Pam knows what to work on first without manually reviewing all failing controls.

✅    Faster remediation

Pam gets controls to passing faster.

📑    Leadership-ready

Pam easily exports a full picture of what’s being prioritized & why.

DESIGN PROCESS

I led with design instinct and mocked up a lofi table. Then used AI to evaluate alternatives.

Pam needs to see many tasks at once without getting overwhelmed. I drew on prior experience designing prioritization views & designed a ranked table.

Then I used Claude AI to explore popular compliance prioritization tools & lofi mocked up 2 alternatives.

Alert Feed

Good for sequential ordering; breaks down when Pam needs to work on tasks in parallel.

exploring_ideas_alert_feed

Risk heat map

Plots issues by effort vs. impact; strategic snapshot, but difficult for Pam to track progress.

exploring_ideas_risk_heat_map

Selected — Ranked Table

More data in view allows Pam to compare progress, act on rows when higher-priority rows are blocked, & share progress with leadership.

exploring_ideas_prioritization_table

Before iteration, I confirmed feasibility with an engineer.

As an after-hours passion project, I didn’t want to create work for the AI engineering team. I shared my idea with an engineer then iterated.

illustration_engineer

PROMPT & TABLE ITERATIONS

I designed 3 interconnected artifacts: an AI prompt, a prioritization table, and remediation steps within a slide-out panel.

I iteratively fine-tuned the AI prompt first, testing with live Vanta data & correcting errors until the logic was accurate enough to design from.

prompt_table_panel
Prompt

Using my current, live Vanta data, generate a single actionable table that clusters related failing controls and evidence for SOC 2 audit readiness.

Strictly prioritize the table as follows:

Audit Readiness (critical path) first—what must be done to be audit ready.
Blocker/Coverage as the main tie-breaker—what unlocks the most other controls.
Severity override—critical risks jump the line.
Effort “quick win” boost—easy wins get pulled earlier when impact is similar.

For each cluster, include columns for:

Priority
Task/Clustered Control
Owner (Actual / Recommended)
Status
Due Date
Risk (Justification)
Effort
Coverage/Blockers (Exact Controls)
Why It’s Here (Rationale)
Why Failing (Live Data)
Next Steps (Process + Specifics)

At the bottom, add a final checklist of universal “last mile” tasks (e.g., review every remaining control, address unique/edge-case evidence, remediate any new automated test failures, confirm 100% passing in Vanta) to ensure nothing is missed for full SOC 2 compliance.

The goal is to maximize speed and efficiency to get to 100% passing and SOC 2 compliant as quickly as possible.

AI output

agent_table_data

Designed prioritization table

  • Ranks & groups failing controls by task-type; reduces context-switching for Pam remediating controls herself
  • Surfaces why controls are failing
  • Tells Pam remediation steps
iteration1_table

AI output

section1_ai

Designed remediation steps

  • Concise, easy-to-follow steps
  • Button to check passing status
  • Inline AI chat to help Pam complete tasks
iteration1_remediation_steps

AI ERRORS

I didn't just give AI a prompt — I tested it, caught where it failed, and designed around those failures.

❌    Invented data

Even after prompting to use live user data, AI fabricated compliance data, which would’ve resulted in a failed audit.

✅    Added a mandatory pre-flight execution rule

Forced it to check every control's live status before generating output.

❌    Row reshuffling

AI reorganized rows every refresh - Pam couldn't track progress.

✅    Added fixed categorization & additive updates rules

Rows locked to Vanta's 10 native categories, & new gaps append to existing rows — never reshuffling.

❌    AI drift

AI quietly simplified output over sessions, truncating data & merging categories without instruction.

✅    Added anti-simplification & strict persistence rules

Forbidden from summarizing, clustering, or truncating data. AI cannot quietly drop a column or simplify a field between refresh.

PRODUCT GAP

A product gap surfaced, where assigning ownership to a parent control didn't auto-assign owners to child tasks — risking a failed audit.

❌    Broken feedback loops

Unassigned tasks receive no alerts, fail silently, & risk a failed audit.

✅    Prioritized assigning all owners

Pam must assign all owners before managing task completion.

illustration_idea

At a scale of 50-100 failing controls, Pam can’t remediate everything alone. The ownership gap made that visible, which changed the design direction & user journey.

Initial design

Design pivot

Pam as a single owner remediating failed controls

Pam assigning team ownership to all controls & child tasks (documents, evidence, tests)

Initial flow - Pam remediating controls herself

assign_owner_1

Pam clicks row for details

Pam views the pre-ranked table, views the first row of what's failing & next steps to fix, then clicks on the row.

storyboard_remediation_2

Remediation steps

A panel slides out, showing a checklist of concise tasks to make the row passing. Pam clicks the link in the first task.

storyboard_remediation_3

Task 1 completion

Pam reviews & approves the policy, completing task 1 of 2 in the checklist.

storyboard_remediation_4

Task 2 completion

After approving the policy, Pam is prompted to assign policy to all employees (completing task 2 of 2 in the checklist).

storyboard_remediation_5

Run test to validate row

Pam opens the prioritization table view, selects the first row to open the right-side panel, & clicks run test button.

storyboard_remediation_6

Celebration animation

3 second confetti animation shows on screen to celebrate the row as passing.

storyboard_remediation_7

Row shows passing in table

The associated row in the prioritization table now shows 'passing' under status column instead of 'needs attention'.

Revised flow - Pam assigning owners to remediate controls

assign_owner_1

Pam clicks row for details

Pam views the pre-ranked table, views the first row of what's failing & next steps to fix, then clicks on the row.

assign_owner_2

Right-panel to assign owners

A panel slides out, showing controls, documents, & tests with no assigned owner.

assign_owner_3

Pam selects owner from dropdown

Pam assigns each owner from a dropdown menu.

assign_owners_4

Pam assigns all owners

Pam assigns owners to all controls, documents, & tests.

assign_owners_5

Pam views her next steps

‘Program owner next steps’ column now shows delegation/management steps.

ITERATION - TEAM OWNERSHIP

Prompt

Role & Context: I am the SOC 2 Program Owner with a 1-week deadline. Using my live Vanta data, identify every failing or incomplete control and test mapped to SOC 2.

Mandatory Pre-Flight Execution: Before generating the table, you MUST call getControlDetailsAndStatus for every failing control ID. You are strictly forbidden from using high-level summaries from listControls to determine ownership. You must verify the assignees array for every individual control to ensure the 'Actual' owner names are accurate.

Hard-Coded Metadata Rules: The 'Empty Array' Override: You are strictly forbidden from using the Control Owner's name for any Test or Evidence Request. If the owner field in the getAutomatedTestDetails or getEvidenceRequestDetailsTool output is an empty array [], you MUST count it as Unassigned and label the owner as 'UNASSIGNED/Verify in App'.

The Deduplication Audit: Before populating the 'Unassigned' counts, deduplicate unique IDs. If one unassigned test is mapped to 5 controls, it counts as 1 unassigned test for that category.

The 'Actual Name' Anchor: Only use a name in the 'Program Owner Action' column if that specific name was returned in the owner field of the sub-item tool call.

Table Structure & Sorting: Fixed Categorization: Organize gaps exclusively into: Personnel, Policies, Account Security, Infrastructure, Data Storage, Computers, Vulnerability Management, Risk Management, Logging & Monitoring, and Vendor Management. Omit categories with 0 failing items.

Primary Sort: Lead-Time Risk first, then Blocker Volume, then Audit Criticality.

Column Formatting (PM View): [Vanta Category] [Are all controls, evidence requests, and tests assigned?]: Line 1: '[#] unassigned controls' Line 2: '[#] unassigned evidence requests' Line 3: '[#] unassigned tests' [Lead-Time Risk & Rationale]: Format: '[LEVEL]: [Rationale]'. [# of Controls Blocked]: Format: 'X (+Y shared from [Full Framework Name])'. [Effort & Rationale]: 'Low/Med/High' + 5-word rationale. [Why Failing (Live Data)]: Exact count of failing tests/controls + 1-sentence summary. [Anticipated Due Date]: Hard-coded date (YYYY-MM-DD) based on the 1-week deadline. Do not include text like "Final Deadline" or "T-Minus". [Progress %]: Calculated as (Passing Items / Total Items) * 100 for that category. [Program Owner Action]: If any sub-item is unassigned: ‘Assign owners to all controls, evidence requests, and automated tests to trigger automated notifications and SLA tracking, and eliminate oversight gaps’ If all assigned: 'Verify [Actual Name] has initiated the remediation.' [Control/Evidence/Test Owner Tasks]: Bulleted high-level result required.

Stability & Integrity Rules: No Consolidation: Every category must remain a distinct row. No Hallucination: If an owner cannot be verified via tool call, write 'Unknown/Verify in App'.

No Conversational Filler: Start directly with the table. Data Density: Do not truncate or simplify; provide specific names and IDs.

Initial table

iteration1_table_partial

Re-designed table

  • Row reshuffling solved by usingy Vanta's 10 native categories
  • Ownership gap solved by surfacing owner assignment in 3 rows
  • Pam's next steps: execution → delegation
section2_table_v.2_partial

Initial panel

Remediation-focused

section2_partial_panel_v.1

Re-designed panel

  • Assign owners-focused; remediation removed (Pam’s job to manage progress, not execute tasks)
  • Surfaces unassigned child tasks
section2_panel_v.2

FEEDBACK

I pitched to a product design manager. She confirmed the accountability gap was a meaningful find — but the table had too much data per cell.

Even though my contract ended shortly after, I revised the design.

Table before feedback

section3_partialtable_v.2

Table after feedback

Colors, chips, progress bars, & reduced text improve scannability

partial Final Table

Panel before feedback

Uses existing design patterns

section2_panel_v.2

Final panel

Chips, assign owner CTA button, & avatars for quicker action

section3_panel_v.3

Full table design

Final Table

Designing for Faster Scanning and Intuitive Interactions

design system components

Final flow - Pam assigns owners to remediate controls

REFLECTION

What I'd do next.

Designing without a product team meant missing context that weekly EPD feedback would have caught — specifically, that remediation steps belonged to many owners, not Pam.

With more time, I'd collaborate with EPD & user test the table with real program managers, design the panel's remaining states and edge cases, & rework Vanta's My Work tab to include remediation steps — reducing the 26-minute task flow I surfaced during research.

illustration_reflection

Let's connect!

© 2026 Natasha Mislang