Inspiration

The inspiration for this project came right after seeing the tavus cvi demo. My mind started running as I was thinking about ways to leverage this powerful api. As negotiating is something I do everyday I learned that there is no way to master the skill of negotiation by just reading books or listen to podcasts, you will have to dive into these conversations to learn the necessary skills. As most of these conversations doesn't come without stakes, I wanted to create a solution that let's you practice these skills in a realistic setting, while keeping the guardrails.

What it does

Stryde let's you practice your negotiation skills in three different scenarios (Salary Raise Negotiation, Client Price Negotiation, Software Purchase Discussion). When selecting a scenario you will be given a negotiation briefing which lets you immerse into the scenario. Each scenario has it's full background story, with three clear objectives that you, as the user, are trying to achieve. Take your time on the negotiation briefing and add your own notes, or write down your strategy for the call. As soon as you have finished your briefing, you can join the call with the tavus persona, that was specifically crafted for each scenario. To limit the tavus resources used, each call is limited to 4 minutes. The timer, your objectives and also your notes are always accessible. As soon as you have finished your mock negotiation the tavus transcript and, if opted in, also the perception analysis, will be analyzed. You will then be given a score out of 100%, which is based on the objective achievement and your general negotiation style. The analysis also gives you insights and valuable feedback on the negotiation tactics, that you used during the call. You can later track your progress in your personal dashboard.

How we built it

Everything was built by Bolt and when I say everything, I mean everything. I misunderstood the requirements for far too long (shame on me), which is why after an initial figma import, every major feature and every minor ui adjustment was entirely done by bolt.new, no manual code adjustments apart from setting the api keys involved.

The conversational video interface is implemented using tavus, the backend is implemented through supabase leveraging the power of realtime database updates.

As soon as the user joins a call, a new row in the supabase database is created. The tavus session is created in parallel, which is then embedded via an iframe. A supabase edge function consumes the tavus callbacks to start the timer or to add the transcript to the database record once it's ready. The analysis is done through another supabase edge function, which uses the open ai api to deliver great insights.

Challenges we ran into

I had a hard time improving the ai analysis, so that the results bring value to the user. I also spend quite some time to get the tavus personas just right. (I may have hidden one or another twist in the tavus personas system prompt)

Accomplishments that we're proud of

I am very proud to submit a project after all, I shifted my project completely at a very late stage, so I see it as a great success to be able to submit a project.

What we learned

I learned that Bolt is ready for building large scale applications. I also improved my prompting game and how powerful the discussion mode can be.

What's next for Stryde

While Stryde currently gives single users the opportunity to improve their negotiation skills, I see a big opportunity in using this technology for enterprises.

Stryde can provide a great addition to existing Learning Management Systems that are currently mostly focused on text or video base content, which may be discouraging for the employees. Stryde however focuses on letting the employee take a more active part in the learning process.

Therefore I am currently working on setting up an advanced team analytics and reporting dashboard, while also exploring opportunities to integrate with HRIS & LMS (Workday, SuccessFactors, etc.).

As german law prevents me from taking payments without a registered business, I wasn't able to implement payments within this timeframe, this will also be set up afterwards.

Built With

  • bolt
  • react
  • supabase
  • tailwind
  • tavus
  • vite
Share this project:

Updates