offer
Use when the user gets a job offer, is deciding between offers, asks whether to accept, wants to negotiate salary, or asks for a counteroffer. Helps evaluate and compare offers (total compensation, co
Files4
View on GitHubSKILL.md.claude/skills/offer/SKILL.md
GitHub/offer
Use references/offer-worksheet.md for the comparison table, negotiation scripts, fine-print checklist, and accept/decline wording, and references/negotiation-and-fine-print.md for what to expect by career stage, equity, benefits math, counteroffers, background checks, and sources.
If the offer hasn't arrived in writing yet (a call just came), the first step is the worksheet's "when the offer first comes" script: thank them, ask for it in writing and the answer-by date, and don't accept or name numbers on the call.
- Get the details (ask the user to paste the offer or drop the PDF in
imports/): base, signing bonus, relocation, bonus target, equity, start date, location, remote/hybrid terms, benefits (retirement match, health, PTO, tuition reimbursement), program structure if any, deadline. Save tojobs/<folder>/offer.md, and put the answer-by date in the job'sdeadlinecolumn injobs/tracker.csv(statusoffer,next_action=Respond to offer,next_action_date= 3 days before the answer-by date, or today if that's sooner) so the board and/todaywarn them as it gets close. Log it inhistory/activity.md. - Benchmark: get a sourced market range for that title, level, and city by following
references/pay-data.md(government wage data, posted ranges, employer H-1B filings, crowd data as a secondary signal); reuse the job folder's "Market pay" block if it's recent. Put the table and one-line synthesis inoffer.md, compare base to base and total to total, and note cost-of-living differences between locations. Label estimates as estimates. - Compare (if more than one): a table on money (first-year total), growth (training, mentorship, scope, brand), work (what they'd actually do daily vs. what they enjoyed in past roles), location/life, risk (startup funding, layoffs). Ask the user to weight what matters; give a clear recommendation with reasoning, and say it's their call.
- Read the fine print first: signing bonus and relocation repayment terms (often prorated clawbacks over 12–24 months if they leave), lump-sum vs. managed relocation and whether it's taxed or grossed up, equity vesting and cliff (count only what vests in year one, at today's price, as an estimate; value private-startup options at $0 plus upside; a connected company-data app can add funding history and the last valuation, with the preferred-vs-common caveats in
knowledge/data-connectors.md, never as what the options are worth), benefits in dollars (match, premiums), and contingencies (background check, drug screen, references, degree completion for students). If a background check is pending, help the user line up exact past dates and titles; in the US they have the right to see and dispute a report before an offer is pulled over it. Outside the US, also compare notice period, probation, 13th-month pay, statutory leave and pension instead of the US benefits math (reference, section 9). Structured programs (e.g. new-grad cohorts) often have a fixed base; negotiate sign-on, relocation, or start date instead. - Negotiation: even when base is fixed, signing bonus, relocation, start date, title or level, or remote terms can often move; experienced hires usually have more room on base. Draft a short, warm, specific ask into
outbox/(one ask, one reason, e.g., a competing offer, relocation cost, or market data; never invent a competing offer). A counteroffer never says "accept", not even "accept with one change"; the user accepts separately once the final terms are in writing. Prepare a phone script if they prefer calls. Set expectations honestly: in Pew's 2023 survey about two-thirds of people who asked got at least something more, and about a third got no change; a polite single ask rarely costs an offer. If the user's current employer counteroffers, walk through why they wanted to leave before comparing numbers (reference, section 4). 5b. Hourly, contract and academic offers: compare hourly or day rates on the same basis (hours actually offered, unpaid gaps, benefits eligibility by hours), and for contracts read the contract terms and status (W-2/1099, IR35) first; for faculty offers, the start-up package, teaching load and tenure clock (the matching file in the playbook's "Special situations"). 5c. If the user is employed: the start date is the earliest date their notice period allows after a written, unconditional offer; they resign only after that, in writing, briefly (knowledge/searching-while-employed.md§4). - Deadlines: if the deadline is only a day or three, use the worksheet's short-deadline script; many employers extend when asked. If waiting on another company, draft a polite extension request: open with what genuinely appeals about this offer (one specific thing), ask for a specific, modest extension (usually 1–2 weeks, to the date the other decision is due), and accept that they may say no. Also draft a note to the other company asking about their timeline. If the user is a student or new grad (
career_stagein preferences), check whether their school's career center has an employer offer-timeline policy and mention it only if it exists; don't quote NACE numbers to an employer. - Accepting: get it in writing and only accept when sure. Reneging burns bridges (and for students, schools commonly restrict career-services or job-board access for it; check the school's policy). Withdraw from other processes the same day the user accepts, unless the offer is still contingent (a background check, references, a drug test, right-to-work documents, a degree or license still to come, or anything else
offer.mdlists as open): then draft the withdrawals but hold the ones for final-stage and offer-stage processes until the contingencies clear (ask the user), so a rescinded offer doesn't leave them with nothing.
Closing the search (after the user accepts in writing)
If the offer is still contingent (see step 7), do steps 0 to 2 now, but in step 1 leave the held rows (final-stage and offer-stage processes) exactly as they are: no withdrawal draft, the same status and next step. Set the accepted job's next_action to Decide next step: confirm the contingencies cleared (worded so the board, /today and the startup note keep showing it) with the date the employer gave as next_action_date (7 days from today if none), and keep search_status: active. When the user says they cleared, run step 1 for the held rows, then steps 3 to 8.
Congratulate them first. After step 1, refresh the dashboard (the pages skill) and then tell them to open it (it celebrates once the job shows as accepted).
0. Save a backup first (the my-data skill, "Back up"), unless one was just made.
- Set the job to
accepted. For every other row atapplied,screening,interviewingoroffer, draft a short, warm withdrawal note intooutbox/(one per company, to their contact or the recruiter, thanking the people they met). Those rows stay open (withnext_action=Send withdrawal note, due today) until the user says the note was sent; then mark eachwithdrawnand clear its next step. Unsent withdrawals keep showing on the board and in/today, so none is forgotten. Setinterestedrows toskippedwith no note (those companies never heard from them). Closed rows get no next step: clearnext_actionandnext_action_date. Re-read the tracker before editing, and log the changes inhistory/activity.md. - Draft thank-you or update notes to every contact with status
talkedorreferred, and to each reference inprofile/references.md. When sent, they setlast_contactonly: notouches, nonext_followup(these people aren't waiting on a reply). 2a. Benefits and visa clocks (only if those lines inprofile/preferences.mdare filled): unemployment benefits usually must be told about a new job, its start date, and any hours and pay, through the agency's own site or phone line: remind the user to report it themselves. Whether they keep claiming, and for how long, is the agency's call (some programs, such as Universal Credit or US partial benefits, can continue at a reduced rate while working). On a job-dependent visa (for example F-1 OPT), the new employer and start date usually have to be reported (OPT: through the SEVP Portal or to the DSO, within the time the DSO gives); point them to their DSO or immigration lawyer. Don't clear the clock lines yet: certification reminders (including a scheduledcertification reminderroutine) and the visa count keep running until the job actually starts. Add a dated line tojobs/layoff-plan.md(create it in thelaid-offskill's format if it's missing) so/todayreminds them:- [ ] <start date>: New job starts. Report it to <agency / DSO>, then ask me to clear the benefits and visa clock lines. On or after the start date, with their OK: clear thebenefits_lines andvisa_clock_start, and setvisa_days_usedto the official count with that day's date invisa_days_used_as_of(.claude/skills/evaluate-job/references/visa-checks.md, "Visa clock"), so a later gap starts from the right number. Then suggest deleting acertification reminderroutine if they set one up (routinesskill, "Pause, change or delete"). Keep the work-search log file. - If other offers are pending, help the user decline them graciously with the worksheet's decline wording (never renege without talking it through).
- Write
profile/career-log.md: offer terms, start date, manager, what worked in this search (funnel numbers from the tracker), and a "First 90 days" section where they can log wins. Tell them it's the start of their next resume. - Ask before changing the existing
search_status: activeline under "Settings" inprofile/preferences.mdtosearch_status: closed YYYY-MM-DD(edit that one line; never add a secondsearch_status:line; if the line is missing, add it there). Re-read the file and check exactly onesearch_status:line remains. That quiets the reminders, the board's band and the status line (pending drafts and unsent withdrawals still show). - Offer to unpublish the dashboard and flashcards; keep the portfolio if they want.
- Finish with the extra wrap-up steps in
my-data(references/wrap-up.md, "Accepted a job": contacts' follow-up dates, leftover Outbox drafts, interviews still on their calendar, deleting routines (the certification reminder stays until the start date whilebenefits_cert_day:is set), a second backup). If you came here frommy-data, go back to it for those. Wiping the folder later is alsomy-data. - Last, once (not while contingencies or withdrawal notes are still open, and not if the Celebration panel's Share what worked was already pressed): offer the
share-lessonsskill in one line: "If you'd like to help people who are where you were, I can draft a few anonymous notes about what worked, for you to post on the project's GitHub page if you want." A no is fine.