← All work
Arthur Vibe
An AI that runs interviews with a team, then writes a report you can ask questions of.
A creator sets up a “vibe”: its purpose, the bot’s name, voice and prompts, reference questions, and how strictly the bot follows them. Teammates get an invite and talk to the bot in a branded 3D room, anonymously if they want.
When the interviews are done, the creator generates reports and asks an assistant about one interview or all of them.
Decisions
01
Meetings on their own runtime
- Chose
- Run the live interview in a Go Lambda with its state in Redis.
- Instead of
- Running dialogue inside the API servers.
- Why
- Sessions pause and resume by reloading the conversation from Redis, and long calls never hold up the API.
02
S3 as the hand-off
- Chose
- Write transcripts to S3 and let that trigger chunking and embedding.
- Instead of
- Processing inline at the end of the call.
- Why
- Each stage can fail and retry on its own, and translation to English happens once, before indexing.
03
Reports as a state machine
- Chose
- Generate reports with Step Functions, merging transcripts five at a time.
- Instead of
- One long job.
- Why
- Big runs stay inside model limits, and every stage can be observed and retried.
04
One adapter for every model
- Chose
- One provider adapter shared by the API and every Lambda.
- Instead of
- Vendor code in each handler.
- Why
- OpenAI, Gemini or Anthropic is picked per call, and switching never touches the product code.
05
Retrieval in Postgres
- Chose
- Store interview and report embeddings in Postgres with pgvector.
- Instead of
- A separate vector database.
- Why
- One store for data and search keeps sharing rules (private, public, targeted) in one place.
What shipped
- Bot-led interviews to searchable reports, without one runtime owning realtime, batch AI work and file IO.
- Anonymous participation kept consistent from Redis to S3 to the vector index.
Built with
React, three.js, Go, Fiber, AWS Lambda, Step Functions, S3, Redis, Postgres, pgvector, OpenAI, Gemini, Anthropic
Some details are kept general on purpose.





