From c7a1e0cf89b46a1daa2f64c05ef52979f08e8a7e Mon Sep 17 00:00:00 2001 From: NotAbdelrahmanelsayed <97337995+NotAbdelrahmanelsayed@users.noreply.github.com> Date: Sat, 25 Jul 2026 20:38:02 +0300 Subject: [PATCH] fix(rank): include job posting URL in ranking tables (#236) * fix(rank): include job posting URL in shortlist/below-threshold/excluded tables /rank's output tables listed title, company, and score but dropped the posting link, forcing the user to go dig it out of seen_jobs.json to open a job they wanted to act on. The key in seen_jobs.json is already the URL, so this is a formatting fix, not a new lookup. * fix(rank): link to entry's url field, not the seen_jobs.json key Some portals key seen_jobs.json entries by a company+title composite rather than the URL, so [Link]() could render a broken link. Every entry carries a dedicated url field, which is always valid. --- .claude/commands/rank.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.claude/commands/rank.md b/.claude/commands/rank.md index bf98f84..a6dd1ab 100644 --- a/.claude/commands/rank.md +++ b/.claude/commands/rank.md @@ -93,24 +93,25 @@ Ranked new postings ( shortlisted, below threshold, expired/vetoe ### Shortlist -| # | Score | Verdict | Title | Company | Location | Deadline | | -|---|-------|---------|-------|---------|----------|----------|---| -| 1 | 78 | Strong Fit | ... | ... | ... | ... | 🔥 | +| # | Score | Verdict | Title | Company | Location | Deadline | | URL | +|---|-------|---------|-------|---------|----------|----------|---|-----| +| 1 | 78 | Strong Fit | ... | ... | ... | ... | 🔥 | [Link](...) | ### Why these ranked highest **1. at <Company> (78)** - [2-3 strength bullets and the honest gap, from the agent's findings] [repeat for each shortlisted job] ### Below threshold -| Score | Verdict | Title | Company | One-line reason | +| Score | Verdict | Title | Company | One-line reason | URL | ### Excluded -- <Title> at <Company> - location FAIL: requires relocation -- <Title> at <Company> - expired <date> +- <Title> at <Company> - location FAIL: requires relocation - [Link](...) +- <Title> at <Company> - expired <date> - [Link](...) ``` Rules for the presentation: +- Every table (shortlist, below threshold, excluded) includes the posting URL as a clickable link - link to the entry's `url` field in `seen_jobs.json` (not the entry's key, which for some portals is a company+title composite rather than the URL), so this never requires an extra lookup. Never drop the link for brevity. - Every claim traces to fetched posting text or the profile - no invented details. - Say explicitly that these are **triage scores from the posting text only**, and that `/apply` will re-evaluate with company research before anything is drafted. - Then ask: "Want to apply to any of these? Give me the number(s) and I'll start with the full `/apply` workflow."