npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

resume-helper

v0.1.3

Published

CLI tool to generate resumes from git commits, GitHub PRs, and Slack messages

Downloads

190

Readme

Git-Slack Resume CLI

A TypeScript CLI tool that generates professional resume content by analyzing:

  • Git commits from local repositories
  • GitHub Pull Requests for enhanced context
  • Slack messages for collaboration insights
  • AI-powered synthesis using OpenAI or Anthropic

Built With

:warning: Note: This was entirely built with Claude Opus 4.5 as an experiment to work with AI and what I can manage to do with them.

| Category | Technology | | ------------------- | ----------------------------------------------------------------- | | Runtime | Bun | | Language | TypeScript | | CLI Framework | Commander.js | | Interactive Prompts | @clack/prompts | | Linting | oxlint | | Formatting | oxfmt | | GitHub API | @octokit/rest | | Slack API | @slack/web-api | | Language Detection | linguist-languages |

See DEV_NOTES.md for technical decisions and architecture details.

Features

  • Local Git Analysis: Extract commits, code changes, and technical contributions
  • GitHub Integration: Fetch PR descriptions and project context (including Enterprise)
  • Slack Integration: Analyze communication patterns and collaboration (via Slack AI or API)
  • AI Resume Generation: Synthesize data into professional resume content
  • Template Support: Use your existing resume style as a template
  • Interactive Configuration: Beautiful setup process with @clack/prompts

Installation

# Clone the repository
git clone <repository-url>
cd resume-helper

# Install dependencies
bun install

# Build the CLI
bun run build

Setup

  1. Initialize configuration:

    bun run dev init
    # or after building:
    node dist/index.js init
  2. Follow the interactive setup:

    • Add repository paths
    • Configure author emails
    • Set up API tokens (GitHub, Slack, AI)
    • Optionally provide a resume template

Usage

Generate Resume

# Generate resume for a specific period
bun run dev generate --company "Acme Corp" --start-date 2024-01-01 --end-date 2024-12-31 --output resume-acme.md

# Use a custom template
bun run dev generate --template ./my-resume-style.md --output resume.md

# Include Slack AI context (see Slack AI Integration below)
bun run dev generate --slack-context slack-context.txt --output resume.md

Slack AI Integration

Extract collaboration insights from Slack without needing API tokens or admin approval:

# 1. Generate a prompt template for Slack AI
bun run dev slack-prompt --name "Your Name" --start-date 2024-01-01 --end-date 2024-12-31

# 2. Copy the generated prompt and paste it into a Slack AI conversation
# 3. Save Slack AI's response to a file (e.g., slack-context.txt)

# 4. Include the context when generating your resume
bun run dev generate --slack-context slack-context.txt --output resume.md

This approach:

  • Requires no Slack API token or app installation
  • Leverages Slack AI's access to your conversations
  • Extracts project discussions, cross-team collaboration, leadership moments, and impact statements

Manage Configuration

# Show current configuration
bun run dev config --show

# Add repository or email
bun run dev config --add-repo /path/to/project
bun run dev config --add-email [email protected]

# Update tokens
bun run dev config --set-github-token <token>
bun run dev config --set-slack-token <token>

Configuration

The CLI stores configuration in .resume-cli.json in your current directory.

Advanced Configuration

You can customize limits in your .resume-cli.json file:

{
  "maxCommits": 100,
  "minimumCommitChanges": 3
}

| Option | Default | Description | | ---------------------- | ------- | ----------------------------------------------------------------- | | maxCommits | 100 | Maximum commits to include per repository (also limits PRs shown) | | minimumCommitChanges | 3 | Minimum lines changed to include a commit |

API Integrations

GitHub API

  • Token: Classic Personal Access Token with repo scope
    • ⚠️ Important: Fine-grained PATs are NOT supported on GitHub Enterprise Server
    • For GitHub.com public repos only: public_repo scope is sufficient
    • For private repos or GitHub Enterprise: repo scope is required
  • Enterprise: Supports GitHub Enterprise Server URLs (auto-detected from repository remote)
  • Rate Limits: 5,000 requests/hour (authenticated)
  • Data: Commits, PR descriptions, repository metadata

Creating a GitHub Token

  1. Go to GitHub → Settings → Developer Settings → Personal Access Tokens → Tokens (classic)
  2. Click "Generate new token" → "Generate new token (classic)"
  3. Select the repo scope (or public_repo for public repos only)
  4. For GitHub Enterprise, create the token on your Enterprise instance (e.g., https://github.yourcompany.com/settings/tokens)

Slack AI Integration

Use Slack's built-in AI to extract and summarize your contributions. No API token or admin approval needed. The CLI will generate a prompt to give to the Slack AI, and the result can be given back to the CLI.

See Slack AI Integration for the full workflow.

AI Integration

  • TanStack AI: Unified interface across providers
  • Supported: OpenAI GPT, Anthropic Claude
  • Usage: Synthesizes technical data into resume content

Architecture

src/
├── commands/          # CLI command implementations
│   ├── init.ts       # Interactive configuration
│   ├── generate.ts   # Resume generation
│   ├── test.ts       # Service testing
│   └── config.ts     # Configuration management
├── services/          # API and data services
│   ├── git.ts        # Local git analysis
│   ├── github.ts     # GitHub API integration
│   ├── slack.ts      # Slack API integration
│   └── ai.ts         # AI resume generation
├── utils/             # Utility functions
│   └── config.ts     # Configuration management
├── types/             # TypeScript definitions
│   └── index.ts      # Type definitions
└── index.ts          # CLI entry point

Current Status

Completed:

  • Project setup and CLI framework
  • Interactive configuration with @clack/prompts
  • TypeScript structure and type definitions
  • All commands (init, generate, test, config)
  • Git analysis service with technology detection
  • GitHub API integration (including Enterprise)
  • Slack API integration
  • AI prompt generation (export for manual AI use)
  • Direct AI generation with OpenAI/Anthropic
  • Resume template support
  • Multi-language support
  • Token estimation and large prompt warnings

Contributing

This is a proof-of-concept CLI tool. Feel free to:

  1. Fork the repository
  2. Create feature branches
  3. Submit pull requests
  4. Report issues

Release process

The CLI is not automatically released when commits are pushed on the main branch. You have to:

  1. Update the package.json version, like vX.Y.Z;
  2. Create a commit with a message: git commit -am "release vX.Y.Z";
  3. Create a tag containing the corresponding version: git tag vX.Y.Z;
  4. Push the commit: git push origin main --tags;
  5. Then the release workflow will kick off.

License

MIT License - see LICENSE file for details