Agent skill

Sn Image Resume

by OpenSenseNova in OpenSenseNova/SenseNova-Skills

Generates a designed portfolio-resume image from resume content provided in conversation text.

MITAuto-check passedBusiness, Finance & HR

Install Sn Image Resume

skills CLI
$ npx skills add OpenSenseNova/SenseNova-Skills --skill sn-image-resume -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OpenSenseNova/SenseNova-Skills sn-image-resume --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OpenSenseNova/SenseNova-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/sn-image-resume .claude/skills/sn-image-resume && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
sn-image-resume
GitHub stars
5.7k
Token cost
~2.5k tokens
SKILL.md length
852 words
Files
2
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Generates a designed portfolio-resume image from resume content provided in conversation text.

  • Works in 3 steps: Initialization → Resume Prompt Generation → Resume Image Generation
  • User asks to create resume image
  • SKILL.md covers Non-goals, Input Specification, API Configuration and Architecture: Main Agent +…, plus 4 more sections
  • Calls python; needs SN_API_KEY and SN_TEXT_API_KEY

What it does

Sn Image Resume is an agent skill from OpenSenseNova/SenseNova-Skills. 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 "个人简历视觉设计".

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `prompts/resume.md`).

It sits in Business, Finance & HR, covering Resume and CV writing. The repository describes itself as: Modular SenseNova skills for building AI-powered office assistants and productivity workflows. The licence is MIT.

When your agent uses it

  • User asks to create resume image
  • Portfolio resume

Example prompts

  • “resume image”
  • “portfolio resume”
  • “个人简历视觉设计”
  • “/sn-image-resume”

Requirements

  • Python 3
  • A credential in SN_TEXT_API_KEY
  • A credential in SN_CHAT_API_KEY

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Initialization
  2. Resume Prompt Generation
  3. Resume Image Generation

What it can do on your machine

Read from SKILL.md and the folder at commit 7838651. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • SN_API_KEY
    • SN_TEXT_API_KEY
    • SN_CHAT_API_KEY
    • SN_IMAGE_GEN_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Sn Image Resume loads about 2.5k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 852 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~90
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from OpenSenseNova/SenseNova-Skills at commit 7838651, republished under its MIT licence (© OpenSenseNova). 852 words, ~2,470 tokens.

Download SKILL.mdSave it as .claude/skills/sn-image-resume/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
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
metadata.tier
1
metadata.category
scene
metadata.priority
8
metadata.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

ParameterTypeDefault ValueDescription
resume_contentstringRequiredResume text provided by the user in conversation, including name, profile, education, experience, skills, projects, contact details, etc.
stylestringOptionalUser-specified visual style, tone, color palette, profession aesthetic, or reference mood. May be embedded in resume_content.
aspect_ratiostring9:16Output 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_sizestring2kImage size preset, 1k or 2k.
output_modestringfriendlyOutput 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 TypeToolAuthentication ParametersDescription
LLMsn-text-optimizeDefault reads SN_TEXT_API_KEY -> SN_CHAT_API_KEY -> SN_API_KEYConverts user resume text into a detailed image generation prompt using prompts/resume.md as the system prompt
Image Generationsn-image-generateDefault reads SN_IMAGE_GEN_API_KEY -> SN_API_KEYGenerates the final resume image

If all capabilities use the same gateway, configure only:

ini
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:

RoleResponsibility
Main AgentReceive user request, normalize parameters, send preflight, start Worker, collect result, and send final text/image to user
Worker AgentExecute 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
Show full SKILL.md (340 more words)Show less
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:
bash
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.

bash
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 into a complete text-to-image prompt for a tall portfolio-resume image.
Follow the fixed layout, language, content mapping, typography, panel, and style translation rules in the system prompt.
Return only the final image generation prompt. Do not include explanations, markdown fences, or alternative options.
EOF
)

python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-text-optimize \
  --system-prompt-path "$SKILL_DIR/prompts/resume.md" \
  --user-prompt "$USER_PROMPT" \
  --output-format json

Parse JSON stdout and extract result as generation_prompt. If the process exits non-zero, returns invalid JSON, or result is empty, return status=error with the actual error.

Persist output:

bash
echo "$GENERATION_PROMPT" > "$TEMP_DIR/generation-prompt.txt"
Step 2 — Resume Image Generation

Generate the final image using sn-image-base's sn-image-generate tool.

bash
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-image-generate \
  --prompt "$GENERATION_PROMPT" \
  --image-size "$IMAGE_SIZE" \
  --aspect-ratio "$ASPECT_RATIO" \
  --save-path "$TEMP_DIR/resume.png" \
  --output-format json

Parse JSON stdout. If generation fails, return status=error with the actual error. The generated image path is $TEMP_DIR/resume.png.

Error Handling Rules
  • If required resume content is missing, ask the user to provide resume text before starting generation
  • If sn-text-optimize fails or returns an empty result, stop and report the real error
  • If sn-image-generate fails, stop and report the real error
  • Do not silently substitute a generic resume prompt when user content is incomplete or prompt generation fails
  • Do not invent factual resume details that the user did not provide; only reorganize, condense, and visually map provided information
Return Contract

After Worker Agent completes, its last message must be and only be the following JSON string (bare JSON, no code fences, no preceding or trailing text).

Normal Flow:

json
{
  "status": "ok",
  "need_main_agent_send": true,
  "output_mode": "friendly|verbose",
  "image": "$TEMP_DIR/resume.png",
  "generation_prompt": "<included only when output_mode=verbose>",
  "timing": {
    "total_elapsed_seconds": 25.12,
    "prompt_generation": { "elapsed_seconds": 5.23, "model": "sensenova-6.8-flash-lite" },
    "image_generation": { "elapsed_seconds": 19.89, "model": "sn_image_model" }
  }
}

Error Flow:

json
{
  "status": "error",
  "error": "<Actual error information>"
}

Rules:

  • status=ok must contain need_main_agent_send: true
  • generation_prompt must contain when output_mode=verbose; omit it in friendly mode
  • timing.prompt_generation.elapsed_seconds and timing.prompt_generation.model are read from sn-text-optimize JSON output
  • timing.image_generation.elapsed_seconds is read from sn-image-generate JSON output
  • timing.image_generation.model is fixed to "sn_image_model" because sn-image-generate does not return a model field

Output Format

friendly mode (default)

Text Summary: one sentence describing that the resume image has been generated, no more than 50 words.

Image: send the single generated resume image.

verbose mode
text
Resume image generated
---
Aspect ratio: <aspect_ratio>
Image size: <image_size>
---
Generation prompt:
<generation_prompt>
---
Time statistics: Total <total>s | Prompt generation <t>s | Image generation <t>s
---
Image:
<image path>

Call Relationship

  • Bottom-level dependency: sn-image-base → sn-text-optimize, sn-image-generate
  • System prompt: prompts/resume.md

References

  • prompts/resume.md - Fixed portfolio-resume layout and language/content mapping rules
  • ../sn-image-base/SKILL.md - Base-layer image/text tool behavior
  • ../sn-image-base/references/api_spec.md - CLI parameter details

© OpenSenseNova, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/sn-image-resume of OpenSenseNova/SenseNova-Skills.

  • SKILL.md
  • prompts/resume.md

Open the folder on GitHubat commit 7838651

Compare with similar skills

Sn Image Resume next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Sn Image Resume compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Sn Image Resume this skillOpenSenseNova/SenseNova-Skills5.7k—~2.5kAutomated safety check: PassMIT
Career-Ops Job Search Centercareer-ops-hq/career-ops74k—~3.6kAutomated safety check: PassMIT
Reactive Resume Builderreactive-resume/reactive-resume44k—~2kAutomated safety check: PassMIT
Internship Project Preparation ToolLiuMengxuan04/shushu-internship-tool2.1k—~2.3kAutomated safety check: PassCustom licence
Resume Tailoringvarunr89/resume-tailoring-skill7691 repos~8.9kAutomated safety check: PassMIT
Offer Negotiationreactive-resume/reactive-resume44k—~10kAutomated safety check: PassMIT

Similar skills

  • Career-Ops Job Search Center

    career-ops-hq/career-ops

    Routes job-search requests to modes for evaluating offers, scanning portals, generating tailored CVs, tracking applications and drafting outreach, starting from a pasted job URL or description.

    74k GitHub stars~3.6k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Reactive Resume Builder

    reactive-resume/reactive-resume

    Builds resumes as valid JSON for the open-source Reactive Resume app by interviewing you, and can track job applications through its MCP tools.

    44k GitHub stars~2k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Internship Project Preparation Tool

    LiuMengxuan04/shushu-internship-tool

    Turns a target internship job description into a resume-ready, interview-ready project by finding and auditing GitHub projects and drafting resume bullets and interview Q&A.

    2.1k GitHub stars~2.3k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed
  • Resume Tailoring

    varunr89/resume-tailoring-skill

    A skill your agent uses when creating tailored resumes for job applications - researches company/role, creates optimized templates, conducts branching experience discovery to surface undocumented…

    769 GitHub starsUsed in 1 repo~8.9k tokens
    Business, Finance & HRAuto-check passed
  • Offer Negotiation

    reactive-resume/reactive-resume

    Evaluates and negotiates job offers. An agent skill from reactive-resume/reactive-resume.

    44k GitHub stars~10k tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Good Story

    Rimagination/good-story

    A skill your agent uses when the user asks to find, sharpen, evaluate, rewrite, or explain the story in scientific or scholarly materials across disciplines, including manuscripts, grants, paper…

    134 GitHub starsUsed in 1 repo~2.9k tokens
    Business, Finance & HRAuto-check passed

More from OpenSenseNova/SenseNova-Skills

All 36 skills in this repo
  • SN Motion HTML

    OpenSenseNova/SenseNova-Skills

    Builds HTML stories where one continuous camera journey advances with page progress, using researched structure, AI stills, Seedance video clips and browser QA.

    5.7k GitHub stars~2.2k tokensUpdated 2 days ago
    Auto-check: notes
  • SenseNova PPT Fallback Tools

    OpenSenseNova/SenseNova-Skills

    Fallback scripts for web search, image search and download, and image generation that PPT skills use only when the host agent lacks or fails its own tools.

    5.7k GitHub stars~575 tokensUpdated 2 days ago
    Auto-check: notes
  • SenseNova PPT Workbench

    OpenSenseNova/SenseNova-Skills

    Opens the PPT Workbench web editor for an existing SenseNova HTML slide deck so you can preview, inspect and visually edit it without regenerating.

    5.7k GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check: notes
  • SenseNova PPT Creative Renderer

    OpenSenseNova/SenseNova-Skills

    Turns an approved slide outline into a full-page image for every slide, one 16:9 PNG per page, and optionally packages the set into a PPTX.

    5.7k GitHub stars~1.2k tokensUpdated 2 days ago
    Auto-check passed
  • SenseNova PPT Entry

    OpenSenseNova/SenseNova-Skills

    Entry point for SenseNova presentation generation: creates a task folder, picks depth, output format and design richness, and routes to the right PPT skill.

    5.7k GitHub stars~2.7k tokensUpdated 2 days ago
    Auto-check: notes
  • China Market Open Data Search

    OpenSenseNova/SenseNova-Skills

    Researches Chinese market, macro, trade, procurement, listed-company and regulatory information from free official sources that need no sign-up or API key.

    5.7k GitHub stars~954 tokensUpdated 2 days ago
    Auto-check: notes

Questions about Sn Image Resume

What does Sn Image Resume do?

Generates a designed portfolio-resume image from resume content provided in conversation text. Sn Image Resume is an agent skill from OpenSenseNova/SenseNova-Skills. Generates a designed portfolio-resume image from resume content provided in conversation text.

When should I use Sn Image Resume?

Sn Image Resume fits situations like: user asks to create resume image; portfolio resume.

How do I install Sn Image Resume in Claude Code?

Run `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-image-resume -a claude-code`. Or copy the skill folder (skills/sn-image-resume in OpenSenseNova/SenseNova-Skills) into .claude/skills/sn-image-resume in your project. Claude Code loads it when a task matches its description.

How do I install Sn Image Resume in Codex?

Run `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-image-resume -a codex`. Or copy the skill folder (skills/sn-image-resume in OpenSenseNova/SenseNova-Skills) into .agents/skills/sn-image-resume in your project. Codex loads it when a task matches its description.

Can I use Sn Image Resume in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-image-resume -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sn-image-resume, .gemini/skills/sn-image-resume, .github/skills/sn-image-resume and .opencode/skills/sn-image-resume in your project.

What does Sn Image Resume need to run?

Going by SKILL.md and its folder, Sn Image Resume needs the command-line tools its instructions call (python) and credentials named SN_API_KEY, SN_TEXT_API_KEY, SN_CHAT_API_KEY and SN_IMAGE_GEN_API_KEY. Our summary lists: Python 3; A credential in SN_TEXT_API_KEY; A credential in SN_CHAT_API_KEY.

Does Sn Image Resume access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Sn Image Resume safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Sn Image Resume use?

Sn Image Resume is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Sn Image Resume use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Sn Image Resume?

Skills that share tags, products or a category with Sn Image Resume: Career-Ops Job Search Center (career-ops-hq/career-ops, 74k stars), Reactive Resume Builder (reactive-resume/reactive-resume, 44k stars), Internship Project Preparation Tool (LiuMengxuan04/shushu-internship-tool, 2.1k stars) and Resume Tailoring (varunr89/resume-tailoring-skill, 769 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Sn Image Resume?

OpenSenseNova (a GitHub organization) maintains it in OpenSenseNova/SenseNova-Skills, which has 5,749 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 9, 2026.

Source: OpenSenseNova/SenseNova-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.