Feature Request
Add buttons for Interviewees to select Jim's (the interviewer) persona before the interview begins. For example, "Friendly & Guiding", "Strict & Challenging", and "Custom". Users could enter prompt to specify the interviewer's persona.
Motivation
Interviewers come in various styles in the real world. Some are supportive, offering step-by-step guidance and positive feedback, while others are strict, constantly challenging your assumptions and edge cases.
Currently, the AI interviewer (Jim) leans heavily toward a supportive and guiding persona. While this is great for learning, adding a customizable "Interviewer Persona" feature would allow users to practice under different stress levels and better adapt to the diverse interview dynamics they will face in actual technical interviews.
Implementation
Front-end
Add a dropdown menu named "Interviewer Persona" within the existing Optional interview context section. This dropdown will contain three options: "Friendly & Guiding", "Strict & Challenging", and "Custom". If the user clicks the "Custom" button, a textarea will show up and allow user to enter prompt to specify the interviewer's persona.
Back-end
-
Introduce a Rust enum in the backend module responsible for handling interview configurations to represent the three persona states. FriendlyAndGuiding and StrictAndChallenging can be standard variants, while Custom should be designed as a variant that holds a String payload (e.g., Custom(String)) to capture the user's custom text sent from the frontend.
FriendlyAndGuiding: "You are a supportive and guiding technical interviewer. Your goal is to evaluate the candidate while helping them succeed. If the candidate is stuck, provide gentle, step-by-step hints. Encourage them and maintain a positive, friendly tone throughout the interview."
StrictAndChallenging: "You are a strict and highly demanding technical interviewer. Your goal is to stress-test the candidate's knowledge. Do not provide direct hints. Frequently question their assumptions, ask them to prove why their code will not fail in edge cases, and demand optimal time and space complexity. Maintain a professional, cold tone."
Custom(String): Directly extracts and returns the user-defined string contained within the Custom enum variant.
-
Before establishing the chat session with the underlying LLM, invoke the mapping function to retrieve the final prompt string. Inject this string as the system_instruction in the initial request to strictly define the AI's subsequent behavior and persona.
Feature Request
Add buttons for Interviewees to select Jim's (the interviewer) persona before the interview begins. For example, "Friendly & Guiding", "Strict & Challenging", and "Custom". Users could enter prompt to specify the interviewer's persona.
Motivation
Interviewers come in various styles in the real world. Some are supportive, offering step-by-step guidance and positive feedback, while others are strict, constantly challenging your assumptions and edge cases.
Currently, the AI interviewer (Jim) leans heavily toward a supportive and guiding persona. While this is great for learning, adding a customizable "Interviewer Persona" feature would allow users to practice under different stress levels and better adapt to the diverse interview dynamics they will face in actual technical interviews.
Implementation
Front-end
Add a dropdown menu named "Interviewer Persona" within the existing Optional interview context section. This dropdown will contain three options: "Friendly & Guiding", "Strict & Challenging", and "Custom". If the user clicks the "Custom" button, a textarea will show up and allow user to enter prompt to specify the interviewer's persona.
Back-end
Introduce a Rust
enumin the backend module responsible for handling interview configurations to represent the three persona states.FriendlyAndGuidingandStrictAndChallengingcan be standard variants, whileCustomshould be designed as a variant that holds a String payload (e.g.,Custom(String)) to capture the user's custom text sent from the frontend.FriendlyAndGuiding: "You are a supportive and guiding technical interviewer. Your goal is to evaluate the candidate while helping them succeed. If the candidate is stuck, provide gentle, step-by-step hints. Encourage them and maintain a positive, friendly tone throughout the interview."StrictAndChallenging: "You are a strict and highly demanding technical interviewer. Your goal is to stress-test the candidate's knowledge. Do not provide direct hints. Frequently question their assumptions, ask them to prove why their code will not fail in edge cases, and demand optimal time and space complexity. Maintain a professional, cold tone."Custom(String): Directly extracts and returns the user-defined string contained within the Customenumvariant.Before establishing the chat session with the underlying LLM, invoke the mapping function to retrieve the final prompt string. Inject this string as the
system_instructionin the initial request to strictly define the AI's subsequent behavior and persona.