---
slug: "resume-screening-ai-agent-with-claude-s-skills"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/umairalipathan1980/Resume-Screening-AI-Agent-with-Claude-s-Skills@main/README.md"
repo: "https://github.com/umairalipathan1980/Resume-Screening-AI-Agent-with-Claude-s-Skills"
source_file: "README.md"
branch: "main"
---
# Claude Skills Project - Resume Screening

This project demonstrates a complete resume screening workflow using Claude Agent SDK and custom skills. It showcases the **extract → assess → validate → generate** workflow pattern for automated candidate evaluation.
![Resume Screening Workflow](https://github.com/umairalipathan1980/Resume-Screening-AI-Agent-with-Claude-s-Skills/raw/HEAD/images/img.png)

## Overview

The project includes:
- **resume-screener skill**: A systematic workflow for screening and evaluating candidate resumes against job requirements
- **resume_screening_agent.py**: Python script demonstrating how to use the skill programmatically via the Claude Agent SDK
- **Sample data**: Complete job description, evaluation criteria, and five diverse candidate resumes
- Customer **resume-screener** skill in **.claude/skills/resume-scanner/skill.md**.
![Resume Screening Workflow](https://github.com/umairalipathan1980/Resume-Screening-AI-Agent-with-Claude-s-Skills/raw/HEAD/images/img2.png)

## Prerequisites

### System Requirements
- **Python 3.10+** (supports 3.10, 3.11, 3.12, 3.13)
- **Node.js** (version 18 or higher recommended)
- **Claude Code CLI 2.0.0+**

### Installation

1. **Install Claude Code CLI:**
   ```bash
   npm install -g @anthropic-ai/claude-code
   ```

2. **Install Python dependencies:**
   ```bash
   pip install -r requirements.txt
   ```

3. **Set up environment variables:**
   Copy the example file and add your API key:
   ```bash
   cp .env.example .env
   ```
   Edit `.env` and set:
   ```
   CLAUDE_API_KEY=your_api_key_here
   ```

## Resume-Screener Skill

A systematic workflow for screening candidate resumes against job requirements with validation to ensure consistent, objective, and high-quality candidate assessments.

### When to Use This Skill

Use this skill when you need to:
- Screen job applicants and evaluate resumes
- Provide structured candidate assessments
- Generate hiring recommendations with detailed justifications
- Ensure consistent evaluation across multiple candidates

**Trigger phrases:**
- "Screen these resumes"
- "Evaluate these candidates"
- "Review these job applications"
- "Assess candidate qualifications"

### Required Inputs

**Mandatory:**
1. **Job Description** (`inputs/job_description.pdf`) - Complete job posting including requirements, qualifications, responsibilities, and company information
2. **Candidate Resumes** (`resumes/*.pdf`) - Resume files submitted by candidates (PDF or DOCX format)

**Optional (but recommended):**
3. **Evaluation Criteria** (`inputs/evaluation_criteria.pdf`) - Detailed scoring rubric and assessment guidelines
4. **Screening Template** (`inputs/screening_template.pdf`) - Standardized format for presenting evaluation results

> **Note:** If job description or resumes are missing, the skill will request them before proceeding.

### Resume Screening Workflow

The skill processes each resume through a 6-step workflow:

**Step 1: Read and Understand Context**
- Review the job description to understand role requirements
- Review evaluation criteria (if provided) to understand scoring methodology
- Review screening template (if provided) to understand output format
- Read the current candidate's resume thoroughly

**Step 2: Extract and Assess Candidate Information**
- Extract: contact info, education, experience, skills, projects, publications
- Compare each area against job requirements using evaluation criteria
- Note specific evidence from the resume
- Identify strengths and gaps

**Step 3: Generate Initial Evaluation**
- Assign points according to evaluation criteria for each category
- Provide justification based on specific resume content
- Identify 3-5 key strengths and 2-3 concerns
- Provide overall assessment and fit analysis
- Make clear recommendation with suggested next steps

**Step 4: Validate the Evaluation**
- Check completeness, accuracy, consistency, objectivity, clarity, alignment
- Verify each score has supporting evidence from the resume
- Confirm no information was fabricated or assumed
- Ensure scoring is proportional and consistent

**Step 5: Address Validation Failures**
- If validation fails, review feedback and make targeted corrections
- Re-validate after corrections
- Maximum 3 validation rounds

**Step 6: Save Evaluation & Validation Results**
- Format evaluation following screening template (if provided)
- Document validation summary
- Save to `candidate_evaluations.docx`
- All candidates in the SAME file with clear separators

## Usage

### Option 1: Via Claude Code

```
Screen the candidates in the 'resumes/' folder using the 'resume-screener' skill
```

### Option 2: Programmatically (Python)

Run the included Python script:

```bash
python resume_screening_agent.py
```

The script will:
1. Load your API key from `.env`
2. Initialize the Claude Agent with the resume-screener skill
3. Process all resumes in the `resumes/` folder
4. Generate evaluations and save them to `candidate_evaluations.docx`

### Option 3: Via claude.ai or Claude Desktop

1. Zip the entire project folder
2. Go to Settings → Capabilities → Skills
3. Click "Upload skill" and upload the ZIP file
4. In a chat, say: "Screen the candidate resumes using the resume-screener skill"

## How the Agent Works

The Resume Screening Agent is a Python script that leverages the Claude Agent SDK to programmatically invoke the resume-screener skill for evaluating candidate resumes. When executed, the script first loads environment variables from a .env file and sets up authentication by retrieving the Claude API key, which it then maps to the ANTHROPIC_API_KEY environment variable that the SDK expects.

The main function configures the Claude Agent with specific options, including the use of the Claude Sonnet 4.5 model to ensure high-quality evaluation capabilities. The agent is set to load skills and settings from both user and project directories, allowing it to access the resume-screener skill that has been defined in the project structure. The configuration also enables several essential tools including Skill, Read, Write, and Bash, which are necessary for the complete screening workflow to function properly.

Once configured, the agent receives a query prompt that instructs it to screen resumes using the resume-screener skill. The agent then processes this request asynchronously, streaming responses back as it works through each candidate resume. During execution, the agent reads all resumes from the designated folder, evaluates each resume against the job requirements and evaluation criteria, runs validation checks on each evaluation to ensure quality, and generates comprehensive feedback that is ultimately saved to the candidate_evaluations.docx file. Throughout this entire process, each message from the agent is printed to the console in real-time, providing immediate visibility into the screening progress and allowing users to monitor the evaluation workflow as it unfolds.

## Project Structure

```
/skills/
├── .claude/
│   └── skills/
│       └── resume-screener/
│           └── skill.md                    # Resume screener skill definition
├── inputs/                                 # Resume screening inputs
│   ├── job_description.pdf                 # Job posting (required)
│   ├── evaluation_criteria.pdf            # Scoring rubric (optional)
│   └── screening_template.pdf             # Output template (optional)
├── resumes/                                # Candidate resumes
├── candidate_evaluations.docx              # Resume screening output (generated)
├── resume_screening_agent.py               # Python agent script
├── requirements.txt                        # Python dependencies
├── .env.example                            # Example .env file
├── README.md                               # This file
```

## Dependencies

### Python Packages
- **claude-agent-sdk** (>=0.1.6) - Official Anthropic SDK for Claude Agent
- **python-dotenv** (>=1.0.0) - Environment variable management

Install with:
```bash
pip install -r requirements.txt
```

## Getting Started

1. **Clone or download this project**

2. **Install all prerequisites** (Python 3.10+, Node.js, Claude Code CLI)

3. **Install Python dependencies:**
   ```bash
   pip install -r requirements.txt
   ```

4. **Create your `.env` file** with your Claude API key:
   ```bash
   cp .env.example .env
   # Edit .env and add your API key
   ```

5. **Review the sample files** in `inputs/` and `resumes/` directories

6. **Run the screening agent:**
   ```bash
   python resume_screening_agent.py
   ```

7. **Check the output** in `candidate_evaluations.docx`

## Expected Output

The skill generates `candidate_evaluations.docx` containing for each candidate:

1. **Candidate Information** (name, contact, location)
2. **Executive Summary** (2-3 sentences + key strengths/concerns)
3. **Detailed Scoring Table** (all 5 categories with justifications)
4. **Comprehensive Analysis**
   - Technical skills analysis
   - Experience & project analysis
   - Educational background assessment
   - Communication & soft skills evaluation
5. **Key Strengths** (3-5 specific points)
6. **Areas of Concern** (2-3 specific points)
7. **Red Flags / Special Considerations**
8. **Final Recommendation** (Strong Interview / Interview / Maybe / Reject)
9. **Validation Summary** (results from each validation round)

## Customization

### Adapt for Different Roles
- Replace `inputs/job_description.pdf` with your job posting
- Update `inputs/evaluation_criteria.pdf` with your scoring rubric
- Adjust `inputs/screening_template.pdf` with your output format
- Add your candidate resumes to `resumes/` folder

### Extend Functionality
You can modify `resume_screening_agent.py` to:
- Change the AI model (currently `claude-sonnet-4-5`)
- Adjust allowed tools
- Customize the prompt
- Process resumes from different directories
- Export results in different formats

