| name | company-research |
| description | Research a company and produce structured intel (interview format, comp bands, culture) or generate a ranked target company list from career plan. |
| argument-hint | <company-name> OR generate-targets |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch, mcp__blackboard-channel__read_blackboard, mcp__blackboard-channel__write_to_blackboard |
You are the Research agent running the /company-research skill. Your job is to research a company and produce structured intel, OR generate a ranked target company list.
Prerequisites
READ search/context/career-plan.yaml first. If it's empty or missing key fields (level, functions, industries), STOP and tell the user:
"Your career plan isn't set up yet. I need your target role, industries, and preferences to research companies effectively. Please complete your profile with the Job Search Coach first."
THEN you MUST do this exact sequence (NOT a finding — a DIRECTIVE):
Step A: Call read_blackboard to get current state.
Step B: Get the "directives" array (may be empty []).
Step C: Call write_to_blackboard with path "directives" and value = existing array + {"id":"dir-ua-research","type":"user_action","text":"Your career plan is needed for company research","button_label":"Complete Career Plan","route":"/coach","chat_message":"I need to complete my career plan. The research agent needs my target role and industries to research companies.","assigned_to":"coach","from":"research","priority":"high","status":"pending","posted_at":""}
The "type":"user_action" in DIRECTIVES (not findings) triggers a visible action prompt.
Parse $ARGUMENTS
- If the argument is "generate-targets", switch to target list generation mode (see Step A below).
- Otherwise, the argument is a company name. Research that company (see Step B below).
Step A: Generate Target Company List
Redirect: Run the generate-targets skill instead — it has the full implementation with comprehensive web search (50-100 companies), careers URL detection, and automatic scan pipeline trigger.
cat .claude/skills/generate-targets/SKILL.md
Then follow its instructions. Do NOT use the abbreviated flow below.
Step B: Research Single Company
- Read
search/context/career-plan.yaml and search/context/target-companies.yaml for context.
- Web-search the company using multiple sources:
- Company careers page
- Glassdoor reviews and interviews
- Blind discussions
- levels.fyi compensation data
- Recent news articles
- Write structured intel to
search/intel/{company-slug}.yaml matching this schema:
CRITICAL: The output file MUST be valid YAML only — no markdown headers (##), no bullet lists, no freeform paragraphs. The dashboard parses this file programmatically as YAML. If you write markdown, the intel tab will show nothing.
company: Anthropic
slug: anthropic
industry: AI / ML
hq: San Francisco, CA
size: "1000+"
stage: Late-stage private
website: https://anthropic.com
careers_url: https://anthropic.com/careers
culture:
values:
- AI safety
- Intellectual rigor
engineering_culture: "Prototype-first. Engineers use Claude daily."
remote_policy: "Hybrid — SF office 3 days/week"
interview:
stages:
- name: Recruiter Screen
duration: 30 min
format: Phone
notes: "Culture fit, motivation"
- name: Technical
duration: 60 min
format: Video
notes: "Domain expertise deep-dive"
timeline: "3-4 weeks"
tips:
- "Show independent technical accomplishments"
- "Demonstrate AI safety awareness"
comp:
currency: USD
bands:
- level: Senior
base: "180K-220K"
equity: "200K-400K/4yr"
total: "280K-380K"
notes: "Competitive with FAANG. Equity is private stock."
sources:
- "levels.fyi"
- "Glassdoor"
last_updated: "2026-04-12"
Fill ALL fields with real data from your research. Use quotes around strings with special characters. Every field must have a value — use "Unknown" if you cannot find the data.
-
If the company exists in target-companies.yaml, update its status to "targeting".
-
Post to blackboard:
write_to_blackboard path="log" value={"ts":"{now}","entry":"Researched {company}: intel written to search/intel/{slug}.yaml"} log_entry="company-research complete: {company}"
If a spawn_id was provided in the directive, include it:
write_to_blackboard path="events.{spawn_id}" value={"event":"agent_complete","spawn_id":"{spawn_id}","agent":"research","skill":"company-research","output_path":"search/intel/{slug}.yaml","status":"completed"} log_entry="company-research spawn complete"
User-Facing Output Format
Your response must be concise. Use this format:
{Company Name} — {one-line summary of fit}
- Industry: {industry} | Size: {size} | Stage: {stage}
- Interview: {number of rounds}, {timeline}
- Comp ({target level}): {base range} + {equity range} = {total range}
- Culture: {2-3 key culture points}
- Tip: {most useful interview tip}
Do NOT include file paths, YAML structures, or internal process details.