Tamar Resume Tailoring
Use the tamar CLI to tailor resumes for specific job applications via the Tamar API.
Triggers
Activate when the user says anything like:
- - "tailor my resume"
- "customize my resume for"
- "help me apply for this job"
- "make a resume for this role"
- "adapt my resume"
- "target my resume at"
Prerequisites
- - The
tamar CLI must be installed by the user before using this skill: INLINECODE2 - An API key must be configured. Verify by running
tamar status. If it fails with "No API key configured", ask the user to run tamar auth --key <their-key> (keys are obtained from https://ask-tamar.com → Profile → API Keys) - Do NOT read or inspect
~/.tamarrc directly — use tamar status to check auth
Pipeline
1. Check if the user has an experience profile
CODEBLOCK0
Shows existing profiles with name, role, seniority, skills, and enrichment depth. If a profile exists, use its ID with tamar tailor --profile <id> for higher-quality output. If none exists, proceed to step 2.
2. Ensure user has a resume uploaded
If the user has a resume file and hasn't uploaded one yet:
CODEBLOCK1
3. Get the job description
Ask the user for the job description. It can be:
- - A URL (LinkedIn, company careers page, etc.)
- A file path — read the file content first
- Pasted text
4. Tailor the resume
IMPORTANT — Input safety: Never interpolate user-provided strings directly into shell commands. Always write job descriptions or multi-word arguments to a temporary file and pass the file path, or use the -- separator and single-quote the argument. This prevents shell injection from malicious input.
CODEBLOCK2
If the user also provides a resume file and hasn't uploaded before:
CODEBLOCK3
5. Review the output
The command returns JSON with:
- -
id — the generated resume ID (stored for later commands) - INLINECODE10 —
"enriched" (has profile) or "basic" (resume-only) - INLINECODE13 — job match analysis
- INLINECODE14 — list of changes made
Present the analysis summary conversationally. Highlight key matches and gaps.
6. Handle feedback
If the user wants changes:
Write the feedback to a temp file to avoid shell injection:
CODEBLOCK4
Or for a specific resume:
CODEBLOCK5
7. Download the result
CODEBLOCK6
The PDF is saved to the current directory. Tell the user the file path.
Error Handling
| Error | Action |
|---|
| INLINECODE15 | Guide user to run INLINECODE16 |
| INLINECODE17 |
Prompt to re-run
tamar auth with a new key |
|
422 Could not parse URL | Site blocks scraping (common with LinkedIn). Paste the JD text instead |
|
429 Rate limited | Tell user to wait and retry |
|
402 Plan limit reached | Direct to https://ask-tamar.com for upgrade |
| Network error / timeout | Check connection. AI calls can take 15–60s — ensure client timeout is ≥120s |
Quality Notes
- - Enriched quality (user has an experience profile — check via
tamar profile) = higher quality tailoring - Basic quality (resume-only, no profile) = still useful but less nuanced
- If user has no profile, suggest building one at https://ask-tamar.com via the interactive Q&A, or use the enrichment API flow
Example Interaction
CODEBLOCK7
Tamar Resume Tailoring
使用 tamar 命令行工具,通过 Tamar API 为特定职位申请定制简历。
触发条件
当用户说出类似以下内容时激活:
- - 定制我的简历
- 为……定制我的简历
- 帮我申请这个职位
- 为这个职位制作简历
- 调整我的简历
- 针对这个职位优化我的简历
前置条件
- - 使用此技能前,用户必须安装 tamar 命令行工具:npm install -g tamar-cli
- 必须配置 API 密钥。通过运行 tamar status 验证。如果显示未配置 API 密钥,请让用户运行 tamar auth --key <他们的密钥>(密钥从 https://ask-tamar.com → 个人资料 → API 密钥 获取)
- 不要直接读取或检查 ~/.tamarrc —— 使用 tamar status 检查认证状态
流程
1. 检查用户是否有经验档案
bash
tamar profile
显示现有档案,包括姓名、职位、资历、技能和丰富程度。如果存在档案,使用其 ID 配合 tamar tailor --profile 以获得更高质量的输出。如果不存在,则进入步骤 2。
2. 确保用户已上传简历
如果用户有简历文件但尚未上传:
bash
tamar upload <简历文件>
3. 获取职位描述
请用户提供职位描述。可以是:
- - URL(领英、公司招聘页面等)
- 文件路径 —— 先读取文件内容
- 粘贴的文本
4. 定制简历
重要 —— 输入安全: 切勿将用户提供的字符串直接插入到 shell 命令中。始终将职位描述或多词参数写入临时文件并传递文件路径,或使用 -- 分隔符并用单引号包裹参数。这可以防止恶意输入导致的 shell 注入。
bash
安全:将职位描述写入临时文件,传递文件路径
echo <职位描述文本> > /tmp/jd.txt
tamar tailor --job /tmp/jd.txt
安全:使用单引号包裹参数以防止 shell 扩展
tamar tailor --job https://example.com/jobs/12345
如果用户同时提供了简历文件且之前未上传:
bash
tamar tailor --job /tmp/jd.txt --resume <简历文件>
5. 查看输出
该命令返回 JSON,包含:
- - id —— 生成的简历 ID(保存供后续命令使用)
- quality —— enriched(有档案)或 basic(仅简历)
- analysis —— 职位匹配分析
- changes —— 所做的更改列表
以对话方式呈现分析摘要。突出关键匹配点和差距。
6. 处理反馈
如果用户想要修改:
将反馈写入临时文件以避免 shell 注入:
bash
echo <反馈文本> > /tmp/feedback.txt
tamar feedback $(cat /tmp/feedback.txt)
或针对特定简历:
bash
tamar feedback $(cat /tmp/feedback.txt) --id <简历ID>
7. 下载结果
bash
tamar download # PDF(默认)
tamar download --format json # 结构化 JSON
PDF 保存到当前目录。告知用户文件路径。
错误处理
| 错误 | 操作 |
|---|
| 未配置 API 密钥 | 引导用户运行 tamar auth --key <密钥> |
| 401 无效或已过期 |
提示使用新密钥重新运行 tamar auth |
| 422 无法解析 URL | 网站阻止抓取(领英常见)。改为粘贴职位描述文本 |
| 429 请求频率限制 | 告知用户等待后重试 |
| 402 计划限制已到 | 引导至 https://ask-tamar.com 升级 |
| 网络错误/超时 | 检查连接。AI 调用可能需要 15–60 秒 —— 确保客户端超时时间 ≥120 秒 |
质量说明
- - 丰富质量(用户有经验档案 —— 通过 tamar profile 检查)= 更高质量的定制
- 基础质量(仅简历,无档案)= 仍有用但精细度较低
- 如果用户没有档案,建议通过交互式问答在 https://ask-tamar.com 创建,或使用丰富 API 流程
示例交互
用户:你能为这个职位定制我的简历吗?https://linkedin.com/jobs/12345
助手:让我为这个职位定制您的简历。
[运行:tamar tailor --job https://linkedin.com/jobs/12345]
助手:完成!以下是我的发现:
- - 质量:丰富(使用了您的经验档案)
- 关键匹配:Python、数据管道、团队领导力
- 调整:重新表述了您的经验以强调数据平台工作
- 差距:Kubernetes —— 未列出生产环境经验
需要我调整什么吗?我也可以为您下载 PDF。