Back to all work

Rules-Based Open-Source Contributor Finder

Status
Prototype
Confidentiality
Public. Public personal project. The portfolio digest uses invented repositories, counts, scores, and non-resolving links.

Scheduled automation that turns configurable preferences and GitHub issue signals into a ranked weekly digest.

I built a scheduled issue-discovery tool that searches GitHub, filters unsuitable results, ranks candidates with explainable rules, and renders a weekly email digest. A YAML profile controls languages, comfort levels, weights, keywords, and documentation preferences, while caching, jitter, retries, and cooldown behavior reduce unnecessary API pressure.

Type
Personal
Categories
  • Software & Automation
  • Open Source
Technologies
  • Python
  • GitHub Actions
  • GitHub Search API
  • YAML
  • Resend

Context

Developers who want a configurable shortlist of approachable open-source issues before a focused work session.

  • The implementation is rules-based, not semantic or LLM-powered.
  • GitHub issue and repository signals are heuristics, not guarantees of fit.
  • Arbitrary upstream text should be escaped before broader production use.

Problem

Finding a suitable issue requires repeated search, repository-quality checks, scope estimation, and prioritization across a developer's current skills and interests.

My contribution

I implemented scheduled discovery, Python-side filtering, repository caching, boundary-safe keyword matching, configurable scoring, rate-limit responses, HTML digest generation, and focused offline validation of configuration, fallback, scoring, and rendering behavior.

Approach

Read a YAML preference profile, search enabled language and label pairs, deduplicate and filter candidates, cache repository metadata, rank issues through transparent scoring rules, and deliver the top results through an HTML email.

Artifacts

Outcomes

  • Eight focused offline checks passed for configuration, keyword boundaries, scoring, and digest rendering.
  • A synthetic digest demonstrates the intended output without using live account or recipient data.

Limitations and current status

  • I covered only the focused offline checks, not the live GitHub, Resend, or scheduled workflow paths.
  • I haven't calibrated the score against completed contribution outcomes.