Develop Web UI for mock interviews

Job ID: 39362953

Budget: $600 – $1,000 USD

Used OpenAI to generate the overview below.



Self Assessment Interview Module (SAI)



OVERVIEW



PURPOSE: For the user to self initiate an AI generated interview that uses questions tailored to the job type/industry they just applied in. Questions are AI generated.

User receives email from (EXTERNAL SOURCE) with link to launch SAI Module, with parameters of job applied for, industry, position, etc.



Structured AI Interview (SAI)

Job-seekers (“applicants”) participate in an interview with an AI interviewer. Questions generated by AI are dynamic to the applicant's job/industry/company they just applied with. Upon completion of the interview, the applicant will participate in a three (3) phase survey of behavioral and delivery questions at the end of each session. The video interview is recorded, transcribed, and analyzed—counting filler words and generating AI feedback on clarity, confidence, and overall delivery.The user will learn where they make mistakes with 3 different playbacks of the recorded ai interview, each playback looks at a different segment. Those segments are:

Audio playback only. User listens w/o video to identify mistakes made. Survey of 10 questions at the end of the session occurs for the user to complete. yes/no This survey saved to the user profile and the db.

Video only playback. The user watches the interview for visual distractions they are creating. Survey of 10 questions at the end of the session occurs for the user to complete. yes/no This survey saved to the user profile and the db.

Text transcript only of the session is placed on the screen for the user to read. No video, no audio. Survey of 10 questions at the end of the session occurs for the user to complete. yes/no This survey saved to the user profile and the db.

User can retake the AI Interview as many times as they like, the full session video interview is saved for review by HR manager later (link shared). Only the most recent video session is saved. The previous video interview session(s) is deleted from storage, however the history of scoring via survey and AI remains for user to reference only.

Web based UI Dynamic to correctly display on all device types and screen sizes

Questions are dynamic to the specific interview Survey questions are the same for all interviews. Industry/job info for AI to create interview questions passed from Email invite to participate in the SAI module. User is invited to immediately launch an AI Generated interview using Daily.co branded to my company, the EOB Unit

AI Component

For the SAI interviewer we’re leveraging OpenAI’s Chat Completion API (e.g. gpt-3.5-turbo or GPT-4) to analyze the transcript of responses and generate scores and narrative feedback.

How it works end-to-end:

Record & Transcribe

We record audio via Daily.co → store in S3 → kick off AWS Transcribe.

When the transcript is ready, we pull it into our pipeline at GET /api/sai/transcript/{sessionId}.

Filler-Word Counting

AI runs a simple word-count pass over the text to tally instances of “um”, “uh”, “like”, etc.

AI Scoring via OpenAI

We send a prompt + the transcript to OpenAI’s Chat Completion endpoint (using the official openai Node.js client).

The prompt asks the model to rate applicants' clarity, confidence, and overall delivery on a 1–10 scale, and to produce a short “feedback_text” narrative.

Filler words counted and included in the scoring report.

JSON Feedback

The API returns a structured JSON: {

"status":"completed",

"clarity_score":8.2,

"confidence_score":7.5,

"overall_rating":7.8,

"feedback_text":"You had good pacing and pausing, but try to vary your tone more to keep it engaging."

}



Key points

Model: You can configure either gpt-3.5-turbo for cost-efficiency or upgrade to GPT-4 for deeper analysis—set via your .env as OPENAI_MODEL.

Prompt Engineering: We use a tailored system + user prompt template to ensure consistent scoring and focused feedback.

This lets us turn raw interview audio into actionable, AI-driven coaching insights.



Minimum Security Features

JWT-Secured Endpoints – All admin APIs and /docs behind Authorization: Bearer

Invite-Token-Only Flows – Applicant SAI and feedback access via unguessable invite tokens

Invite-Token Auth – inviteAuth middleware validates applicant flows via unique invite tokens



SAI (Structured AI Interview)

Dynamic Questions Table – Phase identifier, question text, type (yes/no or free text) stored in sai_questions

Phases A, B, C – Three sequential surveys; answers submitted to /api/sai/answers

Transcription & Analysis

Start transcription: POST /api/sai/transcribe/{sessionId}

Retrieve transcript & filler counts: GET /api/sai/transcript/{sessionId}

AI Sources used and purposes:

Beyond OpenAI’s Chat Completion API for scoring and narrative feedback, the only other machine-learning/AI service we’re using today is:

AWS Transcribe

We record the candidate’s audio via Daily.co → store it in S3 → kick off an AWS Transcribe job.

Transcribe does the heavy lifting of speech-to-text, producing the raw transcript that we pass on to our filler-word counter and OpenAI for scoring.

Everything else—like filler-word counting—is implemented in-house (simple text parsing), and a chatbot (Botpress) runs rule-based flows (no LLM).

So in summary:

Speech-to-Text: AWS Transcribe

AI Coaching & Scoring: OpenAI Chat Completion (GPT-3.5-turbo / GPT-4)

No other third-party AI/ML services are in play at the moment



Need a User Profile page to show itemized session history, clickable to show results. Back button to HOME

User Profile page (default or Home) allows for user to initiate an interview with a button (Same params used from initial email invite which included company name, industry, job title or position, etc)



User clicks a box to “Agree to make video shareable” to recruiters or HR managers in HOME page



Need to be able to create graphs and show the user improvement percentages (later development)

Database needs to be stable and scalable.
Related categories: JavaScript Node.js PostgreSQL AWS Textract OpenAI