---
description: Company Research — produces a cached per-company brief covering recent news, leadership, funding, eng-blog signal, Glassdoor read, podcast appearances, tech stack, public talks. Tier 2 sub-agent does the fetch, Tier 3 main synthesizes. Reused across multiple applications at same company.
---

# personal-company-research

Generates a cached company brief that gets reused across multiple roles at the same company. Build once, use many times.

## Trigger phrases

- "Research [company]"
- "Tell me about [company]"
- "Company brief for [company]"
- `/company-research [company]`
- Auto-suggested by `personal-jd-analyzer` if `~/.career/companies/{slug}/brief.md` doesn't exist

## Inputs

- Company name
- (Optional) specific URLs Josh wants prioritized

## Process

### Stage 1 — Parallel research (Tier 2 sub-agents)

Fire 4 parallel `research` sub-agents, each focused:

#### Sub-agent 1 — Public-facing signal

- Company website (about, mission, team, careers page)
- Recent press releases / news mentions (last 90 days)
- Funding history (Crunchbase / public filings)
- Founders + key leadership (LinkedIn check)

#### Sub-agent 2 — Engineering culture signal

- Engineering blog (last 6-12 months — what are they shipping, what challenges are they solving)
- GitHub org (public repos, contribution patterns, what tech they use)
- Public talks by their engineers (YouTube, conference recordings)
- Open-source contributions

#### Sub-agent 3 — Worker signal

- Glassdoor reviews (sentiment, recurring themes, interview reports)
- Levels.fyi compensation data
- Layoffs.fyi history
- Reddit threads on the company (r/cscareerquestions, r/customer_success, etc.)

#### Sub-agent 4 — Customer signal (for CSM-track)

- Customer case studies on their site
- G2 / Capterra / TrustPilot reviews
- Twitter/LinkedIn posts mentioning them
- Customer testimonials in their marketing

Each sub-agent returns ≤500 tokens of structured findings.

### Stage 2 — Synthesize (Tier 3 main, Sonnet)

Read all 4 outputs. Produce the brief:

```markdown
# [Company] — Company Brief

**Last updated:** YYYY-MM-DD
**Brief age:** [N] days (refresh recommended if >60)

## Snapshot

- **What they do:** [1-2 sentences]
- **Stage:** [seed / Series A/B/C / public]
- **Headcount:** [approx]
- **Founded:** [year]
- **HQ:** [city, remote-first?]
- **Most recent funding:** [round, amount, date]

## Why they're hiring

[2-3 sentences: growth phase, recent shift, new product line, replacing departed leader]

## Leadership

- **CEO:** [name] — [1 line on background, recent posts/talks]
- **CTO / VP Eng:** [name] — [1 line]
- **Likely manager / VP for the role:** [name if findable] — [1 line]

## Recent moves (last 90 days)

- [Date]: [event] — [why it matters]
- ...

## Engineering culture (from public signal)

- **Tech stack:** [main languages, frameworks, infra]
- **Engineering values (stated vs revealed):** [...]
- **Public output cadence:** [eng blog frequency, conference presence]

## Worker sentiment (Glassdoor + Reddit)

- **Overall:** [N/5] from [N] reviews
- **Recurring positive themes:** [...]
- **Recurring negative themes:** [...]
- **Interview process reputation:** [...]

## Compensation signal

- **Levels.fyi data:** [if available, role-relevant bands]
- **Stock vs cash mix:** [public companies] / [private ratio if disclosed]

## CSM / Customer signal (if CSM-track)

- **Customer logos:** [...]
- **CS leadership / VP CS:** [name if findable]
- **Recent CS case studies:** [...]
- **What customers complain about:** [from G2/TrustPilot]

## Three angles for cover letters / outreach

1. **[Angle name]:** [framing]
2. **[Angle name]:** [framing]
3. **[Angle name]:** [framing]

## Three sharp questions for interviews

1. ...
2. ...
3. ...

## Open questions / data gaps

- [What couldn't be found]

## Sources

- [URL] — [what for]
- ...
```

### Stage 3 — Persist

Save to `~/.career/companies/{company-slug}/brief.md`.

Cache other artefacts in same folder if produced (e.g., `eng-blog-summary.md`, `leadership-profiles.md`).

## Refresh policy

Briefs older than 60 days surface a refresh prompt before being used by other skills (`personal-jd-analyzer`, `personal-cover-letter`, `personal-interview-prep`).

The refresh runs only the sub-agents whose data class moves fast (1, 3, 4) — engineering culture moves slow, refresh every 6 months unless trigger event.

## Output to Josh

```markdown
**Company brief built** for [Company]

**Path:** `~/.career/companies/{slug}/brief.md`

**Headline read:** [3-5 sentences synthesizing what's most relevant for a job hunter]

**Sources cited:** [N URLs]
**Data gaps:** [N items]

**Strongest angle for outreach/cover letter:** [the top of the 3]

**Watch-outs from worker signal:** [if any negative themes are strong, surface them — Glassdoor 2.5/5 with recurring "burnout" theme = worth knowing before applying]

**Next:** Use this brief in `personal-jd-analyzer` for any role at [Company], or run `/cover-letter` if you've already analyzed a JD here.
```

## Privacy rule

Company briefs are internal artefacts. They MAY contain unflattering info (Glassdoor sentiment, layoff history, leadership turnover). NEVER include the contents of a brief in any outbound communication (cover letter, DM, email). The brief informs Josh's framing; it doesn't leak into externally-visible content.
