Portfolio Agentic Loop System
An adversarial agentic system that generates improved portfolio variations through iterative feedback loops between improvement and hiring manager agents.
What It Does
The system creates portfolio variations optimized for senior design and product roles by:
- Improvement Agent - Analyzes the baseline portfolio and proposes enhancements
- Hiring Manager Agents - Evaluate each variation from the perspective of 10 target roles
- Feedback Loop - Iterations continue until 10 approved variations are generated
Target Roles
See target-roles.txt for the complete list. Currently optimized for:
- Head of Product Design
- Senior UX Researcher
- Product Manager (Design-Led)
- Director of Design
- Lead Product Designer
- VP Product Design
- Design Systems Lead
- Staff Product Designer
- Principal Designer
- Head of User Research
Files
Core System
coordinator.mjs - Main orchestrator that runs the agentic loop
target-roles.txt - List of roles to optimize for
loop-state.json - Current state (resumable across runs)
Agent Prompts
agents/improvement-agent-prompt.md - Template for improvement agent
agents/hiring-manager-prompt.md - Template for evaluation agent
Legacy/Alternative Implementations
agentic-loop.js - Node.js implementation with agent framework
run-agentic-loop.sh - Shell script orchestrator
Output Structure
Each portfolio variation is saved in archive/portfolio-agentic-{timestamp}/:
manifest.json - Metadata, improvements, and evaluations
index.njk - Eleventy page with variation content
Summary Files
archive/agentic-loop-summary.json - Complete run summary
archive/index.njk - Archive landing page
Running the System
Full Run
cd /workspace/portfolio
node coordinator.mjs
This will:
- Generate 10 portfolio variations (with adversarial feedback)
- Create pages in
archive/portfolio-agentic-*/
- Update the archive index
- Save run summary
Resume from State
If interrupted, re-run node coordinator.mjs - it will resume from loop-state.json.
Fresh Start
rm loop-state.json
node coordinator.mjs
How It Works
Iteration Loop
- Generate Variation - Improvement agent creates new portfolio version
- Evaluate - 10 hiring manager agents score it (0-100) for their role
- Decision - Average score ≥75 = approved, <75 = iterate with feedback
- Repeat - Until 10 approved variations exist
Approval Criteria
- Each hiring manager scores 0-100
- Average must be ≥75 to approve
- Rejected variations feed back into next iteration
- Maximum 2 rejections observed before approval in current run
Results
Last run completed: 2026-09-07
- Total iterations: 12
- Variations generated: 10
- Rejection rate: 16.7% (2 rejected, 10 approved)
- Average score range: 76.1 - 82.3 / 100
- Highest scoring: Variation 10 (82.3/100, focus: Head of Product Design)
View all variations: /portfolio/archive/
Baseline
The system improves upon the baseline portfolio at:
/workspace/portfolio/archive/portfolio-2026-09-02T151008/
Eleventy Integration
Generated variations are:
- Excluded from collections (
eleventyExcludeFromCollections: true)
- Set to
noindex, nofollow
- Available at
/portfolio/archive/{variation-id}/
Build normally with Eleventy:
npx @11ty/eleventy --serve
Future Enhancements
Current implementation uses simulated agents. Next steps:
- Real Task Agents - Replace simulated evaluations with actual Cloud Agent Task calls
- Content Generation - Have agents write actual enhanced project descriptions
- Deeper Feedback Loop - Feed specific hiring manager concerns back to improvement prompts
- Role-Specific Variations - Generate targeted versions per role instead of optimizing for all
- A/B Testing - Track which variations perform better in real hiring scenarios