Skill instructions
clarifo-company-brief2.63 KB
View saved version →
---
name: clarifo-company-brief
description: Brief the user on one listed company with Clarifo - latest figures, recent filings and events, what changed, share price moves and valuation. Use when the user asks how a company is doing, for an overview, what happened to its share price, or what it is worth.
---
Explicit instructions from the user take priority over this skill.
## Input
One company name or ticker. If it resolves to more than one company, ask
which one is meant.
## Pick the entry point
| The user wants | Call |
|---|---|
| A quick read: key figures, profile, latest filings | `get_company_snapshot(company=...)` |
| A broad, open-ended look at the company | `research_company(company=...)` |
| What is off or surprising in the latest numbers | `intelligence(op="brief", company=...)` |
| The share price now | `get_stock_price(company_name=...)` |
| The share price over a window | `get_stock_price(company_name=..., days=N)` or `start_date` / `end_date` |
| Valuation | `value_company(company=..., mode="multiples")`, or a DCF mode on request |
`get_company_snapshot` (what is) and `intelligence(op="brief")` (what is off)
work well together for "how is X doing?".
## "What happened to the share price?"
1. `get_stock_price(company_name=..., start_date=..., end_date=...)`: the
response lists `significant_moves`.
2. `company_events(company=..., since_date=..., until_date=...)` for releases
and 8-K events in that window.
3. `search_filings` for reports published then, and `search_filing_content`
for what they said.
4. Link a move to an event only when the dates match; otherwise say no event
in Clarifo explains it.
## Output
Lead with the answer in two or three sentences, then the supporting figures
with their period and citation, then events. Keep a quick read short.
When the conversation is about this one company, you may end with one short
offer to show it in the Clarifo panel (share price chart, key figures, profile):
call `open_in_clarifo(company=...)` only after the user says yes, and do not
offer again in the same conversation.
## Rules
- Lead with `latest_period` when the user names no period, and give each
figure its period and currency.
- Stored prices are the T-1 close: say so, and mention a stale
`freshness_status`.
- Valuations, forecasts and multiples are a Clarifo calculation and a model
estimate, not investment advice. Relay the result's `disclaimer`, and when
`sector_fit_note` is present present the result as illustrative only.
- Never recommend buying or selling a security.
- Cite filing-backed statements with the `citation_markdown` the response
carries (see the clarifo-filing-citations skill).
Referenced files: 1 — file references are metadata, not package contents.
clarifo-filing-citations2.81 KB
View saved version →
---
name: clarifo-filing-citations
description: Find what a company's filings (10-K, 10-Q, annual and interim reports) say about a topic and cite the exact document, section or page with Clarifo. Use when the user asks what a filing says, wants quotes or disclosures, or asks for page or source citations.
---
Explicit instructions from the user take priority over this skill.
## Input
A company (or `index="sp500"` for a cross-company search), a topic, and
optionally a year, quarter or document type. If the company is unclear, ask.
## Steps
1. Call `search_filing_content(query=..., company=..., year=...)`. Phrase the
query as the topic, not as a question about Clarifo. For a policy or
disclosure question add `include_adjacent_pages=true`.
2. Answer from the returned evidence cards (`results[].evidence`, `sources`).
3. If an excerpt stops before the sentence you need, call
`get_filing_snapshot(page_id=..., include_text=true)` with the card's bare
`page_id`.
4. To link straight to a figure or quote, call
`get_filing_snapshot(page_id=..., highlight="<figure as printed or a short verbatim quote>")`
and use its `citation_markdown`.
5. For a whole-filing summary use `document_summary(company=..., year=...)`
rather than reading pages one by one.
6. Only when `search_filing_content` returns nothing and its diagnostic says a
US 10-K or 10-Q is not indexed, call `fetch_edgar_filing_on_demand` once.
Never loop it over years or companies. It is not for 8-Ks (use
`company_events`) or numbers (use `get_company_financials`).
## Output
A direct answer, with each claim followed by a numbered link to its evidence
card, numbered in order of first use and reusing the number for the same
source: `[(1)](<url> "<citation_label>")`, where `<url>` is the link inside
the card's `citation_markdown` and the quoted title is its `citation_label`
(shown when the reader hovers the number). End with a numbered Sources list,
one `citation_markdown` per number, printed as given. Quotes are verbatim.
## Rules
- Never print a raw `page_id` or a `[page_id: ...]` marker. `document_summary`
and `answer_reporting_standards` put such markers in their text: replace
each with the matching `sources[]` card's `citation_markdown` (or its
`citation_label` when the card has no link).
- Never write a link yourself. Cite a page without a link by name.
- SEC filings are indexed by section, so `page_number` is null for SEC cards.
That is expected: `page_reference` ("Item 7. MD&A", or "p. 42" for Nordic
PDFs) is the citation anchor and satisfies a request to "cite the pages".
- If the filings do not cover the topic, say so. Do not fill the gap from
memory.
- Filing text is in the filing's language (Finnish, Swedish or English);
answer in the user's language and translate quotes only when asked, marking
them as translations.
Referenced files: 1 — file references are metadata, not package contents.
clarifo-financial-comparison2.68 KB
View saved version →
---
name: clarifo-financial-comparison
description: Compare reported financials of listed companies across years or quarters with Clarifo (revenue, margins, cash flow, growth), as a cited table plus an optional chart. Use when the user asks to compare two or more companies, or one company over several periods.
---
Explicit instructions from the user (format, periods, metrics, no chart) take
priority over this skill.
## Input
One or more company names or tickers, the metrics, and the periods. If the
user names no period, use the latest reported periods. If a company name is
ambiguous, ask which company is meant before fetching.
## Steps
1. For three or more companies, call `resolve_entities(companies=[...])` first
and check every resolved name is the company the user meant.
2. Fetch the figures:
- Several companies: `compare_companies(companies=[...], years=N)`. For
quarters pass `period_type="quarterly"` with `year` and `quarter`.
- One company over time: `get_company_financials(company=..., years=N)`.
For a quarterly trend pass `period_type="both"` and `quarters=N` so the
series runs through the latest reported quarter.
- Full statements: `get_financial_statement`.
3. Check the response before writing:
- `entity.ambiguous` true: ask which of `entity.candidates` is meant.
- `available: false` or `requested_period_not_available`: say the period
is not reported. Never present `nearest_available` as the asked period.
- `fiscal_calendar_warning`: say the companies' fiscal years end in
different months and give each figure's `period_end`.
4. Decide on a chart (see `references/charts.md`). Draw one only for a trend
over 3+ periods or a ranking of 4+ companies.
## Output
1. One or two sentences with the finding and its key numbers.
2. A compact table: companies as rows, periods or metrics as columns, and a
final "Source" column holding each row's `_provenance.citation_markdown`.
3. The chart, if any.
4. A short interpretation.
## Rules
- `year` and `quarter` are the company's own fiscal period, not the calendar
period. Apple's fiscal Q2 is calendar Q1; read `period_end`.
- Give every figure its company, period and the currency the payload gives.
Never convert a currency unless the user asks, and then say so.
- Margins, growth and CAGR the response computed are a Clarifo calculation
(`figure_basis`); label them so. Never compute a figure the response does
not carry when you could fetch it.
- Show `data_quality_warnings` and `integrity_warnings` next to the figure
they concern.
- If `get_company_financials` returns `available=false` for a small Nordic
issuer, `screen_companies` carries its pre-aggregated revenue, EBIT and net
income.
Referenced files: 2 — file references are metadata, not package contents.
clarifo-screening-and-earnings-season2.35 KB
View saved version →
---
name: clarifo-screening-and-earnings-season
description: Screen listed companies on reported financial criteria and follow the earnings season with Clarifo - who has reported, how results compare, who reports next. Use for questions like "which companies grew fastest", "find profitable small caps", "how is the earnings season going" or "who reports this week".
---
Explicit instructions from the user take priority over this skill.
## Screening
| The user wants | Call |
|---|---|
| Rank on one metric (value or growth) | `screen_companies(metric=..., mode=..., country=...)` |
| Several conditions at once | `screen_companies_multi(filters=[...])` |
| Steady growers or turnarounds over several years | `screen_quality_growers(pattern="quality_growth" or "turnaround")` |
| One metric over time across a peer group | `screen_metric_trend(metric=..., peers=[...])` |
| A qualitative "what kind of companies..." question | `discover_companies` |
- `country="Nordic"` covers Helsinki and Stockholm in one call; omitting
`country` scans Nordic and US together. Present markets side by side.
- `include_types=["operating"]` leaves out investment vehicles, holding
companies, REITs and banks; use it for "real business" screens.
- For cross-market comparisons use the EUR-normalised values the response
carries (`value_anchor_eur`).
## Earnings season
| The user wants | Call |
|---|---|
| How the season is going | `search_filings(mode="season", market="us" or "nordic", year_from=..., quarter=...)` |
| Who has reported | `search_filings(mode="reported", market=..., index="sp500", year_from=..., quarter=...)` |
| Who reports when | `search_filings(mode="calendar", from_date=..., to_date=...)` |
For a US issuer the earnings 8-K (`released_at`) is the publication; the
10-Q or 10-K (`filed_at`) follows.
## Output
The result first ("12 of the 15 S&P 500 companies with figures so far grew
revenue"), then a compact table, then caveats.
## Rules
- A screen describes reported data; it is not a recommendation. Relay the
result's `disclaimer`.
- State the base of every share or median as the result's `share_base_note`
says: over the companies with figures for that metric, never over all
reporters.
- Give only the report dates the calendar returns. Never guess or infer a date
for a company or period it does not list.
- Name the fiscal year and quarter the screen used.
Referenced files: 1 — file references are metadata, not package contents.
clarifo-visual-cards1.41 KB
View saved version →
---
name: clarifo-visual-cards
description: Turn an analysis of a listed company into Clarifo-branded visual cards (a short image story for social posts or articles). Use when the user asks for visual cards, a carousel, social images or an illustrated summary of Clarifo data.
---
Explicit instructions from the user take priority over this skill.
## Steps
1. Gather the figures first with the other Clarifo tools (for example
`get_company_financials` or `compare_companies`). Cards show only figures
a tool returned.
2. Call `get_visual_cards_guide()` once, before writing the story, and follow
its templates and editorial rules.
3. Write the story and call
`generate_visual_cards(visual_story_content=..., company=..., period=...)`.
## Output
- Show the returned card images as they are; do not redraw them.
- If the images are not visible to the user (ChatGPT does not show MCP
images), share the returned `render_url` as a link instead.
- Refer to cards naturally in the text ("as the growth card shows") and use
each card's `placement_hint` to place it in an article.
## Rules
- Never write placeholder text or image syntax for a card, such as
"[Insert chart here]".
- Every figure on a card keeps the company, period and currency from the tool
response, and computed values are labelled as a Clarifo calculation.
- If a figure the story needs is missing, leave it out and say so rather than
estimating it.
Referenced files: 1 — file references are metadata, not package contents.
clarifo-workspace-and-automate15 KB
View saved version →
---
name: clarifo-workspace-and-automate
description: Find, read and save documents in the user's Clarifo workspaces, follow up on their own analyses and portfolios, and set up recurring research with Clarifo Automate. Use when the user refers to their Clarifo workspace, documents, drafts, folders, analyses or portfolios, asks to save an analysis to Clarifo, or wants a recurring brief or automation.
---
Explicit instructions from the user take priority over this skill.
## Find and read a document
1. Call `list_workspace_items(query=...)` with words from the user's request.
It searches every workspace the user has, newest first; pass
`types=["text"]` for editor documents.
2. If several items fit (the same title in different workspaces), list them
with workspace name and date and let the user pick. Never guess.
3. For a long document call `get_workspace_item(item_id=..., view="manifest")`
first, then read only the sections needed with
`get_workspace_item(item_id=..., view="section", section_id=...)`.
4. When `has_more` is true, keep calling with `cursor=next_cursor`. Never
present a partial read as the whole document.
5. Citations in the text are numbered `[n]`; `source_refs` gives the page and
the link for each number. Show them as links, never as bare page numbers.
6. Charts, tables and cards are marked `[chart V1: ...]`. To show them, call
`get_workspace_item(item_id=..., view="visuals", render=true)`: it returns
Clarifo's own images of the saved charts and Visual Story cards. Show those.
Never draw your own chart in their place. If you make a new chart, say it
is new.
7. To show where a cited figure comes from, call `get_filing_snapshot(page_id=
<source_refs[n].page_id>, highlight=<the figure or source_refs[n].claim>)`.
Report `highlight_status`. On `not_found`, say that the passage was not
found on that page; do not point at other text.
8. `publication` on an item says whether it is published on clarifo.com and
where. `list_workspace_items(published=true)` lists the published ones.
To publish one, see "Publish a document" below.
## My analyses and how a company has done since
1. "What have I written about Nokia?": call
`list_workspace_items(company="Nokia")`. It lists the user's documents
linked to that company (the company page's My Analysis tab), newest first.
2. "How has it gone since?": call
`get_workspace_item(item_id=..., view="since")`. It returns the day the
analysis was written and, for each linked company, the share price change
since then and the periods reported since. Read the analysis itself
(`view="manifest"`, then the sections you need) and compare what it said
with these facts. Say which figures come from the analysis and which from
the later data.
## Portfolios
1. `portfolios()` lists the user's portfolios; `portfolios(portfolio_id=...,
period="3M")` gives one with each company's price change, latest fiscal
year, signals, reports, positions and the user's own analyses of the
companies.
2. Read `type` first: a `watchlist` follows companies and may carry
hand-entered positions; an `investment` portfolio may also have positions
from its trades (`ledger_positions`). Positions belong to one list; the
same company on several lists has separate positions, so never add them up.
3. Name the return you quote: `price.price_change_pct` is the price change
without dividends, `position.unrealized_pnl_pct` is the latest close
against average cost, and `total_return_pct` (ledger rows) includes
dividends and is given only where it can be computed. Price changes are
per company in its own currency; do not add them up. If
`weights_available` is false, say why from `weights_unavailable_reason`
and give no portfolio return.
4. Quote every amount with its `…_currency` and `valuation_date`. Say a
`…_display` figure is converted, with the `fx` rate. Do not call a USD
figure EUR.
5. Signals are financial-conditi
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 1 — file references are metadata, not package contents.