GPortal Spec · v2 direction proposal · 2026-05-08

Curated before open

The v1 spec describes an open directory + planner that works once the collective has scale — many VJs, many spaces, many requests in flight. That's still the destination. Today we don't have that scale, and the three founders who've weighed in disagree about whether we should pretend we do.

This v2 keeps the v1 architecture — same data model, same surfaces — and re-frames it as a role-based portal with curated inbound demand for the small-collective phase. Different stakeholders see different things; requests flow inbound and get matched, they don't browse a public marketplace; house VJs are protected against bidding wars; non-Gooism VJs exist as a referral pool, not the main directory. The open marketplace from v1 becomes Phase 2, unlocked once the collective is big enough that opening it doesn't immediately cannibalize members' existing relationships.

v0.1 / Proposal for collective review / Reuses v1 architecture / Andrew input pending
01 — Problems we're solving

What's broken or missing today

These are the gaps the portal exists to close — not the v1 feature list, the underlying user pain. Every model proposed below is judged on whether it addresses these.

P1 — Lack of signal planning + event space knowledge

VJs walk into venues without enough information about the rig, the signal flow, the projector count, the stages, the available inputs/outputs, the house quirks. Each show is a forensic exercise about "what does this room actually have" instead of a creative one about "what should the show be." Solved by: structured space profiles, signal plan templates per venue, capability data carried from venue onboarding into every event held there.

P2 — Lack of artist info + media to make content

VJs need the artist's track list, key tempos, lyrics, visual references, mood direction, and stems where available. Today this is a Slack thread or a Dropbox link or a half-remembered conversation. Solved by: artist profiles with structured media + direction fields, attached to event records, auto-shared with the assigned VJ.

P3 — Lack of clear needs & responsibilities across event planning

Who owns the projector? Who's getting the backdrop? Who's coordinating with FOH? Who pays the VJ, the venue, the artist? Today this is improvised per event. Solved by: explicit role assignments per event, a programmatic checklist that builds from venue + artist + promoter inputs, a single source of truth all parties can see.

P4 — Lack of validation that a VJ can deliver

Booking a VJ today is reputation-by-rumor. Has this person done a 4-projector room? Have they worked with this artist's tempo? Have they handled a 500-cap room before? Today this is "ask around." Solved by: portfolio of past Gooism events with venue + artist + scale metadata, optional rating per event, opt-in references.

Note — v1 already addresses these

The v1 spec covers all four problems via the open directories, Signal Planner, and Event Planner surfaces. This v2 doesn't argue with the data model. It argues about who can read which parts of it, who initiates events, and how matching happens — the operating model around the same architecture.

02 — Three competing models

The current state of the debate

Three founders have weighed in with different operating philosophies. Andrew's input is pending. Each model below has merit; the synthesis in § 03 tries to take the best of all three rather than picking a winner.

Jack · v1 default

Open platform

Anyone can sign up — venues, artists, promoters, VJs. Each posts what they need (or who they are), the system surfaces matches, parties self-organize. Hands-off, low-touch, scalable.

+ Pros
  • Scales without our manual labor
  • Discoverability for new VJs
  • Network effects compound
  • Already specced in v1
− Cons
  • Cold-start: no liquidity
  • Bidding wars hurt house VJs
  • No quality floor
  • Venues unlikely to use it as their primary booking surface
Kevin · concierge

Middleman / curator

Demand comes to Gooism with a need. We take the brief, evaluate fit, hand-pick the right VJ from the collective, manage the relationship. Curated, high-touch, quality-controlled.

+ Pros
  • Quality floor enforceable
  • Works at small collective scale
  • Trust-building with venues
  • Protects internal dynamics
− Cons
  • Doesn't scale without dedicated staff
  • Bottleneck on whoever's curating
  • Venues may want to deal directly with the VJ
  • Less transparency for VJs about what's coming through
Fetz · artist-led

Artist + VJ initiated

Artist or promoter brings the project — venue, asset needs, narrative arc. The VJ takes ownership: builds the signal plan, coordinates with venue + artist + promoter, runs the show. Venue isn't the primary client; the show is.

+ Pros
  • Matches how shows actually get booked today
  • VJ owns the creative direction
  • House VJ protected from poaching
  • Venues opt-in light, not asked to change behavior
− Cons
  • Slower discovery for new VJs
  • Coordination overhead on the VJ
  • Less venue-side data flowing in
  • Fewer self-service venue sign-ups
Andrew · pending

Input not yet received

Section reserved for Andrew's perspective on operating model. Will be folded into § 02 and the synthesis once captured. Placeholder — do not treat synthesis as final until this lands.

Where the three converge

  • All three want a quality floor — just enforced differently (Jack: ratings, Kevin: curation, Fetz: relationship)
  • All three want VJ profiles + portfolio — the v1 directory model
  • All three want signal plans — the v1 Signal Planner stays
  • None of the three want the portal to replace existing relationships — only to surface them, structure them, and create new ones

Where they diverge

  • Who initiates an event — venue (Jack/Kevin), artist (Fetz), promoter (all), or system (Jack via matching)
  • Whether venues see VJs as a directory — yes (Jack), no (Kevin, Fetz)
  • How VJs get matched — algorithmic + self-pickup (Jack), hand-curation (Kevin), VJ self-claims artist relationships (Fetz)
  • House VJ protection — not specified (Jack), implicit (Kevin), explicit and load-bearing (Fetz)
03 — Proposed synthesis

What the v2 actually is

A role-based portal where each stakeholder sees a different surface, demand flows inbound and gets routed (not browsed), and the open VJ marketplace from v1 stays specced as Phase 2 once the collective hits scale.

Five core moves

Move 1 — Different surfaces per role

Venues, artists, promoters, and VJs each see a tailored portal — not the same homepage with different permissions. Venues do NOT see the full VJ directory by default. Artists do NOT see other artists' direction docs. Promoters see their events, not other promoters'. VJs (Gooism collective) get the most expansive view: requests, profiles, signal plans, AI tools.

Move 2 — Inbound demand, routed not browsed

Venues, artists, and promoters submit a request via a structured intake form (see § 05 for the Fetz form reference). The request lands in a routing queue that goes either to a designated house VJ, to a hand-curated match (Kevin's model), or to the wider Gooism pool with house-VJ-first protections (see § 07). External venues never browse "all VJs" — they brief, we match.

Move 3 — House VJ first refusal

Each venue can name a house VJ at onboarding. Inbound requests for that venue route to them first. The protection mechanic is one of the four options in § 07 — this is the load-bearing decision the collective needs to land. This is what addresses Fetz's Public Works concern explicitly.

Move 4 — Gooism-recommended vs referral pool

Two tiers in the underlying VJ database:

  • Gooism-recommended VJs (the collective) — full portal access, get matched first, get the AI tools, get the rating + history surface
  • Referral pool — non-Gooism VJs in our database, surfaced when no Gooism member meets the criteria. Light profile, no portal access, we take a coordination cut. Manual at first, automated later.

Move 5 — Two paths: set package, or custom buildout

The requester's first decision isn't "fill out a 19-question form." It's a binary fork:

  • Path A — Looking for a set package. Browse a catalog of published packages from collective members (VJ performance tiers, CRT installations, equipment rental, video processing, music video, etc.). Pick one. Fill in the event-specific deltas (date, venue, concept, budget confirm). Done in 6–8 fields. Default for the common case.
  • Path B — Custom buildout / service. Submit an open brief when no package fits, when scope spans multiple services, when the requester genuinely doesn't know what they need, or when the project is bespoke. The Fetz-style 19-field intake lives here. Used by exception, not by default.

This is the architectural shift that makes the portal feel like a marketplace rather than a hiring funnel — and matches how anyone actually shops for a service.

Move 6 — Phase 2 unlocks the open spec

Once the collective has enough scale that opening the directory doesn't cannibalize existing relationships (proposed threshold: ~30 active Gooism VJs across 10+ regular venues), the v1 open architecture turns on. The data already exists; the permission gates simply widen. No data migration, no rewrite — an operational toggle.

Why this synthesis

It addresses Fetz's bidding-war concern directly (house VJ protection), gives Kevin the curation lever he wants (matching is not blind — it's an editor's call), preserves Jack's open architecture as the destination (Phase 2 unlocks v1 spec verbatim), keeps the existing data model untouched, and replaces the long custom-commission form with a package catalog as the primary discovery surface. The cost is one extra dimension on every read query (role-based filter), a routing layer between request and assignment, and a package authoring surface for VJs. All three are well-bounded.

04 — Stakeholder surfaces

What each role actually sees

Five distinct surfaces, all powered by the same v1 schema. Permissions are gated at the application layer; the underlying tables are unchanged.

Venue

Event space portal

Onboarding

  • Space profile — name, address, capacity, stages, rooms
  • Signal plan capabilities — projector count, screens, inputs/outputs, FOH layout, control desk
  • House VJ designation (optional)
  • Schedule import (manual upload, calendar feed, or pulled from our scraped 19hz/EDM Train DB)
  • Booking-policy preferences — house VJ first, open to collective, fully managed

Day-to-day surface

  • Upcoming events at this venue with VJ assignment + signal plan status
  • Past events archive — what ran, who VJ'd, photo/recording link
  • Submit a VJ request for an upcoming event
  • Approve / decline VJ proposals on submitted requests
  • Communicate with the assigned VJ + other event stakeholders in-thread
  • Does NOT see: the full Gooism VJ directory, other venues' events, other VJs' profiles unrelated to their bookings
Artist / band / performer

Artist portal

Onboarding

  • Artist profile — name, links, genre, performance style
  • Media library — track list, key tempos, lyrics where relevant, stems where available
  • Visual direction — mood references, color palette, stylistic do/don't
  • Schedule import (their own calendar feed or upload)

Day-to-day surface

  • Upcoming events with VJ assignment + signal plan preview
  • Past events archive
  • Submit a VJ request directly (Fetz's model: artist-initiated)
  • Review & approve proposed signal plans
  • Communicate with the assigned VJ + venue stakeholders
  • Does NOT see: other artists' direction docs, the full VJ directory, internal VJ communications
Promoter

Promoter portal

Onboarding

  • Promoter profile — org, scenes, typical event types
  • Recurring relationships — venues they typically book at, artists they regularly work with

Day-to-day surface

  • Submit a VJ request on behalf of an event they're producing
  • Manage events they've booked — status, signal plan progress, payments
  • Communicate with all stakeholders in thread
  • Does NOT see: other promoters' events, the full VJ directory unless explicitly opted in
VJ · Gooism collective

VJ portal — full access

Day-to-day surface

  • Inbox of inbound requests they've been matched to (auto or manual)
  • Approve / decline / propose on each request
  • Build the signal plan in-portal — populated with venue + artist + promoter context
  • Full upcoming-events feed across the collective — what's running, who's on what, what's open
  • Profile, portfolio, rating, past-event history
  • See artist profiles + space profiles for events they're assigned to
  • AI business development assistant (see § 11)
  • Post a gig on behalf of a venue / artist / promoter (house VJ delegation, see § 07)
  • Send a direct gig proposal to another Gooism VJ (referral, no bidding war)
VJ · Referral pool (non-Gooism)

Light directory entry

What they get

  • Directory profile — visible to Gooism VJs only, not to venues/artists/promoters by default
  • Surfaced when no Gooism member fits the request criteria
  • Optional invitation to join Gooism if pattern of referrals develops

What they don't get

  • Portal login
  • Direct request inbox
  • AI tools
  • Coordination managed by a Gooism member; we take a cut
Public / unauthenticated

Marketing surface

What they see

  • The Gooism mission + collective overview (gooism.org)
  • Public showcase of recorded sets, AnalogToAI material, story campaigns
  • Intake forms — venue / artist / promoter / VJ inquiry
  • NOT: the directory, profiles, events, or any internal data
05 — Intake & onboarding

Set package or custom buildout — two paths in

The requester's entry point on gooism.org is a single fork: "Looking for a set package?" — browse the catalog — or "Need a custom buildout / service?" — open the deep brief. The default visual prioritizes the catalog; the custom-brief path is one click away for the unusual cases. This section covers both paths plus the supply-side surfaces (package authoring, VJ profile, space onboarding).

Path A (default) — Browse the set-package catalog

Public-facing on gooism.org. Requester lands on the catalog, not a form.

  • Service taxonomy on top — the 9 categories from Fetz's form become the catalog's primary navigation: VJ performance, live visual performance, CRT installation, equipment rental, video processing, VHS digitization, studio rental, music video, custom commission
  • Filter by — service type, region, scale (venue capacity bracket), price range, availability window
  • Browse format — package cards from individual VJs and collective-curated bundles. Each card surfaces: VJ name, hero visual, what's included, base price (or range), what extras cost, sample reel, past events at similar scale
  • Pick a package → quick-request flow — clicking through to a package opens the slim request form below. The package fixes service type, scope, base price, and assigned VJ; only event-specific fields remain

Path A form — quick request from a chosen package

The fields the system can't infer from the chosen package + a venue lookup. Should be ~6–8 questions, not 19.

  • Identity + contact — name, email, phone, comms preference (email / phone / video)
  • Requester role — venue / artist / promoter / individual client
  • Event date + time
  • Venue — autocomplete against our DB (existing → capability profile auto-attaches; new → flagged for venue intake follow-up)
  • Concept / vision — short or long text, one box (the package already constrains scope; this is the creative brief)
  • Reference uploads — optional, file upload
  • Notes / questions — optional free text

That's the entire flow for the common case. Budget is set by the package; venue tech is auto-attached; service type is implicit. The Likert priority grid is reserved for Path B — if the requester is choosing a package, they've already signaled their priorities by which package they picked.

Path B (fallback) — Custom buildout / open commission

Surfaced from the catalog as "Don't see what you're looking for? Submit a custom brief." Most requesters never see this. It's for: unusual scope, multi-service combinations, asks that span multiple VJs, or projects where the requester genuinely doesn't know what they need.

This is where the Fetz-form structure lives in full — reconciled below, but explicitly framed as the deep-brief path, not the default.

Path B form — full Visual Commission Request (Fetz-aligned)

Mirrors Fetz's Visual Art Commission Request Form, generalized for the collective. Used when no package fits or the request is genuinely custom.

Section A — Requester (always shown)

  • Full name · required · short text
  • Email address · required · short text
  • Phone number · required · short text
  • I'm submitting as · required · venue / artist or band / promoter / individual client · (new vs Fetz form — gates Section E extensions)

Section B — Service catalog (always shown)

What kind of work is being requested. Single-select. Generalized from Fetz's form to cover the collective's full service surface; "VJ performance" stays the dominant case but the broader catalog matters because most of these services already exist within the collective and we want them surfaced.

  • VJ performance
  • Live visual performance (live hardware improvised visuals)
  • CRT installation
  • CRT / projector / equipment rental
  • Video processing (glitch / analog effects)
  • VHS digitization
  • Studio rental
  • Music video
  • Other — free-text specify

Section C — Concept & content

  • Core concept / subject matter / vision · required · long text — the headline creative brief
  • Content provenance · required · single-select:
    • Promoter / artist provides all content
    • Assigned VJ sources content
    • Assigned VJ creates new original content
    • Mix — specify in notes
  • Reference uploads · optional · file upload up to 1 GB — mood boards, sketches, prior work that captures the look they want
  • Critical aspects matrix · required · Likert grid (Least Important / Moderately Important / Most Important) across:
    • Color palette / mood
    • Style / aesthetic (retro, abstract, geometric, etc.)
    • Technical reliability / stability
    • Synchronization with audio
    • Gooism additions: accessibility (caption / DHH access), recording capture quality

Section D — Event logistics

  • Event date + time · required · date + time picker
  • Venue name · required · short text + autocomplete against our DB (existing → auto-attaches capability profile; new → flags for venue intake follow-up)
  • City / state · required · short text
  • Event length · required · short text
  • Venue capacity · required · short text
  • Public or private event · required · short text
  • Projection setup & surfaces at venue · optional · long text — projectors, LED walls, resolutions, etc. (auto-prefilled if venue exists in DB; submitter only fills the gaps)
  • Target completion / deadline · optional · date picker
  • Estimated budget range · required · short text

Section E — Role-specific extensions

Surfaced inline based on Section A role selection. Optional but encouraged — sharper inputs here let us match better.

If venue:
  • House VJ on / off (off → opens to collective per booking policy)
  • Multi-night / residency flag
  • Recurring event series (auto-fill subsequent dates)
If artist or band:
  • Track list / set length
  • Stems / tempo references (file upload)
  • Pre-existing VJ relationship to honor or skip
  • Tour-style (multi-date) or one-off
If promoter:
  • Multi-VJ event (lineup of operators across stages / sets)
  • Curatorial direction across the night
  • Cross-promotion expectations (social posts, recordings, recap)

Section F — Coordination preferences

  • Preferred communication method · required · email / phone call / video conference / Discord / Slack
  • Additional project notes or requests · optional · long text — the catch-all for anything the structured fields don't cover

Why the Likert priority grid is the sharpest move (in Path B)

Fetz's "which aspects matter most" matrix is the form's best feature. Free-text creative briefs are wide and ambiguous; this grid forces a 4-way priority signal that's directly usable in matching (e.g. "audio sync = most important" filters strongly toward VJs whose portfolio shows tight sync work). Carry it forward verbatim — but only on Path B. In Path A, the package choice already encodes priority.

Supply intake — Package authoring (VJ-side)

This is the new surface that makes Path A possible. Each Gooism VJ publishes packages in their portal — standardized offerings that show up in the catalog. Drives discovery without forcing requesters to guess what's possible.

Package fields

  • Title · short, descriptive (e.g. "Analog VJ set — small room")
  • Service type · one of the 9 catalog categories
  • What's included · rich text — deliverables, time on site, content sourcing scope
  • Scale · audience bracket (under 200 / 200–500 / 500–1500 / 1500+), set length range, room/stage count
  • Base price · flat or range; "starting at" semantics fine
  • Add-ons · line items with prices — extra hours, content origination vs sourcing, recording capture, travel beyond region
  • Required venue capabilities · list of what the venue must provide (projector count, screen surface, FOH access, etc.)
  • What the VJ provides · their own rig, any owned equipment they bring
  • Reel / portfolio link · sample of past work at this package's scale
  • Availability window · pulled from VJ's calendar; package off-catalog when no slots
  • Region(s) · where the VJ will perform this package

A single VJ typically publishes 2–5 packages spanning their range (small set / mid set / festival headline / installation, etc.). Collective curators can also create collective bundles — multi-VJ packages (e.g. "AnalogToAI Relay — 4 operators, 50 minutes") that route the request to coordination rather than a single VJ.

Supply intake — VJ profile

Two paths — Gooism collective onboarding (full) and referral pool entry (light). The profile carries identity + portfolio; packages carry offerings.

Gooism VJ profile fields

  • Identity, handles, location, regions willing to work
  • Style descriptors (analog, AI, projection, found media, generative, etc.)
  • Tech the VJ owns vs requires the venue to provide
  • Past Gooism events (auto-populated as they accumulate)
  • Past non-Gooism events (self-attested portfolio)
  • Availability calendar (manual or feed)
  • Booking floor / pricing reference (private, used in matching)
  • House-VJ relationships (which venues have named them)
  • Existing artist relationships to honor

Referral-pool VJ light entry

  • Identity, handles, location
  • Loose style descriptors
  • Notes from the Gooism member who referred them
  • Contact path (we coordinate, they don't log in)

Space onboarding (venue capabilities)

Distinct from event intake — this is the venue's static capability profile that gets attached to every request from that venue. One-time form, periodic refresh.

  • Address, capacity, room/stage count
  • For each room/stage: projector count + brand/model, screens, FOH layout, signal flow diagram (upload), inputs/outputs, control desk make/model
  • Lighting/grid availability
  • Audio reference (FOH brand, monitoring, recording out)
  • House VJ name + contact
  • Booking policy — closed (house VJ only), first-refusal (timer to be picked, see § 07), open to collective, fully open
  • Content restrictions / community guidelines
  • Recording / streaming permissions
06 — Matching & routing flow

From inbound request to assigned VJ

The path a request takes from "venue submitted a form" to "VJ confirmed and signal plan in progress." Every step has a default behavior plus an explicit human escape hatch — matching is editor-assisted, not blind.

01
Venue / artist / promoter Submits intake form. System validates, attaches venue capability profile if available, computes initial match candidates.
02
System Determines routing path. If the request came from Path A (package pick), the assigned VJ is already known — skip to step 04 with their inbox. If the package's VJ is unavailable on the requested date, drop into the standard routing flow below to find a substitute. If the request came from Path B (open brief), route based on venue's booking policy and the request's constraints: house VJ exclusive / first refusal / open-to-collective / fully managed by Gooism.
03a
House VJ path Request goes to the venue's house VJ first. They have a configurable window (default 48hr per § 07) to claim, decline, or refer. If house VJ claims → step 06. If declined or window expires → step 03b.
03b
Open-to-collective path Request surfaces in the matched Gooism VJs' inbox (top-N by fit score: location, style, availability, past artist relationships). They can claim, propose, or pass.
03c
Curated path Request goes to a Gooism curator (Kevin, or whoever's on the rota). Curator hand-picks the candidate VJ, sends them a direct invite. VJ accepts, declines, or refers.
04
VJ Reviews the request. Sees venue capability profile, artist media, promoter direction, scope of work. Submits a proposal with: scope, timeline, signal plan outline, ask. Or declines / refers to another collective member.
05
Submitter Reviews the proposal. Approves, requests revisions, or declines. (For curator-assisted bookings, the curator can pre-approve before passing to submitter.)
06
VJ Builds the full signal plan in-portal. Tech requirements builder (§ 10) auto-populates from venue + event + artist inputs. VJ refines.
07
All stakeholders Communicate via in-portal thread tied to the event record. Signal plan visible to all relevant parties. Status changes notify everyone.
08
Show happens Event runs. Post-event: VJ marks complete, attaches recording / photos, submits short retrospective. Optional rating from venue / artist / promoter (see § 09).
09
No Gooism match Fallback: if no collective member fits, system surfaces the referral pool to the curator. Curator hand-picks an external VJ, manages them off-portal, takes a coordination cut.

Why human-in-the-loop matters at this scale

Pure algorithmic matching needs liquidity to work. At small collective scale, every request deserves an editor pass — even on the open-to-collective path, the system surfaces top-N candidates rather than auto-assigning. Phase 2 may shift to auto-assign once volume justifies it; Phase 1 keeps the human in the loop on every booking.

07 — House VJ protection (4 options)

The load-bearing decision for the collective

Fetz's concern: an open platform makes it cheap for venues like Public Works to skip past their house VJ and find someone cheaper. This is the mechanism designed to prevent that. Four options below — the collective should pick one, optionally configurable per venue. None of these are decided.

Option A

First refusal with timer

House VJ at the venue automatically gets first claim on inbound requests. They have a configurable window (proposed default: 48 hours) to claim, decline, or refer. If the window expires without action, the request opens to the rest of the collective.

Balances protection with availability. Doesn't block other VJs forever. Default-friendly to most venues.
Option B

Hard claim — exclusive to house VJ

Requests at venues with a named house VJ go ONLY to that house VJ. The request never opens to the wider collective unless the house VJ explicitly declines or refers it onward. Strongest possible protection.

Maximum protection. Risks slow turnaround if house VJ is unresponsive or overwhelmed. Could frustrate venues trying to fill last-minute.
Option C

Configurable per venue at onboarding

Each venue picks their own model when they sign up — exclusive, first refusal with custom timer, open to collective, or fully managed by Gooism. House VJ designation orthogonal to policy choice.

Most flexible — the venue controls their own posture. More setup at onboarding; rule depends on which venue is hosting. Likely the right answer if we can hide the complexity.
Option D

Soft signal only — no enforcement

House VJ marked as a preferred match in the matching algorithm. They sort to the top of the candidate list, but no hard block prevents others from claiming. Relies on Gooism culture not on system enforcement.

Doesn't actually solve Fetz's bidding-war concern. Listed for completeness; treated as the "doing nothing" baseline.

Mechanics common across all options

  • House VJ designation is optional — a venue without one always opens to the collective
  • Multiple house VJs per venue allowed — e.g. weekly rotation; system rotates first-refusal among them
  • House VJ can post on the venue's behalf — if they can't take a gig but trust someone else, they create the gig themselves and either send a direct invitation or open to collective
  • House VJ can refer with a name — if they decline, they can attach a recommended Gooism member or referral-pool VJ to skip the broader queue

The Public Works failure mode

Fetz's concrete worry: Public Works currently uses him as house VJ. If they discover gooism.org and see a directory of cheaper alternatives, his ongoing relationship erodes. Option D doesn't solve this; A, B, and C all do, with different trade-offs. Whichever we pick should be communicated clearly to venues at onboarding so the protection is visible, not invisible.

Recommendation

Lean toward Option C with Option A as the default — new venues start in first-refusal mode with a 48hr timer, can change to exclusive or open at any time. This protects house VJs by default without locking the system into one posture forever. Open to collective input.

08 — Permissions matrix

Who can do what

A condensed view of who has access to which capabilities. Where a row says "partial," the access depends on a relationship (e.g. a venue can communicate with a VJ assigned to one of their events, but not with arbitrary VJs).

Capability Public Venue Artist Promoter VJ · Gooism VJ · Referral
Submit VJ requeston behalf
Browse VJ directory
Get matched to requestsvia curator
Build signal plan
View venue signal planown eventsown events
View artist media libraryown eventsown eventsassigned events
Communicate in event threadown eventsown eventsown eventsassigned events
Approve / decline proposals
Post gig on behalf of venueif relationshipif house VJ
Direct VJ-to-VJ invite
Refer to external VJ
View full upcoming-events feed
Use AI biz-dev assistant
Receive ratingsvia curator
09 — Validation & rating

How we know who can deliver

The Gooism rating model isn't a 5-star Yelp surface. It's signal-driven: confirmed completed events, the venues + artists they ran with, and optional commentary from the people who hired them.

Implicit signals (always on)

  • Count of completed Gooism events — a VJ who has run 12 shows has a portfolio; one with 0 is genuinely new to us
  • Venue scale ladder — have they handled small, mid, large rooms?
  • Rig complexity ladder — 1 projector, 4 projectors, multi-stage?
  • Artist tier ladder — local opener, headliner, touring act?
  • Repeat bookings — same venue or artist hiring them again is the strongest single signal

Explicit signals (opt-in)

  • Post-event short rating from venue / artist / promoter (1-5 + free text)
  • Public testimonial — only with explicit permission of both parties
  • Self-attested past work outside Gooism (portfolio links, reels)

What's deliberately not done

  • No public leaderboard — ranking VJs against each other publicly is the wrong incentive
  • No starvation model — new VJs aren't penalized for low completed-event counts when they're matched; their portfolio just shows it honestly
  • No public trash talk — negative ratings stay internal to the curator and the VJ involved, used for matching not shaming
10 — Tech requirements builder

The growing programmatic checklist

One of the v1 features that gets sharpest in v2: the per-event tech checklist that builds itself from the data we already have, then surfaces gaps for the VJ to fill in.

Inputs (already in the system)

  • Venue profile — rig, projectors, screens, signal flow, control desk
  • Event request — duration, scale, multi-stage flag, audience capacity
  • Artist direction — track list, tempo references, visual mood, content restrictions
  • Promoter direction — cross-promo expectations, recording / streaming requirements

Auto-generated checklist categories

  • Pre-show — venue tech contact, load-in, signal flow confirmation, backup paths, content review
  • Day-of — soundcheck, dry run, projector calibration, content cued, comms check
  • During — recording on, FOH cue lines, swap points, contingency triggers
  • Post-show — recording archive, asset return, post-event rating prompt, payment confirm

How it grows

Each completed event surfaces gaps that weren't captured in the original checklist (e.g. "venue has a dimming curve that ate the projector blacks"). Those become reusable checklist items the next time anyone runs that venue, that rig type, or that artist. Lessons compound.

11 — AI business development

Tools for the VJ side

VJs in the collective get an AI assistant focused on growing their business — not the matching layer, the personal-practice layer. Carries forward from the v1 spec but anchored in the v2 role boundary: this surface is VJ-only, never seen by venues / artists / promoters.

What it does

  • Drafts pitch emails to upcoming-event organizers based on the VJ's history + the event's profile
  • Analyzes the VJ's portfolio against the open-events feed to surface "you'd be a strong fit for this"
  • Suggests venues + artists + promoters to introduce themselves to (warm intros via the collective preferred)
  • Reviews their public profile and recommends portfolio updates
  • Helps build proposals on inbound matched requests — structure, scope, ask

What it doesn't do

  • Doesn't auto-send anything — always drafts, never publishes
  • Doesn't see other VJs' private data (rates, schedules, internal communications)
  • Doesn't make booking decisions — humans do that
12 — Reuse vs rewrite from v1

What carries, what changes

The v2 doesn't want a rewrite. The v1 architecture — data model, surfaces, planners, integrations — mostly stays. What changes is the operating model layered on top.

What carries from v1 unchanged

  • Database schema — venues, artists, promoters, VJs, events, signal plans, bookings
  • Signal Planner UI
  • Event Planner UI
  • Directory primitives (cards, badges, mono metadata, eyebrow labels)
  • 19hz / EDM Train / JamBase scrape integration
  • Auth + cross-subdomain cookie pattern
  • shadcn-style component primitives

What gets re-framed (no rewrite)

  • Directory pages — gated by role, not public; same component, different permission gate
  • Event creation — goes through intake form → routing queue, instead of direct create
  • Browsing as a venue / artist / promoter — replaced by inbox + own-events surfaces
  • VJ profiles — same data, gated visibility (Gooism collective only at first)

What's new in v2

  • Routing layer between intake and assignment (the matching engine)
  • House VJ designation + protection mechanic
  • Two-tier VJ database (Gooism vs referral)
  • Per-role intake forms with Fetz's reference shape
  • Auto-built tech requirements checklist driven by venue + event + artist + promoter inputs
  • Permission matrix as a first-class concept (vs ad-hoc gates)

Migration plan

  1. Add roles + permission gate on existing routes — default everything to Gooism-VJ-only, then selectively open per role
  2. Build the intake forms — venue / artist / promoter / VJ inquiry, public-facing on gooism.org
  3. Wire the routing layer — takes intake submissions and produces a candidate VJ list
  4. Add house VJ designation + selected protection mechanism (after § 07 collective decision)
  5. Migrate scraped events from generic "upcoming" feed into role-aware inbox model
  6. Toggle Phase 2 only when collective scale supports it — not a calendar deadline
13 — Phased rollout

Where this lives on the timeline

Phase 1 · Now · v2 spec

Curated, role-based, manual matching

Small collective (~4-15 VJs). Curator-assisted matching on every request. House VJ protection load-bearing. Venues / artists / promoters submit, don't browse. Referral pool emerging but mostly invisible.

  • Manual curator on every booking
  • House VJ first refusal as default policy
  • Public-facing intake forms only
  • Gooism VJs get full portal access
  • Closed referral pool, used by exception
Phase 2 · Later · v1 spec resurrected

Open marketplace turned on

Once collective scale supports it (proposed threshold: ~30 active Gooism VJs across 10+ regular venues). The v1 architecture's open directory + auto-matching gates widen. Same data, more surfaces unlocked.

  • Auto-matching with editor override
  • Venue / artist / promoter directories visible to authenticated users
  • Referral pool surfaces alongside collective
  • Self-service onboarding scales without curator bottleneck
  • Phase 1 protections (house VJ, closed proposals) remain available per venue policy

What triggers the Phase 1 → Phase 2 toggle

  • Collective size — ~30 active Gooism VJs (proposed)
  • Geographic spread — coverage in 5+ scenes / metros
  • Repeat business — venues that have run 3+ events through us
  • Curator load — we're saying yes to too many requests to hand-route them all
14 — Open questions for the collective

What we still need to land

Decisions blocking implementation

  1. House VJ protection model — pick one of the four options in § 07 (or pick the recommendation: C with A as default)
  2. Curator role — rotating among collective members, or a designated person? Compensated?
  3. Referral pool revenue split — what cut does Gooism take when we coordinate an external VJ? Flat fee, percentage, hybrid?
  4. Package taxonomy + pricing structure — the catalog (§ 05 Path A) only works if VJs publish packages. What's the minimum scaffolding? Mandatory price floors? Standard scale brackets? How do we surface collective bundles vs individual packages? Worth a working session with 2-3 founders before we build the authoring UI.
  5. Phase 2 trigger thresholds — the numbers above (30 VJs, 5 metros, 3-event venues) are placeholders — what feels right?

Decisions that can wait

  1. Pricing floor — minimum the collective will charge for a confirmed booking
  2. Public-facing ratings — testimonials yes, but at what stage do we show them publicly?
  3. Multi-VJ event handling — for nights with multiple operators across stages, how do we coordinate?
  4. Recording rights — default position on who owns the recording of a Gooism-coordinated show

Pending input

  • Andrew's perspective — flagged throughout; section in § 02 reserved
  • Kevin's curator workflow — if he's the lead curator, his existing workflow should drive the routing UX
  • Fetz form review pass — § 05 has been reconciled to Fetz's existing form; he should sanity-check that the Gooism generalization (assigned VJ sources / creates content vs. Fetz-specific) doesn't lose anything that's currently working

How to give input on this doc

This is a proposal. Reply to Jack directly, or surface in the next collective sync. Items marked "open question" or "pending" don't block reading the rest — they're explicit gaps for the collective to fill. Treat the synthesis in § 03 as the strongest current take, not the decided answer.