[kit] Add AI Interview Coach for personalized interview preparation #161
[kit] Add AI Interview Coach for personalized interview preparation #161piyushkumar0707 wants to merge 5 commits into
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI (base), Organization UI (inherited) Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Adds a new "AI Interview Coach" kit under kits/assistant/interview-coach/ — a Next.js 14 + Tailwind app with a server action that calls a Lamatic flow to generate personalized interview prep (technical/behavioral questions, company insights, 30-60-90 day plan).
Changes:
- New Next.js app (layout, page,
InterviewCoachcomponent with form + tabbed results UI). - Server-side orchestration layer (
actions/orchestrate.ts,lib/lamatic-client.ts) wrapping a Lamatic GraphQLexecuteWorkflowcall. - Kit metadata and flow setup docs (
config.json,flows/interview-coach/*,README.md,.env.example).
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| kits/assistant/interview-coach/tsconfig.json | Standard Next.js TS config. |
| kits/assistant/interview-coach/tailwind.config.js | Tailwind setup with custom brand palette. |
| kits/assistant/interview-coach/README.md | Kit overview, setup, env-var, and deployment docs. |
| kits/assistant/interview-coach/postcss.config.js | Tailwind/Autoprefixer PostCSS config. |
| kits/assistant/interview-coach/package.json | Dependencies for Next 14 + Lamatic client. |
| kits/assistant/interview-coach/next.config.js | Empty Next config. |
| kits/assistant/interview-coach/lib/lamatic-client.ts | GraphQL client wrapping executeWorkflow — uses env var names that don't match .env.example. |
| kits/assistant/interview-coach/flows/interview-coach/meta.json | Flow metadata. |
| kits/assistant/interview-coach/flows/interview-coach/inputs.json | Flow input schema. |
| kits/assistant/interview-coach/flows/interview-coach/FLOW_SETUP.md | Lamatic Studio setup prompts. |
| kits/assistant/interview-coach/config.json | Kit metadata for AgentKit registry. |
| kits/assistant/interview-coach/components/InterviewCoach.tsx | Form + tabbed results UI; accesses nested fields without guards. |
| kits/assistant/interview-coach/app/page.tsx | Page renders InterviewCoach. |
| kits/assistant/interview-coach/app/layout.tsx | Root layout + metadata. |
| kits/assistant/interview-coach/app/globals.css | Tailwind base + gradient background + fade-in animation. |
| kits/assistant/interview-coach/actions/orchestrate.ts | Server action; reads wrong env var for flow ID, no schema normalization. |
| kits/assistant/interview-coach/.gitignore | Standard Next/Node ignores. |
| kits/assistant/interview-coach/.env.example | Documents env vars (names don't match code). |
Comments suppressed due to low confidence (1)
kits/assistant/interview-coach/actions/orchestrate.ts:59
- When the raw response is already an object, it is cast directly to
InterviewCoachResultwithout validating that the expected fields (technicalQuestions,behavioralQuestions,answerTips,companyInsights,ninetyDayPlan.first30/next30/final30) exist. If the LLM omits a field (e.g.,answerTips), the UI accessesresult.answerTips.lengthandresult.ninetyDayPlan.first30directly, causing a runtime "cannot read properties of undefined" crash. Consider normalizing the parsed object with default empty arrays / a defaultninetyDayPlanbefore returning.
if (resultData && typeof resultData === 'object') {
return { success: true, data: resultData as InterviewCoachResult }
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Hello @piyushkumar0707 Can you please check and update the file structure? Reference: https://github.com/Lamatic/AgentKit/blob/main/CONTRIBUTING.md#repository-layout |
…dd optional chaining - .env.example: improve comments with accurate navigation paths - README.md: fix Step 2 env var table to match actual variable names used in the code (LAMATIC_PROJECT_API_KEY, LAMATIC_PROJECT_ENDPOINT, LAMATIC_FLOW_ID) instead of the wrong LAMATIC_API_KEY / LAMATIC_API_URL / INTERVIEW_COACH_FLOW_ID that were previously documented - InterviewCoach.tsx: add optional chaining on result.answerTips?.length to guard against potential undefined access No logic or code changes - app behaviour is identical.
@akshatvirmani repository layout has been updated to match the guidelines. |
@akshatvirmani add labels to it |
PR Checklist
1. Select Contribution Type
kits/<category>/<kit-name>/)bundles/<bundle-name>/)templates/<template-name>/)2. General Requirements
kebab-caseand matches the flow IDREADME.md(purpose, setup, usage)3. File Structure (Check what applies)
config.jsonpresent with valid metadata (name, description, tags, steps, author, env keys)flows/<flow-name>/(where applicable) include:config.json(Lamatic flow export)inputs.jsonmeta.jsonREADME.md.env.examplewith placeholder values only (kits only)config.jsonnode graphs (changes via Lamatic Studio export)4. Validation
npm install && npm run devworks locally (kits: UI runs; bundles/templates: flows are valid)[kit] Add <name> for <use case>)