Skip to content

feat: Add Research Agent for interview prep #247

Merged
akshatvirmani merged 21 commits into
Lamatic:mainfrom
Dhanuanur25:main
Jul 20, 2026
Merged

feat: Add Research Agent for interview prep #247
akshatvirmani merged 21 commits into
Lamatic:mainfrom
Dhanuanur25:main

Conversation

@Dhanuanur25

@Dhanuanur25 Dhanuanur25 commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a new kit: Company Interview Research Agent.
Given a company name and job title, it performs live web research on the company, classifies the likely interview format (technical/case-based vs. behavioral/mixed), and generates a structured interview preparation brief.

Unlike existing resume-matching tools in this repo, this kit takes no resume as input, it focuses entirely on researching the company itself, so candidates know what to expect walking into a specific company's interview process, not just how well their resume matches a job description.

Flow

Interface (API Request) → Web Search → Classifier → Generate Text → Response

What's included

  • kits/company-interview-research-agent/lamatic.config.ts
  • kits/company-interview-research-agent/README.md
  • kits/company-interview-research-agent/flows/company-interview-research-agent.yaml

Tested

  • Flow tested end-to-end in Lamatic Studio (all nodes passing)
  • Deployed and verified via the live GraphQL API endpoint with real inputs
    (example: PG&E / Data Analyst - see README for full sample output)
  • Added company-interview-research-agent kit configuration, metadata, README, and setup documentation.
  • Added .gitignore for Lamatic artifacts, dependencies, and environment files.
  • Added default constitution covering safety, data handling, and response tone.
  • Added model configurations for Gemini-powered classification and text generation.
  • Added prompts to:
    • Classify the likely interview format for a job title.
    • Generate a concise, structured interview-preparation brief.
  • Added the flow definition, which:
    • Accepts a company name and job title through an API trigger.
    • Searches the web using Serper.
    • Classifies the likely interview format.
    • Generates an interview brief with Gemini.
    • Returns the result through a GraphQL response as interview_brief.
  • No flow.json file was present; the flow is defined in flows/company-interview-research-agent.ts.

@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Changes

Introduces a complete Company Interview Research Agent kit with metadata, a web-research and interview-classification flow, Gemini model configurations, safety constitution, prompts, setup documentation, and GraphQL invocation examples.

Company Interview Research Agent

Layer / File(s) Summary
Kit metadata and runtime contract
kits/company-interview-research-agent/.gitignore, lamatic.config.ts, flows/...
Defines kit metadata, runtime inputs, referenced artifacts, and the exported flow configuration.
Research and interview brief flow
kits/company-interview-research-agent/flows/..., model-configs/*, prompts/*, constitutions/*
Connects API input, Serper research, interview-format classification, Gemini generation, safety instructions, and the interview_brief response.
Kit documentation and invocation examples
kits/company-interview-research-agent/README.md, agent.md
Documents setup, workflow, payloads, testing, structure, guardrails, failure modes, and use cases.

Suggested reviewers: amanintech, d-pamneja

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description summarizes the kit and testing, but it omits the repository’s required PR checklist sections and most checklist items. Reformat the PR description to follow the template: contribution type, general requirements, file structure, and validation checklist items.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the new interview research agent and its purpose.
✨ 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.

@akshatvirmani

Copy link
Copy Markdown
Contributor

@Dhanuanur25 please check the https://github.com/Lamatic/AgentKit/blob/main/CONTRIBUTING.md to make proper PR with structure.

Your last PR was invalid so is this one.

@Dhanuanur25 Dhanuanur25 changed the title Add Research Agent for interview prep Add Research Agent for interview prep - old Jul 16, 2026
@Dhanuanur25 Dhanuanur25 changed the title Add Research Agent for interview prep - old Add Research Agent for interview prep Jul 16, 2026
@akshatvirmani akshatvirmani changed the title Add Research Agent for interview prep feat: Add Research Agent for interview prep Jul 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

:robot_face: AgentKit Structural Validation

New Contributions Detected

  • Template: kits/company-interview-research-agent

Check Results

Check Status
No edits to existing kits ✅ Pass
Required root files present ✅ Pass
Flow .ts files present ✅ Pass
lamatic.config.ts valid ✅ Pass
No changes outside kits/ ✅ Pass

🎉 All checks passed! This contribution follows the AgentKit structure.

@coderabbitai
coderabbitai Bot requested a review from d-pamneja July 20, 2026 08:42

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@kits/company-interview-research-agent/prompts/company-interview-research-agent_agent-classifier-node-548_user_1.md`:
- Line 1: Update the prompt text before the {{triggerNode_1.output.job_title}}
placeholder to include a separating space after the colon, preserving the
existing wording and placeholder unchanged.

In
`@kits/company-interview-research-agent/prompts/company-interview-research-agent_llmnode-621_user_1.md`:
- Line 1: Update the interview prep prompt around the placeholders in the
opening sentence and company research clause, adding spaces between literal text
and each template expression so words do not concatenate. Preserve the existing
placeholder names, ordering, and section structure.

In `@kits/company-interview-research-agent/README.md`:
- Around line 76-78: Specify the text language on the fenced directory-tree code
block in the README by changing its opening fence to use text, while preserving
the existing tree content.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: b8d0addc-d338-4bdc-b85d-4ea02323e8c9

📥 Commits

Reviewing files that changed from the base of the PR and between 7f28ab5 and 0fdde6d.

📒 Files selected for processing (12)
  • kits/company-interview-research-agent/.gitignore
  • kits/company-interview-research-agent/README.md
  • kits/company-interview-research-agent/agent.md
  • kits/company-interview-research-agent/constitutions/default.md
  • kits/company-interview-research-agent/flows/company-interview-research-agent.ts
  • kits/company-interview-research-agent/lamatic.config.ts
  • kits/company-interview-research-agent/model-configs/company-interview-research-agent_agent-classifier-node-548_generative-model-name.ts
  • kits/company-interview-research-agent/model-configs/company-interview-research-agent_llmnode-621_generative-model-name.ts
  • kits/company-interview-research-agent/prompts/company-interview-research-agent_agent-classifier-node-548_system_0.md
  • kits/company-interview-research-agent/prompts/company-interview-research-agent_agent-classifier-node-548_user_1.md
  • kits/company-interview-research-agent/prompts/company-interview-research-agent_llmnode-621_system_0.md
  • kits/company-interview-research-agent/prompts/company-interview-research-agent_llmnode-621_user_1.md

@@ -0,0 +1 @@
Classify the likely interview format for this job title:{{triggerNode_1.output.job_title}} 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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Insert a space before the placeholder.

Agent, we've intercepted a slight anomaly in the transmission. There's a missing space before your placeholder which could garble our intel. Your mission, should you choose to accept it, is to insert a space before {{triggerNode_1.output.job_title}}.

🕵️ Proposed fix
-Classify the likely interview format for this job title:{{triggerNode_1.output.job_title}}
+Classify the likely interview format for this job title: {{triggerNode_1.output.job_title}}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Classify the likely interview format for this job title:{{triggerNode_1.output.job_title}}
Classify the likely interview format for this job title: {{triggerNode_1.output.job_title}}
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

[warning] 1-1: First line in a file should be a top-level heading

(MD041, first-line-heading, first-line-h1)


[warning] 1-1: Files should end with a single newline character

(MD047, single-trailing-newline)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@kits/company-interview-research-agent/prompts/company-interview-research-agent_agent-classifier-node-548_user_1.md`
at line 1, Update the prompt text before the {{triggerNode_1.output.job_title}}
placeholder to include a separating space after the colon, preserving the
existing wording and placeholder unchanged.

@@ -0,0 +1,5 @@
Create an interview prep brief for a candidate interviewing for the role of{{triggerNode_1.output.job_title}} at {{triggerNode_1.output.company_name}}. Use this research about the company: {{webSearchNode_224.output.output}}Based on prior analysis, this role has been classified as: {{agentClassifierNode_548.output.class}}Structure your response with these sections:

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Add missing spaces around placeholders.

Agent, the data stream is looking a bit cramped. We're missing spaces around several template placeholders, which might confuse the target's generative processors by merging words together. Your mission, should you choose to accept it, is to add the necessary spacing so the intel reads cleanly.

🕵️ Proposed fix
-Create an interview prep brief for a candidate interviewing for the role of{{triggerNode_1.output.job_title}} at {{triggerNode_1.output.company_name}}. Use this research about the company: {{webSearchNode_224.output.output}}Based on prior analysis, this role has been classified as: {{agentClassifierNode_548.output.class}}Structure your response with these sections:
+Create an interview prep brief for a candidate interviewing for the role of {{triggerNode_1.output.job_title}} at {{triggerNode_1.output.company_name}}. Use this research about the company: {{webSearchNode_224.output.output}} Based on prior analysis, this role has been classified as: {{agentClassifierNode_548.output.class}} Structure your response with these sections:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Create an interview prep brief for a candidate interviewing for the role of{{triggerNode_1.output.job_title}} at {{triggerNode_1.output.company_name}}. Use this research about the company: {{webSearchNode_224.output.output}}Based on prior analysis, this role has been classified as: {{agentClassifierNode_548.output.class}}Structure your response with these sections:
Create an interview prep brief for a candidate interviewing for the role of {{triggerNode_1.output.job_title}} at {{triggerNode_1.output.company_name}}. Use this research about the company: {{webSearchNode_224.output.output}} Based on prior analysis, this role has been classified as: {{agentClassifierNode_548.output.class}} Structure your response with these sections:
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

[warning] 1-1: First line in a file should be a top-level heading

(MD041, first-line-heading, first-line-h1)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@kits/company-interview-research-agent/prompts/company-interview-research-agent_llmnode-621_user_1.md`
at line 1, Update the interview prep prompt around the placeholders in the
opening sentence and company research clause, adding spaces between literal text
and each template expression so words do not concatenate. Preserve the existing
placeholder names, ordering, and section structure.

Comment on lines +76 to +78
```
kits/company-interview-research-agent/
├── flows/

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.

📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Specify a language for the fenced code block.

Agent, our visual scanners have flagged an unidentified code block format. Your mission, should you choose to accept it, is to specify text for this directory tree to evade the markdown linters' radar. This message will self-destruct.

🕵️ Proposed fix
-```
+```text
 kits/company-interview-research-agent/
 ├── flows/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
kits/company-interview-research-agent/
├── flows/
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

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

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@kits/company-interview-research-agent/README.md` around lines 76 - 78,
Specify the text language on the fenced directory-tree code block in the README
by changing its opening fence to use text, while preserving the existing tree
content.

@akshatvirmani

Copy link
Copy Markdown
Contributor

/validate

@github-actions

Copy link
Copy Markdown
Contributor

📡 Running Studio validation — results will appear here shortly.

@github-actions

Copy link
Copy Markdown
Contributor

Studio Runtime Validation (Phase 2)

Studio validation passed. The kit loaded successfully in Lamatic Studio.

This PR is ready for final review and merge.

@akshatvirmani akshatvirmani added the tier-3 Pass label Jul 20, 2026
@akshatvirmani
akshatvirmani merged commit a6ecbc1 into Lamatic:main Jul 20, 2026
6 checks passed
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