Resurrect your portfolio from the digital wreckage of your hustle
Portfolio Necromancer is an automated tool that scrapes your inbox, Google Drive, Docs, Figma links, Slack threads, and old screenshots to auto-build a stunning portfolio site. Perfect for freelancers and creators who are too busy actually doing great work to maintain a portfolio.
| 🌐 View Landing Page | 📚 Integration Guide | ⚡ Quick Start | 🔌 API Guide |
“In this project, [your name] skillfully wrangled a broken system to deliver [miracle].”
🎨 Beautiful Portfolio Sites: Generates modern, responsive static websites ready to deploy
# Clone the repository
git clone https://github.com/jmenichole/Portfolio-Necromancer.git
cd Portfolio-Necromancer
# Install dependencies
pip install -r requirements.txt
# Or install as a package
pip install -e .
python -m portfolio_necromancer.api.server
http://localhost:5000
portfolio-necromancer --init
config.yaml with your credentials and preferences:
```yaml
user:
name: “Your Name”
email: “your.email@example.com”
title: “Freelancer / Developer / Designer”
bio: “Short bio about yourself”ai: api_key: “your-openai-api-key” # For AI categorization and summaries
google: credentials_file: “credentials.json”
slack: token: “xoxb-your-slack-bot-token”
figma: access_token: “your-figma-access-token”
3. Set up data source credentials:
- **Google**: Follow [Google API setup guide](https://developers.google.com/workspace/guides/create-credentials)
- **Slack**: Create a Slack app and get a bot token
- **Figma**: Get your personal access token from Figma settings
- **OpenAI**: Get an API key from [OpenAI](https://platform.openai.com/api-keys)
📖 **See [INTEGRATIONS.md](/Portfolio-Necromancer/INTEGRATIONS.html) for detailed setup instructions for all integrations**
### Generate Your Portfolio
#### Via Web Dashboard
Access the dashboard at `http://localhost:5000` and follow the interactive interface.
#### Via Command Line
```bash
# Generate with default settings
portfolio-necromancer
# Use custom config
portfolio-necromancer --config my-config.yaml
# Custom output directory name
portfolio-necromancer --output awesome-portfolio
The generated portfolio will be in ./generated_portfolios/ by default.
Once generated, deploy your portfolio to the web:
Note: demo.py generates portfolios locally. The output (HTML/CSS files) can be deployed anywhere, but Python is only needed to generate the files, not to host them.
from portfolio_necromancer import PortfolioNecromancer
# Initialize
necromancer = PortfolioNecromancer('config.yaml')
# Generate portfolio
output_path = necromancer.resurrect()
print(f"Portfolio generated at: {output_path}")
from portfolio_necromancer import PortfolioNecromancer, Portfolio, Project
from portfolio_necromancer.models import ProjectCategory, ProjectSource
# Create custom project
project = Project(
title="My Awesome Project",
description="A groundbreaking application",
category=ProjectCategory.CODE,
source=ProjectSource.MANUAL,
tags=["python", "web", "api"]
)
# Initialize and add custom projects
necromancer = PortfolioNecromancer()
portfolio = Portfolio(
owner_name="Your Name",
owner_email="you@example.com",
owner_title="Developer",
owner_bio="I build cool things",
projects=[project]
)
# Generate with custom portfolio
from portfolio_necromancer.generator import PortfolioGenerator
generator = PortfolioGenerator({'output_dir': './my-portfolio'})
generator.generate(portfolio, 'custom-name')
Supported themes:
modern (default)Supported color schemes:
blue (default)greenpurpleConfigure in config.yaml:
portfolio:
theme: "modern"
color_scheme: "blue"
Templates are in src/portfolio_necromancer/templates/. You can:
assets/style.cssscraping:
email:
enabled: true
max_messages: 100
date_range_days: 365
drive:
enabled: true
max_files: 50
slack:
enabled: true
max_messages: 100
figma:
enabled: true
max_projects: 20
screenshots:
enabled: true
folder_path: "./screenshots"
features:
custom_domain: false # Pro feature
custom_branding: false # Pro feature
remove_watermark: false # Pro feature
unlimited_projects: false # Free tier: 20 projects
advanced_analytics: false # Pro feature
Portfolio Necromancer supports a freemium model:
Free Tier:
Pro Tier:
Enable pro features in config.yaml:
features:
unlimited_projects: true
custom_branding: true
remove_watermark: true
custom_domain: "yourdomain.com"
Perfect for:
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details
Remember: You’re not lazy, you’re just too busy being awesome. Let Portfolio Necromancer handle the portfolio. 🚀