construct-resume
Build a tailored resume from your logged evidence - accomplishments, lessons, expertise, decisions, and insights - matched against a specific job listing
What this skill does
<purpose>
Analyze a job listing, match it against the user's logged evidence, and produce a tailored resume that speaks directly to what the role demands. Evidence comes in different types -- accomplishments, lessons, expertise, decisions, influence, and insights -- and the resume should draw on all of them.
</purpose>
<steps>
<step id="load-configuration" number="1">
<description>Load Configuration</description>
<load-config>
<action>Resolve the user's home directory.</action>
<command language="bash" output="home" tool="Bash">echo $HOME</command>
<constraint>Never pass `~` to the Read tool.</constraint>
<read path="<home>/.things/config.json" output="config" />
<if condition="config-missing">Tell the user: "Run `/things:setup-things` first." Then stop.<exit /></if>
<read path="<home>/.things/shared/professional-profile.json" output="profile" />
<read path="<home>/.things/i-did-a-thing/preferences.json" output="preferences" />
<if condition="preferences-missing">Tell the user: "Run `/setup-idat` first." Then stop.<exit /></if>
</load-config>
</step>
<step id="load-arsenal" number="2">
<description>Load the Arsenal</description>
<read path="<home>/.things/i-did-a-thing/index.json" output="index" />
<read path="<home>/.things/i-did-a-thing/arsenal/" output="arsenal" />
<constraint>The index.json contains all log data inline -- no need to open individual log files. Use the professional profile from `shared/professional-profile.json` (`current_role`, `target_roles`, `building_skills`, etc.).</constraint>
<if condition="fewer-than-3-entries">
<output>
You only have N logged entries. I can work with this, but your resume will be stronger with more evidence. Consider running `/thing-i-did` a few more times to build your arsenal.
</output>
</if>
</step>
<step id="get-job-listing" number="3">
<description>Get the Job Listing</description>
<if condition="url-provided">Use WebFetch to retrieve it.</if>
<if condition="text-pasted">Use that directly.</if>
<if condition="no-listing-provided">
<ask-user-question>
<question>Paste the job listing or give me a URL and I'll pull it for you.</question>
<option-with-text-input>Paste listing</option-with-text-input>
</ask-user-question>
</if>
</step>
<step id="analyze-job-listing" number="4">
<description>Analyze the Job Listing</description>
<action>Parse the listing to extract:</action>
- Role title and level
- Required skills (hard and soft)
- Preferred/nice-to-have skills
- Key responsibilities
- Company values or culture signals
- Industry/domain context
<output>
Here's what I see in this listing:
Role: (title)
Must-haves: (skills)
Nice-to-haves: (skills)
Key themes: (themes)
Let me match this against your arsenal.
</output>
</step>
<step id="match-against-arsenal" number="5">
<description>Match Against Arsenal</description>
<action>For each required and preferred skill in the listing, search and score against the user's logged evidence.</action>
<substep name="search-arsenal">
<description>Search Arsenal Files</description>
<action>Search arsenal files for matching skills.</action>
</substep>
<substep name="search-logs">
<description>Search Log Index</description>
<action>Search log frontmatter for matching `skills_used`, `tags`, `category`, and `evidence_type`.</action>
</substep>
<substep name="score-relevance">
<description>Score Relevance</description>
<action>Score each log's relevance to the listing, weighting evidence types by what the listing emphasizes:</action>
- Listing asks for "learning agility," "growth mindset," or "adaptability" -> weight `lesson` entries higher
- Listing asks for "technical depth," "domain expertise," or "subject matter expert" -> weight `expertise` entries higher
- Listing asks for "sound judgment," "strategic thinking," or "architectural decisions" -> weight `decision` entries higher
- Listing asks for "influence," "leadership without authority," or "mentorship" -> weight `influence` entries higher
- Listing asks for "vision," "innovation," or "strategic direction" -> weight `insight` entries higher
- Standard behavioral requirements -> weight `accomplishment` entries as default
</substep>
<substep name="classify-matches">
<description>Classify Matches</description>
<action>Identify strong matches (direct evidence), partial matches (related evidence), and gaps (no evidence).</action>
</substep>
<output>
Strong matches (you have direct evidence):
- (skill): N entries, best example: "(log title)" (`evidence_type`)
Partial matches (related experience):
- (skill): closest evidence is (description)
Gaps (no logged evidence):
- (skill): consider logging relevant experience or highlighting transferable skills
</output>
</step>
<step id="build-resume" number="6">
<description>Build the Resume</description>
<constraint>Use the template in `references/resume-format.md` to construct the resume.</constraint>
<constraint>
Resume construction rules:
1. Tailor the summary to echo the listing's language and priorities
2. Order experience sections by relevance to this role, not chronologically
3. Pull resume bullets directly from log files' "Resume Bullets" sections, using the type-appropriate format:
- Accomplishment entries -> STAR-format bullets
- Lesson entries -> "Learned X from Y, now apply Z" format
- Expertise entries -> "Deep expertise in X, demonstrated through Y" format
- Decision entries -> "Evaluated X, Y, Z; chose Z based on A, B, C" format
- Influence entries -> "Drove adoption of X, resulting in Y" format
- Insight entries -> "Identified pattern X, proposed Y" format
4. Adapt bullets to use keywords from the job listing where truthful
5. Quantify everything possible using metrics from logs
6. Include skills section ordered by listing priority, only including skills with evidence
7. Match tone to the company's culture signals
</constraint>
<ask-user-question>
<question>Resume format preference?</question>
<option>`traditional` -- clean, professional, ATS-friendly</option>
<option>`narrative` -- summary-driven with accomplishment highlights</option>
<option>`technical` -- skills-forward with project details</option>
</ask-user-question>
</step>
<step id="write-resume" number="7">
<description>Write the Resume</description>
<write path="<home>/.things/i-did-a-thing/resumes/<date>-<company-slug>.md">
<schema name="resume-frontmatter">
Include a metadata header (not part of the resume itself):
```yaml
---
target_role: "<role title>"
target_company: "<company>"
listing_url: "<url if provided>"
date_generated: <date>
match_score: "<strong_matches>/<total_requirements>"
evidence_types_used:
accomplishment: <n>
lesson: <n>
expertise: <n>
decision: <n>
influence: <n>
insight: <n>
logs_referenced:
- "<log filename>"
- "<log filename>"
gaps_identified:
- "<skill>"
---
```
</schema>
</write>
</step>
<step id="review-with-user" number="8">
<description>Review with User</description>
<ask-user-question>
<question>How does this look?</question>
<option>Looks great -- save it</option>
<option-with-text-input>I want to adjust some sections</option-with-text-input>
<option>Regenerate with a different format</option>
<option>Let me add more evidence first</option>
</ask-user-question>
<if condition="user-wants-adjustments">Use AskUserQuestion to identify which sections, then Edit Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.