Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions kits/resume-analyzer-agent/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Resume Analyzer Agent

## 🚀 Overview
This AI agent analyzes a resume and compares it with a job description.

## 🔥 Features
- Extracts matching skills
- Calculates match percentage
- Provides improvement suggestions

## 🛠️ How it Works
1. Takes resume text
2. Takes job description
3. Compares keywords
4. Returns match score and suggestions
Comment on lines +7 to +15
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

Align feature wording with actual behavior.

The implementation does keyword overlap, not true skill extraction. Consider wording this as “matching keywords/tokens” to avoid overstating capability.


## 💡 Use Case
Helps job seekers improve their resumes for better job matching.

## ⚡ Built With
Lamatic AgentKit
Comment on lines +1 to +21
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

Add required Setup, Environment Variables, and Usage sections.

The README is present, but it does not yet document setup steps, env vars, or usage instructions, which are required for kits.

Proposed documentation patch
 # Resume Analyzer Agent
 
 ## 🚀 Overview
 This AI agent analyzes a resume and compares it with a job description.
+
+## 🧰 Setup
+1. Ensure Python is installed.
+2. Navigate to this kit directory.
+3. Run the agent:
+   ```bash
+   python agent.py
+   ```
+
+## 🔐 Environment Variables
+- None required for the current implementation.
 
 ## 🔥 Features
 - Extracts matching skills
 - Calculates match percentage
 - Provides improvement suggestions
@@
 ## 💡 Use Case
 Helps job seekers improve their resumes for better job matching.
 
+## ▶️ Usage
+You can call the analyzer directly:
+
+```python
+from agent import analyze_resume
+
+resume = "Python developer with API and backend experience"
+job = "Looking for Python backend developer with API skills"
+print(analyze_resume(resume, job))
+```
+
 ## ⚡ Built With
 Lamatic AgentKit

As per coding guidelines, "kits/**/README.md: Every kit must have a README.md that documents setup, environment variables, and usage".

24 changes: 24 additions & 0 deletions kits/resume-analyzer-agent/agent.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
def analyze_resume(resume_text, job_description):
result = {}

resume_words = set(resume_text.lower().split())
job_words = set(job_description.lower().split())
Comment on lines +1 to +5
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

Validate input types at function entry.

If either argument is None or non-string, .lower() will fail at runtime. Add a guard for predictable behavior.

Proposed fix
 def analyze_resume(resume_text, job_description):
+    if not isinstance(resume_text, str) or not isinstance(job_description, str):
+        raise TypeError("resume_text and job_description must be strings")
+
     result = {}


matched_skills = resume_words.intersection(job_words)

result["matched_skills"] = list(matched_skills)
result["match_percentage"] = round(len(matched_skills) / len(job_words) * 100, 2) if job_words else 0
Comment on lines +9 to +10
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

Return matched_skills in a deterministic order.

list(matched_skills) is order-unstable because sets are unordered. That can create flaky snapshots/tests and inconsistent responses.

Proposed fix
-    result["matched_skills"] = list(matched_skills)
+    result["matched_skills"] = sorted(matched_skills)
📝 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
result["matched_skills"] = list(matched_skills)
result["match_percentage"] = round(len(matched_skills) / len(job_words) * 100, 2) if job_words else 0
result["matched_skills"] = sorted(matched_skills)
result["match_percentage"] = round(len(matched_skills) / len(job_words) * 100, 2) if job_words else 0


if result["match_percentage"] < 50:
result["suggestion"] = "Add more relevant skills to improve match."
else:
result["suggestion"] = "Good match! Improve formatting and clarity."

return result


if __name__ == "__main__":
resume = "Python developer with API and backend experience"
job = "Looking for Python backend developer with API skills"

print(analyze_resume(resume, job))
4 changes: 4 additions & 0 deletions kits/resume-analyzer-agent/agent.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
name: resume-analyzer-agent
description: Analyze resume and match with job description

entrypoint: agent.py