macOS App for Organizing Call Transcripts
CallSort is a local-first macOS application that helps you organize call transcript files using a human-in-the-loop workflow with AI assistance (Claude/Gemini) via copy/paste interaction.
✅ Pass 1: Account Classification (Implemented)
- Organize transcript files by customer account
- Copy/paste LLM prompts (no API usage)
- Strict JSON validation
- Dry-run preview before commit
- Complete audit logging
- Safe file operations (copy, never delete)
- macOS 13.0+
- Xcode 15.0+
- Swift 5.9+
Clone the repository
git clone https://github.com/yourusername/CallSort.git cd CallSortOpen in Xcode
open CallSort.xcodeproj
Build and Run
- Select "My Mac" as the run destination
- Press Cmd+R to build and run
- Select input folder (your transcript files)
- Select output folder (where to organize files)
- Load your accounts.json configuration
- Generate LLM prompt → Copy to clipboard
- Paste in Claude/Gemini → Get JSON response
- Paste JSON back into app → Validate
- Preview classification → Dry run
- Commit to organize files!
CallSort/
├── CallSort/
│ ├── CallSortApp.swift
│ ├── ContentView.swift
│ ├── Models/
│ │ ├── AccountsConfig.swift
│ │ ├── FileItem.swift
│ │ ├── ClassificationResult.swift
│ │ └── Manifest.swift
│ └── Services/
│ ├── FileService.swift
│ ├── ValidationService.swift
│ ├── AccountClassifier.swift
│ └── ManifestService.swift
- No API calls - All AI interaction via copy/paste
- Explicit approval - Dry-run before every commit
- Never delete - Files are copied, not moved
- Audit everything - Complete manifest logs
- Conservative - UNSORTED is a valid, safe outcome
- Pass 1: Account Classification
- Pass 2: Meeting Grouping
- Pass 3: Summary Generation
- History Browser
- Search/Filter
MIT License - See LICENSE file for details
Contributions welcome! Please open an issue or PR.