Skip to content

Commit fb4fbbb

Browse files
authored
Merge pull request #105 from rootvc/claude-skill-and-mcp
Add Claude integration: MCP server, CLI skill, and interactive applications
2 parents b95c600 + 828ed4b commit fb4fbbb

21 files changed

+2374
-34
lines changed

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Attio Webhook URL for job applications
2+
# Get this from: Attio → Settings → Automations → Webhooks
3+
ATTIO_WEBHOOK_URL=https://hooks.attio.com/w/YOUR-WEBHOOK-ID-HERE

CLAUDE-SKILL-GUIDE.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# Root Ventures Application - Claude Skill
2+
3+
I've converted the MCP server into a Claude skill! This is simpler and better integrated with Claude CLI.
4+
5+
## ✅ What's Installed
6+
7+
The skill is now installed at: `~/.claude/skills/root-ventures-apply/`
8+
9+
## How to Use It
10+
11+
### Option 1: Natural Conversation (Recommended)
12+
13+
Just chat with Claude in your terminal:
14+
15+
```bash
16+
claude
17+
```
18+
19+
Then say:
20+
```
21+
I want to apply to Root Ventures
22+
```
23+
24+
Claude will:
25+
1. Tell you about the position
26+
2. Collect your information naturally through conversation
27+
3. Submit your application to Attio
28+
4. Confirm submission
29+
30+
### Option 2: Direct Command
31+
32+
Or invoke it directly from bash:
33+
34+
```bash
35+
~/.claude/skills/root-ventures-apply/apply.sh \
36+
--name "Your Name" \
37+
--email "[email protected]" \
38+
--linkedin "https://linkedin.com/in/yourprofile" \
39+
--github "yourgithub" \
40+
--notes "Why you're interested"
41+
```
42+
43+
## What Gets Submitted to Attio
44+
45+
The skill sends:
46+
- `name` (required)
47+
- `email` (required)
48+
- `linkedin` (optional)
49+
- `github` (optional)
50+
- `notes` (optional)
51+
- `position`: "Venture Capital Associate"
52+
- `source`: "Claude Skill"
53+
54+
## Testing
55+
56+
I've already tested it successfully! Check Attio for the entry:
57+
- Name: "Test Skill User"
58+
59+
- Source: "Claude Skill"
60+
61+
## Example Conversation
62+
63+
```
64+
You: I'd like to apply to Root Ventures. I'm Jane Doe ([email protected]),
65+
GitHub is janedoe. I'm excited about deep tech because I've been
66+
building hardware projects for years.
67+
68+
Claude: [Collects info and uses the skill]
69+
70+
✅ Application submitted successfully!
71+
72+
Thank you for applying, Jane Doe!
73+
74+
What happens next:
75+
• The team will review your application
76+
• If there's a good fit, someone will reach out
77+
• Check out our portfolio at https://root.vc
78+
79+
🚀 Applied via Claude Skill - extra points for technical creativity!
80+
```
81+
82+
## Advantages Over MCP
83+
84+
**Simpler** - No Node.js version conflicts
85+
**More reliable** - Direct bash script, fewer dependencies
86+
**Better integrated** - Works seamlessly with Claude CLI
87+
**Easier to debug** - Simple curl commands, clear error messages
88+
**Portable** - Can be shared as a simple bash script
89+
90+
## Sharing with Candidates
91+
92+
You can share the skill in multiple ways:
93+
94+
### Method 1: Install Script
95+
Create an install script candidates can run:
96+
97+
```bash
98+
curl -fsSL https://raw.githubusercontent.com/rootvc/cli-website/main/install-skill.sh | bash
99+
```
100+
101+
### Method 2: Manual Installation
102+
Candidates can copy the skill directory to `~/.claude/skills/root-ventures-apply/`
103+
104+
### Method 3: Include in Job Posting
105+
```markdown
106+
## How to Apply
107+
108+
**For Claude CLI users:**
109+
Install our Claude skill and apply through conversation:
110+
[Installation instructions]
111+
112+
**Other options:**
113+
- Web Terminal: https://root.vc (type `apply 1`)
114+
115+
```
116+
117+
## Files Created
118+
119+
```
120+
~/.claude/skills/root-ventures-apply/
121+
├── skill.json # Skill metadata
122+
├── apply.sh # Main application script
123+
├── prompt.txt # Instructions for Claude
124+
└── README.md # Documentation
125+
```
126+
127+
## Next Steps
128+
129+
1. ✅ Skill is installed and tested
130+
2. **Test it yourself**: Open Claude CLI and say "apply to root ventures"
131+
3. **Create install script** for candidates (if you want to share it)
132+
4. **Update job postings** to mention the Claude skill option
133+
134+
## Troubleshooting
135+
136+
If the skill doesn't work:
137+
138+
1. **Check it's executable:**
139+
```bash
140+
ls -la ~/.claude/skills/root-ventures-apply/apply.sh
141+
```
142+
143+
2. **Test directly:**
144+
```bash
145+
~/.claude/skills/root-ventures-apply/apply.sh --name "Test" --email "[email protected]"
146+
```
147+
148+
3. **Check Claude can find it:**
149+
```bash
150+
ls ~/.claude/skills/
151+
```
152+
153+
The skill is now ready to use! Much simpler than the MCP server and actually submits to Attio successfully.

DEPLOYMENT.md

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# CLI Website with Interactive Applications
2+
3+
This fork of the Root VC CLI website adds an interactive job application flow that submits directly to Attio.
4+
5+
## What's New
6+
7+
### Features Added:
8+
1. **Interactive Application Flow**: Candidates can now apply directly in the terminal using the `apply` command
9+
2. **Job Listings**: Added a Venture Capital Associate position (in `config/jobs.js`)
10+
3. **Netlify Functions**: Backend function to proxy Attio API calls
11+
4. **Terminal Input Collection**: New `collectInput()` helper for interactive data entry
12+
13+
## Testing Locally
14+
15+
The dev server should already be running on http://localhost:8888
16+
17+
Try these commands in the terminal:
18+
- `jobs` - See open positions
19+
- `fg 1` - View the Associate role details
20+
- `apply 1` - Start the interactive application process
21+
22+
## How It Works
23+
24+
1. User types `apply 1` in the terminal
25+
2. Terminal prompts for:
26+
- Name (required)
27+
- Email (required)
28+
- LinkedIn URL (optional)
29+
- GitHub username (optional)
30+
- Why Root / notes (optional)
31+
3. Data is submitted to `/.netlify/functions/submit-application`
32+
4. Netlify function forwards to Attio webhook
33+
5. Success/error message shown to user
34+
35+
## File Changes
36+
37+
### New Files:
38+
- `netlify/functions/submit-application.js` - Proxies to Attio API
39+
- `netlify.toml` - Netlify configuration
40+
- `DEPLOYMENT.md` - This file
41+
42+
### Modified Files:
43+
- `config/jobs.js` - Added Associate position
44+
- `config/commands.js` - Updated `jobs` and `apply` commands
45+
- `js/terminal-ext.js` - Added `collectInput()` helper
46+
47+
## Deployment to Production
48+
49+
### Option 1: Deploy to Netlify (Recommended)
50+
51+
1. Push this repo to GitHub:
52+
```bash
53+
cd /Users/avidan/Development/cli-website-fork
54+
git remote set-url origin <your-new-repo-url>
55+
git add .
56+
git commit -m "Add interactive job application flow"
57+
git push origin main
58+
```
59+
60+
2. Connect to Netlify:
61+
- Go to https://app.netlify.com
62+
- Click "Add new site" → "Import an existing project"
63+
- Connect your GitHub repo
64+
- Build settings should auto-detect from netlify.toml
65+
- Deploy!
66+
67+
3. The site will be live at `https://your-site-name.netlify.app`
68+
69+
### Option 2: Deploy to Root.vc Domain
70+
71+
If you want this on the main root.vc site:
72+
73+
1. Update the existing root.vc repo with these changes
74+
2. Netlify will auto-deploy on push (already configured)
75+
76+
## Security Considerations
77+
78+
### Current Setup:
79+
- Attio webhook URL is hardcoded in the Netlify function
80+
- This is okay since the webhook is designed to be public
81+
82+
### For Production (Optional):
83+
You could move the Attio webhook to an environment variable:
84+
85+
1. In `netlify/functions/submit-application.js`, replace the URL with:
86+
```javascript
87+
const attioWebhook = process.env.ATTIO_WEBHOOK_URL;
88+
```
89+
90+
2. Add to Netlify environment variables:
91+
- Go to Site settings → Environment variables
92+
- Add `ATTIO_WEBHOOK_URL` = `https://hooks.attio.com/w/...`
93+
94+
## Customization
95+
96+
### Adding More Job Positions:
97+
98+
Edit `config/jobs.js`:
99+
```javascript
100+
const jobs = {
101+
1: ["Role Title", "Description line 1", "Description line 2", ...],
102+
2: ["Another Role", "Description", ...],
103+
};
104+
```
105+
106+
### Changing Application Fields:
107+
108+
Edit the `apply` command in `config/commands.js` to add/remove fields using `term.collectInput()`.
109+
110+
### Modifying the Terminal Style:
111+
112+
- Colors: Edit `colorText()` function in `js/terminal.js`
113+
- Prompts: Edit welcome messages in `js/terminal-ext.js`
114+
- ASCII art: Add images to `images/` and reference in `config/team.js` or `config/portfolio.js`
115+
116+
## Testing the Flow
117+
118+
Open http://localhost:8888 in your browser and try:
119+
120+
```bash
121+
> help
122+
> jobs
123+
> fg 1
124+
> apply 1
125+
```
126+
127+
Follow the prompts and submit. Check your Attio to confirm the entry was created.
128+
129+
## Troubleshooting
130+
131+
**Functions not working locally?**
132+
- Make sure you ran `npm start` (not just `npm run build`)
133+
- Netlify CLI should show functions being served
134+
135+
**Application submissions failing?**
136+
- Check browser console for errors
137+
- Verify Attio webhook URL is correct
138+
- Test the webhook directly with curl:
139+
```bash
140+
curl -X POST https://hooks.attio.com/w/... \
141+
-H "Content-Type: application/json" \
142+
-d '{"name":"Test","email":"[email protected]"}'
143+
```
144+
145+
**Terminal not responding?**
146+
- Try `clear` command to reset
147+
- Refresh the page
148+
- Check browser console for JavaScript errors

0 commit comments

Comments
 (0)