Know what you're short. Ask everyone.
Write down what a Mitzvah normally needs — once — and every Mitzvah on the calendar starts showing its own open roles. Shortlist four contractors for a slot and ask them all; each one answers with a single tap from their phone, no login, no app to install. Four answers come back, not four bookings. You still pick who's on the show.
Nobody can say what fully staffed actually means.
What a corporate gala needs in crew is whatever's in the owner's head, so every show gets figured out from scratch. You text five contractors, three answer, and a week later you can't remember whether the fourth ever got asked. Someone says yes to a date they can't actually work because nobody told them a call time was coming later. And the slot you forgot about doesn't show up until load-in morning, as a hole in the crew.
Then there's the other failure: you promise the same slot to two people because first-yes-wins was never a real decision — it's just what happens when you're driving and answer whoever texts back first.
With GigPal PRO: the standard is written down once per kind of event, every gig counts its own open roles against it day by day, and asking four people records four answers instead of booking four people.
From an empty crew list to a printed call sheet.
Write the standard once, per kind of event.
Crew needs track the kind of show far more than the gear does, so the standard hangs off the gig's category — Mitzvah, Corporate, Videography, Non-Profit, or whatever your shop runs. Say a Mitzvah takes 1 Production Tech and 2 Utility for setup and strike, and every Mitzvah on the books shows its own open roles right away. It's live, not stamped onto each gig: edit the standard and twenty shows update the moment you save. No apply step, no re-sync, nothing to push. One gig that genuinely differs can carry its own requirements instead.
Every gig shows what it's still short — by the day.
A requirement pins to a phase, not a clock: load-in, show, strike. Those resolve to the gig's real dates off its load and return dates, and coverage is counted per day, then taken at the worst day in the window. Three different utilities each covering one of three show days is not three-out-of-three — it's one, on every single day, and the chip says so. On a one-day gig all three phases collapse onto that date, which is why 2 utility for setup and strike means two people, not four.
Shortlist four. Ask them all. Book none.
Tap an open chip and you get a searchable list of your crew contacts, people whose role already matches sorted to the top. Add who you want, hit ASK, and each person gets their own private reply link — a fresh one per ask, so no contractor can ever answer on another's behalf. Their tap lands on a page wearing your company's logo and color, not ours, asking only whether they can hold the day. Candidates sit in their own list, deliberately separate from the crew on the gig. Only + BOOK moves someone across.
SUN NOV 24
Staff the whole season in one sitting.
Opening thirty gigs one at a time is the actual job nobody does, so there's a screen that lists every open role across every upcoming gig, grouped under the show it belongs to. Search your whole contact book inline on any row, tick the rows you want, and SEND ALL puts the asks out from your company's name — no forty mail drafts to click through. Rentals merge overlapping shows into one block; staffing never does. A Utility slot on Saturday's gala and one on Sunday's mitzvah stay two separate asks, because that's how you actually book people.
Call times land later. Nobody gets re-asked.
Crew gets booked 30 to 45 days out; the run of show isn't locked until days before. That split is the whole design — the ask is for the day, and the time follows. Set a call time per role once you know it and one button re-confirms everyone already asked, skipping anyone who declined. Two weeks out, the app sends that confirmation on its own if you haven't, and it can't double-send. When the schedule's set, print the call sheet: one section per day, name, role, phone, a star on the crew lead, and a loud warning on any day nobody is scheduled.
The parts that stop it going wrong.
Three people, three days, still short
A phase can span several dates. Counting anyone who worked one day of it as covering the whole phase reads three utilities on three different days as fully staffed, when no single day ever had more than one. Coverage is the minimum across every day in the window, and it uses the exact same day-membership test the crew schedule builds its roster from — so the chip and the schedule can't disagree.
Four asks, four answers, zero bookings
Candidates live in their own list, never in the gig's crew. Nothing in the ask flow — not the season-wide send, not a reply landing while you sleep — can put a person on a show. Promotion happens in exactly one place, by hand, on the gig, and that's the only thing the gap count ever reads.
Re-asking reuses the same link
Every ask mints one unguessable reply link, and a re-ask deliberately reuses it rather than issuing a second. Minting a new one would orphan the email already sitting in the contractor's inbox — they'd tap the old link, the answer would land in the database, and the shortlist would sit on ASKED forever. One live link per person, for the life of the ask.
No reply link, no email sent
If the link can't be created — connection dropped, anything — the send is refused outright and told to you by name, rather than quietly mailing someone a message with nothing to tap. Same rule on the season-wide send: a failed one stays visibly unasked and retryable, and nothing is marked as asked until the send is confirmed.
A reply can only ever move forward
Replies pull in automatically when you open a shortlist, and on demand from a button while you're sitting there waiting. A stale record can't overwrite an answer you already have, and a status you set by hand — because you spoke to someone on the phone — is only ever replaced by a real reply. Losing a yes sends you hunting for crew you already booked.
Public on purpose, and locked down
A contractor is not a user and never logs in. The page carries nothing but their link and can do nothing but answer with it — it can't list other invites, read anyone else's, or touch a gig, a pack list, or a piece of gear. Re-open it days later and it shows what you already said, with one line to change your mind.
Never works Sundays — flagged, not enforced
Contacts can carry the days they usually work, and anyone whose pattern misses every needed day gets marked as outside their usual days. Marked, not hidden: freelancers say yes to weird days all the time. The same warning rings the day chips on the roster, so scheduling someone off-pattern is a visible decision instead of an accident.
Your wording, your signature, your copy on file
Every ask and confirm runs through templates you can edit, with placeholders for the role, the days, the call time, the venue and your company. A call time you haven't set yet shows as still to be confirmed instead of a blank field. Lines with no value drop out entirely instead of sending a label pointing at nothing. Your signature goes on the bottom, and a backup company inbox is copied on every send.
- A requirement holds
- A role, a count from 1 to 20, and optional phases. Roles come from a standard AV list — A1, A2, V1, V2, L1, L2, TD, G1, Camera Op, Projectionist, Streaming Eng, Show Caller, Stage Manager, Producer, Production Mgr, Production Tech, Utility, Crew Chief, Rigger, Stagehand, Breakout Tech, Truck Driver, Runner — plus anything your shop types in.
- Phases
- Load-in is the first day, strike the last, show everything between — resolved off the gig's real load and return dates. Leave them all off for the whole event. A requirement never carries a time.
- Reply states
- NOT ASKED → ASKED → AVAILABLE → NOT FREE. ASKED is only ever set by actually sending. Tap the badge to cycle it by hand for someone you reached by phone or text — the + BOOK button appears the moment they're marked free.
- Season send
- Batched automatically so a genuinely big season isn't rejected wholesale; every batch reports its own result, and a later failure never discards the asks that already went. An org restore point is captured before the batch, on top of the per-person retry.
- Refuses
- Sending without a working reply link. Re-soliciting anyone who already declined. Deselecting a person's last working day reads identically to declaring they work every day, so it would silently reschedule them for the whole gig on the tap that looks like removing them.
- Call sheet
- One section per day, up to a 60-day run: name, role, phone, ★ for the crew lead, a crew-day total in the header, and "⚠ Nobody scheduled" printed on any day that's empty.
The gaps show up on their own — you don't go looking for them.
Fill next month's holes this afternoon.
Write one crew standard, open a gig of that kind, and watch it tell you what it's short. Then ask everybody at once.
Get Started → All features →