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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.]
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.]
Forward an email or take an inquiry — AI parses it, researches the show, and drafts a per-day quote.
They review the tokenized quote, edit details (every change logged), accept, sign a hash-audited agreement, and pay.
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.
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.
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.
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.
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.
Claude with web search returns verified dates/venue/audience, null when unverifiable.
You control: fills missing fields; the AE confirms.
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.
Drafts a 2–4 sentence note from only provided profile facts; forbidden to invent experience.
You control: AE-reviewed before the client sees it.
FLUX Kontext changes only background/lighting/framing and keeps the person identical (honest representation).
You control: staff/talent choose to apply.
No software pricing exists yet. The $50/$65/$75 figures in the product are the agency’s client staffing rates, not the software price.
Full lifecycle on one record, quoting, native e-sign, manual mark-as-paid, vetting inbox.
Talk to usEverything in Starter + AI Value/Company briefs, fit notes, inbound-email parsing, availability via SMS.
Talk to usToday Bench is a single-agency deployment. Multi-tenant resale and live card processing are on the roadmap.
Talk to usBook a 5-minute demo and see a booking go from emailed request to a clean payout.
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.
Your message is on its way. A real person from the team replies within one business day.