PoliCRM
Python Automation Rust Security

PoliCRM

2026

// Overview

PoliCRM is an automated member management and Australian Electoral Commission (AEC) enrollment verification system built for political campaigns. It provides two verification methods: Electoral Roll Access (ERA) file processing for instant local matching, and a Selenium-automated check against check.aec.gov.au. The application features both an interactive TUI for command-line operations and a Django/Wagtail web CRM for day-to-day management. A recent Rust rewrite stores records in SQLite with AES-256-GCM encryption on PII fields and SHA-256 blind indexing for secure, queryable email search.

// Challenges

Securing highly sensitive personally identifiable information (PII) at rest while keeping it queryable for campaign workflows, normalising unstructured and inconsistent address formats to match AEC databases, and handling anti-bot measures, VPN blocks, and CAPTCHAs during fallback Selenium checks on check.aec.gov.au.

// Outcomes

Successfully secured $640k in public funding for campaigns by automating mass membership verification. Implemented a zero-trust encryption model with blind indexing that prevents cleartext PII storage. Evolved from an emergency python-based automation script into a robust local-first CRM with soft-delete capabilities and role hierarchies.