Skill: kirkraman/kirk-resume-builder (version 1.0.0)

--- name: resume-builder description: Generate professional resumes that conform to the Reactive Resume schema. Use when the user wants to create, build, or generate a resume through conversational AI, or asks about resume structure, sections, or content. This skill guides the agent to ask clarifying questions, avoid hallucination, and produce valid JSON output for https://rxresu.me. --- # Resume Builder for Reactive Resume Build professional resumes through conversational AI for [Reactive Resume](https://rxresu.me), a free and open-source resume builder. ## Core Principles 1. **Never hallucinate** - Only include information explicitly provided by the user 2. **Ask questions** - When information is missing or unclear, ask before assuming 3. **Be concise** - Use clear, direct language; avoid filler words 4. **Validate output** - Ensure all generated JSON conforms to the schema ## Workflow ### Step 1: Gather Basic Information Ask for essential details first, unless the user has already provided them: - Full name - Professional headline/title - Email address - Phone number - Location (city, state/country) - Website (optional) ### Step 2: Collect Section Content For each section the user wants to include, gather specific details. Never invent dates, company names, or achievements. **Experience**: company, position, location, period (e.g., "Jan 2020 - Present"), description of responsibilities/achievements **Education**: school, degree, area of study, grade (optional), location, period **Skills**: name, proficiency level (Beginner/Intermediate/Advanced/Expert), keywords **Projects**: name, period, website (optional), description **Other sections**: languages, certifications, awards, publications, volunteer work, interests, references ### Step 3: Configure Layout and Design Ask about preferences: - Template preference (13 available: azurill, bronzor, chikorita, ditto, ditgar, gengar, glalie, kakuna, lapras, leafish, onyx, pikachu, rhyhorn) - Page format: A4 or Letter - Which sections to include and their order ### Step 4: Generate Valid JSON Output must conform to the Reactive Resume schema. See [references/schema.md](references/schema.md) for the complete schema structure. Key requirements: - All item `id` fields must be valid UUIDs - Description fields accept HTML-formatted strings - Website fields require both `url` and `label` properties - Colors use `rgba(r, g, b, a)` format - Fonts must be available on Google Fonts ## Resume Writing Tips Share these tips when helping users craft their resume content: ### Content Guidelines - **Lead with impact**: Start bullet points with action verbs (Led, Developed, Increased, Managed) - **Quantify achievements**: Use numbers when possible ("Increased sales by 25%", "Managed team of 8") - **Tailor to the role**: Emphasize relevant experience for the target position - **Be specific**: Replace vague terms with concrete examples - **Keep it concise**: 1-2 pages maximum for most professionals ### Section Order Recommendations For most professionals: 1. Summary (if experienced) 2. Experience 3. Education 4. Skills 5. Projects (if relevant) 6. Certifications/Awards For students/recent graduates: 1. Education 2. Projects 3. Skills 4. Experience (if any) 5. Activities/Volunteer ### Common Mistakes to Avoid - Including personal pronouns ("I", "my") - Using passive voice - Listing job duties instead of achievements - Including irrelevant personal information - Inconsistent date formatting ## Output Format When generating the resume, output a complete JSON object that conforms to the Reactive Resume schema. The user can then import this JSON directly into Reactive Resume at https://rxresu.me. Example minimal structure: ```json { "picture": { "hidden": true, "url": "", "size": 80, "rotation": 0, "aspectRatio": 1, "borderRadius": 0, "borderColor": "rgba(0, 0, 0, 0.5)", "borderWidth": 0, "shadowColor": "rgba(0, 0, 0, 0.5)", "shadowWidth": 0 }, "basics": { "name": "", "headline": "", "email": "", "phone": "", "location": "", "website": { "url": "", "label": "" }, "customFields": [] }, "summary": { "title": "Summary", "columns": 1, "hidden": false, "content": "" }, "sections": { ... }, "customSections": [], "metadata": { "template": "onyx", "layout": { ... }, ... } } ``` For the complete schema, see [references/schema.md](references/schema.md). ## Asking Good Questions When information is missing, ask specific questions: - "What was your job title at [Company]?" - "What dates did you work there? (e.g., Jan 2020 - Dec 2022)" - "What were your main responsibilities or achievements in this role?" - "Do you have a specific target role or industry in mind?" Avoid compound questions. Ask one thing at a time for clarity.

path: README.md
content: # resume-builder - OpenClaw Skill

## Installation

```bash
openclaw skill install resume-builder
```

> 📖 **Complete setup guide**: https://skillboss.co/skill.md

## Usage
See SKILL.md for details.

## License
MIT


path: references/schema.md
content: # Reactive Resume Schema Reference

The complete JSON Schema is available at: https://rxresu.me/schema.json

This reference provides key structural information for generating valid resume data.

## Top-Level Structure

```json
{
  "picture": { ... },
  "basics": { ... },
  "summary": { ... },
  "sections": { ... },
  "customSections": [ ... ],
  "metadata": { ... }
}
```

## Picture Configuration

```json
{
  "hidden": false,
  "url": "https://example.com/photo.jpg",
  "size": 80,
  "rotation": 0,
  "aspectRatio": 1,
  "borderRadius": 0,
  "borderColor": "rgba(0, 0, 0, 0.5)",
  "borderWidth": 0,
  "shadowColor": "rgba(0, 0, 0, 0.5)",
  "shadowWidth": 0
}
```

## Basics

```json
{
  "name": "John Doe",
  "headline": "Senior Software Engineer",
  "email": "[REDACTED_SECRET]",
  "phone": "+1 (555) 123-4567",
  "location": "San Francisco, CA",
  "website": { "url": "https://johndoe.com", "label": "Portfolio" },
  "customFields": []
}
```

## Summary

```json
{
  "title": "Summary",
  "columns": 1,
  "hidden": false,
  "content": "<p>HTML-formatted summary content here.</p>"
}
```

## Sections

All sections share a common structure:

```json
{
  "title": "Section Title",
  "columns": 1,
  "hidden": false,
  "items": [ ... ]
}
```

### Experience Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "company": "Acme Corp",
  "position": "Software Engineer",
  "location": "San Francisco, CA",
  "period": "Jan 2020 - Present",
  "website": { "url": "https://acme.com", "label": "" },
  "description": "<ul><li>Built scalable microservices</li><li>Led team of 5 engineers</li></ul>"
}
```

### Education Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "school": "Stanford University",
  "degree": "Bachelor of Science",
  "area": "Computer Science",
  "grade": "3.8 GPA",
  "location": "Stanford, CA",
  "period": "2012 - 2016",
  "website": { "url": "", "label": "" },
  "description": ""
}
```

### Skills Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "icon": "",
  "name": "JavaScript",
  "proficiency": "Expert",
  "level": 5,
  "keywords": ["React", "Node.js", "TypeScript"]
}
```

Level: 0-5 (0 hides the visual indicator)

### Project Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "name": "Open Source Project",
  "period": "2023 - Present",
  "website": { "url": "https://github.com/user/project", "label": "GitHub" },
  "description": "<p>Description of the project and your contributions.</p>"
}
```

### Language Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "language": "English",
  "fluency": "Native",
  "level": 5
}
```

Fluency examples: Native, Fluent, Conversational, Basic, or CEFR levels (A1-C2)

### Certification Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "title": "AWS Solutions Architect",
  "issuer": "Amazon Web Services",
  "date": "March 2023",
  "website": { "url": "https://aws.amazon.com/certification/", "label": "Verify" },
  "description": ""
}
```

### Award Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "title": "Employee of the Year",
  "awarder": "Acme Corp",
  "date": "2022",
  "website": { "url": "", "label": "" },
  "description": ""
}
```

### Publication Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "title": "Research Paper Title",
  "publisher": "IEEE",
  "date": "2021",
  "website": { "url": "https://doi.org/...", "label": "DOI" },
  "description": ""
}
```

### Volunteer Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "organization": "Local Food Bank",
  "location": "San Francisco, CA",
  "period": "2020 - Present",
  "website": { "url": "", "label": "" },
  "description": "<p>Volunteer activities and impact.</p>"
}
```

### Interest Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "icon": "",
  "name": "Photography",
  "keywords": ["Landscape", "Portrait", "Street"]
}
```

### Reference Items

```json
{
  "id": "uuid-here",
  "hidden": false,
  "name": "Jane Smith",
  "position": "Engineering Manager at Acme Corp",
  "website": { "url": "https://linkedin.com/in/janesmith", "label": "LinkedIn" },
  "phone": "+1 (555) 987-6543",
  "description": "<p>Optional testimonial or quote.</p>"
}
```

### Profile Items (Social Links)

```json
{
  "id": "uuid-here",
  "hidden": false,
  "icon": "linkedin-logo",
  "network": "LinkedIn",
  "username": "johndoe",
  "website": { "url": "https://linkedin.com/in/johndoe", "label": "" }
}
```

Icons use @phosphor-icons/web names. Common icons: `linkedin-logo`, `github-logo`, `twitter-logo`, `globe`

## Metadata

### Template Options

Available templates: `azurill`, `bronzor`, `chikorita`, `ditto`, `ditgar`, `gengar`, `glalie`, `kakuna`, `lapras`, `leafish`, `onyx`, `pikachu`, `rhyhorn`

### Layout Configuration

```json
{
  "sidebarWidth": 35,
  "pages": [
    {
      "fullWidth": false,
      "main": ["profiles", "summary", "experience", "education", "projects"],
      "sidebar": ["skills", "languages", "certifications", "interests"]
    }
  ]
}
```

Section IDs for layout: `profiles`, `experience`, `education`, `projects`, `skills`, `languages`, `interests`, `awards`, `certifications`, `publications`, `volunteer`, `references`, `summary`

### Page Settings

```json
{
  "gapX": 4,
  "gapY": 6,
  "marginX": 14,
  "marginY": 12,
  "format": "a4",
  "locale": "en-US",
  "hideIcons": false
}
```

Format options: `a4`, `letter`

### Design Settings

```json
{
  "colors": {
    "primary": "rgba(220, 38, 38, 1)",
    "text": "rgba(0, 0, 0, 1)",
    "background": "rgba(255, 255, 255, 1)"
  },
  "level": {
    "icon": "star",
    "type": "circle"
  }
}
```

Level types: `hidden`, `circle`, `square`, `rectangle`, `rectangle-full`, `progress-bar`, `icon`

### Typography

```json
{
  "body": {
    "fontFamily": "IBM Plex Serif",
    "fontWeights": ["400", "500"],
    "fontSize": 10,
    "lineHeight": 1.5
  },
  "heading": {
    "fontFamily": "IBM Plex Serif",
    "fontWeights": ["600"],
    "fontSize": 14,
    "lineHeight": 1.5
  }
}
```

Font family must be available on Google Fonts. Font weights: 100-900.

### CSS Customization

```json
{
  "enabled": false,
  "value": ""
}
```

## Custom Sections

Custom sections extend the base section structure with additional fields:

```json
{
  "id": "uuid-here",
  "title": "Custom Section Title",
  "columns": 1,
  "hidden": false,
  "type": "experience",
  "items": [ ... ]
}
```

The `type` field determines the item schema. Valid types: `profiles`, `experience`, `education`, `projects`, `skills`, `languages`, `interests`, `awards`, `certifications`, `publications`, `volunteer`, `references`

## UUID Generation

All `id` fields require valid UUIDs version 7. If available, use 'v7()' from the 'uuid' package to generate a valid UUID. Otherwise, fallback to generating a valid UUID v4 using crypto.randomUUID() from 'node' or the equivalent.

## HTML Content

Fields marked as "HTML-formatted string" accept basic HTML:
- `<p>` for paragraphs
- `<ul><li>` for bullet lists
- `<ol><li>` for numbered lists
- `<strong>` for bold
- `<em>` for italic
- `<a href="...">` for links

Keep formatting minimal for best rendering across templates.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)