Event & Trade-Show Staffing Platform

From an emailed request to a paid, briefed, on-site team — on one record.

Bench runs the whole event-staffing booking: parse the request, quote it, curate the team, brief both sides with AI, collect the signature and payment, run the event day, and pay talent on rules. Client charge and talent pay stay provably separate — enforced in the database, not hidden in the UI. Bench is CitrusWeb's platform for event and trade-show staffing agencies. New to the category? Start with what candidate relationship management is.

~25-status lifecycle on one record Pay separated in Postgres, not the UI 13 passing money-engine tests 189 real applicants imported
Booking #BK-2241 Stage 18 / 25 · On-site
QuoteSignedPaidStaffedEventPayout
Client sees
$4,800
total charge · 4 staff · 2 days
Talent sees
$240/day
their pay only
Margin & pay separated by Postgres RLS — not a UI toggle.
// 01 — What it is, in one line

An event/trade-show staffing operations platform — booking, ATS, quoting, e-signature, payments, and a self-serve client + talent portal — built on a single job record with database-enforced two-sided confidentiality.

Real, provable numbers
189
real applicants imported
~25-status
lifecycle, one record
13
passing money-engine tests
3
DB-enforced roles, RLS forced
// 02 — Features → benefits, with proof

Real, from the code.

01

Two-sided confidentiality, enforced by the database

Clients read talent only through SECURITY-DEFINER views where pay, margin, legal name, and contact columns are physically absent. Talent can never read the client charge or another talent’s pay.

Do: Hand clients and talent their own logins without ever exposing what you make on the deal. Outcome: Your margin is structurally protected, not one toggle away from a leak.

Proof · Postgres Row-Level Security, forced and deny-by-default on every table. The confidentiality invariant lives in the database, not the app layer.

02

AI Value Brief ships with every quote

At quote send, Bench web-researches the actual trade show — audience, exhibitors worth meeting, the client’s competitor landscape, lead benchmarks — and attaches a client-facing "show intelligence" one-sheet.

Do: Hand the prospect a reason to choose you, generated automatically. Outcome: Your quote arrives with something no generic ATS produces.

Proof · value_briefs table; auto-generated once per job at quote send, then editable. Partial today: requires an AI key + web search.

03

AI Company Brief briefs the talent, too

A web-researched one-sheet on the client and show that booked talent study to represent the brand like an insider. Client can edit; staff publish to talent; talent mark it "studied."

Do: Send people who already know the brand. Outcome: Talent show up briefed; the brand is represented accurately on the floor.

Proof · company_briefs + brief_studied tables; templated fallback when AI is off. Partial today: requires an AI key.

04

A unit-tested money engine, not a spreadsheet

Per-day pricing, $25/talent-day parking, ~3% card fee (ACH $0), 4-hour daily minimum, cancellation tiers (30+ days 100% / 7–29 days 50% / <7 days 0%), early-dismissal full pay, 10-business-day payouts, and the $600 1099 threshold — all pure functions, money in integer cents.

Do: Quote and pay on the same rules every time. Outcome: Defensible, itemized quotes and fair, consistent payouts.

Proof · lib/business-rules.ts, 13 passing unit tests.

05

Native e-signature with a hash audit — no per-envelope fee

ESIGN-style typed-name signing records the legal name, UTC timestamp, signer IP, user-agent, and a SHA-256 hash of the exact signed content plus a consent audit blob. Client and talent agreements both.

Do: Get legally-recorded signatures without paying DocuSign per envelope. Outcome: Signed agreements with a tamper-evident audit trail at no marginal cost.

Proof · lib/contracts/signature.ts, contracts table. Dropbox Sign optional. Partial today: native signing is the primary path and is live.

06

The whole lifecycle on one record

One job record carries an event through ~25 explicit statuses: new_inquiry → quoted → curating → presented → signed → paid → event_live → reconciled → talent_paid → closed.

Do: See exactly where every booking stands without stitching tools together. Outcome: Nothing falls through the cracks; one source of truth per booking.

Proof · jobs.status CHECK constraint; lib/data/jobs.ts.

07

A raw email becomes a draft quote

Forwarded requests hit a webhook; Claude parses the email into structured job fields, web-researches the event, and drafts a quote or flags missing info to an inquiries queue.

Do: Stop re-typing requests into a CRM. Outcome: An inbound email lands as a reviewable draft, not a blank form.

Proof · app/api/inbound/email/route.ts. Lands in the inquiries queue for AE review — never auto-sent. Partial today: email delivery gated on Postmark approval.

08

Curate a hand-picked team — with AI "why this fits" notes

The AE hand-toggles which roster talent to curate and present per job (manual — no auto-ranking). For each presented model, Claude drafts a 2–4 sentence client-fit note from real profile facts only.

Do: Present a curated set that feels hand-chosen, fast. Outcome: Quality control on who the client sees; every model reads as deliberate.

Proof · curations table; draftClientFitNote (forbidden to invent experience). Curation is SHIPPED; fit note PARTIAL on AI key.

09

Self-serve client claim → accept → pay

From a tokenized public quote page, the prospect edits details (every change logged), accepts via Google or magic-link, which binds their login to the job — then signs and pays in one step.

Do: Convert clients without phone tag. Outcome: The client edits, accepts, signs, and pays themselves; the AE sees exactly what changed.

Proof · app/quote/[token]/claim, job_change_log; SignAndPay.tsx. [Card charge is PARTIAL — see payments note.]

10

Availability gate, event-day ops, and rule-based payouts

Request availability from curated talent (email/SMS/WhatsApp/in-app) before contracting; check in, mark no-show, and record actual hours on event day; reconcile to a payout per booking due 10 business days after the event.

Do: Book only confirmed talent and pay them on event-day truth. Outcome: Fewer no-shows booked, fair pay computed from what actually happened.

Proof · availability_requests, bookings.no_show/actual_hours, payouts. [SMS/WhatsApp send PARTIAL on Twilio approval.]

// 03 — What you can do with Bench
Turn a forwarded email into a structured, web-researched draft quote.
Build itemized, per-day, per-headcount quotes in cents — and send a tokenized public quote page with a downloadable PDF.
Let clients edit, accept, sign, and pay online — with a full change log.
Curate and present a team with AI fit notes, then gate on real availability.
Ship an AI show-intelligence brief to the client and an AI company brief to the talent.
Run the event day — check-in, no-shows, actual hours — and reconcile to rule-based payouts.
Track payout YTD and flag W-9/1099 at $600 automatically.
Keep résumés in a private bucket (signed URLs only) and run an inbox of vetting applicants.
Message clients and talent per job, and push events to ICS calendars.
Watch the numbers: pipeline by stage, no-show rate, avg payout days, avg rating, revenue paid/outstanding.
// 04 — The lifecycle, end to end
01

A request becomes a draft quote.

Forward an email or take an inquiry — AI parses it, researches the show, and drafts a per-day quote.

02

The client signs and pays online.

They review the tokenized quote, edit details (every change logged), accept, sign a hash-audited agreement, and pay.

03

You staff, brief, run, and pay out.

Curate the team, ship AI briefs to both sides, gate on real availability, check in on event day, and pay talent on rule-based payouts.

// 05 — How Bench compares

Built for event-day staffing — not permanent-placement recruiting.

Bullhorn, JobAdder, Crelate, and Zoho Recruit are strong recruiting platforms. Bench is built for per-day quoting, two-sided confidentiality, client-facing show intelligence, and talent payouts.

Bench
Bullhorn
Crelate
Zoho Recruit
Per-day, per-headcount event quoting (in cents)
Yes
No
No
No
DB-enforced two-sided pay confidentiality (RLS)
Yes
App-layer perms
App-layer perms
App-layer perms
Client-facing AI show-intelligence brief
Yes
No
No
No
Talent-facing AI company brief
Yes
No
No
No
Unit-tested pricing/payout/1099 engine
Yes (13 tests)
No
No
No
Native hash-audited e-signature (no per-envelope fee)
Yes
Add-on
Integration
Integration
Event-day ops (check-in, no-show, hours)
Yes
No
No
No
Multi-tenant SaaS today
No (vision)
Yes
Yes
Yes
Integrated live card processing today
Engine ready, Stripe stub
Via integration
Via integration
Via integration
// 06 — How the AI works — assistive, never the decision-maker

It never decides who gets booked.

Every AI feature in Bench is assistive draft-generation or extraction. Curation is a manual AE toggle — there is no automated candidate scoring or ranking. The résumé extractor explicitly refuses to read protected characteristics. A human stays accountable for every selection decision, which lowers hiring-bias exposure.

Résumé → structured profile

Claude reads the PDF/image and returns JSON (bio, skills, brands, languages, certs, years); applied fill-empty, never overwriting typed data; refuses protected characteristics (race, religion, age, disability).

You control: staff and talent edit everything; AI only fills blanks.

Inbound email → draft job

Maps email text to allowed role/attire keys + a day grid; never invents specifics.

You control: lands in the inquiries queue for AE review, not auto-sent.

Event web-research

Claude with web search returns verified dates/venue/audience, null when unverifiable.

You control: fills missing fields; the AE confirms.

Value Brief (client-facing)

A deeper model + up to 10 web searches; "verify or write [confirm]"; generated once at quote send.

You control: client/AE edit the shared master.

Client-fit note per model

Drafts a 2–4 sentence note from only provided profile facts; forbidden to invent experience.

You control: AE-reviewed before the client sees it.

Photo enhancement (fal.ai)

FLUX Kontext changes only background/lighting/framing and keeps the person identical (honest representation).

You control: staff/talent choose to apply.

// 07 — Security & PII
Row-Level Security, forced and deny-by-default on every table. SECURITY-DEFINER helpers with locked search paths (is_staff, is_finance, client_owns_job). The confidentiality invariant is enforced at the database.
Invite-only auth. A user must be pre-seeded by verified email; Google OAuth or magic-link alone never grants access. Every non-asset route runs through middleware.
Résumés in a private bucket. Served only via server-minted signed URLs after an RLS check. Photos live in the one public, client-facing bucket.
Talent pay and internal notes are split into staff-only tables so a talent-self policy can’t leak them.
SSN vault — designed for compliance. SSNs are never stored raw: a vault reference, last-four only for masked display, finance-only by RLS, append-only access log. Honest status: the reveal/write action is not yet wired in app code — PARTIAL. Live today: W-9/1099 threshold tracking.
Webhook security: inbound email secret-gated and fails closed; Stripe signature verification; Dropbox Sign HMAC; cron secret. Hosting: Vercel + Supabase.
// 08 — Packaging

Per staff seat — tiers to confirm.

No software pricing exists yet. The $50/$65/$75 figures in the product are the agency’s client staffing rates, not the software price.

Starter
A single agency getting off spreadsheets
$ TBD / mo

Full lifecycle on one record, quoting, native e-sign, manual mark-as-paid, vetting inbox.

Talk to us
Pro
Full AI
Agencies that want AI briefs + automated outreach
$ TBD / mo

Everything in Starter + AI Value/Company briefs, fit notes, inbound-email parsing, availability via SMS.

Talk to us
Scale
Depends on multi-tenant + live payments roadmap
$ TBD / mo

Today Bench is a single-agency deployment. Multi-tenant resale and live card processing are on the roadmap.

Talk to us
// 09 — FAQ

The questions agencies ask.

Is Bench multi-tenant SaaS I can buy today?+
Not yet. Today Bench is a single-agency deployment, built and proven for one agency. Multi-tenant resale is the product vision, not the current code state. Talk to us about pilot deployments.
Does it process payments?+
The pricing, payout, refund, and 1099 logic is real and unit-tested. Live card/ACH processing through Stripe is code-complete but not yet switched on — jobs complete today via a manual "Mark as paid," so you can run real bookings end to end now, and integrated checkout follows.
Does the AI decide who to hire or rank candidates?+
No. AI only drafts and extracts. Curation is a manual human toggle with no auto-ranking, and the résumé extractor refuses protected characteristics. A person makes every booking decision.
How is client/talent confidentiality actually enforced?+
In Postgres. Clients have no base-table access to talent pay or margin — they read SECURITY-DEFINER views where those columns don’t exist. Talent can’t read the client charge or other talents’ pay. It’s a database guarantee, not a UI setting.
What does the e-signature record?+
The typed legal name, UTC timestamp, signer IP, user-agent, and a SHA-256 hash of the exact signed content plus a consent audit blob — at no per-envelope cost.
How do you handle SSNs and résumés?+
Résumés sit in a private bucket reached only by signed URLs after an RLS check. The SSN vault is designed for compliance — vault-referenced, masked to last-four, finance-only, audit-logged — though the reveal action isn’t wired yet. 1099/W-9 threshold tracking is live.
Will it email and text my talent?+
Email (Postmark) and SMS/WhatsApp (Twilio) are built and configurable; full delivery is gated on account approvals. Configure them and they fire; until then sends degrade gracefully.
Can I see every view my clients and talent see?+
Yes — staff can switch between real role-scoped demo logins to QA the AE, Client, and Model views exactly as each party experiences them.

Watch a forwarded email become a signed-and-paid team — with the client never seeing the pay.

Book a 5-minute demo and see a booking go from emailed request to a clean payout.

Book a 5-minute demo
Book a demo

See it running on your business, not a slide deck.

Tell us what you’re trying to do and we’ll show you the closest platform live. If it fits, we tailor it to you. If it doesn’t, we’ll say so. Replies within one business day.

Or book a demo

Got it, thank you!

Your message is on its way. A real person from the team replies within one business day.