ghst light

← Back to blog

The Board v0.1.4: Call Steward Integration

v0.1.4 is out. Onboarding for Local 118 hasn't happened yet — I'm still in pre-launch preparation — but the work this cycle was focused on something specific: making The Board work alongside Call Steward, the existing system the local already runs. That meant deeper sync, better bulk operations, and continuing to fix the edges that only show up when you look closely.

Context

Call Steward is the job management system IATSE Local 118 currently uses. When The Board eventually goes live there, it won't be replacing Call Steward wholesale — at least not at first. Dispatchers will be working across both. So The Board needs to pull job data from CS, push assignments back, and stay in sync without clobbering anything. That's most of what this release is.

What shipped

Call Steward sync

  • Per-job pull and push sync — import a specific CS job or push assignments back by job number
  • Idempotent CS push: The Board checks existing CS state before syncing, so re-running a push doesn't duplicate assignments
  • Recurring weekly unavailability now pulls from CS and is also available for workers to set themselves
  • Union status and dispatcher notes now sync from CS directly — no more manual entry for data that already exists there
  • CS syncing badge on the UI so you can see when a sync is in progress
  • Option to skip notes during a per-job pull, for cases where you want the job data without overwriting local notes

Bulk operations

  • Assign a worker to all dates on a multi-day job from the assign modal — one action instead of repeating for each date
  • Bulk removal modal for removing a worker from multiple positions at once
  • Bulk notes editing from group section headers, with instant refresh and toast feedback

SMS reliability and workflow

  • Improved batch SMS reliability and added cancellation — you can now abort a batch in progress
  • Inline offer response buttons on outgoing message bubbles so dispatchers can accept or decline on behalf of a worker without leaving the conversation
  • Toggle to include position notes in the SMS notes bar, scoped per send
  • Position-filtered PPE via global per-skill defaults — the right PPE requirements go to the right workers automatically
  • Auto-enable date grouping for multi-day job offers, deduplicated position notes, and positions sorted by start time within the same date

Roster and availability

  • Skill filter on the roster is now multi-select with checkboxes — filter by multiple skills at once
  • CSV export in the legacy calling sheet format, with offer sent timestamps in the Date and Time columns
  • Timeline filtered to show only skill-matched positions for a given worker
  • Scroll position preserved when opening and closing the worker detail and conversation panels
  • Hide-unavailable toggle decoupled from offer policy so each behaves independently

Alongside the features: 30+ bug fixes. Overnight shift edge cases in bulk assignment, webhook echo deduplication in the SMS conversation view, idempotency edge cases in CS push, missing database columns, cursor-jumping in spreadsheet notes, and a broken dispatcher invite flow that had been quietly failing. Nothing dramatic, just the kind of thing that accumulates when you're building fast.

Why it matters

The CS integration work is what makes onboarding realistic. A dispatcher isn't going to switch to a new tool and re-enter everything by hand. If The Board can pull the jobs that already exist in CS, sync the roster data that's already there, and push assignments back without duplicating them — that's a much lower bar to clear on day one.

The bulk operations are in the same category. Dispatching a multi-day run means touching the same workers across multiple dates. Doing that one position at a time isn't viable. These are the kinds of things that feel minor until someone's actually using the tool in production.

What's next

Still preparing for Local 118's onboarding. I'm working through the remaining gaps in the CS integration — there are edge cases I won't know about until it runs against their real data. I'm also continuing to improve the SMS layer, which is the core of how dispatch communication works. More on both of those in the next cycle.

The light stays on.