14
Submission Workflow Stages — Full Status Lifecycle Tracked
2
Distinct Platform Roles (Executive + Representative)
UUID
Public Submission Links With Configurable Usage Caps
The Problem

Production Executives Track Hundreds of Talent Submissions via Email Folders and Spreadsheets

Production executives at studios and production companies receive submissions from dozens of agents and managers per project — each with PDF samples, video reels, cover letters, and talent bios arriving via email. Tracking which talent has been reviewed, shortlisted, flagged, or passed — and coordinating meeting scheduling — was managed manually in spreadsheets with no visibility for the representatives on the other side. Agencies and management companies needed a platform where executives could share active projects with selected representatives, receive structured submissions with all required materials, schedule meetings, manage contacts for targeted outreach, and export filtered submission reports — all in a traceable, auditable system with role-based access control.
Our Solution

Internal Submission Pipeline, Public Submission URLs, and Full Contact Management

We built SlateDesk as a full-stack SaaS platform with a five-domain architecture. The Project model captures the full production metadata: title, format, genres, development stage, deadline, network partners, production companies, showrunners, directors, writers, producers, talent, file attachments (scripts, pitch decks), distribution lists, and attributes. Status workflow covers Private → Publish → Draft → Completed → Archived → Submission Log. The internal Submission pipeline links a Client (talent) to a Project via an executive, with PDF samples and video reels, weekend_read and shortlist flags, SubmissionStatus timestamped change log, SubmissionNote with is_public flag (visible to representatives), and MeetingEmail with CKEditor-rendered rich body. The public submission system generates UUID public links per project. PublicSubmission tracks is_active, max_submissions, and submissions_used — has_remaining() gates new submissions. PublicSubmissionData stores every inbound submission in full. The contact snapshot pattern on PublicMeetingContact freezes first_name, last_name, company, and position at meeting time — preserving attendee accuracy even if the contact record changes later. Contact management supports multi-email contacts, 5-stage phone sheet workflow, tag-based segmentation, distribution lists linked to projects, and bulk Excel/CSV import with template download. The ExAgent (external agent) system shares specific projects with representatives with Full Access or View Only permission.
Architecture
Django 5 + DRF API. Stripe subscriptions with three event webhooks (created/updated/deleted). JWT authentication with multi-step OTP email verification. django-ckeditor for rich-text emails. PostgreSQL multi-workspace database. React + Redux + Material UI + Vite frontend. Excel/CSV bulk import via openpyxl/csv. Contact snapshot pattern for meeting participants. UUID-based public submission URL system.
The Result

Every Talent Submission Structured, Trackable, and Auditable — Roles for Both Sides

SlateDesk replaced email-chain submission management with a structured, dual-role platform where both sides — studio executives and talent representatives — have a purpose-built workspace. Executives gained complete visibility into every submission across all active projects — internal and publicly submitted — with weekend_read and shortlist flags, timestamped status change logs, meeting email scheduling, and filtered Excel exports for every tracking scenario. Representatives had a transparent window into exactly which projects they were shared into, the status of every submission they had made, and any notes the executive chose to make public. The public submission URL system enabled executives to share branded submission links with any agent or manager without account creation — capped at a configurable number of submissions per project, with a contact snapshot pattern that preserves meeting attendee accuracy even if contact records change later. Stripe subscription tiers enforced workspace and team member limits directly in the application layer.
Want scalable architecture and measurable results like this?
Book an Architecture Audit
Build Something Like This
// free scoping call · senior engineers · no commitment

Project scope, timelines, and architecture options in one 45-minute session.

Start a Project
More Work

Related Projects

The Marble Group: Natural Stone Inventory Intelligence Platform for UK Stone Buyers
Django Docker PostgreSQL
The Marble Group: Natural Stone Inventory Intelligence Platform for UK Stone Buyers
One dashboard for 10 UK stone suppliers — automated price reconciliation, real-time stock alerts, instant PDF/Excel export. Replace 15+ hours of manual supplier research every week.
View Details
Django Node.js PostgreSQL
Farming Product Monitor: Real-Time Agricultural Price & Stock Intelligence for Pakistani Markets
Get instant Discord alerts on price and stock changes across Kissanghar.pk and Syngenta Pakistan. Full change history, stealth scraping, and full-catalogue auto-discovery built in.
View Details
Django Docker PostgreSQL
Global Freight Tracking API: Track 30+ Air & Sea Carriers — One Call, One Standard Response
One API call replaces 30+ carrier portal checks. Real-time AWB and container tracking from international air and sea carriers — standardised JSON response, including full audio CAPTCHA bypass.
View Details