Case Study

An AI assistant that runs on the tour paperwork

We built Claude-powered AI into the EMH Productions operations dashboard: plain-English questions about shows, plus travel PDFs and invoices read automatically.

Client
EMH Productions
Year
2026
Service
AI integration, Document processing
EMH Productions concert operations dashboard with an AI assistant

Overview

EMH Productions runs concerts and tours. Behind every show is a stack of paperwork: artist contracts, payment schedules, e-tickets, travel-agency invoices, hotel confirmations and passport scans. All of it lived in PDFs and email, and the team typed the important parts into their operations dashboard by hand.

We had already built that dashboard for them. This project made it do the reading. We used Anthropic's Claude models through the API and kept a person in charge of every record that gets saved.

What the AI does

Answers questions in plain English

Staff type questions the way they would ask a colleague:

  • "How many shows do we have in December?"
  • "Which contracts are still waiting to be signed?"
  • "What's the total of overdue payments?"
  • "Which artists have the most shows this year?"

Claude never writes database code itself. It picks from five query tools we built (shows, contracts, payments, artists and companies), fills in the filters, and our code runs a safe, read-only query. Claude then writes the answer in plain language. See our AI chatbot and AI agent work.

  1. Step 01

    Question

    A staff member asks in plain English, like "Which payments are overdue?"

  2. Step 02

    Claude picks a tool

    Claude chooses one of five query tools and fills in the filters.

  3. Step 03

    Safe query

    Our code runs a read-only database query. No raw SQL from the AI.

  4. Step 04

    Plain answer

    Claude turns the results into a short answer with the numbers.

Reads travel documents into the tour

Each tour has a Google Drive folder of e-tickets and confirmations from the travel agency. The dashboard reads every PDF in the folder. Claude reads the PDF directly, layout and all, and pulls out the agency reference, the airline booking code (PNR) and each passenger's ticket number. The dashboard then fills those in on the flights the tour manager already entered, and files a copy of each document in that passenger's own Drive folder.

Matching names is the risky part. A ticket might say "Smith/John Mr", while the dashboard has "John Robert SMITH". So the system only fills empty fields, never replaces a value that disagrees, and lists every mismatch in a report for a person to resolve. A run can be incomplete, but it can't be quietly wrong.

  1. Step 01

    Drive folder

    The travel agency's e-tickets and confirmations land in the tour's folder.

  2. Step 02

    Claude reads PDFs

    Booking references, airline codes and ticket numbers are pulled out.

  3. Step 03

    Careful matching

    Passengers and flights are matched. Only empty fields are filled.

  4. Step 04

    Report for review

    Every mismatch is listed for the team. Nothing is overwritten.

Itinerary screenshots work too: the tour manager can upload one and Claude turns it into travel legs to review.

Turns invoices into line items

Travel-agency invoices, credit notes and airline receipts are read into their printed lines. This is plain transcription, so it runs on Claude Haiku, the smaller and cheaper model.

Writes show descriptions

For each show, Claude drafts a description of about 300 words from the artist, venue, city and date, ready for the media page.

Finds the face on passport scans

When the team needs passport photos for visas and credentials, the crop tool opens already centered on the holder's face. Someone confirms the crop before it is saved.

Problems we hit, and how we solved them

Getting AI to read a document is the easy part. Making it safe to trust in daily operations took most of the work.

  1. 01Names never match exactly

    Problem

    A ticket prints "Smith/John Mr" while the crew record says "John Robert SMITH". A strict comparison finds nothing, and a loose one can attach a ticket to the wrong person.

    Our fix

    Match on cleaned-up surname plus first name, only within that tour's crew. If two people could match, don't guess: list it in the report for a person.

  2. 02AI can misread a number

    Problem

    An invoice misread by one digit is worse than no invoice, because the totals look real.

    Our fix

    Check that the lines add up to the printed total and flag any invoice that doesn't. That check is what lets the cheaper Claude Haiku do this job.

  3. 03A model upgrade cut answers short

    Problem

    A newer Claude Sonnet model "thinks" before answering by default. On long documents that used up the space for the answer, and the data came back cut off.

    Our fix

    Turn thinking off for pure data extraction, and set each model option on purpose per job so upgrades don't quietly change results.

  4. 04PDFs turned into images lost the layout

    Problem

    E-tickets are tables. Converting them to images loses which number belongs to which column.

    Our fix

    Send the original PDF. Claude reads it natively, layout included: faster, cheaper and more accurate.

  5. 05iPhone photos nothing could read

    Problem

    Some passports were uploaded as iPhone HEIC photos, a format neither Claude nor most browsers can read.

    Our fix

    Skip those files and ask for a manual upload, so one odd file never blocks the rest.

How we built it

  • A person checks the output. Parsed documents and photo crops are suggestions; a staff member confirms them.
  • The right model for each job. Reasoning tasks use Claude Sonnet or Opus; plain transcription uses Claude Haiku to keep costs down.
  • No new infrastructure. Everything runs inside the existing Rails app and PostgreSQL database, with no vector database to run.
  • Safe by design. The assistant can only call our own query tools, so it can't change or leak data outside them.

This is the same approach we use in our AI document processing and custom AI integration services.

What we did

  • Claude API integration
  • Natural-language data queries
  • Document processing
  • Content generation
  • Image analysis
Get In Touch

Tell Us About Your Project

Ready to start? Reach out and let's build something extraordinary together.

  • Free consultation
  • Fixed quote before work starts
  • One Irvine-based team, start to finish