JackyJiang08

Daily Job Match Alert — Development skill for Claude Code

Development community

Nightly job-match agent: collects public internship and new-grad postings, scores them against your resume tracks with your Claude or ChatGPT subscription, and drafts one-page cover letters from a loc.

How to install Daily Job Match Alert

This entry records only its repository, not the path inside it, so there is no exact command to give. Open JackyJiang08/daily-job-match-alert and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Daily Job Match Alert does

Nightly job-match agent: collects public internship and new-grad postings, scores them against your resume tracks with your Claude or ChatGPT subscription, and drafts one-page cover letters from a local hub. No API keys, no auto-apply.

Alternatives in Development

  • Add Template — /add-template - Register a Custom CV or Cover Letter Template 36.6k ★
  • Metrics Dashboard — Define product metrics dashboard with sources and alert thresholds 7.8k ★
  • Pinloop CLI — Command-line job search tool for coding agents 317 ★

README

Daily Job Match Alert

**A nightly job-match agent for your Mac: it collects public internship and new-grad postings, scores each one against your resume tracks with the Claude or ChatGPT subscription you already pay for, and drafts one-page cover letters from a local hub. No API keys, no auto-apply.**

[![CI](https://github.com/JackyJiang08/daily-job-match-alert/actions/workflows/ci.yml/badge.svg)](https://github.com/JackyJiang08/daily-job-match-alert/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ![Node.js 20+](https://img.shields.io/badge/Node.js-20%2B-339933?logo=nodedotjs&logoColor=white)

What it does every night

At 20:00 (America/Chicago by default) a launchd job runs the pipeline once, unattended:

  1. Collect. Postings arrive from public GitHub lists (SimplifyJobs, Jobright, vanshb03, Zapply, zshah101), the month's Hacker News "Who is hiring" thread, the RemoteOK feed, the public job-board APIs of Greenhouse, Lever, Ashby, and Workday tenants that earlier postings pointed at, and any .eml alert files dropped into intake/eml. Every board is polled once per night with a named user agent and conditional requests.
  2. Deduplicate. URLs are canonicalized (tracking parameters stripped, redirects resolved) and checked against state/state.json, so a posting is reported once even when three sources list it.
  3. Fetch the description. Board APIs deliver the full text directly; other links are fetched once, with Workday pages read through the tenant's public JSON endpoint. Unreachable pages are retried on later nights, refused or removed ones are closed. A posting whose own publish time is then known to the minute (a board API, a JSON-LD datePosted with a clock time) is held to the lookback window exactly and dropped without being marked seen when it falls outside; day-level sources (list ages, Workday's "Posted Yesterday") keep the lenient rule. Workday ent