{"data":{"skill":{"slug":"ralyodio-linkedin-easy-apply","name":"linkedin-easy-apply","icon":"📦","repo":"https://github.com/ralyodio/agent-skills/tree/main/skills/linkedin-easy-apply-automation","status":"approved","author":"ralyodio","authorVersion":null,"skillstoreRevision":1},"audit":{"id":"5f3927cd-923b-429c-8900-0530bf6b886e","skill_id":"e6b9b745-11ec-4920-bc86-d52467a66a9f","version":4,"content_hash":"v3:62e2a730c5cd74eab4c7164309d810de660fcea3:e9cbbaae8dc5992cae29115d799eadb46c29c69493e9e551b4c870ffc8577104:72de4cfcbe705f533a3426c7747eca67d271bd647f1860fe776491d129c2cb1d:736b696c6c732f72616c796f64696f2f6c696e6b6564696e2d656173792d6170706c79:4b23f908852f0b6252a624c65603319c","risk_level":"high","is_blocked":false,"safe_to_publish":false,"analysis_status":"ok","agent_auto_install_policy":"confirmation_required","manual_install_policy":"allowed","summary":"Most shell-backtick detections are false positives caused by Markdown fences and inline code. Confirmed risks include sandbox-disabled Chromium, persistent browser session storage, /tmp state logs, and automated personal data submission. No prompt injection or credential exfiltration instructions were found.","remediation":[{"issue":"Chromium sandbox is disabled.","severity":"high","suggestion":"Remove --no-sandbox and --disable-setuid-sandbox when possible. Use a sandboxed browser or an isolated container for automation."},{"issue":"Persistent Chrome profile can retain session cookies.","severity":"high","suggestion":"Use a dedicated browser profile with restricted permissions. Do not reuse a primary personal browser profile."},{"issue":"State and logs are stored under /tmp.","severity":"medium","suggestion":"Store state in a private user directory with owner-only permissions. Avoid logging personal contact details or resume contents."},{"issue":"The workflow can submit applications automatically.","severity":"medium","suggestion":"Require operator review before final submission and document compliance with LinkedIn rules and rate limits."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":59,"line_start":49},{"file":"SKILL.md","line_end":63,"line_start":59},{"file":"SKILL.md","line_end":69,"line_start":63},{"file":"SKILL.md","line_end":82,"line_start":69},{"file":"SKILL.md","line_end":88,"line_start":82},{"file":"SKILL.md","line_end":90,"line_start":88},{"file":"SKILL.md","line_end":99,"line_start":90},{"file":"SKILL.md","line_end":100,"line_start":99},{"file":"SKILL.md","line_end":102,"line_start":100},{"file":"SKILL.md","line_end":104,"line_start":102},{"file":"SKILL.md","line_end":132,"line_start":104},{"file":"SKILL.md","line_end":132,"line_start":132},{"file":"SKILL.md","line_end":144,"line_start":137},{"file":"SKILL.md","line_end":148,"line_start":144},{"file":"SKILL.md","line_end":151,"line_start":148},{"file":"SKILL.md","line_end":157,"line_start":151},{"file":"SKILL.md","line_end":166,"line_start":157},{"file":"SKILL.md","line_end":172,"line_start":166},{"file":"SKILL.md","line_end":172,"line_start":172}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":100,"line_start":100}]},{"factor":"filesystem","evidence":[{"file":"SKILL.md","line_end":51,"line_start":51},{"file":"SKILL.md","line_end":69,"line_start":69},{"file":"SKILL.md","line_end":52,"line_start":52},{"file":"SKILL.md","line_end":149,"line_start":149},{"file":"SKILL.md","line_end":150,"line_start":150},{"file":"SKILL.md","line_end":164,"line_start":164},{"file":"SKILL.md","line_end":165,"line_start":165}]},{"factor":"env_access","evidence":[{"file":"SKILL.md","line_end":68,"line_start":68},{"file":"SKILL.md","line_end":69,"line_start":69},{"file":"SKILL.md","line_end":68,"line_start":68},{"file":"SKILL.md","line_end":69,"line_start":69}]}],"critical_findings":[],"high_findings":[{"title":"Environment file access","locations":[{"file":"SKILL.md","line_end":69,"line_start":69}],"confidence":0.74,"description":"userDataDir: process.env.CHROME_PROFILE || `${process.env.HOME}/.cache/linkedin-chrome`,","review_kind":"security","source_category":"sensitive","source_severity":"high","confidence_reasoning":"The line configures a persistent Chrome user data directory that can hold authenticated LinkedIn session data. Reusing this profile is sensitive even without direct exfiltration."},{"title":"UID/GID manipulation","locations":[{"file":"SKILL.md","line_end":71,"line_start":71}],"confidence":0.9,"description":"args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--start-maximized']","review_kind":"security","source_category":"blocker","source_severity":"high","confidence_reasoning":"The Chromium launch arguments disable the browser sandbox and setuid sandbox. This weakens process isolation if LinkedIn or any loaded content is compromised."}],"medium_findings":[{"title":"Hidden file access","locations":[{"file":"SKILL.md","line_end":51,"line_start":51}],"confidence":0.76,"description":"CHROME_PROFILE=$HOME/.cache/linkedin-chrome","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The skill recommends a persistent hidden Chrome profile under the user home directory. That profile can retain LinkedIn session cookies and other browser state."},{"title":"Hidden file access","locations":[{"file":"SKILL.md","line_end":69,"line_start":69}],"confidence":0.8,"description":"userDataDir: process.env.CHROME_PROFILE || `${process.env.HOME}/.cache/linkedin-chrome`,","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"Puppeteer is configured to reuse a hidden browser profile path. Persistent profiles can expose authenticated session data if permissions or isolation are weak."},{"title":"Temp directory access","locations":[{"file":"SKILL.md","line_end":52,"line_start":52}],"confidence":0.82,"description":"STATE_DIR=/tmp/linkedin-easyapply-daily","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The suggested state directory is under /tmp. Application state in a shared temporary path can be read or tampered with on multi-user systems."},{"title":"Temp directory access","locations":[{"file":"SKILL.md","line_end":149,"line_start":149}],"confidence":0.82,"description":"/tmp/linkedin-easyapply-daily/state.json","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The state file path is under /tmp and can contain application status. Shared temporary storage creates privacy and integrity risk."},{"title":"Temp directory access","locations":[{"file":"SKILL.md","line_end":150,"line_start":150}],"confidence":0.82,"description":"/tmp/linkedin-easyapply-daily/results.jsonl","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The results log path is under /tmp and can contain job URLs and submission outcomes. Shared temporary storage creates privacy and tampering risk."},{"title":"Temp directory access","locations":[{"file":"SKILL.md","line_end":164,"line_start":164}],"confidence":0.82,"description":"State: /tmp/linkedin-easyapply-daily/state.json","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The reporting section exposes the state path under /tmp. That location is a weak default for user-specific application history."},{"title":"Temp directory access","locations":[{"file":"SKILL.md","line_end":165,"line_start":165}],"confidence":0.82,"description":"Log: /tmp/linkedin-easyapply-daily/results.jsonl","review_kind":"capability","source_category":"filesystem","source_severity":"medium","confidence_reasoning":"The reporting section exposes the log path under /tmp. Logs may include personal job search activity and should not use shared temporary storage."},{"title":"Automated Personal Data Submission","locations":[{"file":"SKILL.md","line_end":36,"line_start":29},{"file":"SKILL.md","line_end":133,"line_start":125}],"confidence":0.91,"description":"The skill directs an agent to upload a resume and submit LinkedIn applications. This can expose personal data or submit unwanted applications if approval controls are weak.","review_kind":"security","source_category":"semantic","source_severity":"medium","confidence_reasoning":"The workflow explicitly searches LinkedIn Easy Apply, uploads a verified resume, and clicks submit when required fields are known. The context confirms automated third-party submission of personal job application data."}],"low_findings":[],"dangerous_patterns":[{"title":"UID/GID manipulation","locations":[{"file":"SKILL.md","line_end":71,"line_start":71}],"confidence":0.9,"description":"args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--start-maximized']","review_kind":"security","source_category":"blocker","source_severity":"high","confidence_reasoning":"The Chromium launch arguments disable the browser sandbox and setuid sandbox. This weakens process isolation if LinkedIn or any loaded content is compromised."}],"files_scanned":1,"total_lines":175,"audit_model":"codex","audited_at":"2026-07-05T20:07:52.216+00:00","created_at":"2026-07-17T19:18:15.041991+00:00","static_findings":[{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":59,"severity":"medium","line_start":49},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":63,"severity":"medium","line_start":59},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```js","category":"external_commands","line_end":69,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"userDataDir: process.env.CHROME_PROFILE || `${process.env.HOME}/.cache/linkedin-chrome`,","category":"external_commands","line_end":82,"severity":"medium","line_start":69},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":88,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `f_AL=true` for Easy Apply.","category":"external_commands","line_end":90,"severity":"medium","line_start":88},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Location such as `United States` when requested.","category":"external_commands","line_end":99,"severity":"medium","line_start":90},{"id":"external_commands:SKILL.md:99:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```js","category":"external_commands","line_end":100,"severity":"medium","line_start":99},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"const applyUrl = `https://www.linkedin.com/jobs/view/${jobId}/apply/?openSDUIApplyFlow=true`;","category":"external_commands","line_end":102,"severity":"medium","line_start":100},{"id":"external_commands:SKILL.md:102:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":104,"severity":"medium","line_start":102},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"If the modal does not open, fall back to clicking visible `Easy Apply` controls across buttons and l","category":"external_commands","line_end":132,"severity":"medium","line_start":104},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"6. Click `Next`, `Review`, then `Submit application` only when no unknown required fields remain.","category":"external_commands","line_end":132,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":144,"severity":"medium","line_start":137},{"id":"external_commands:SKILL.md:144:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":148,"severity":"medium","line_start":144},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```text","category":"external_commands","line_end":151,"severity":"medium","line_start":148},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":157,"severity":"medium","line_start":151},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```text","category":"external_commands","line_end":166,"severity":"medium","line_start":157},{"id":"external_commands:SKILL.md:166:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":172,"severity":"medium","line_start":166},{"id":"external_commands:SKILL.md:172:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Broad keyword matching can create bad answers. Avoid treating generic words like `United States` o","category":"external_commands","line_end":172,"severity":"medium","line_start":172},{"id":"network:SKILL.md:100:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"const applyUrl = `https://www.linkedin.com/jobs/view/${jobId}/apply/?openSDUIApplyFlow=true`;","category":"network","line_end":100,"severity":"low","line_start":100},{"id":"filesystem:SKILL.md:51:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"CHROME_PROFILE=$HOME/.cache/linkedin-chrome","category":"filesystem","line_end":51,"severity":"medium","line_start":51},{"id":"filesystem:SKILL.md:69:hidden-file-access","file":"SKILL.md","pattern":"Hidden file access","snippet":"userDataDir: process.env.CHROME_PROFILE || `${process.env.HOME}/.cache/linkedin-chrome`,","category":"filesystem","line_end":69,"severity":"medium","line_start":69},{"id":"filesystem:SKILL.md:52:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"STATE_DIR=/tmp/linkedin-easyapply-daily","category":"filesystem","line_end":52,"severity":"medium","line_start":52},{"id":"filesystem:SKILL.md:149:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"/tmp/linkedin-easyapply-daily/state.json","category":"filesystem","line_end":149,"severity":"medium","line_start":149},{"id":"filesystem:SKILL.md:150:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"/tmp/linkedin-easyapply-daily/results.jsonl","category":"filesystem","line_end":150,"severity":"medium","line_start":150},{"id":"filesystem:SKILL.md:164:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"State: /tmp/linkedin-easyapply-daily/state.json","category":"filesystem","line_end":164,"severity":"medium","line_start":164},{"id":"filesystem:SKILL.md:165:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"Log: /tmp/linkedin-easyapply-daily/results.jsonl","category":"filesystem","line_end":165,"severity":"medium","line_start":165},{"id":"env_access:SKILL.md:68:environment-variable-access-dot-notation","file":"SKILL.md","pattern":"Environment variable access (dot notation)","snippet":"executablePath: process.env.CHROME_BIN || '/snap/bin/chromium',","category":"env_access","line_end":68,"severity":"low","line_start":68},{"id":"env_access:SKILL.md:69:environment-variable-access-dot-notation","file":"SKILL.md","pattern":"Environment variable access (dot notation)","snippet":"userDataDir: process.env.CHROME_PROFILE || `${process.env.HOME}/.cache/linkedin-chrome`,","category":"env_access","line_end":69,"severity":"low","line_start":69},{"id":"env_access:SKILL.md:68:environment-variable-object","file":"SKILL.md","pattern":"Environment variable object","snippet":"executablePath: process.env.CHROME_BIN || '/snap/bin/chromium',","category":"env_access","line_end":68,"severity":"low","line_start":68},{"id":"env_access:SKILL.md:69:environment-variable-object","file":"SKILL.md","pattern":"Environment variable object","snippet":"userDataDir: process.env.CHROME_PROFILE || `${process.env.HOME}/.cache/linkedin-chrome`,","category":"env_access","line_end":69,"severity":"low","line_start":69},{"id":"sensitive:SKILL.md:68:environment-file-access","file":"SKILL.md","pattern":"Environment file access","snippet":"executablePath: process.env.CHROME_BIN || '/snap/bin/chromium',","category":"sensitive","line_end":68,"severity":"high","line_start":68},{"id":"sensitive:SKILL.md:69:environment-file-access","file":"SKILL.md","pattern":"Environment file access","snippet":"userDataDir: process.env.CHROME_PROFILE || `${process.env.HOME}/.cache/linkedin-chrome`,","category":"sensitive","line_end":69,"severity":"high","line_start":69},{"id":"blocker:SKILL.md:71:uid-gid-manipulation","file":"SKILL.md","pattern":"UID/GID manipulation","snippet":"args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--start-maximized']","category":"blocker","line_end":71,"severity":"high","line_start":71},{"id":"blocker:SKILL.md:36:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Keeps state and JSONL logs so daily reruns avoid duplicates.","category":"blocker","line_end":36,"severity":"low","line_start":36},{"id":"blocker:SKILL.md:172:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Broad keyword matching can create bad answers. Avoid treating generic words like `United States` o","category":"blocker","line_end":172,"severity":"low","line_start":172}],"finding_verdicts":[{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:59:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","reason":"The snippet uses inline Markdown or JavaScript template syntax in documentation. It does not execute a shell command.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:88:ruby-shell-backtick-execution","reason":"The snippet uses inline Markdown or JavaScript template syntax in documentation. It does not execute a shell command.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:90:ruby-shell-backtick-execution","reason":"The snippet uses inline Markdown or JavaScript template syntax in documentation. It does not execute a shell command.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:99:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","reason":"The backticks are a JavaScript template literal for a LinkedIn URL, not shell execution. No shell command or user-controlled command string is present.","verdict":"false_positive","confidence":0.88},{"id":"external_commands:SKILL.md:102:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","reason":"The snippet uses inline Markdown or JavaScript template syntax in documentation. It does not execute a shell command.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"The snippet uses inline Markdown or JavaScript template syntax in documentation. It does not execute a shell command.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:144:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:166:ruby-shell-backtick-execution","reason":"The finding points to Markdown code fences or example text. It is not executable Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:172:ruby-shell-backtick-execution","reason":"The snippet uses inline Markdown or JavaScript template syntax in documentation. It does not execute a shell command.","verdict":"false_positive","confidence":0.9},{"id":"network:SKILL.md:100:hardcoded-url","reason":"The hardcoded URL is the documented LinkedIn Easy Apply endpoint used by the skill. It does not send data to an unexpected host.","verdict":"false_positive","confidence":0.84},{"id":"filesystem:SKILL.md:51:hidden-file-access","reason":"The skill recommends a persistent hidden Chrome profile under the user home directory. That profile can retain LinkedIn session cookies and other browser state.","verdict":"confirmed","severity":"medium","confidence":0.76},{"id":"filesystem:SKILL.md:69:hidden-file-access","reason":"Puppeteer is configured to reuse a hidden browser profile path. Persistent profiles can expose authenticated session data if permissions or isolation are weak.","verdict":"confirmed","severity":"medium","confidence":0.8},{"id":"filesystem:SKILL.md:52:temp-directory-access","reason":"The suggested state directory is under /tmp. Application state in a shared temporary path can be read or tampered with on multi-user systems.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"filesystem:SKILL.md:149:temp-directory-access","reason":"The state file path is under /tmp and can contain application status. Shared temporary storage creates privacy and integrity risk.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"filesystem:SKILL.md:150:temp-directory-access","reason":"The results log path is under /tmp and can contain job URLs and submission outcomes. Shared temporary storage creates privacy and tampering risk.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"filesystem:SKILL.md:164:temp-directory-access","reason":"The reporting section exposes the state path under /tmp. That location is a weak default for user-specific application history.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"filesystem:SKILL.md:165:temp-directory-access","reason":"The reporting section exposes the log path under /tmp. Logs may include personal job search activity and should not use shared temporary storage.","verdict":"confirmed","severity":"medium","confidence":0.82},{"id":"env_access:SKILL.md:68:environment-variable-access-dot-notation","reason":"CHROME_BIN is read as an operator-provided browser executable path. The snippet does not read secrets or transmit environment values.","verdict":"false_positive","confidence":0.78},{"id":"env_access:SKILL.md:69:environment-variable-access-dot-notation","reason":"CHROME_PROFILE and HOME are used to build a local browser profile path. The risk is filesystem persistence, not environment secret access.","verdict":"false_positive","confidence":0.72},{"id":"env_access:SKILL.md:68:environment-variable-object","reason":"The process.env reference selects a Chromium binary path. No environment secret is collected or sent elsewhere.","verdict":"false_positive","confidence":0.78},{"id":"env_access:SKILL.md:69:environment-variable-object","reason":"The process.env reference selects a browser profile directory. This is configuration access, not broad environment harvesting.","verdict":"false_positive","confidence":0.72},{"id":"sensitive:SKILL.md:68:environment-file-access","reason":"The line references CHROME_BIN and a Chromium path, not an environment file or secret file. No sensitive file read is shown.","verdict":"false_positive","confidence":0.79},{"id":"sensitive:SKILL.md:69:environment-file-access","reason":"The line configures a persistent Chrome user data directory that can hold authenticated LinkedIn session data. Reusing this profile is sensitive even without direct exfiltration.","verdict":"confirmed","severity":"high","confidence":0.74},{"id":"blocker:SKILL.md:71:uid-gid-manipulation","reason":"The Chromium launch arguments disable the browser sandbox and setuid sandbox. This weakens process isolation if LinkedIn or any loaded content is compromised.","verdict":"confirmed","severity":"high","confidence":0.9},{"id":"blocker:SKILL.md:36:system-reconnaissance","reason":"Keeping state and JSONL logs for duplicate avoidance is not system reconnaissance. The line describes application workflow state only.","verdict":"false_positive","confidence":0.9},{"id":"blocker:SKILL.md:172:system-reconnaissance","reason":"The line warns against broad keyword matching in job applications. It does not inspect the host system or enumerate local resources.","verdict":"false_positive","confidence":0.9}],"semantic_findings":[{"title":"Automated Personal Data Submission","severity":"medium","locations":[{"file":"SKILL.md","line_end":36,"line_start":29},{"file":"SKILL.md","line_end":133,"line_start":125}],"confidence":0.91,"description":"The skill directs an agent to upload a resume and submit LinkedIn applications. This can expose personal data or submit unwanted applications if approval controls are weak.","confidence_reasoning":"The workflow explicitly searches LinkedIn Easy Apply, uploads a verified resume, and clicks submit when required fields are known. The context confirms automated third-party submission of personal job application data."}],"subject_marketplace_commit_sha":"62e2a730c5cd74eab4c7164309d810de660fcea3","subject_content_hash":"e9cbbaae8dc5992cae29115d799eadb46c29c69493e9e551b4c870ffc8577104","subject_tree_hash":"72de4cfcbe705f533a3426c7747eca67d271bd647f1860fe776491d129c2cb1d","subject_plugin_path":"skills/ralyodio/linkedin-easy-apply","audit_payload_hash":"4b23f908852f0b6252a624c65603319c","confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":"62e2a730c5cd74eab4c7164309d810de660fcea3","contentHash":"e9cbbaae8dc5992cae29115d799eadb46c29c69493e9e551b4c870ffc8577104","treeHash":"72de4cfcbe705f533a3426c7747eca67d271bd647f1860fe776491d129c2cb1d","pluginPath":"skills/ralyodio/linkedin-easy-apply","auditPayloadHash":"4b23f908852f0b6252a624c65603319c"},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"high","confirmedFindingCount":3,"capabilityReviewCount":7,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"confirmation_required","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":true}}