Agent skill

Recruitment Mail

by 849879772 in 849879772/recruitops-agent

Search, inspect, and explicitly process persisted recruitment mail with bounded model analysis and guarded application writes.

MITAuto-check: warningsBusiness, Finance & HR

Install Recruitment Mail

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add 849879772/recruitops-agent --skill recruitment-mail -a claude-code

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

GitHub CLI
$ gh skill install 849879772/recruitops-agent recruitment-mail --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/849879772/recruitops-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/recruitment-mail .claude/skills/recruitment-mail && 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
recruitment-mail
GitHub stars
130
Token cost
~3.3k tokens
SKILL.md length
1,720 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Search, inspect, and explicitly process persisted recruitment mail with bounded model analysis and guarded application writes.

  • Works in 9 steps: Read redacted summaries first and open… → Use recruitment_mail_processing_status… → Call recruitment_mail_process only when… → …
  • Tasks that involve Recruiting and HR
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Recruitment Mail is an agent skill from 849879772/recruitops-agent. Search, inspect, and explicitly process persisted recruitment mail with bounded model analysis and guarded application writes.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Business, Finance & HR, covering Recruiting and HR. The repository describes itself as: Local-first recruitment intelligence and application operations agent. The licence is MIT.

When your agent uses it

  • Tasks that involve Recruiting and HR

Example prompts

  • “/recruitment-mail”

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Read redacted summaries first and open only the required persisted detail. recruitment_mail_search,
  2. Use recruitment_mail_processing_status only to inspect persisted processing state. It does not
  3. Call recruitment_mail_process only when the user explicitly requests processing.
  4. The process service refreshes mail once, skips already processed and non-retryable records, and
  5. Treat model output as an untrusted proposal. For an application-stage write, require persisted
  6. Do not make speculative writes or retries. A terminal or retryable=false outcome for the
  7. Handle one-off processing directly.
  8. Preserve returned internal states exactly, but use Chinese labels in normal user-facing output
  9. Never expose mailbox credentials, model/API keys, tokens, complete message bodies, or

What it can do on your machine

Read from SKILL.md and the folder at commit 1584307. 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

    No scripts in the folder and no shell commands in SKILL.md.

    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 no API keys, tokens, secrets or passwords.

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

Context cost

Recruitment Mail loads about 3.3k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 1,720 words of instructions outside code blocks.

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

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

The automated check found patterns that need a careful read before installing.

  • WarningTells the agent its actions are pre-authorized / not to stop for confirmationSKILL.md:65
    If interrupted, discover saved runs without asking the user for an internal ID;

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 849879772/recruitops-agent at commit 1584307, republished under its MIT licence (© 849879772). 1,720 words, ~3,265 tokens.

Download SKILL.mdSave it as .claude/skills/recruitment-mail/SKILL.md (or your agent's skills folder).
name
recruitment-mail
description
Search, inspect, and explicitly process persisted recruitment mail with bounded model analysis and guarded application writes.

Recruitment Mail

Current-turn processing

An application with no valid saved record_url is 仅邮件更新 (mail-only), not an invalid application. Its missing website link must not block a uniquely bound, verified mail event or trigger a browser follow-up. The same evidence, identity, time, approval, and forward-only stage rules below still apply. An unmatched mail requires user-confirmed binding where applicable; do not invent a link or a match.

For a request to process mail, use recruitment_mail_run_start and keep the assistant turn open. It waits for up to 20 seconds; if continuation_required=true, call recruitment_mail_run_status(run_id=the_returned_id,wait_ms=20000) until the saved run reaches a terminal state, then report its actual outcomes. A bounded wait returning active is not a failure or a reason to ask the user whether to continue. Never end with only “后台已启动,请稍后询问”. Progress cards remain visible during the wait. Only the full recruitment crawl uses that fire-and-forget interaction.

Always pass the current conversation's thread_id when starting conversational mail processing. Never guess the newest global task to attach an unrelated chat. If the run returns awaiting_confirmation, the task is NOT completed: report “等待你选择关联岗位” and let the workbench's single confirmation dialog collect the choice. Do not keep polling, ask the user to type a job name/“继续”, or create another processing run for these pending records. The durable original scope is resumed by the confirmation action after a valid human-approved binding; other failed or completed mail is not replayed. Closing the dialog means later, not rejection. The final automatic summary is read-only and must describe that exact run's saved receipt; it never authorizes syncing, processing, binding, or stage writes again.

Before reporting mail results, inspect the saved run's freshness and sync_warning. synced confirms a mailbox refresh; cached reuses a recent refresh and must not be described as a new fetch. If sync_warning=true, report “未确认最新邮件,仅处理本地已保存邮件” and the actual local processing outcomes. A partial run may mean synchronization failed even when all local messages were processed. not_requested means no refresh was requested; never infer mailbox freshness from local processing success. A mail_sync_in_progress response means another sync is pending, not that it failed.

Mailbox freshness does not prove new model analysis. Read model_attempted_count (messages sent to triage/analysis), model_call_count, historical_failure_count, and failure_results[].analysis_source. history means a saved outcome was reused, not a new model attempt. model_attempted_count is not a completed-analysis count. Use saved safe diagnostics: http_401/403 is authentication, http_429 is rate limiting, http_5xx is a service response, transport_failed is a transport failure, and output/schema errors do not prove service unavailability. An old generic DeepSeekClientError cannot identify the underlying cause.

The service retries transient transport/408/429/5xx failures at most once per model request with short backoff, and allows at most three processing rounds for the same evidence/input with cooldowns. A legacy generic client failure gets one bounded compatibility round. Status polls never spend or reset a retry budget. After those limits, or after configuration/output failures, do not automatically keep starting runs to retry the failure. When the user explicitly requests a retry, use recruitment_mail_run_start(retry_failed=true,record_ids=[selected failed IDs],refresh=false). This requires 1–50 explicit failed records, freezes their current digests, does not refresh/expand the mailbox, and authorizes only one new bounded round per selected record. Successful mail cannot be retried. Follow the normal bounded wait until terminal. User-triggered retry does not waive evidence, identity, forward-only stage, or source-bound schedule idempotency checks.

If interrupted, discover saved runs without asking the user for an internal ID; resume only on their instruction via recruitment_mail_run_control(action=resume) and keep waiting in this turn. Pause/cancel is explicit and cannot be undone by a status poll. For a progress-only query, read once with wait_ms=0; do not start work. The durable run freezes and processes batches internally through the same guarded recruitment_mail_process pipeline. The legacy per-batch limits below apply only when that lower-level tool is used directly, not to the durable run's read-only waits.

Assessment invitations (assessment) remain classified as assessment mail but map to applied, not a written-test stage. Explicit written-test notices (written_test) map to written. Use the mail content to distinguish them; neither case may roll back a later application stage.

The confirmation dialog supports multiple applications only for a validated company-wide assessment/written-test event without an exclusive job title/code. Use allows_multiple and selection_scope from binding candidates, not an assistant-created guess. A user may select several same-company applications in one approved binding; application_ids and applications are authoritative, while the legacy application_id is only the compatible primary target. Job-specific notifications remain single-target. Do not auto-select, approve, expand to all company applications, or replay one confirmation per selected job. After confirmation the original run resumes once, validates each selected identity and forward-only event update independently, and exposes application_results. Report partial failures separately; one successful application does not prove every selected application was updated. The one source-bound schedule_item lists its application_ids/associated_jobs; never create a copy per selected application.

  1. Read redacted summaries first and open only the required persisted detail. recruitment_mail_search, recruitment_mail_detail, and recruitment_mail_review are read-only; their refresh path may sync the mailbox but must not update application progress or create schedule items. Only an explicit recruitment_mail_process pass may create a schedule item. Review previews require existing validated model analysis. If it is missing, report that processing is required; never lower thresholds or use historical keyword fields as evidence.
  2. Use recruitment_mail_processing_status only to inspect persisted processing state. It does not synchronize mail, call a model, or write. Distinguish model proposed analysis from verified identity/event evidence and the actual written or unchanged application outcome.
  3. Call recruitment_mail_process only when the user explicitly requests processing. Omit timeout_ms to use its default 90000, or set at most 90000; do not discover this limit by a rejected call. It performs the bounded triage/full-analysis pass and invokes the unified guarded write path; do not replay pending body classification in the tool or fan out one write call per message. One call processes at most ten messages, not the whole mailbox. For a request to process all pending mail, continue with the same original scope when has_more=true and processed>0. Make at most five batch calls per turn. Do not reset failure budgets or expand an explicit scope; an explicit user retry uses the targeted durable-run entry described above. Stop on blocked results, no progress, or the call limit and report remaining_count. Aggregate all batch counts; never say all mail is processed merely because one batch completed. Before claiming completion, require has_more=false and scope_complete=true, inspect recruitment_mail_processing_status, and disclose any unresolved/failed records across batches.
  4. The process service refreshes mail once, skips already processed and non-retryable records, and returns the actual per-record outcomes. For assessment, written_test, interview, and action_required, it also creates or reuses the source-bound item in the shared schedule_event_snapshots table and returns it as that result's schedule_item. A company-only assessment or action reminder may legitimately have application_id=null; never force an application binding from a company or job-title guess. Inspect each returned schedule_item, plus the batch totals schedule_items_created and schedule_items_time_unconfirmed. Do not call schedule_manage(action=create) to recreate a mail-derived item, even when its time is unconfirmed; use the returned item. If the user explicitly asks to edit an existing mail-derived item, schedule_manage(action=update) is allowed; preserve its source and source_ref and do not create a second item. Treat completed and partial as results to inspect, not permission to invent success; blocked, failed, ambiguous_application, pending_association, and failed_terminal remain unresolved or failed as reported.
  5. Treat model output as an untrusted proposal. For an application-stage write, require persisted sender, exact evidence, event meaning/time, and unique application identity; a company-only match is never sufficient for that application-stage write. This rule does not require a company-level schedule item to bind an application: a valid assessment/action todo may keep application_id=null. When an application is explicitly supplied for a schedule item, use its exact company/job identity and reject a mismatch; do not infer the binding. An unchanged or stale application result is not a write.
  6. Do not make speculative writes or retries. A terminal or retryable=false outcome for the same persisted evidence version must not be resubmitted with altered quotations, IDs, or prompts. Apart from the service's bounded transient retries, retry only when evidence/input changes or the user explicitly authorizes the targeted retry_failed=true run. A retry of mail analysis is not authority to replay or bypass a rejected application-stage write.
  7. Handle one-off processing directly. A mail analysis/schema failure is not evidence that an application changed. Report it as a mail-pipeline failure, not a provider failure unless the diagnostic confirms that origin. Do not substitute browser status checks for failed mail analysis or missing mail details: they cannot recover the assessment invitation or its deadline. If the user also requested browser verification, keep that independent result separate from the failed mail task. Do not use a scheduler workaround, unrelated RAG/search, web exploration, a second calendar-creation call for a mail-derived item, or external sending/deletion when local records suffice. Explicit user-created local tasks may use schedule_manage; mail-derived schedule items must come from recruitment_mail_process, with schedule_manage(action=update) reserved for an explicit edit of an existing returned item.
  8. Preserve returned internal states exactly, but use Chinese labels in normal user-facing output: 模型建议, 已验证, 已写入, 状态未变化, 无法确认, and 执行失败. Report notifications separately as 普通通知已处理(无需关联) and reminders as 待办提醒. Neither category is a verified unchanged application status. A pure thank-you/welcome receipt needs no application association. Read its full body first; real events and actions take precedence. has_more=false or zero pending only means no runnable batch remains. If unfinished_count>0 or scope_complete=false, explicitly report remaining unresolved/failed mail; do not say all mail is resolved or the mailbox is fully completed. Use Chinese summary labels, not raw English keys. Summarize only this invocation's results and unresolved items in scope. Do not list old completed mail (for example Dahua/DJI) or read their bodies just to decorate the summary. Refresh processing status before the final answer and before offering to process any previously mentioned unresolved IDs. Current persisted states override conversation history. If no runnable items remain but unresolved items exist, say the automatic batch finished and report the remaining required actions, not that every mail was resolved. Historical results may be mentioned only when the user explicitly asks about history or a current conflict requires that specific evidence. Never equate listing metadata with rereading or reprocessing an email. Never claim that a proposed model analysis was verified or that a guarded write occurred without the returned write result.
  9. Never expose mailbox credentials, model/API keys, tokens, complete message bodies, or unnecessary message content.

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

Files

Just SKILL.md in .agents/skills/recruitment-mail of 849879772/recruitops-agent.

Open the folder on GitHubat commit 1584307

Compare with similar skills

Recruitment Mail 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.

Recruitment Mail compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Recruitment Mail this skill849879772/recruitops-agent130—~3.3kAutomated safety check: WarnMIT
Get Jobagentenatalie/get-job.skill632—~1.7kAutomated safety check: PassCC-BY-NC-ND-4.0
Resume Reviewerweeelin98/ResumeDom173—~2.4kAutomated safety check: PassNone
Build Resume Portfolio Sitetao943/build-resume-portfolio-site195—~5.8kAutomated safety check: PassNone
Cyber Resume Reviewermubix/cyber-resume-reviewer-skill184—~2.9kAutomated safety check: PassMIT
Repo To Resume TailorSsabby1/repo-to-resume-tailor127—~1.8kAutomated safety check: PassMIT

Similar skills

  • Get Job

    agentenatalie/get-job.skill

    实习.skill / get-job.skill:从岗位调研、简历改写到分轮次面试准备的全流程求职 skill。适合找工作、投实习、校招、秋招、春招、暑期实习、社招、跳槽、转行、跨专业求职、留学生求职,以及产品经理、运营、市场、咨询、AI 产品、AI Coding、数据分析、技术岗等目标岗位准备。

    632 GitHub stars~1.7k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Resume Reviewer

    weeelin98/ResumeDom

    Build, assess, review, and tailor evidence-backed US-market technology resumes for computer-science interns and new graduates.

    173 GitHub stars~2.4k tokensUpdated 15 days ago
    Business, Finance & HRAuto-check passed
  • Build Resume Portfolio Site

    tao943/build-resume-portfolio-site

    A skill your agent uses when turning resume materials and an optional job description into verified, approved content and a runnable React + Vite resume or portfolio site, or when redesigning an…

    195 GitHub stars~5.8k tokensUpdated 10 days ago
    Business, Finance & HRAuto-check passed
  • Cyber Resume Reviewer

    mubix/cyber-resume-reviewer-skill

    Review, tailor, score, or rewrite IT and cybersecurity resumes.

    184 GitHub stars~2.9k tokensUpdated 20 days ago
    Business, Finance & HRAuto-check passed
  • Repo To Resume Tailor

    Ssabby1/repo-to-resume-tailor

    Analyze a full code repository and generate one resume-ready project description grounded in repository evidence.

    127 GitHub stars~1.8k tokensUpdated 6 mo ago
    Business, Finance & HRAuto-check passed
  • This skill helps users extract GitHub repository project details and contributor contact information using keywords, stars, and update dates.

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

More from 849879772/recruitops-agent

  • Crawler Operations

    849879772/recruitops-agent

    Run, diagnose, and validate local recruitment crawler operations.

    130 GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Schedule Management

    849879772/recruitops-agent

    Inspect recruitment schedules, detect conflicts, and manage local interview or test events.

    130 GitHub stars~901 tokensUpdated 4 days ago
    Auto-check passed
  • Application Status

    849879772/recruitops-agent

    Verify and update recorded applications from page evidence through the connected desktop or Edge browser bridge.

    130 GitHub stars~5.4k tokensUpdated 4 days ago
    Auto-check: warnings
  • Job Intelligence

    849879772/recruitops-agent

    Search, explain, compare, and recommend persisted campus recruitment jobs.

    130 GitHub stars~154 tokensUpdated 4 days ago
    Auto-check passed

Questions about Recruitment Mail

What does Recruitment Mail do?

Search, inspect, and explicitly process persisted recruitment mail with bounded model analysis and guarded application writes. Recruitment Mail is an agent skill from 849879772/recruitops-agent. Search, inspect, and explicitly process persisted recruitment mail with bounded model analysis and guarded application writes.

When should I use Recruitment Mail?

Recruitment Mail fits situations like: tasks that involve Recruiting and HR.

How do I install Recruitment Mail in Claude Code?

Run `npx skills add 849879772/recruitops-agent --skill recruitment-mail -a claude-code`. Or copy the skill folder (.agents/skills/recruitment-mail in 849879772/recruitops-agent) into .claude/skills/recruitment-mail in your project. Claude Code loads it when a task matches its description.

How do I install Recruitment Mail in Codex?

Run `npx skills add 849879772/recruitops-agent --skill recruitment-mail -a codex`. Or copy the skill folder (.agents/skills/recruitment-mail in 849879772/recruitops-agent) into .agents/skills/recruitment-mail in your project. Codex loads it when a task matches its description.

Can I use Recruitment Mail 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 849879772/recruitops-agent --skill recruitment-mail -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/recruitment-mail, .gemini/skills/recruitment-mail, .github/skills/recruitment-mail and .opencode/skills/recruitment-mail in your project.

What does Recruitment Mail need to run?

SKILL.md names no scripts, command-line tools or credentials: Recruitment Mail is instructions for the agent only.

Does Recruitment Mail 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 Recruitment Mail safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Recruitment Mail use?

Recruitment Mail 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 Recruitment Mail use?

About 3.3k tokens (SKILL.md is roughly 13k 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 Recruitment Mail?

Skills that share tags, products or a category with Recruitment Mail: Get Job (agentenatalie/get-job.skill, 632 stars), Resume Reviewer (weeelin98/ResumeDom, 173 stars), Build Resume Portfolio Site (tao943/build-resume-portfolio-site, 195 stars) and Cyber Resume Reviewer (mubix/cyber-resume-reviewer-skill, 184 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Recruitment Mail?

849879772 (a GitHub user) maintains it in 849879772/recruitops-agent, which has 130 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

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