Skip to content

Repository files navigation

GitGlow

Turn your CV and GitHub into a hiring-ready README.

GitGlow is a single-page Phoenix LiveView app that takes a CV PDF, a GitHub profile, and an optional website, asks a few sharp follow-up questions, and turns that context into a polished GitHub profile README.md.

Live app: https://gitglow.michaelmunavu.com

Product Flow

The app is built as a single step-based LiveView:

landing -> input -> processing -> questions -> generating -> result

The screenshots below are the uploaded captures from docs/readme/, renamed to match the flow. The input stage is shown in three separate captures, and the brief generating state is not included in this screenshot set.

1. Landing

Landing screen

The hero explains the product and sends the user into the guided flow.

2. Profile Brief

Input step 1

The user uploads a CV, enters a GitHub username or URL, optionally adds a personal website, and picks a README style.

3. Website

Input step 2

The second setup screen adds an optional website for extra context.

4. Style

Input step 3

The final setup screen lets the user choose the tone of the README.

5. Processing

Processing screen

GitGlow parses the CV, fetches GitHub data, and scrapes the website in parallel.

6. Questions

Questions screen

OpenAI generates six clarifying questions so the README reflects the user better.

7. Result

Result screen

The user can preview the README, switch to raw markdown, copy it, download it, or start over.

Architecture

  • lib/gitglow_web/live/gitglow_live.ex drives the full flow.
  • lib/gitglow_web/components/ contains one component per stage.
  • lib/gitglow/parser/ handles CV, GitHub, and website extraction.
  • lib/gitglow/readme_builder.ex gathers context concurrently.
  • lib/gitglow/ai.ex wraps the OpenAI calls for questions and README output.
  • Earmark renders the markdown preview in the result view.

Local Setup

Prerequisites:

  • Elixir and Erlang
  • Poppler for pdftotext support

On macOS:

brew install poppler

On Debian or Ubuntu:

apt install poppler-utils

Environment variables:

export OPENAI_API_KEY=sk-...
export GITHUB_TOKEN=ghp_...

GITHUB_TOKEN is optional, but it raises the GitHub API rate limit.

Run the app:

mix setup
mix phx.server

Then open http://localhost:4000.

Tests

mix test

Deploying

The production host is gitglow.michaelmunavu.com.

Set these runtime variables in production:

  • OPENAI_API_KEY
  • SECRET_KEY_BASE
  • PHX_HOST
  • PORT
  • GITHUB_TOKEN if you want the higher GitHub rate limit

The app is stateless and does not require a database.

Releases

Packages

Contributors

Languages