This document outlines the security measures implemented in the Root Ventures Claude Apply Skill and known limitations.
- JSON Injection Protection: All user inputs are passed to
jqusing--argflags, which treats them as literal strings and properly escapes special characters - No eval/exec: User input is never executed as code
- Validation: Required fields (name, email) are validated before processing
- mktemp: Uses
mktempto create secure temporary files with unpredictable names - Cleanup: Trap ensures temporary files are deleted even on script failure
- Permissions: Temporary files inherit secure permissions from mktemp
- Encrypted Transport: All downloads use HTTPS to prevent man-in-the-middle attacks
- GitHub Trust: Files downloaded from GitHub's trusted CDN
- set -e: Script exits immediately on errors to prevent cascading failures
- Graceful Degradation: Clear error messages guide users when issues occur
- Read-Only Access: Script only reads from user's home directory for skill files
- Write-Only Webhook: Attio webhook can only create records, not read existing data
- No Persistent State: No data stored locally after submission
Status: Accepted Risk
Description: The Attio webhook URL is public in the GitHub repository.
Why It's Acceptable:
- Webhook is write-only (can't read existing data)
- Attio provides rate limiting
- Intended for public job applications
- No sensitive data exposure
Mitigation: Monitor Attio for spam applications, use webhook secret tokens if needed
Status: Accepted Risk
Description: Downloaded files (skill.json, prompt.txt, apply.sh) are not cryptographically verified.
Why It's Acceptable:
- HTTPS provides transport security
- GitHub provides platform security
- Low-value target for attackers
- User can manually inspect files before running
If You Want Extra Security:
# Manually verify downloaded files
cd ~/.claude/skills/root-ventures-apply
cat apply.sh # Review the script
cat prompt.txt # Review the promptDescription: Assumes user running the skill has appropriate permissions on their system.
Mitigation: Script only modifies user's home directory (~/.claude/skills/)
- User Input → Claude CLI → apply.sh arguments
- apply.sh → jq (sanitizes) → JSON payload
- JSON payload → HTTPS POST → Attio webhook
- Attio → Stores in your workspace
- Review the code: Check the GitHub repository
- Verify URL: Ensure you're downloading from
github.com/rootvc/claude-apply-skill - Check HTTPS: Browser should show secure connection
- Inspect files: Review what was installed in
~/.claude/skills/root-ventures-apply/ - Understand permissions: The skill can read/write in your home directory
- Monitor submissions: Check your Attio workspace for unexpected applications
If you discover a security vulnerability:
DO NOT open a public GitHub issue
DO email: security@root.vc with:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We'll respond within 48 hours.
We monitor for:
- Dependency vulnerabilities (jq, curl, bash)
- GitHub security advisories
- Attio API changes
Updates will be pushed to the main branch and noted in commits.
- Input sanitization (jq --arg)
- Secure temporary files (mktemp)
- HTTPS for downloads
- Error handling (set -e)
- No arbitrary code execution
- Minimal file system access
- Clear data flow
- Documentation of risks
- Cryptographic verification (future enhancement)
- Webhook secret validation (future enhancement)
-
Checksum Verification
- Add SHA256 checksums for downloaded files
- Verify before execution
-
Webhook Secrets
- Add HMAC signature to webhook requests
- Verify requests are from legitimate skill users
-
Rate Limiting
- Client-side rate limiting to prevent abuse
- Cooldown between submissions
-
GPG Signatures
- Sign releases with GPG
- Verify signatures during installation
- No PII Storage: Application data goes directly to Attio, nothing stored locally
- User Consent: Users explicitly provide information through conversation
- Data Minimization: Only collects necessary fields
- Users provide data voluntarily
- Data goes to Attio (processor)
- Root Ventures (controller) has privacy policy
- Users can request deletion from Attio
Last Updated: January 27, 2026 Security Contact: security@root.vc