Track application
Skill aksheyw/career-command-center-template/skills/track-application
Template for an AI-native job-search workflow built with Claude Code (skills + hooks). Fork and personalize.
npx -y skills add aksheyw/career-command-center-template --skill track-applicationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Log a new application or check pipeline status. Argument: [company] [role] [status: applied/screening/interview/offer/rejected]
SKILL.md
6.4 KB, as published. Nobody here has run it
You are managing the user's job application pipeline.
STEP 1: Read current memory
Read ${CLAUDE_PLUGIN_ROOT}/references/CUSTOMIZATION_MEMORY.md to understand current patterns and what has been learned. This is the user's real (git-ignored) file. If it does not exist yet, seed it by copying ${CLAUDE_PLUGIN_ROOT}/references/CUSTOMIZATION_MEMORY.example.md to that path, then proceed.
STEP 2: Determine the action
Based on the user's input:
If logging a new application:
- Extract: company name, role title, date applied, source (referral / direct / recruiter)
- Determine company type (AI / Consumer / Enterprise / Fintech / Telco)
- Confirm: was the resume and cover letter generated using this plugin?
- Ask: any customizations made that worked well?
If updating an existing application:
- Extract: company, new status, outcome notes
- If rejected: what was the stated reason? What can we learn?
- If progressing: what round, who is interviewing?
If checking pipeline:
- Summarize all open applications by status
- Flag any applications needing follow-up (no response after 7 days)
- Show conversion rates by company type
STEP 3: Update CUSTOMIZATION_MEMORY.md
Read the current CUSTOMIZATION_MEMORY.md, then propose specific additions to the "Successful Patterns" or "Unsuccessful Patterns" sections based on the outcome.
Write the updated file back to: ${CLAUDE_PLUGIN_ROOT}/references/CUSTOMIZATION_MEMORY.md
Format additions as:
#### [Company Type] - [Company Name] - [Outcome]
Date: [date]
Resume strategy: [what was emphasized]
Cover letter hook: [what opener was used]
Result: [screen / reject / offer / pending]
Learning: [what this tells us for future applications]
STEP 4: Persist the structured tracker (machine-readable — required)
CUSTOMIZATION_MEMORY.md holds the prose learnings. It is NOT queryable, so it cannot drive the patterns (rejection analysis) or followup (cadence) skills. Those skills read a structured tracker instead. Maintain it here.
${CLAUDE_PLUGIN_ROOT}/references/applications.md is the user's REAL tracker. It is git-ignored
(so private job-search data never reaches a public repo). Read it; if it does not exist, create it —
seed it from ${CLAUDE_PLUGIN_ROOT}/references/applications.example.md if that exists, and put the
privacy header at the top (see the example file). It has exactly one table with this schema — keep the
columns in this order:
# Application Tracker
| Num | Company | Role | Type | Status | Applied | Responded | Interview | Source | Score | Outcome reason | Contact | Follow-ups | Last follow-up |
|-----|---------|------|------|--------|---------|-----------|-----------|--------|-------|----------------|---------|-----------|----------------|
| 1 | Northstar AI | Director of Product | AI | applied | 2026-06-30 | — | — | referral | 4.2 | — | [email protected] | 0 | — |
Field rules:
- Num — sequential, never reused.
- Type — AI / Consumer / Enterprise / Fintech / Telco / Other.
- Status — one of:
evaluated,applied,screening,responded,interview,offer,rejected,discarded,skip. Use these exact tokens (thepatterns/followupskills classify on them).discarded= went dead with no formal rejection;skip= self-filtered before applying. - Applied —
YYYY-MM-DDyou submitted the application. - Responded —
YYYY-MM-DDthe company/recruiter first responded with a real reply (not an auto-ack);—until it happens. Set this the moment a reply lands (even if you also move Status toscreening/responded).followupkeys its urgency off it, andpatternsreads it as proof the row reached the screening stage. - Interview —
YYYY-MM-DDof the first interview (scheduled or held);—until it happens.followupkeys momentum off it, andpatternsreads it as proof the row reached the interview stage. - Source —
referral/direct/recruiter. - Score — the evaluation score (X.X/5) if the role was evaluated; else
—. - Outcome reason — on
rejected/discarded/skip, the stated or inferred reason (e.g. "geo-restricted", "stack mismatch", "seniority gap"). This is whatpatternsmines — never leave it blank on a negative outcome. - Follow-ups — integer count of follow-ups actually SENT (not drafted); starts at
0.followupbumps it on a confirmed send and treats2+as COLD. - Last follow-up —
YYYY-MM-DDof the most recent follow-up sent, else—.
On a new application: append a row (Responded, Interview —; Follow-ups 0). On an update: rewrite the existing row in place (build the new row as a fresh line, don't mutate columns piecemeal) — and when a reply or interview happens, fill the Responded / Interview date, don't just change Status. Write the file back. If the file still contains the shipped fictional example rows, delete them when appending the first real row.
STEP 5: Output pipeline summary
Always end with a pipeline summary table (derived from applications.md):
APPLICATION PIPELINE
| Company | Role | Status | Date | Follow-up Needed? |
|---------|------|--------|------|-------------------|
| [name] | [role] | [status] | [date] | [yes/no] |
Conversion Rates:
- Applications to screens: X%
- Screens to interviews: X%
- Interviews to offers: X%
Patterns Working: [what's getting responses]
Patterns to Change: [what's not working]
Zero-denominator guard (mandatory — same rule as the patterns skill): each conversion rate above is numerator ÷ denominator. If a denominator is 0 (e.g. no screens yet, so "screens to interviews" has nothing to divide), print "insufficient data for this rate" for that line — never divide by zero, and never print 0% when what you mean is "no data yet". A 0% reported on a zero denominator reads as a real failure signal when it is really just absence of data.
If there are fewer than 5 applications, note: "Pipeline is thin — consider expanding outreach or applying to more roles."
When the tracker has 5+ outcomes, suggest: "Run the patterns skill to analyze what's converting." When any application is aging past its cadence, suggest: "Run the followup skill to check follow-up cadence."