Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

resume-jd-matcher

v2.0.3

批量解析简历并与岗位 JD 进行 AI 智能匹配,生成结构化匹配报告(Excel)

0· 34·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description (resume ↔ JD matching) aligns with the code: scripts parse .docx/.pdf, create tasks, call subagents or external APIs, and produce Excel output. However there are mismatches: main.py dynamically imports a file at C:\Users\Administrator\.openclaw\workspace\resume_match_v2.0.2.py which is not present in the package (the repo has scripts/resume_match.py). Config/example files use different default paths (D:\ vs C:\) across SKILL.md, README, and _meta.json. These inconsistent paths/import targets make runtime behavior unclear and could cause failures or unexpected fallbacks.
!
Instruction Scope
SKILL.md and code intentionally read local resume/JD files and write outputs including parsed JSON copies of each resume into a parsed/ folder — expected for the feature but means full resume text is persisted to disk. In 'api' mode the skill will send entire resume text to configured external endpoints. The SKILL.md claims subagent mode needs no API keys, but the code and config support an 'api' mode that will transmit potentially sensitive resume content to third‑party APIs. The instructions and code do not request unrelated system files, but they do write parsed personal data to disk and may call external services if API mode is enabled.
Install Mechanism
There is no separate install spec or remote download — risk from installation mechanism is low. The skill is provided as code files (no arbitrary archive downloads).
!
Credentials
Registry metadata declares no required environment variables or primary credential, but the included references/config_resume_match.yaml contains multiple hard-coded API keys and bearer tokens for various providers (e.g., entries under 'api_providers' with api_key values). Embedding third‑party API keys in the repository is a red flag: (1) those keys may be stale/leaked credentials belonging to someone else, (2) the skill can be switched into 'api' mode and will send full resume contents to external endpoints using those credentials. The skill's declared permissions (sessions_spawn, subagents, sessions_history) are appropriate for subagent operation, but the presence of embedded secrets is disproportionate to the stated 'no env needed' claim and increases data‑exfiltration risk.
Persistence & Privilege
always is false and the skill does not request permanent platform-wide privileges. It does require OpenClaw subagent-related permissions (sessions_spawn, subagents, sessions_history) which are consistent with its design to spawn child agents. The skill does not appear to modify other skills or system-wide settings.
What to consider before installing
This skill appears to implement resume↔JD matching, but proceed cautiously. Key concerns: 1) The repo includes hard-coded API keys and bearer tokens in references/config_resume_match.yaml — treat these as insecure and remove them before use; do NOT assume they are safe or your own. 2) If you enable 'api' mode (or if the skill falls back to the included config), the skill will send full resume text (sensitive personal data) to external third-party endpoints — verify which endpoint and credential will actually be used. 3) main.py expects an import path (resume_match_v2.0.2.py) that isn't in the package — this mismatch could cause failures or unexpected behavior; inspect/repair the entrypoint before running. 4) The skill writes parsed resume JSON files to disk (parsed/ folder) — ensure your environment is secure and permitted to store those files. Recommended actions before installing/running: a) Inspect and remove any embedded api_key values from config files; b) Create/verify a config_resume_match.yaml that uses only your approved endpoints/keys or uses 'subagent' mode; c) Run in a safe test environment with non-sensitive sample resumes; d) Consider disabling API mode or running offline if you cannot verify the third‑party providers; e) Fix the inconsistent import/path references (or run the provided scripts directly) and confirm expected behavior. If you want, I can point to the exact lines/files containing embedded keys and the dynamic import for quick remediation.

Like a lobster shell, security has layers — review code before you run it.

aivk97c7c6rn88295b4nz1sk2pzx9845yp7excelvk97c7c6rn88295b4nz1sk2pzx9845yp7hrvk97c7c6rn88295b4nz1sk2pzx9845yp7jdvk97c7c6rn88295b4nz1sk2pzx9845yp7latestvk97c7c6rn88295b4nz1sk2pzx9845yp7matchingvk97c7c6rn88295b4nz1sk2pzx9845yp7resumevk97c7c6rn88295b4nz1sk2pzx9845yp7

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Comments