Skip to content

Instantly share code, notes, and snippets.

@possibilities
Last active February 28, 2026 16:40
Show Gist options
  • Select an option

  • Save possibilities/531ca12aebf86a95f732351407bed0da to your computer and use it in GitHub Desktop.

Select an option

Save possibilities/531ca12aebf86a95f732351407bed0da to your computer and use it in GitHub Desktop.
Job Search Improvements - Overview and unified backlog

Job Search Improvements - Overview

Unified backlog of 22 improvements to the job search pipeline and resume app, consolidated from four separate evaluation docs into a single prioritized iterable document.

The Document

  • ~/code/docs/job-search-improvements.md - 22 items across 4 tiers (High Impact → Investigate), each with repo, sources, and first step

Source Documents

  • ~/code/docs/resumeskills-evaluation.md - 9 categories evaluating 20 skills from ResumeSkills for pipeline integration
  • ~/code/docs/job-search-tools-review.md - 5 tools and ideas from links collection (ResumeSkills, Magic Resume, Indy AI, auto-submit tools, hiring thesis)
  • ~/code/docs/magic-resume-ideas.md - 5 features worth stealing from magic-resume for the resume app
  • ~/code/docs/job-search-tools-to-evaluate.md - 10 tools and patterns from GitHub/HN/X for pipeline improvements

Tier Summary

Tier Items Focus
1 - High Impact 5 Resume tailoring, JD scoring, stale posting detection, outcome tracking, branded PDFs
2 - Medium Impact 6 Content sharpening, interview prep, layout density, cover letter hooks, blacklist, networking
3 - Nice to Have 7 Page breaks, form validation, LinkedIn profile, case studies, two-column layout, anti-bot, section ordering
4 - Investigate 4 Indy AI, hiring thesis positioning, Agent-Reach, audience framing rules

Job Search Improvements

Unified backlog of improvements to the job search pipeline (~/code/jobsearch) and resume app (~/code/resume). Curated from four evaluation docs, de-duped, and prioritized by impact on application success rate, time saved, and existing infrastructure readiness.

Each item is self-contained. Work them in order within a tier, or cherry-pick across tiers based on what's relevant to the current batch of applications.

Pipeline context: search-jobscurate-resultsresearch-companywrite-cover-lettersubmit-application + check-email (standalone). Resume lives in YAML (~/code/resume/src/data/resume.yaml) with Playwright PDF generation.

Source docs:

  • ~/code/docs/resumeskills-evaluation.md
  • ~/code/docs/job-search-tools-review.md
  • ~/code/docs/magic-resume-ideas.md
  • ~/code/docs/job-search-tools-to-evaluate.md

Tier 1: High Impact

1. Per-Application Resume Tailoring

Repo: jobsearch (new skill) + resume (YAML/PDF pipeline)

The pipeline sends the same resume PDF to every application. The infrastructure for per-JD tailoring already exists - YAML source of truth, Playwright PDF generation, pre-commit hooks. The missing piece is a skill that reads a job description, identifies keyword gaps and emphasis shifts, modifies a copy of the YAML (reorder sections, adjust bullet emphasis, inject missing keywords), and generates a tailored PDF.

ATS optimization folds into this - keyword extraction from JDs, skills reordering, and the "80% job-specific / 20% general strengths" balance. Not a separate step.

Sources: resumeskills-evaluation #3 (resume-tailor, ats-optimizer, formatter), job-search-tools-to-evaluate #1 (melodic-software resume optimization skill)

First step: Read the ResumeSkills resume-tailor/skill.md and resume-ats-optimizer/skill.md at /tmp/ResumeSkills/skills/ for their tailoring frameworks. Design a tailor-resume skill that takes a JD URL and outputs a tailored PDF.


2. JD Analysis & Match Scoring

Repo: jobsearch (enhance curate-results and research-company)

Nobody in the pipeline says "here are the 3 keywords you're missing" or "this JD has red flags." Two gaps to close:

  • Scoring in curate-results: Currently LLM-vibes-based selection. Replace with a weighted rubric (e.g., 40% skills match + 25% salary fit + 20% role alignment + 15% company signals) that's explainable and auditable. Move scoring criteria from prompt prose to a tunable YAML config so weights and thresholds can be adjusted without editing the skill.
  • Gap analysis in research-company: After selection, produce a structured candidate-vs-JD fit output - matched skills, missing keywords, red flags (vague requirements, unrealistic stack breadth, no salary). This feeds directly into resume tailoring (item 1) - if you know the gaps, you know what to emphasize.

Sources: resumeskills-evaluation #4 (job-description-analyzer), job-search-tools-to-evaluate #5 (AIHawk preference config), #6 (ResumeTailorAI scoring pattern)

First step: Draft the weighted scoring rubric dimensions and a job-preferences.yaml config format. Prototype scoring on 3-4 past applications to calibrate weights.


3. Stale Posting Pre-Check

Repo: jobsearch (new phase in research-company or standalone skill)

11 of 22 trouble log entries are closed or 404'd job postings discovered only after investing time in full research. A lightweight pre-check before committing to research would save massive time: HEAD request to posting URL, "this position has been filled" text detection, careers page redirect detection.

Known patterns: Greenhouse "This job is no longer available", Lever "This position has been filled", Ashby "This job posting has been closed". Real failures from the trouble log: Speakeasy (careers page 404), Glide (posting removed), Matcha.fm (domain expired), Greenline/FreightRoll/Station A (careers page gone), Updater (posting closed).

Sources: job-search-tools-to-evaluate #7

First step: Build a quick URL health checker that runs against the curated batch before research-company. Test it against the 11 known-stale URLs from the trouble log.


4. Application Outcome Tracker

Repo: jobsearch (new application-status.yaml + enhance check-email)

Zero outcome tracking across 12+ submitted applications. No rejection analysis, no success metrics, no feedback loops. After submit-application marks a job as applied in jobs.md, nothing tracks what happens next.

Lightweight approach: an application-status.yaml file with entries tracking company, role, date applied, current stage (applied → acknowledged → phone screen → technical → onsite → offer/reject/ghosted), last activity date, and notes. check-email auto-updates status when it detects stage-change signals in Gmail (interview scheduling, rejection notices, "we'd like to move forward"). A check-status skill reports metrics and flags applications gone quiet for 7+ days.

Sources: job-search-tools-to-evaluate #9

First step: Design the application-status.yaml schema. Backfill it from existing jobs.md entries and progress files. Wire check-email to update it on status-change signals.


5. Company-Branded Color Variants

Repo: resume

Each application could ship with a subtly branded PDF - Kraken's dark blue headers, Strike's teal accents. The infrastructure already exists: OKLCH CSS variables cascading through --primary, Playwright PDF generation, pre-commit hooks. The missing piece is parameterization.

Add optional accentColor to resume.yaml (OKLCH value or named preset). The generate-assets script accepts a color flag, or YAML defines named variants. Pre-commit generates mikebannister.pdf (default) plus mikebannister-kraken.pdf etc.

Sources: magic-resume-ideas #1

First step: Add an accentColor CSS variable override path in the resume app. Test with one company's brand color → generate a branded PDF.


Tier 2: Medium Impact

6. Resume Content Sharpening

Repo: resume (YAML content improvements)

Three frameworks from ResumeSkills for making bullet points stronger: better action verbs, finding hidden metrics in existing bullets, and structuring sections for maximum impact. The resume data lives in YAML, so a sharpening pass could analyze each bullet against these frameworks and propose improvements.

Specifically relevant: tech resume optimization patterns for how to present technical experience, structure a skills section, and frame open-source/side projects for SWE roles.

Sources: resumeskills-evaluation #1 (bullet-writer, quantifier, section-builder), #2 (tech-resume-optimizer)

First step: Read all four ResumeSkills skill files at /tmp/ResumeSkills/skills/. Extract the bullet frameworks and scoring rubrics into a reference checklist. Run the current resume bullets through them and identify the weakest 5-10.


7. Interview Prep Skill

Repo: jobsearch (new skill)

No pipeline phase exists between "application submitted" and "interview happening." When check-email detects an interview invitation, there's nowhere to hand off for preparation.

A prep-interview skill would: pull the original JD and research-company brief, scrape Glassdoor interview questions for the company, generate role-specific technical and behavioral question sets, build STAR-format answers grounded in resume.yaml (with truthfulness enforcement), and optionally run mock Q&A via pairctl. Inputs: company, role, interview type (phone screen / technical / behavioral / system design).

Also covers salary negotiation prep - when check-email detects offer-stage signals, generate a negotiation strategy beyond the current mechanical salary-negotiation.md.

Sources: resumeskills-evaluation #6 (interview-prep, salary-negotiation, offer-comparison), job-search-tools-to-evaluate #10

First step: Design the skill's input/output contract. Start with the behavioral prep path since that's most common for first-round interviews.


8. Layout Density Settings

Repo: resume

The difference between a 1-page and 2-page resume is often just font size and spacing. Currently hardcoded in CSS. Making font size, line height, and section spacing configurable in YAML means the pipeline could generate both a dense single-pager and a readable two-pager from the same content.

Add a layout section to resume.yaml with named presets: dense, comfortable, spacious. Pass values as CSS custom properties on the root element.

Sources: magic-resume-ideas #2

First step: Identify the CSS values that control density (font size, line height, section margins). Add YAML config and wire them through as CSS custom properties.


9. Cover Letter Hook Taxonomy

Repo: jobsearch (enhance write-cover-letter)

The existing cover letter skill is the most mature in the pipeline but doesn't name opening archetypes. Adding a hook type taxonomy - anecdote hook, challenge hook, mission-alignment hook, mutual-connection hook - gives the LLM writer more specific patterns to choose from per application.

Additive, not a rewrite. Layer named hook patterns and quality checklists onto the existing cover-letter-guide.md.

Sources: resumeskills-evaluation #5

First step: Read the ResumeSkills cover-letter-generator/skill.md for their hook taxonomy. Extract the named patterns and merge into cover-letter-guide.md.


10. Company Blacklist for Curate-Results

Repo: jobsearch (enhance curate-results)

No persistent blacklist of companies to skip. Companies marked [-] in jobs.md get re-evaluated if they reappear on a different board in a later search. A simple company-blacklist.yaml that curate-results checks would prevent wasting time on known-bad matches.

Sources: job-search-tools-to-evaluate #5 (AIHawk blacklist pattern)

First step: Create company-blacklist.yaml with entries from past [-] decisions. Add a check in curate-results to skip blacklisted companies.


11. Post-Apply LinkedIn Networking

Repo: jobsearch (new skill or manual checklist)

After submitting an application, the pipeline stops. A post-apply step that finds the hiring manager or recruiter on LinkedIn and sends a personalized connection request with a note referencing the application could meaningfully increase response rates.

Could be a full network-after-apply skill using agent-browser for LinkedIn, or start as a manual checklist appended to the submit-application output.

Sources: job-search-tools-to-evaluate #4

First step: Define the manual version first - a checklist of post-apply actions. Automate later if the pattern proves valuable.


Tier 3: Nice to Have

12. Page Break Control

Repo: resume

With Playwright generating the PDF, there's no visual feedback about where page breaks land. Experience entries can split across pages. Add optional pageBreakBefore: true to section or entry types in YAML. Renders as page-break-before: always in the PDF and a subtle line in the web view.

Sources: magic-resume-ideas #3


13. Schema-Driven Form Validation

Repo: jobsearch (enhance submit-application)

Validate form field inputs against expected types and constraints before filling them, rather than discovering mismatches after submission. Borrowed from ApplyPilot's approach of schema-driven input validation and graceful recovery from unexpected form states.

Sources: job-search-tools-to-evaluate #3 (ApplyPilot patterns)


14. LinkedIn Profile Optimization

Repo: n/a (one-time manual session)

The pipeline interacts with LinkedIn heavily (Easy Apply is a primary submission path) but the profile itself hasn't been systematically optimized for recruiter search or keyword visibility. A focused one-off session, not a pipeline skill.

Sources: resumeskills-evaluation #7


15. Portfolio Case Studies

Repo: resume (new pages on the site)

The resume site presents bullet-level content. Expanding 2-3 key projects into detailed case study narratives (problem, approach, outcome, tech decisions) would give hiring managers who click through more substance to evaluate.

Sources: resumeskills-evaluation #7


16. Two-Column Layout Variant

Repo: resume

A second layout option - sidebar grid with contact/skills in a narrow column and experience in a wider main area. Toggled by a YAML flag (layout: classic vs layout: sidebar). Same data, same PDF pipeline, different visual.

Sources: magic-resume-ideas #4


17. Anti-Bot Fingerprint Mitigation

Repo: jobsearch (enhance submit-application or agent-browser config)

Ashby's anti-bot system flagged 2 applications as spam (Kraken, Prompt Health). Mitigation: randomized interaction timing, mouse movement simulation, WebDriver flag suppression. Only 2 confirmed blocks so far - worth monitoring before investing heavily.

Sources: job-search-tools-to-evaluate #8


18. Section Ordering & Visibility

Repo: resume

YAML-driven section order and visibility toggles. If a role values Projects over Experience, reorder without touching components. Low effort since components already render independently. Add optional sections array to YAML with name, enabled, and order fields.

Sources: magic-resume-ideas #5


Tier 4: Investigate / Research

19. Indy AI (Network-Based Discovery)

Contra's AI career assistant that surfaces opportunities through your existing network. Different angle from board-scraping. Worth evaluating whether it works for someone not embedded in the Contra ecosystem, and what the free tier looks like.

Link: https://contra.com/indy

Sources: job-search-tools-review #3


20. AI Hiring Thesis (Positioning)

Eyal Toledano's argument: AI boosted individual output but created a team-coordination bottleneck. Companies now need people who can verify, coordinate, and operate at higher abstraction levels. Worth evaluating whether the current resume and cover letter language emphasizes orchestration and quality assurance of AI-assisted work enough.

Link: https://x.com/EyalToledano/status/2010780225475432769

Sources: job-search-tools-review #5


21. Agent-Reach (Social Research Channels)

CLI giving agents access to Twitter, Reddit, YouTube, GitHub, LinkedIn with zero API fees. Main value-add over existing scrapectl/searchctl is LinkedIn + Reddit channels specifically - employee sentiment on Reddit, hiring manager profiles on LinkedIn.

Link: https://github.com/Panniantong/Agent-Reach

Sources: job-search-tools-to-evaluate #2


22. Audience-Specific Framing Rules

Mike's resume spans startups (Versal, MojoTech consulting), mid-size (Vermont Mutual), and indie/open-source work. Currently presented identically regardless of whether the target is a 10-person startup or 500-person enterprise. If per-application tailoring lands (item 1), audience-specific framing rules could feed into the tailoring logic - emphasize autonomy for startups, process and scale for enterprise.

The career-changer-translator skill from ResumeSkills has transferable patterns for framing experience differently for different audiences.

Sources: resumeskills-evaluation #8


Dropped (with reasoning)

  • ResumeSkills repo evaluation (tools-review #1) - already fully evaluated in resumeskills-evaluation.md, all ideas absorbed above
  • Magic Resume tool evaluation (tools-review #2) - already fully evaluated in magic-resume-ideas.md, all ideas absorbed above
  • Aidan Cramer auto-submit (tools-review #4) - overlaps with existing submit-application + ApplyPilot ideas captured in items 13/17
  • Resume version management (resumeskills #9) - deferred until per-application tailoring ships; naming conventions can be designed then
  • Reference list builder (resumeskills #9) - low value, manual process is fine
  • Salary negotiation strategy (resumeskills #6) - existing salary-negotiation.md covers the mechanical part; strategy prep folded into item 7
  • Offer comparison analyzer (resumeskills #6) - cross that bridge when offers arrive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment