Skip to content
Productivity
Skill

/sn-image-resume

Generates a designed portfolio-resume image from resume content provided in conversation text. Extracts optional style instructions, converts the resume into a fixed portfolio-resume layout prompt, and generates the final image through sn-image-base. Use when user asks to create

From plugin
sensenova-skills
4.9k76 skills9 agents
Install
$ npx -y skills add OpenSenseNova/SenseNova-Skills --skill sn-image-resume --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/sn-image-resume

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generates a designed portfolio-resume image from resume content provided in conversation text. Extracts optional style instructions, converts the resume into a fixed portfolio-resume layout prompt, and generates the final image through sn-image-base. Use when user asks to create

SKILL.md

sn-image-resume.SKILL.md
name: sn-image-resume
description: |
  Generates a designed portfolio-resume image from resume content provided in conversation text.
  Extracts optional style instructions, converts the resume into a fixed portfolio-resume layout prompt,
  and generates the final image through sn-image-base. Use when user asks to create "resume image",
  "portfolio resume", "简历图", "简历海报", or "个人简历视觉设计".
metadata:
  project: SenseNova-Skills
  tier: 1
  category: scene
  priority: 8
  user_visible: true
triggers:
  - "resume image"
  - "portfolio resume"
  - "visual resume"
  - "resume poster"
  - "CV image"
  - "简历图"
  - "简历海报"
  - "可视化简历"
  - "个人简历视觉设计"
  - "作品集简历"

sn-image-resume

Resume image generation scene skill (tier 1), relying on the `sn-text-optimize` and `sn-image-generate` tools provided by `sn-image-base` (tier 0).

Features:

  • Accepts resume content directly from conversational text
  • Supports optional user-provided style direction
  • Applies the fixed portfolio-resume layout rules in `prompts/resume.md`
  • Generates a tall designed resume image through `sn-image-generate`

Non-goals

  • Editing or polishing a plain text resume document without generating an image
  • Parsing uploaded resume files as the primary input format
  • Creating a conventional single-column ATS resume
  • Guaranteeing exact preservation of every long paragraph when the image layout requires compression

Input Specification

|Parameter|Type|Default Value|Description| |---|---|---|---| |`resume_content`|string|**Required**|Resume text provided by the user in conversation, including name, profile, education, experience, skills, projects, contact details, etc.| |`style`|string|Optional|User-specified visual style, tone, color palette, profession aesthetic, or reference mood. May be embedded in `resume_content`.| |`aspect_ratio`|string|`9:16`|Output aspect ratio. Allowed values: `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `1:1`, `16:9`, `9:16`, `21:9`, `9:21`. Default is `9:16` (vertical) because the template is a tall stacked portfolio-resume page.| |`image_size`|string|`2k`|Image size preset, `1k` or `2k`.| |`output_mode`|string|`friendly`|Output mode: `friendly` or `verbose`.|

API Configuration

All API calls in this skill are executed through the `sn_agent_runner.py` of the `sn-image-base` skill, with authentication parameters using default values (CLI > environment variables > built-in defaults), so they do not need to be passed explicitly in normal use.

|Call Type|Tool|Authentication Parameters|Description| |---|---|---|---| |**LLM**|`sn-text-optimize`|Default reads `SN_TEXT_API_KEY` -> `SN_CHAT_API_KEY` -> `SN_API_KEY`|Converts user resume text into a detailed image generation prompt using `prompts/resume.md` as the system prompt| |**Image Generation**|`sn-image-generate`|Default reads `SN_IMAGE_GEN_API_KEY` -> `SN_API_KEY`|Generates the final resume image|

If all capabilities use the same gateway, configure only:

SN_BASE_URL="https://your-api-endpoint.com/v1"
SN_API_KEY="your-api-key"

**When encountering `MissingApiKeyError` or needing to specify a model**: pass parameters explicitly via CLI. See `$SN_IMAGE_BASE/references/api_spec.md`.

**`$SN_IMAGE_BASE` path explanation**: `$SN_IMAGE_BASE` is the installation directory of the `sn-image-base` skill (`SKILL.md` exists). The agent can locate this path by skill name `sn-image-base`.

Architecture: Main Agent + Worker Agent

This skill uses a two-tier agent architecture:

|Role|Responsibility| |---|---| |**Main Agent**|Receive user request, normalize parameters, send preflight, start Worker, collect result, and send final text/image to user| |**Worker Agent**|Execute prompt generation and image generation, then return structured JSON|

**Responsibility Boundaries**:

  • Worker Agent **does not send any messages to the user directly**, only returns structured JSON
  • Main Agent is responsible for all user-visible messages
  • Worker Agent's last message **must be and only be** the JSON string defined in the Return Contract
  • Worker Agent's low-level API calls execute directly through `sn-image-base`, without spawning nested subagents

Workflow

Main Agent Workflow

1. Extract `resume_content`, optional `style`, `aspect_ratio` (default `9:16`), `image_size` (default `2k`), and `output_mode` (default `friendly`) from the user request 2. Validate that `resume_content` is non-empty and contains enough resume information to generate a meaningful page 3. Validate `aspect_ratio` against the allowed values: `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `1:1`, `16:9`, `9:16`, `21:9`, `9:21`. If the user-provided value is not in this list, inform the user and fall back to the default `9:16` 4. Send uniform preflight message: `"Using sn-image-resume skill to generate a resume image, please wait..."` 5. Start Worker Agent, passing in complete parameters and working directory 6. When Worker Agent returns:

  • `status=ok`: send a short summary and the generated image
  • `status=error`: report the real `error` field content to the user

Worker Agent Workflow

Worker Agent receives `resume_content`, `style`, `aspect_ratio`, `image_size`, `output_mode`, and the working directory of this skill (`SKILL_DIR`).

Step 0 — Initialization

1. Generate `task_id` using timestamp format `YYYYMMDD_HHMMSS` 2. Create temporary directory: `/tmp/openclaw/sn-image-resume/<task_id>/` as `TEMP_DIR` 3. Persist normalized inputs:

echo "$RESUME_CONTENT" > "$TEMP_DIR/resume-content.txt"
echo "$STYLE" > "$TEMP_DIR/style.txt"

Step 1 — Resume Prompt Generation

Use `prompts/resume.md` as the system prompt and call `sn-text-optimize` to convert the user resume content into a detailed image generation prompt.

USER_PROMPT=$(cat << EOF
Resume content:
$RESUME_CONTENT

Optional style instruction:
${STYLE:-No explicit style instruction. Infer an appropriate professional visual style from the resume content.}

Task:
Convert the resume content in
Read more
Ships withsensenova-skills

The SenseNova model family plugs directly into agent runtimes such as OpenClaw and hermes-agent, with the skills in this repository extending the models with concrete, end-to-end office capabilities.

Get the whole plugin

Other skills on sensenova-skills.