company-research
Run end-to-end company research through Primr. Use when the user asks to research a company, provides a company URL, or wants a new strategic analysis run.
Company Research
Purpose
Use this skill to start and monitor Primr research runs through MCP. Treat MCP as the source of truth for current modes, defaults, and outputs.
Workflow
-
Read
primr://research/modesto confirm the current mode guidance. -
Read
primr://research/statusto see whether a run is already active. -
Call
estimate_runbefore starting a new run. Supportsplatforms(array),strategy_type, andno_ai_strategyparameters. Returnsestimated_time_rangealongsideestimated_time_minutes. -
Present the estimate, state that the run incurs real API cost, and get explicit approval before calling
research_company. -
After starting a run, monitor with
wait_for_status_changeorcheck_jobsuntil terminal. -
Read
primr://output/latestto present the result and next actions.
Operating Rules
-
Prefer the lightest mode that answers the request.
-
Do not restate fixed pricing or provider defaults from memory. Use MCP resources and
estimate_run. -
If a job is already in progress, surface that state instead of starting a second run.
-
Treat
fullas the standard end-to-end workflow andpremiumas the higher-cost, higher-depth option. -
Expect standard runs to take roughly 35-50 minutes and premium multi-vendor runs to reach 75-120 minutes.
-
Do not hold the client in a synchronous wait for the entire run; launch once, then monitor and resume from job state.
Example
User: Research ExampleCo at https://example.com
1. Read primr://research/modes
2. Read primr://research/status
3. estimate_run(company_url="https://example.com", mode="full")
4. After approval: research_company(company_name="ExampleCo", company_url="https://example.com", mode="full", max_estimated_cost_usd=0.67)
5. wait_for_status_change(job_id="...", timeout_seconds=60)
Error Handling
-
job_in_progress: report the active run and offer to monitor it. -
invalid_urlorssrf_blocked: ask for a valid public URL or switch todeepif appropriate. -
rate_limit_exceeded: wait for the retry window and retry.