Skip to content

feat: add AI Career Copilot AgentKit#102

Open
Durvankur-Joshi wants to merge 3 commits intoLamatic:mainfrom
Durvankur-Joshi:feat/ai-career-copilot
Open

feat: add AI Career Copilot AgentKit#102
Durvankur-Joshi wants to merge 3 commits intoLamatic:mainfrom
Durvankur-Joshi:feat/ai-career-copilot

Conversation

@Durvankur-Joshi
Copy link
Copy Markdown

@Durvankur-Joshi Durvankur-Joshi commented Mar 25, 2026

🚀 AI Career Copilot

What This Kit Does

AI-powered career assistant that analyzes resumes and provides:

  • Skill extraction
  • Missing skills identification
  • Career role recommendations
  • Readiness score
  • Personalized learning roadmap
  • Project suggestions
  • Interview questions

Providers & Prerequisites

  • Lamatic AI (GraphQL Workflow)
  • Node.js 18+

How to Run Locally

  1. Navigate to the project:
    cd kits/assistant/ai-career-copilot

  2. Install dependencies:
    npm install

  3. Set up environment variables:
    cp .env.example .env

  4. Add your Lamatic credentials in .env

  5. Run the project:
    npm run dev

Live Preview

https://your-vercel-link.vercel.app/

Lamatic Flow

Flow ID: 66c98d92-70da-4eec-82b0-af4f01be9cd5

  • Overview: Adds AI Career Copilot AgentKit — a resume analyzer and personalized career guidance assistant powered by Lamatic AI (GraphQL workflow).
  • Features: skill extraction, missing-skills identification, recommended roles, readiness score (0–100), 5–7 step learning roadmap, project suggestions, and interview questions.
  • Tech: Next.js App Router + TypeScript, Tailwind CSS, Axios, Lamatic GraphQL flow; Node.js >=18 required.
  • Key files added: app (layout, page, globals.css), components (form, result, skills, roadmap, projects, interview questions, spinner, error), server action (analyzeCareer), lamatic client, flow assets (config.json, inputs.json, meta.json, flow README), types, package/config files (package.json, tsconfig, tailwind/postcss, next.config), README, .env.example, .gitignore.
  • Flow & integration: Lamatic Flow integrated (Flow ID: 66c98d92-70da-4eec-82b0-af4f01be9cd5); flow implements nodes to extract skills, compute gaps, suggest roles, score readiness, generate roadmap/projects/questions.
  • Setup: cd kits/assistant/ai-career-copilot; npm install; cp .env.example .env; add Lamatic credentials to .env; npm run dev. Placeholder live preview link included.
  • Notes: Author tested locally, deployed to Vercel, marked PR ready for review; estimated review effort ranges from Low to High depending on file (notably flow config is large).

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 25, 2026

📝 Walkthrough

Walkthrough

Adds a new "AI Career Copilot" Next.js kit: UI components, server action, Lamatic client, workflow files, types, and configuration to analyze resume text and produce skills, gaps, roles, readiness score, roadmap, projects, and interview questions.

Changes

Cohort / File(s) Summary
Env & Git
kits/assistant/ai-career-copilot/.env.example, kits/assistant/ai-career-copilot/.gitignore
Adds environment variable template for Lamatic and runtime flags, and a .gitignore for Node/Next/Tailwind and local secrets.
Project config & build
kits/assistant/ai-career-copilot/package.json, kits/assistant/ai-career-copilot/next.config.js, kits/assistant/ai-career-copilot/postcss.config.js, kits/assistant/ai-career-copilot/tailwind.config.ts, kits/assistant/ai-career-copilot/tsconfig.json
Introduces package manifest, Next.js config, PostCSS/Tailwind setup, and strict TypeScript config for the kit.
App shell & styling
kits/assistant/ai-career-copilot/app/layout.tsx, kits/assistant/ai-career-copilot/app/page.tsx, kits/assistant/ai-career-copilot/app/globals.css
Adds RootLayout with metadata and Inter font, main page orchestrating analysis flow, and global Tailwind-based styles and utility classes.
React components
kits/assistant/ai-career-copilot/components/...
CareerAnalysisForm.tsx, AnalysisResult.tsx, SkillsDisplay.tsx, RoadmapDisplay.tsx, ProjectsDisplay.tsx, InterviewQuestions.tsx, ErrorMessage.tsx, LoadingSpinner.tsx
New client-side components for input, validation, loading/error states, and rendering analysis output sections.
Server action
kits/assistant/ai-career-copilot/actions/orchestrate.ts
Adds analyzeCareer server action with input validation, lamaticClient invocation, structured ApiResponse, and error handling/logging.
Lamatic client
kits/assistant/ai-career-copilot/lib/lamatic-client.ts
New client that reads env vars and executes a GraphQL executeWorkflow call to the Lamatic API; returns workflow result or throws on errors.
Types
kits/assistant/ai-career-copilot/types/index.ts
TypeScript interfaces: CareerAnalysisInput, CareerAnalysisOutput, and ApiResponse.
Lamatic flow files
kits/assistant/ai-career-copilot/flows/ai-career-copilot/...
config.json, inputs.json, meta.json, README.md
Adds exported workflow definition, node input schemas for LLM selection, metadata, and flow README documenting nodes and private inputs.
Kit manifest & docs
kits/assistant/ai-career-copilot/config.json, kits/assistant/ai-career-copilot/README.md
Adds kit configuration and README describing features, prerequisites, setup, usage, and Lamatic flow metadata.

Sequence Diagram(s)

sequenceDiagram
    participant User as User (Browser)
    participant Form as CareerAnalysisForm
    participant Page as Home Page
    participant Action as analyzeCareer (Server)
    participant Client as Lamatic Client
    participant API as Lamatic API

    User->>Form: enter resume & domain
    Form->>Page: onSubmit(resume, domain)
    Page->>Action: analyzeCareer({resume_text, domain})
    Action->>Action: validate input
    Action->>Client: executeCareerAnalysis({resume_text, domain})
    Client->>API: POST executeWorkflow (GraphQL)
    alt API success
        API-->>Client: workflow result
        Client-->>Action: return result
        Action-->>Page: { success: true, data }
    else API error
        API-->>Client: error
        Client-->>Action: throw / return error
        Action-->>Page: { success: false, error }
    end
    Page->>Page: render AnalysisResult or ErrorMessage
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Suggested reviewers

  • amanintech
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: add AI Career Copilot AgentKit' directly and accurately summarizes the main change: introducing a new AI Career Copilot assistant as part of the AgentKit collection.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Durvankur-Joshi
Copy link
Copy Markdown
Author

✅ Ready for Review

  • Project tested locally
  • Vercel deployment working
  • Flow integrated successfully
  • All required files added

Looking forward to feedback 🚀

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 14

🧹 Nitpick comments (9)
kits/assistant/ai-career-copilot/components/ErrorMessage.tsx (1)

19-25: Add explicit type="button" to prevent unintended form submission.

The button lacks an explicit type attribute. If this component is ever rendered inside a form, the default type ("submit") could cause unintended form submissions.

Proposed fix
             <button
+              type="button"
               onClick={onRetry}
               className="mt-3 inline-flex items-center gap-2 text-sm text-red-700 hover:text-red-800 font-medium"
             >
kits/assistant/ai-career-copilot/app/globals.css (1)

1-3: Stylelint configuration needs Tailwind support.

The Stylelint errors flagging @tailwind as unknown are false positives. Configure Stylelint with stylelint-config-tailwindcss or add @tailwind to the ignoreAtRules option for scss/at-rule-no-unknown.

Note: These @tailwind directives follow Tailwind v3 syntax. If migrating to Tailwind v4+ per guidelines, the syntax would change to @import "tailwindcss";.

kits/assistant/ai-career-copilot/components/SkillsDisplay.tsx (1)

15-15: Consider using lucide-react icons instead of emoji for consistency.

Other components in this kit (e.g., ErrorMessage, RoadmapDisplay) use lucide-react icons. For visual consistency across the kit, consider replacing the emoji with icons.

Proposed changes
 'use client';
 
+import { CheckCircle2, AlertTriangle } from 'lucide-react';
+
 interface SkillsDisplayProps {
-          <p className="text-sm font-medium text-gray-700 mb-2">✓ Your Current Skills</p>
+          <p className="text-sm font-medium text-gray-700 mb-2 flex items-center gap-1">
+            <CheckCircle2 className="w-4 h-4 text-green-600" />
+            Your Current Skills
+          </p>
-          <p className="text-sm font-medium text-gray-700 mb-2">⚠️ Skills to Develop</p>
+          <p className="text-sm font-medium text-gray-700 mb-2 flex items-center gap-1">
+            <AlertTriangle className="w-4 h-4 text-yellow-600" />
+            Skills to Develop
+          </p>

Based on learnings: "Use lucide-react for icons throughout kits"

kits/assistant/ai-career-copilot/components/InterviewQuestions.tsx (1)

16-28: Minor: Empty state renders both container and message.

When questions.length === 0, the component renders an empty <div className="space-y-3"> followed by the fallback message. Consider conditionally rendering either the list or the fallback.

♻️ Suggested improvement
-      <div className="space-y-3">
-        {questions.map((question, idx) => (
-          <div key={idx} className="flex items-start gap-3">
-            <span className="flex-shrink-0 w-6 h-6 bg-gray-100 text-gray-600 rounded-full flex items-center justify-center text-xs font-semibold">
-              {idx + 1}
-            </span>
-            <p className="text-gray-700">{question}</p>
-          </div>
-        ))}
-      </div>
-      {questions.length === 0 && (
-        <p className="text-gray-500 text-center py-4">No interview questions available</p>
-      )}
+      {questions.length > 0 ? (
+        <div className="space-y-3">
+          {questions.map((question, idx) => (
+            <div key={idx} className="flex items-start gap-3">
+              <span className="flex-shrink-0 w-6 h-6 bg-gray-100 text-gray-600 rounded-full flex items-center justify-center text-xs font-semibold">
+                {idx + 1}
+              </span>
+              <p className="text-gray-700">{question}</p>
+            </div>
+          ))}
+        </div>
+      ) : (
+        <p className="text-gray-500 text-center py-4">No interview questions available</p>
+      )}
kits/assistant/ai-career-copilot/components/CareerAnalysisForm.tsx (1)

24-51: Form handling should use react-hook-form with zod validation.

The current implementation uses manual useState and custom validation logic. As per coding guidelines, kit forms should use react-hook-form with zod for validation.

♻️ Example refactor structure
import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import { z } from 'zod';

const formSchema = z.object({
  resumeText: z.string()
    .min(1, 'Please paste your resume text')
    .min(50, 'Please provide at least 50 characters of resume text for accurate analysis'),
  domain: z.string().min(1, 'Please select your target domain'),
});

type FormData = z.infer<typeof formSchema>;

export default function CareerAnalysisForm({ onSubmit }: CareerAnalysisFormProps) {
  const { register, handleSubmit, formState: { errors } } = useForm<FormData>({
    resolver: zodResolver(formSchema),
  });

  const onFormSubmit = (data: FormData) => {
    onSubmit(data.resumeText, data.domain);
  };

  return (
    <form onSubmit={handleSubmit(onFormSubmit)}>
      {/* ... */}
    </form>
  );
}

As per coding guidelines: "Use react-hook-form with zod validation for form handling in kits"

kits/assistant/ai-career-copilot/components/AnalysisResult.tsx (1)

8-8: Remove unused Lightbulb import.

The Lightbulb icon is imported but not used in this component. RoadmapDisplay imports it separately.

♻️ Suggested fix
-import { TrendingUp, Briefcase, Lightbulb } from 'lucide-react';
+import { TrendingUp, Briefcase } from 'lucide-react';
kits/assistant/ai-career-copilot/components/ProjectsDisplay.tsx (1)

16-26: Minor: Same empty state pattern issue as InterviewQuestions.

The empty container is rendered alongside the fallback message when projects.length === 0. Consider the same conditional rendering pattern suggested for InterviewQuestions.tsx.

kits/assistant/ai-career-copilot/app/page.tsx (1)

69-71: Consider using handleReset instead of page reload for retry.

Using window.location.reload() discards all client state and triggers a full page reload. The existing handleReset function could provide a smoother UX.

♻️ Suggested change
-            <ErrorMessage message={error} onRetry={() => window.location.reload()} />
+            <ErrorMessage message={error} onRetry={handleReset} />
kits/assistant/ai-career-copilot/lib/lamatic-client.ts (1)

3-6: Add runtime validation for required environment variables.

Non-null assertions (!) will throw unclear errors if environment variables are missing. Consider adding explicit validation with meaningful error messages.

♻️ Suggested improvement
-const endpoint = process.env.LAMATIC_API_URL!;
-const apiKey = process.env.LAMATIC_API_KEY!;
-const projectId = process.env.LAMATIC_PROJECT_ID!;
-const flowId = process.env.AGENTIC_GENERATE_CONTENT!;
+const endpoint = process.env.LAMATIC_API_URL;
+const apiKey = process.env.LAMATIC_API_KEY;
+const projectId = process.env.LAMATIC_PROJECT_ID;
+const flowId = process.env.AGENTIC_GENERATE_CONTENT;
+
+function assertEnvVar(name: string, value: string | undefined): asserts value is string {
+  if (!value) {
+    throw new Error(`Missing required environment variable: ${name}`);
+  }
+}

Then validate before use:

async executeCareerAnalysis(input: { ... }) {
  assertEnvVar('LAMATIC_API_URL', endpoint);
  assertEnvVar('LAMATIC_API_KEY', apiKey);
  assertEnvVar('LAMATIC_PROJECT_ID', projectId);
  assertEnvVar('AGENTIC_GENERATE_CONTENT', flowId);
  // ...
}

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 847c6d93-1353-430e-85a7-4cf4415a242e

📥 Commits

Reviewing files that changed from the base of the PR and between cd0d519 and 40f6799.

⛔ Files ignored due to path filters (1)
  • kits/assistant/ai-career-copilot/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (28)
  • kits/assistant/ai-career-copilot/.env.example
  • kits/assistant/ai-career-copilot/.gitignore
  • kits/assistant/ai-career-copilot/README.md
  • kits/assistant/ai-career-copilot/actions/orchestrate.ts
  • kits/assistant/ai-career-copilot/app/globals.css
  • kits/assistant/ai-career-copilot/app/layout.tsx
  • kits/assistant/ai-career-copilot/app/page.tsx
  • kits/assistant/ai-career-copilot/components/AnalysisResult.tsx
  • kits/assistant/ai-career-copilot/components/CareerAnalysisForm.tsx
  • kits/assistant/ai-career-copilot/components/ErrorMessage.tsx
  • kits/assistant/ai-career-copilot/components/InterviewQuestions.tsx
  • kits/assistant/ai-career-copilot/components/LoadingSpinner.tsx
  • kits/assistant/ai-career-copilot/components/ProjectsDisplay.tsx
  • kits/assistant/ai-career-copilot/components/RoadmapDisplay.tsx
  • kits/assistant/ai-career-copilot/components/SkillsDisplay.tsx
  • kits/assistant/ai-career-copilot/config.json
  • kits/assistant/ai-career-copilot/flows/ai-career-copilot/README.md
  • kits/assistant/ai-career-copilot/flows/ai-career-copilot/config.json
  • kits/assistant/ai-career-copilot/flows/ai-career-copilot/inputs.json
  • kits/assistant/ai-career-copilot/flows/ai-career-copilot/meta.json
  • kits/assistant/ai-career-copilot/git
  • kits/assistant/ai-career-copilot/lib/lamatic-client.ts
  • kits/assistant/ai-career-copilot/next.config.js
  • kits/assistant/ai-career-copilot/package.json
  • kits/assistant/ai-career-copilot/postcss.config.js
  • kits/assistant/ai-career-copilot/tailwind.config.ts
  • kits/assistant/ai-career-copilot/tsconfig.json
  • kits/assistant/ai-career-copilot/types/index.ts

AGENTIC_GENERATE_CONTENT=your-flow-id
LAMATIC_API_URL=https://your-project.lamatic.dev/graphql
LAMATIC_PROJECT_ID=your-project-id
LAMATIC_API_KEY=your-api-key No newline at end of file
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add trailing newline to satisfy dotenv linting.

Static analysis flagged missing ending blank line at Line 4; please append a newline at EOF.

🧰 Tools
🪛 dotenv-linter (4.0.0)

[warning] 4-4: [EndingBlankLine] No blank line at the end of the file

(EndingBlankLine)


[warning] 4-4: [UnorderedKey] The LAMATIC_API_KEY key should go before the LAMATIC_API_URL key

(UnorderedKey)

"eslint": "^8.0.0",
"eslint-config-next": "^14.0.0",
"postcss": "^8.4.0",
"tailwindcss": "^3.3.0",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify current Tailwind major version declared for the kit
python - <<'PY'
import json, re
p = "kits/assistant/ai-career-copilot/package.json"
deps = json.load(open(p)).get("devDependencies", {})
v = deps.get("tailwindcss")
print("tailwindcss version:", v)
m = re.search(r'(\d+)', v or "")
print("major:", m.group(1) if m else "unknown")
PY

Repository: Lamatic/AgentKit

Length of output: 96


Update tailwindcss to v4 or later.

The kit requires Tailwind CSS v4+, but package.json declares ^3.3.0 at line 33. Update the dependency version to meet the kit baseline.

Comment on lines +1 to +42
import type { Config } from 'tailwindcss'

const config: Config = {
content: [
'./pages/**/*.{js,ts,jsx,tsx,mdx}',
'./components/**/*.{js,ts,jsx,tsx,mdx}',
'./app/**/*.{js,ts,jsx,tsx,mdx}',
],
theme: {
extend: {
colors: {
primary: {
50: '#eff6ff',
100: '#dbeafe',
200: '#bfdbfe',
300: '#93c5fd',
400: '#60a5fa',
500: '#3b82f6',
600: '#2563eb',
700: '#1d4ed8',
800: '#1e40af',
900: '#1e3a8a',
},
},
animation: {
'fade-in': 'fadeIn 0.5s ease-in-out',
'slide-up': 'slideUp 0.3s ease-out',
},
keyframes: {
fadeIn: {
'0%': { opacity: '0' },
'100%': { opacity: '1' },
},
slideUp: {
'0%': { transform: 'translateY(10px)', opacity: '0' },
'100%': { transform: 'translateY(0)', opacity: '1' },
},
},
},
},
plugins: [],
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check the Tailwind CSS version in package.json
fd -t f "package.json" kits/assistant/ai-career-copilot --exec cat {} | jq '.dependencies.tailwindcss // .devDependencies.tailwindcss'

Repository: Lamatic/AgentKit

Length of output: 68


Upgrade Tailwind CSS to v4+ and migrate to CSS-first configuration.

The kit currently uses Tailwind CSS v3.3.0, but the coding guidelines require v4+. The tailwind.config.ts file uses the v3 configuration pattern, which is no longer the recommended approach in v4.

Update package.json to Tailwind v4+ and migrate the configuration to Tailwind v4's CSS-first approach using @theme and @config directives in a CSS file instead of this TypeScript config file.

"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify whether JS/JSX files exist in TS-only kit code paths.
fd -t f -e js -e jsx kits/assistant/ai-career-copilot | rg -n 'kits/assistant/ai-career-copilot/(app|components|actions|lib|types)/'

Repository: Lamatic/AgentKit

Length of output: 493


🏁 Script executed:

#!/bin/bash
# First, check the actual tsconfig.json content
echo "=== tsconfig.json content ==="
cat kits/assistant/ai-career-copilot/tsconfig.json

echo -e "\n=== Searching for JS/JSX files in kit directories ==="
# Proper syntax: search for .js/.jsx files in the kit directory
fd --full-path --type f -e js -e jsx kits/assistant/ai-career-copilot

echo -e "\n=== File structure of the kit ==="
# Show the directory structure to understand what's in the kit
fd --type f --type d . kits/assistant/ai-career-copilot | head -30

Repository: Lamatic/AgentKit

Length of output: 2487


Remove unnecessary allowJs setting to enforce TS-only intent.

The "allowJs": true setting at line 5 is unnecessary—all application code (components, actions, app, lib) is already TypeScript, and the tsconfig include array explicitly lists only **/*.ts and **/*.tsx, meaning JavaScript files are not compiled by TypeScript anyway. The presence of next.config.js and postcss.config.js are configuration files outside the application code scope.

Removing this setting (set to false) will align the configuration with the guideline: "Use TypeScript for all kit components and server actions."

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
kits/assistant/ai-career-copilot/.env.example (1)

1-4: Consider reordering keys to satisfy dotenv lint.

dotenv-linter flagged key ordering (LAMATIC_API_KEY before LAMATIC_API_URL). Not functionally required, but aligning avoids CI/lint noise.

kits/assistant/ai-career-copilot/README.md (1)

82-92: Add language identifiers to fenced code blocks (MD040).

These fences should declare languages (text, bash, etc.) to satisfy markdownlint and improve rendering consistency.

Also applies to: 109-111, 121-123, 127-129


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fb395155-da54-4434-9636-cb8d36f4e7fa

📥 Commits

Reviewing files that changed from the base of the PR and between 40f6799 and 5a8b463.

📒 Files selected for processing (8)
  • kits/assistant/ai-career-copilot/.env.example
  • kits/assistant/ai-career-copilot/.gitignore
  • kits/assistant/ai-career-copilot/README.md
  • kits/assistant/ai-career-copilot/actions/orchestrate.ts
  • kits/assistant/ai-career-copilot/app/layout.tsx
  • kits/assistant/ai-career-copilot/config.json
  • kits/assistant/ai-career-copilot/package.json
  • kits/assistant/ai-career-copilot/tsconfig.json
✅ Files skipped from review due to trivial changes (5)
  • kits/assistant/ai-career-copilot/tsconfig.json
  • kits/assistant/ai-career-copilot/.gitignore
  • kits/assistant/ai-career-copilot/config.json
  • kits/assistant/ai-career-copilot/package.json
  • kits/assistant/ai-career-copilot/app/layout.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • kits/assistant/ai-career-copilot/actions/orchestrate.ts

AGENTIC_GENERATE_CONTENT=your-flow-id
LAMATIC_API_URL=https://your-project.lamatic.dev/graphql
LAMATIC_PROJECT_ID=your-project-id
LAMATIC_API_KEY=your-api-
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use a complete placeholder for LAMATIC_API_KEY.

LAMATIC_API_KEY=your-api- looks truncated and can confuse setup; use a clear placeholder like your-api-key (or YOUR_API_KEY) for consistency with the README.

As per coding guidelines: "Never commit real API keys, secrets, or credentials; use .env.example with placeholders only".

🧰 Tools
🪛 dotenv-linter (4.0.0)

[warning] 4-4: [UnorderedKey] The LAMATIC_API_KEY key should go before the LAMATIC_API_URL key

(UnorderedKey)

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5b1508b1-baef-4875-a28f-a9d2f0a82fbc

📥 Commits

Reviewing files that changed from the base of the PR and between 5a8b463 and 8c950d2.

📒 Files selected for processing (1)
  • kits/assistant/ai-career-copilot/README.md

Comment on lines +91 to +101
```
ai-career-copilot/
├── app/ # Next.js pages
├── components/ # UI components
├── actions/ # Server actions
├── lib/ # Lamatic API client
├── flows/ # Exported Lamatic flow
├── .env.example # Environment template
├── config.json # Kit configuration
└── README.md
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifiers to fenced code blocks (MD040).

Line 91, Line 118, Line 130, and Line 136 use unlabeled fenced blocks, which triggers markdownlint warnings.

Proposed README fix
-```
+```text
 ai-career-copilot/
 ├── app/                # Next.js pages
 ├── components/         # UI components
 ├── actions/            # Server actions
 ├── lib/                # Lamatic API client
 ├── flows/              # Exported Lamatic flow
 ├── .env.example        # Environment template
 ├── config.json         # Kit configuration
 └── README.md

- +text
kits/assistant/ai-career-copilot


-```
+```text
I know JavaScript, React, and basic Node.js

- +text
Web Development

Also applies to: 118-120, 130-132, 136-138

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 91-91: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants