惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
G
Google Developers Blog
S
SegmentFault 最新的问题
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
P
Proofpoint News Feed
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
F
Fortinet All Blogs
C
Check Point Blog
博客园_首页
I
InfoQ
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
美团技术团队
Vercel News
Vercel News
Apple Machine Learning Research
Apple Machine Learning Research

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I Built an AI That Turns 2 Hours of Compliance Paperwork ...
Archit Mittal · 2026-06-20 · via DEV Community

Archit Mittal

Financial advisors have a dirty secret: they spend almost half their working hours not advising anyone.

The culprit? Compliance documentation. After every client meeting, advisors must document what was discussed, what was recommended, whether those recommendations were suitable, and whether they followed FINRA and SEC rules — all in a format their CRM can ingest.

A 45-minute meeting routinely generates 2 hours of paperwork.

I built an open-source tool that does it in about 3 minutes. Here's exactly how — every architectural decision, every trade-off, and every line of code that matters.

The Problem Is More Specific Than You Think

When I started talking to advisory firms, I expected "meetings take too long" or "we need better CRM software." Instead, every compliance officer said the same thing:

"We're not worried about the notes. We're worried about what's NOT in the notes."

The real pain isn't documentation speed — it's the compliance gap. If a client says "I can't afford to lose this money" and the advisor recommends an aggressive growth fund, that's a FINRA 2111 suitability violation. But if the note-taker (usually the advisor, writing from memory hours later) forgets that quote? No record of the red flag.

This changed my entire system design. It's not a transcription tool with formatting. It's a compliance engine that listens for mismatches.

Architecture

Four-stage pipeline:

Audio → Transcription → Structured Extraction → Compliance Check → CRM Note
         (Whisper)          (Claude via            (Rule engine)    (Formatter)
                             OpenRouter)

Stack: Python/FastAPI + React frontend + Whisper (local) + Claude via OpenRouter

Two key design choices:

  1. Whisper runs locally. Advisory meetings contain PII and legally privileged information. Sending audio to third-party APIs isn't optional for most firms — it's a regulatory non-starter.

  2. Compliance engine is NOT an LLM. You can't have a probabilistic system making deterministic compliance judgments. The compliance check uses hardcoded rules against structured data. The LLM's job ends at extraction.

The Extraction Prompt

The LLM receives raw transcript text and returns structured JSON. The critical field is risk_signals:

"risk_signals": [
    {
      "signal": "What was said",
      "severity": "low|medium|high",
      "context": "Surrounding context"
    }
  ]

Most meeting note-takers extract topics and action items. This system specifically hunts for phrases indicating compliance risk — "I can't afford to lose this money" (risk tolerance), "my wife doesn't know about this account" (documentation issue), "just put it wherever you think is best" (discretionary authority concern).

Temperature is set to 0.1. When extracting compliance-relevant data, you don't want creative interpretation.

The Compliance Engine

The simplest code in the project. That's the point.

The suitability check cross-references risk signals against product recommendations:

risk_averse_keywords = ["can't afford to lose", "conservative", "safe",
                        "no risk", "preserve capital", "nervous"]
aggressive_products = ["growth fund", "equity", "crypto", "leveraged",
                       "options", "futures", "speculative"]

if has_risk_averse and has_aggressive:
    status = "RED"
    flags.append("SUITABILITY CONCERN: Risk-averse language detected "
                 "alongside aggressive product recommendations")

Is this keyword matching? Yes. Is it sophisticated? Not really. Is it exactly what compliance officers need? Absolutely.

Output is a traffic-light system: GREEN / YELLOW / RED. This maps directly to how compliance departments already think.

The Reg BI check catches the most common examination finding:

has_alternatives = len(products) > len(recommended)
if not has_alternatives:
    status = "YELLOW"
    flags.append("Product recommended without documented alternatives")

Not glamorous. Prevents six-figure fines.

Why Open Source?

The code isn't the competitive advantage. Any competent developer can chain Whisper → LLM → rule engine.

The value is in:

  1. Knowing which problem to solve. Features came from dozens of conversations with compliance officers, not from a spec.
  2. Production hardening. SOC 2, on-prem deployment, CRM integrations, SSO, audit logging.
  3. Ongoing support. Compliance rules change. FINRA updates regulations.

That's what I do. I automate chaos — messy, manual, regulated workflows that require domain expertise on top of engineering skill.


Full codebase: github.com/archit-akg13/advisor-meeting-notetaker

I'm Archit Mittal. I build AI automation for financial services. If your team spends more time on paperwork than on the work itself, I can fix that → architmittal.com

Follow me on Twitter @automate_archit for daily AI automation tips