Where Are Candidate Profiles Defined in the AI Job Search Framework?

Candidate profiles in the AI Job Search Framework are defined in CLAUDE.md at the repository root and .claude/skills/job-application-assistant/01-candidate-profile.md, both automatically populated by the /setup command.

The MadsLorentzen/ai-job-search repository stores candidate data as structured markdown files rather than traditional databases. Understanding where candidate profiles are defined in the AI Job Search Framework is essential for customizing your job application workflow and ensuring consistent data across all generated materials.

Primary Definition Files

The framework maintains candidate profiles across two complementary locations that serve as the single source of truth for CV generation, cover letters, and interview preparation.

CLAUDE.md: The High-Level Overview

The CLAUDE.md file at the repository root serves as the primary source of truth for the candidate's personal information. This file contains essential identifying details including name, location, spoken languages, CV language preference, and current employment status.

The file is automatically populated when you run the /setup command. Beyond storing profile data, CLAUDE.md also documents the overall repository structure and the workflow that consumes the profile information.

01-candidate-profile.md: The Detailed Schema

For granular control over your professional data, the framework uses .claude/skills/job-application-assistant/01-candidate-profile.md. This detailed specification defines the exact sections your profile must contain, including:

  • Identity information and contact details
  • Languages and proficiency levels
  • Education history and qualifications
  • Professional experience and employment history
  • Technical skills and core competencies
  • Publications and research contributions
  • Awards, certifications, and honors
  • References and recommendations

Like CLAUDE.md, this file is populated by the /setup command and referenced by various skills throughout the framework when evaluating job fit or generating tailored application documents.

How the Setup Command Populates Profile Data

The /setup command, defined in .claude/commands/setup.md, automatically replaces placeholder tokens with your actual information across both profile files.

When you initialize the framework, the setup script performs text substitution operations to populate your data:


# Inside the setup command execution

profile_file=".claude/skills/job-application-assistant/01-candidate-profile.md"

# The setup script replaces all placeholders with real values

sed -i "s/\[YOUR_NAME\]/$USER_NAME/g" "$profile_file"
sed -i "s/\[YOUR_EMAIL\]/$USER_EMAIL/g" "$profile_file"

# Additional substitutions for other profile fields...

This templating approach ensures that both CLAUDE.md and the detailed candidate profile remain synchronized with your current professional status.

Programmatic Access to Candidate Data

Because the AI Job Search Framework treats these markdown files as data sources rather than static documentation, you can extract profile information using standard file parsing techniques. The following Python pattern demonstrates how tools within the ecosystem access candidate data:

import yaml
from pathlib import Path

def load_candidate_profile():
    # Load the main CLAUDE.md (YAML front-matter + content)

    claude_path = Path(__file__).parent.parent / "CLAUDE.md"
    with open(claude_path, "r", encoding="utf-8") as f:
        content = f.read()
    
    # Parse profile sections from markdown content

    profile = {
        "name": extract_between(content, "Name:", "\n"),
        "email": extract_between(content, "Email:", "\n"),
        "location": extract_between(content, "Location:", "\n"),
        # Additional fields parsed similarly...

    }
    return profile

This approach allows any skill or command in the framework to read directly from the source of truth when generating materials or analyzing job requirements against your qualifications.

Summary

  • Candidate profiles are defined in two markdown files: CLAUDE.md for high-level overview and .claude/skills/job-application-assistant/01-candidate-profile.md for the detailed professional schema.
  • The /setup command populates both files by replacing placeholder tokens with your actual data during initial configuration.
  • Both files serve as the single source of truth for CV generation, cover letters, interview prep, and job-fit evaluations throughout the framework.
  • Profile data is accessed programmatically through markdown parsing rather than database queries, enabling flexible integration with AI tooling.

Frequently Asked Questions

What is the difference between CLAUDE.md and 01-candidate-profile.md?

CLAUDE.md contains high-level identifying information and repository documentation, while 01-candidate-profile.md stores the comprehensive structured schema including detailed work history, skills, and publications. The former provides quick reference data for general framework operations; the latter supports deep customization of specific application materials.

How do I update my candidate profile after initial setup?

You can manually edit either markdown file directly using any text editor, or re-run the /setup command to systematically update specific fields. Because the framework reads from these files in real-time during execution, any changes immediately affect subsequent CV generations and job-fit analyses without requiring database migrations or system restarts.

Which file takes precedence when generating application materials?

The framework uses both files complementarily rather than establishing strict precedence. CLAUDE.md typically supplies header information, contact details, and workflow preferences, while 01-candidate-profile.md provides the detailed professional narrative and skills inventory. Skills within the framework reference the appropriate file based on the specific data requirements of each generation task.

Can I use custom fields in my candidate profile?

Yes, you can extend 01-candidate-profile.md with additional sections beyond the standard schema defined in the file. Since the framework parses markdown content rather than enforcing rigid database schemas, custom fields you add will be preserved in the file and can be referenced by custom skills you develop for specialized application workflows or industry-specific requirements.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →