Inspiration

A self-booking performer or small touring team needs more than a list of popular cities. A culturally promising market does not establish that a room fits the show, a supporting performer is available, or a brand offers useful support. Those decisions usually leave the recommendation list and become disconnected research notes.

TourPulse connects discovery to the next decision: a tour-research shortlist with the evidence, operating constraints and next checks attached. It is not an automated booking system or a demand forecast.

What it does

Start with Music, Stand-up or Live podcast. Choose a verified headliner and up to four cultural anchors, then set dates, target seats, departure city, two to six stops, a daily driving cap and a scheduling preference.

Qloo discovers markets, neighborhoods, venues, mode-specific supporting performers or programs, and brands. The workspace combines a route overview, a daily-drive chart, an itinerary and a dossier for each market. Maps have equivalent stop lists; the printable Day Sheet uses the same metrics and charts as the screen.

Record a public source for a venue check and explain why a candidate should be shortlisted, held or excluded. Excluding the current venue clears it from the working route. Research survives recalculation and remains inspectable when candidates disappear.

Ask the agent to change the plan. Preview does not mutate it. The before/after schedule shows what changes; explicit Apply commits a validated revision, and Undo restores the previous owned result.

For sponsorship research, save an on-site activation, in-kind touring essentials or tour-support purpose. Record what a public source says a brand offers and whether it fits that purpose. A “Not suitable” judgment blocks drafting for that brand and purpose. An unreviewed brand gets a generic, clearly qualified request—not an invented claim of sponsor interest.

Export a tentative Day Sheet, a recipient-facing proposal and a separate evidence appendix. The proposal is a draft. No email, booking request or commitment is sent.

Why Qloo is essential

Qloo is the discovery and identity layer, not a decorative call after an LLM answer. A headliner and cultural anchors connect to destination ranks, neighborhood evidence, nearby rooms, supporting acts and brand candidates. The interface retains the headliner-only rank beside the rank with the complete anchor bundle, including unchanged and unavailable comparisons.

In one recorded paired brand query with identical non-seed filters, adding Past Lives and A24 moved Warby Parker from rank 20 to rank 1 for the same headliner. That is one observed change in discovery order—not individual causal attribution, a compatibility probability or a business outcome.

Operational evidence stays separate. For example, Paradise Rock Club's published theater configuration lists 250 seats, while House of Blues Boston's Music Hall theater configuration lists 850. A 500-seat target therefore needs configuration-specific research, regardless of taste rank. These published figures do not confirm current dates, prices or availability; the source links and example are in the README.

How we built it

Next.js, React, TypeScript and Zod provide the validated application boundary. Radix handles dialogs and tabs; MapLibre and OpenFreeMap provide geography. The screen and paper design follows the Tremor Planner dashboard reference without copying its code or assets.

Hive's DeepSeek model uses constrained tools through the Vercel AI SDK. It can search and propose permitted actions, not execute arbitrary code or silently apply changes. Proposal generation produces four bounded content blocks; the application composes factual introductions and email structure from fact references. Reference checks and a separate model review gate the full document before saving. Both calls can share model errors, so this is not a guarantee of correctness.

Private Redis coordinates caching, request deduplication, provider dispatch and owner-bound revisioned runs. Source timestamps survive cache hits. Expired or cancelled executions are fenced, and stale revisions cannot overwrite current state. Server credentials never reach visitors. BotID and bounded concurrency protect provider work; per-request CSP nonces restrict document scripts.

Challenges and what we learned

A real sample exposed a deceased support candidate. Qloo detail records alone did not reliably carry that information. Every support kind and the headliner now resolve Qloo detail; when Qloo provides a Wikidata ID, a bounded lookup checks that exact ID's P570 statements. There is no name matching or model-inferred biography. Missing links remain explicitly unverified, and missing death data never proves current activity or availability. Biography checks remain separate from Qloo taste and name citations.

The other lesson was to keep user judgments, model suggestions and provider facts distinct all the way to export. A better discovery rank cannot replace a venue check, and a persuasive paragraph cannot turn a hypothesis into a sponsorship agreement.

What we demonstrated—and what we have not

The public app runs without a visitor account or API key. Real cached examples loaded in all three modes. Real Hive preview, Apply and Undo were exercised; reducing the daily-drive cap from four to three hours added the predicted travel day. A new sponsor draft and all three print documents were generated through the public app, and all eleven PDF pages were inspected.

The release passed TypeScript, the production build, 116 deterministic checks and six separately enabled real Redis checks. These are bounded engineering observations, not a population reliability estimate.

There are zero external-user observations so far. No time savings, booking results, ticket-sales gains or sponsorship conversions are claimed. Driving uses an adjusted straight-line estimate, not road routing. Venue capacity, fees, dates, permissions and willingness need direct confirmation. Anonymous work expires after 48 hours. Provider allocations are finite; admitted-browser resource exhaustion remains a known operating risk despite caching and concurrency controls.

Try it

Open TourPulse, load a preset, inspect a market's sources, and ask: “Limit the daily drive to 3 hours.” Compare the preview, Apply it, then Undo. Save a sponsor purpose before drafting, and compare the recipient proposal with its evidence appendix.

Source and local setup — MIT

Watch the 4:03 first-visit user journey on YouTube (unlisted, English captions, 1080p) or download the original MP4. The video is one continuous anonymous session with no preset: search a headliner and an anchor, set the tour, plan it, record a public venue source and a judgment, preview and apply a change, draft a sponsor proposal, open the evidence appendix and reconnect to the saved run. It is an edited recording of the real public app with real Qloo, Wikidata and Hive responses; repeated Qloo requests came from the private cache, the step tracker and captions were added in editing, and nothing was sped up. The live app above is the primary demonstration.

Built With

Share this project:

Updates

Submission history