research-company
Build a structured company × role brief — compensation, day-to-day, career growth, recent news, community sentiment (Reddit / Blind / Glassdoor), red flags, and a "fit for this user" view. Heavy reasoning — runs forked. Writes companies/<slug>.{md,json} sidecars consumed by prep-interview and coach-negotiation.
- License 许可
- MIT
- 最近更新
- 2026-06-09
- Stars
- ★ 7
- Forks
- 1
01 前言 Front Matter
- name
- research-company
- context
- fork
- description
- Build a structured company × role brief — compensation, day-to-day, career growth, recent news, community sentiment (Reddit / Blind / Glassdoor), red flags, and a "fit for this user" view. Heavy reasoning — runs forked. Writes companies/<slug>.{md,json} sidecars consumed by prep-interview and coach-negotiation.
- when_to_use
- Use before an interview round, before negotiating an offer, or whenever the user wants to decide whether to pursue a role at a specific company. Heavy — runs forked.
- allowed-tools
- Read, Write, WebSearch, WebFetch
- user-invocable
- true
02 资源文件 1
- 参考文档reference/report-schema.md3.3 KB
03 SKILL.md 正文
research-company
A 360° brief on a company × role, grounded in real sources — every claim cites a URL. Hard rules: ../_shared/RULES.md.
Inputs
company(required) — name or canonical key. Known-info gate (RULES §6): if not given inline, readjobs/current.jsonforcompany/rolebefore asking.role(optional but strongly recommended) — title at the target level.- Profile:
profile/master-profile.mdfor thefit_for_userview (readcontext:for direction only; never echo).
Method (forked context — be liberal with WebSearch / WebFetch)
-
Region pack. Read
knowledge/regions/<code>.md— comp norms (USD base+equity vs INR LPA CTC fixed+variable) and which community sources to weight (Glassdoor.com vs Glassdoor.in,r/indiafor IN-only). -
Discovery sweep — site-restricted WebSearch queries (run a handful, don't be precious):
"<company>" compensation "<role>" levels.fyi OR teamblind OR glassdoor"<company>" "<role>" "day-to-day" OR responsibilities OR "what we do""<company>" career growth OR promotion OR ladder OR "career path""<company>" news (last 12 months)— site:news.ycombinator.com OR site:techcrunch.com OR site:bloomberg.com OR site:theinformation.com
-
Community sentiment. Up to 5 results each from:
- Reddit —
r/cscareerquestions,r/ExperiencedDevs,r/csMajors,r/recruitinghell, andr/india/r/developersIndiafor IN. - Blind (
teamblind.com) — when accessible. - Glassdoor (regional).
Each =
{ content (≤ 20 words), link, source, date? }.WebFetchthe promising ones; quote sparingly.
- Reddit —
-
News pass —
WebSearchlast-90-days news; surface 4–6 items with date + 1-line summary + link. -
Compose the report per
reference/report-schema.md:compensation—salaryBenchmarks.{baseSalary, totalCompensation}(verbatim source strings) +benefitsOverview[].jobSummary.{jobDescriptionSummary[], dayToDayResponsibilities[], careerGrowthOpportunities[]}— 4–6 bullets each, drawn from sources (not invented).news.recentNews[]— 4–6 items.discussions.{reddit[], blind[], glassdoor[]}— what people who work there say. Honest: positive AND negative.red_flags[]— 0–4 specific, sourced concerns. "Glassdoor 2.8 with consistent WLB complaints (link)"; "Two CFOs in 18 months (TechCrunch, 2026-03)". Skip if nothing material.fit_for_user[]— 2–3 bullets each linking a profile fact to a company fact. Readscontext:for direction; never echoes.
-
Cite everything. Markdown report has links inline; JSON has explicit
link/sourcefields per item, and a dedupedsources[]at the root.
Output
companies/<slug>.md— human-readable; sections mirror the JSON; "Sources" footer lists every URL.companies/<slug>.json— schema-compliant perreference/report-schema.md. Consumed byprep-interview,coach-negotiation.- Console: 5-line summary — comp band · growth signal · top red flag · top fit · next suggested skill (
prep-interviewif pre-interview,coach-negotiationif pre-offer).
Anti-patterns
- Compensation ranges without a source. If none found, set to
null; don't write "$180k–$220k" with no link backing it. - News older than 18 months (unless the user is researching a founding / legal / deal story).
- Empty arrays filled with placeholder strings ("No information found"). Use
[]. - Echoing
context.career_goal/context.additional_infointofit_for_user. - Pretending small samples are representative ("everyone on Blind says X" when there are 3 posts).
- Emoji.
Rubric
- [ ] Every claim in the markdown has a source URL.
- [ ]
salaryBenchmarksare verbatim from sources; if absent,null, not invented. - [ ] Sentiment is balanced (positive + negative) where both exist.
- [ ]
red_flagsare specific and sourced (or absent). - [ ]
fit_for_usercites both a profile fact and a company fact per bullet. - [ ]
sources[]at root deduplicates every URL used.
Next steps
Brief saved. Next: /prep-interview (pre-interview) or /coach-negotiation (pre-offer).
04 同仓库更多 Skills
write-outreach
Write a short, profile-grounded cold outreach message to a recruiter, hiring manager, or potential referrer — LinkedIn DM or email — with one clear CTA and no flattery.
write-cover-letter
Produce a job-specific, profile-grounded cover letter in markdown — ≤ 350 words, ≤ 1 page, three paragraphs (hook → two quantified proofs → fit close). Reuses keywords from a prior tailor-resume sidecar when present. Writes a JSON sidecar reserved for a future /render-resume --kind cover-letter (rendercv).
triage-inbox
Classify a recruiting email (or a batch) into one of the 10 canonical email classes, extract structured fields (company / role / dates / links / asks / deadline / sentiment), and suggest the next action. Writes inbox/triage-<YYYY-MM-DD>.json — consumed by infer-status and draft-reply.
tailor-resume
Produce a job-specific, ATS-optimized resume from the user's master profile and a target job — reordering, reframing, and surfacing the most relevant real experience and keywords. Enforces a content rubric (bullet shape, length, parallel grammar, metric coverage), then renders a polished PDF by default (via render-resume) and visually QAs it. Never fabricates.
score-fit
Score how well the user's master profile fits a specific job — an ATS-style match percentage with matched/missing keywords, strengths, gaps, and a clear apply-or-skip recommendation. Optionally writes a structured sidecar that tailor-resume consumes.
review-render
Visually QA a rendered resume PDF and auto-fix layout/content defects in a bounded loop: render → screenshot → deterministic gate → vision rubric → apply one fix → re-render, until it passes or hits a pass cap. Catches widows, under-fill, overflow, orphaned headers, and imbalance that text-only logic can't see.