DEV Community

Mohammad Ehsan Ansari
Mohammad Ehsan Ansari

Posted on

Analyze GitHub Profiles Using Olostep API and GPT-4 in Streamlit

Analyze GitHub Profiles Using Olostep API and GPT-4 in Streamlit

Want to extract meaningful insights from a developer’s GitHub profile automatically? In this guide, we’ll walk through how to build a Streamlit web app that:

  • Scrapes GitHub profile content using Olostep’s Scrape API
  • Uses OpenAI GPT-4 to analyze and summarize profile insights
  • Displays the results neatly using Streamlit

Objectives

  • Scrape public GitHub profiles using Olostep API
  • Generate analysis using OpenAI GPT-4
  • Build an intuitive UI with Streamlit
  • Present insights like skills, contributions, and collaboration

Requirements

pip install streamlit openai requests python-dotenv
Enter fullscreen mode Exit fullscreen mode

Create a .env file in your root directory with your API credentials:

OLOSTEP_API_KEY=your_olostep_api_key
OPENAI_API_KEY=your_openai_api_key
Enter fullscreen mode Exit fullscreen mode

Project Structure

github-analyzer/
├── app.py
├── .env
└── requirements.txt
Enter fullscreen mode Exit fullscreen mode

Step 1: Import Libraries and Load Environment Variables

import os
import requests
import streamlit as st
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
olostep_api_key = os.getenv("OLOSTEP_API_KEY")
Enter fullscreen mode Exit fullscreen mode

Step 2: Scrape GitHub Profile using Olostep

def scrape_profile(username):
    headers = {
        "Authorization": f"Bearer {os.getenv('OLOSTEP_API_KEY')}",
        "Content-Type": "application/json"
    }
    payload = {
        "formats": ["markdown"],
        "country": "US",
        "url_to_scrape": f"https://github.com/{username}"
    }
    res = requests.post("https://api.olostep.com/v1/scrapes", headers=headers, json=payload)
    return res.json().get("result", {}).get("markdown_content", "")
Enter fullscreen mode Exit fullscreen mode

Step 3: Analyze Markdown Content with GPT-4

def analyze_with_gpt(username, markdown):
    prompt = f"""
    Analyze the GitHub profile below for insights:
    - Professional background (company, location, role)
    - Activity (repos, stars, streaks)
    - Tech stack
    - Community engagement

    Username: {username}

    Markdown Content:
    {markdown}
    """
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}],
    )
    return response.choices[0].message.content.strip()
Enter fullscreen mode Exit fullscreen mode

Step 4: Build Streamlit UI

st.set_page_config(page_title="GitHub Analyzer", page_icon="🐙")
st.title("🐙 GitHub Profile Analyzer")
username = st.text_input("Enter a GitHub username (e.g., torvalds)")

if st.button("Analyze Profile"):
    with st.spinner("Scraping GitHub profile..."):
        md = scrape_profile(username)
    if not md:
        st.error("Could not scrape the profile.")
    else:
        with st.spinner("Generating AI analysis..."):
            report = analyze_with_gpt(username, md)
        st.markdown("## 🧠 GPT-4 Generated Insights")
        st.markdown(report)
Enter fullscreen mode Exit fullscreen mode

Example Output

GitHub Profile Analysis: torvalds

## 1. Professional Background
• Location: Portland, Oregon
• Works on the Linux kernel

## 2. Activity Analysis
• Top repository: linux
• Thousands of contributions
• Maintains core system software

## 3. Tech Stack
• C, C++, Shell scripting

## 4. Community Engagement
• Collaborates with hundreds of devs
• Active in pull request reviews
Enter fullscreen mode Exit fullscreen mode

Use Cases

  • Hiring teams evaluating developer contributions
  • Candidates generating portfolio summaries
  • Open-source communities reviewing contributors
  • AI agents assessing technical depth of profiles

Next Steps

  • Add export to PDF
  • Add batch processing for multiple usernames
  • Deploy to Streamlit Cloud

Final Thoughts

This full-stack project combines web scraping, AI summarization, and interactive frontend to deliver structured GitHub insights. With Olostep + OpenAI + Streamlit, you can automate what once required hours of manual review.

Happy hacking! 🧙‍♂️

Top comments (0)