skills/beam/beam-tools/beam-feedback-automation/SKILL.md
Universal feedback collection automation for ANY Beam agent. Load when user mentions 'feedback automation', 'create feedback sheet', 'agent feedback', 'evaluation sheet', 'feedback for [agent-name]', or provides a Beam agent ID/URL. Dynamically analyzes agents via API, generates smart feedback fields, creates Google Apps Script, deploys to Sheets, and manages complete feedback workflow.
npx skillsauth add beam-ai-team/beam-next-skills beam-feedback-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Universal feedback collection system for ANY Beam agent.
Automate the complete feedback collection workflow you manually created for TA Interview Agent - but make it work for ANY Beam agent by dynamically analyzing the agent structure via API.
What it automates:
Before creating Google Sheets, generating or deploying Apps Script, pre-filling reviewer data, or sending feedback emails, show the Beam workspace/agent, task IDs or batch size, generated sheet/script destination, reviewer recipients, email content summary, and expected side effects. Require explicit user approval in the current turn. Read-only agent analysis, field drafting, and local template generation do not require approval.
User can provide:
agent_xyz789https://beam.ai/agent/xyz7891. Analyze Agent (via Beam API)
↓
2. Generate Feedback Fields (smart logic based on outputs)
↓
3. Create Apps Script Template (customized)
↓
4. Deploy to Google Sheets
↓
5. Fetch Tasks & Pre-fill Sheets
↓
6. Send Email Requests
↓
7. Monitor & Aggregate Results
Trigger: User provides agent ID/URL or name
Steps:
python scripts/analyze_agent.py --agent-id <agent_id>
analysis/<agent_id>_schema.jsonAgent: TA Interview Agent
Inputs: 3 fields (candidate_email, job_title, resume_url)
Outputs: 5 fields (overall_score, technical_skills[], soft_skills[], strengths, weaknesses)
Ready to generate feedback fields!
API Endpoint: GET https://api.beam.ai/v1/agent/{agent_id}
Trigger: After successful agent analysis
Steps:
Run smart field generator:
python scripts/generate_feedback_fields.py --schema analysis/<agent_id>_schema.json
Logic applies these rules:
For NUMBER outputs (e.g., overall_score):
{field_name} Accuracy (rating 1-5){field_name} Comments (text feedback)For ARRAY outputs (e.g., technical_skills[]):
{field_name} Extraction Accuracy (rating 1-5)Missing {field_name} (checkbox list)Incorrect {field_name} (checkbox list)For TEXT outputs (e.g., strengths):
{field_name} Quality (rating 1-5){field_name} Accuracy (Yes/No/Partial){field_name} Comments (text feedback)For BOOLEAN outputs:
{field_name} Correct? (Yes/No)Save to analysis/<agent_id>_feedback_fields.json
Display preview:
Generated 12 feedback fields:
✓ Overall Score Accuracy (Rating 1-5)
✓ Overall Score Comments (Text)
✓ Technical Skills Extraction Accuracy (Rating 1-5)
✓ Missing Technical Skills (Checkbox)
✓ Incorrect Technical Skills (Checkbox)
...
Approve? (y/n)
Allow user to customize/approve before proceeding
Trigger: After feedback fields approved
Steps:
Run Apps Script generator:
python scripts/generate_apps_script.py \
--agent-id <agent_id> \
--fields analysis/<agent_id>_feedback_fields.json \
--output scripts/<agent_id>_apps_script.js
Generator creates customized Apps Script with:
onOpen() trigger → Custom menuprefillAgentData() → Fetch from Beam APIsendFeedbackEmail() → Email templateaggregateResults() → Collect all feedbackhighlightIncomplete() → Visual indicatorsDisplay script preview and save to scripts/<agent_id>_apps_script.js
Template Base: templates/apps_script_template.js
Trigger: After Apps Script generated
Steps:
python scripts/deploy_to_sheets.py \
--agent-id <agent_id> \
--template-id <google_sheets_template_id> \
--script scripts/<agent_id>_apps_script.js
✅ Sheet deployed successfully!
Sheet: https://docs.google.com/spreadsheets/d/abc123
Ready to create feedback requests!
Trigger: "Create feedback sheets for [N] tasks" or "Create sheets for task IDs [...]"
Steps:
python scripts/create_feedback_sheets.py \
--agent-id <agent_id> \
--sheet-id <sheet_id> \
--task-count 50 \
# OR
--task-ids task_abc,task_def,task_ghi
Creating feedback sheets...
✓ Task task_abc123 → Row 2
✓ Task task_def456 → Row 3
✓ Task task_ghi789 → Row 4
...
Created 50 feedback requests!
Beam API Endpoint: GET https://api.beam.ai/v1/task?agent_id={agent_id}&limit=50&status=completed
Trigger: "Send feedback requests" (after sheets created)
Steps:
python scripts/send_emails.py \
--sheet-id <sheet_id> \
--reviewer-email [email protected] \
--template templates/email_template.html
Sending feedback requests...
✓ Task task_abc123 → [email protected]
✓ Task task_def456 → [email protected]
...
Sent 50 email requests!
Email Template: templates/email_template.html
Trigger: "Aggregate feedback results" or "Show feedback summary"
Steps:
Run results aggregator:
python scripts/aggregate_results.py \
--sheet-id <sheet_id> \
--output reports/<agent_id>_feedback_report.json
Script performs:
Display summary:
📊 Feedback Results Summary
Responses: 47/50 (94% completion)
Average Scores:
- Overall Score Accuracy: 4.2/5
- Technical Skills Extraction: 3.8/5 ⚠️
- Soft Skills Extraction: 4.5/5
Top Issues:
- Missing Technical Skills: "Python" (12 occurrences)
- Incorrect assessment of leadership (8 occurrences)
💡 Suggested Improvements:
1. Enhance technical skills extraction prompt
2. Add leadership evaluation criteria
Save detailed report to reports/<agent_id>_feedback_report.json
$ beam-feedback-automation agent_xyz789 --tasks 50
This runs the complete workflow:
Analyze Agent:
$ beam-feedback-automation analyze --agent-id agent_xyz789
$ beam-feedback-automation analyze --url https://beam.ai/agent/xyz789
$ beam-feedback-automation analyze --name "TA Interview Agent"
Generate Feedback Fields:
$ beam-feedback-automation generate-fields --agent-id agent_xyz789
Deploy to Sheets:
$ beam-feedback-automation deploy --agent-id agent_xyz789
Create Feedback Sheets:
$ beam-feedback-automation create-sheets --agent-id agent_xyz789 --tasks 50
$ beam-feedback-automation create-sheets --agent-id agent_xyz789 --task-ids task_a,task_b,task_c
Send Emails:
$ beam-feedback-automation send-emails --sheet-id abc123 --reviewer [email protected]
Aggregate Results:
$ beam-feedback-automation aggregate --sheet-id abc123
Required Environment Variables:
BEAM_API_KEY=<beam-api-key>
GOOGLE_SHEETS_CREDENTIALS=path/to/credentials.json
Optional Settings (config.yaml):
default_reviewer_email: "[email protected]"
email_template: "templates/custom_email.html"
sheets_template_id: "1abc123_template_id"
batch_size: 50
auto_send_emails: true
beam-feedback-automation/
├── SKILL.md # This file
├── config.yaml # Configuration
├── scripts/
│ ├── analyze_agent.py # Fetch & parse agent graph
│ ├── generate_feedback_fields.py # Smart field generation logic
│ ├── generate_apps_script.py # Apps Script generator
│ ├── deploy_to_sheets.py # Google Sheets deployment
│ ├── create_feedback_sheets.py # Batch sheet creator
│ ├── send_emails.py # Email distribution
│ └── aggregate_results.py # Results analysis
├── templates/
│ ├── apps_script_template.js # Base Apps Script
│ └── email_template.html # Email template
├── analysis/ # Generated agent schemas
│ ├── agent_xyz_schema.json
│ └── agent_xyz_feedback_fields.json
├── reports/ # Feedback reports
│ └── agent_xyz_feedback_report.json
└── examples/
└── usage.md # Usage examples
$ beam-feedback-automation agent_ta_interview --tasks 50
✅ Analyzed agent: TA Interview Agent
✅ Generated 12 feedback fields
✅ Created Apps Script
✅ Deployed to Google Sheets
✅ Created 50 feedback requests
✅ Sent 50 emails to [email protected]
📊 View results: https://docs.google.com/spreadsheets/d/abc123
$ beam-feedback-automation analyze --name "Email Classifier"
$ beam-feedback-automation generate-fields --agent-id agent_email_classifier
$ beam-feedback-automation deploy --agent-id agent_email_classifier
$ beam-feedback-automation create-sheets --agent-id agent_email_classifier --task-ids task_1,task_2,task_3
$ beam-feedback-automation send-emails --sheet-id xyz789 --reviewer [email protected]
$ beam-feedback-automation aggregate --sheet-id abc123
📊 Feedback Results Summary
Responses: 48/50 (96% completion)
Average Accuracy: 4.3/5
Top Issue: Missing email categories (15 occurrences)
💡 Suggested Improvements:
1. Expand category taxonomy
2. Add confidence scores to classifications
| Agent Output Type | Generated Feedback Fields |
|-------------------|---------------------------|
| number (score) | Accuracy (rating 1-5), Comments (text) |
| array (list) | Extraction Accuracy (rating 1-5), Missing Items (checkbox), Incorrect Items (checkbox) |
| text (long) | Quality (rating 1-5), Accuracy (Yes/No/Partial), Comments (text) |
| boolean | Correct? (Yes/No) |
| object (structured) | Per-field breakdown (recursive logic) |
Agent Output:
{
"overall_score": 85,
"technical_skills": ["Python", "SQL", "React"],
"strengths": "Strong problem-solving abilities...",
"hire_recommendation": true
}
Generated Feedback Fields:
[
{"name": "Overall Score Accuracy", "type": "rating", "scale": 5},
{"name": "Overall Score Comments", "type": "text"},
{"name": "Technical Skills Extraction Accuracy", "type": "rating", "scale": 5},
{"name": "Missing Technical Skills", "type": "checkbox_list"},
{"name": "Incorrect Technical Skills", "type": "checkbox_list"},
{"name": "Strengths Quality", "type": "rating", "scale": 5},
{"name": "Strengths Accuracy", "type": "select", "options": ["Yes", "No", "Partial"]},
{"name": "Strengths Comments", "type": "text"},
{"name": "Hire Recommendation Correct?", "type": "select", "options": ["Yes", "No"]}
]
GET /v1/agent/{agent_id} - Fetch agent graphGET /v1/task?agent_id={id}&limit=N - Fetch tasks for feedback| Error | Solution |
|-------|----------|
| Agent not found | Verify agent ID or search by name |
| No completed tasks | Wait for tasks or use different agent |
| Google Sheets auth failed | Re-authenticate with gcloud auth |
| Email sending failed | Check SMTP credentials or use Gmail API |
| Invalid output schema | Manually define feedback fields |
Phase 2:
Phase 3:
Version: 1.0 Created: 2025-02-02 Author: AI Agent Engineer at Beam AI
This skill automates everything you manually did for TA Interview Agent feedback - but works for ANY agent!
tools
Build a Palantir-shape, PDF-native use-case proposal document for a sophisticated enterprise account: research-grounded use cases (each with description, challenge, impact, value), an operating-graph ontology page, a recommended PoC with a week-by-week plan, and a closing page that asks for one decision. Load when a client asks us to 'propose high-impact use cases', requests a use-case presentation/catalog for a function (finance, HR, ops), or when a technical evaluation team will review candidates to pick a PoC. NOT for single-account cold outreach (use prospect-brief), full process diagnostics (use operating-diagnostic), or priced proposals (use proposal-creation).
development
Convert Beam Figma slide designs into high-fidelity, editable HTML presentation decks. Use when Codex is asked to audit Figma slides, extract slide templates, rebuild Beam slides as HTML decks, decide whether Figma imagery should be exported or rebuilt in HTML/CSS, create Beam/Prism-compatible deck templates, or improve fidelity of existing Beam HTML slide rebuilds.
development
Use the Beam AI reusable slide library: individual HTML slide templates extracted from Beam Figma rebuilds, kept separate from deck themes and full deck templates. Load when the user asks for a slide library, specific Beam slide patterns, reusable Figma-inspired slides, Prism slide-library items, or slide-level HTML templates.
development
Use Beam AI deck and report design packs, HTML templates, and curated examples to create sales decks, customer intro decks, RPO decks, and DIN A4 use-case proposal reports. Load when the user asks for Beam-branded presentation templates, Prism-compatible deck templates, Beam report templates, customer intro decks, commercial proposals, or reusable HTML deck/report examples.