drillr — Power Terminal for Deep Financial Research

Workflows

Power terminal for deep financial research on US public equities — reason through investment theses, screen for ideas, map supply chains, do forensic accounting, pull earnings call quotes, model financials, and more in plain English

Install

openclaw skills install drillr

drillr — Power Terminal for Deep Financial Research

drillr.ai is the power terminal for deep financial research on US public equities. Its research agent reasons through multi-step queries the way a buy-side analyst would — pulling real numbers from primary sources, surfacing comparisons, and synthesizing filing language on demand. Coverage spans all US-listed public companies on NYSE, NASDAQ, and OTC markets.


Safety & Guardrails

drillr is a read-only research skill — pure question in, markdown answer out. No side effects, no surprises.

What the skill does, and only does:

  1. Takes the user's question as a plain string
  2. Sends a single HTTPS POST to one hardcoded endpoint: diggr-agent-prod-414559604673.us-east4.run.app/api/public/chat
  3. Streams the Server-Sent Events response
  4. Renders the result as markdown text on stdout

What the skill will never do:

  • Read, write, or delete files — no filesystem access beyond stdout
  • Execute shell commands, eval, exec, or spawn subprocesses
  • Make a second network request — exactly one POST per query, nothing chained, nothing retried silently
  • Handle credentials, API keys, cookies, or session tokens — the endpoint is unauthenticated
  • Persist anything between calls — each invocation is fully stateless
  • Access environment variables, git history, ~/.ssh, or any other local data
  • Emit telemetry, analytics, or usage tracking

Dependencies: Python stdlib only (http.client, json, re, io, urllib.parse, sys). Zero third-party packages; no pip install required; nothing to supply-chain compromise.

Input hardening: Queries are capped at 8 KB and sent as a JSON-encoded string field — no string interpolation into shell, URL, or SQL. The API URL is hardcoded, not constructed from input.

Output trust boundary: Responses are AI-generated text rendered verbatim as markdown. The script never execs, evals, or otherwise acts on returned content. Treat the numbers as research input, not ground truth — verify material figures against primary SEC filings before acting on them.


What You Can Do

Thesis-Driven Company Discovery

Find companies that fit a specific investment thesis — across fundamentals, quality, valuation, and momentum signals simultaneously.

  • "Screen for mid-cap software companies with revenue growth above 20%, positive free cash flow, and P/FCF under 30x"
  • "Find small-cap industrials with improving gross margins, low debt, and insider buying in the last two quarters"
  • "Which Russell 2000 companies have had three consecutive quarters of earnings beats and still trade below 15x earnings?"
  • "Find healthcare companies where institutional ownership has increased significantly in the last two 13F periods"

Supply Chain & Sector Mapping

Map competitive dynamics, trace customer/supplier relationships, and understand who wins when a sector theme plays out.

  • "Which semiconductor equipment companies have the most revenue exposure to AI infrastructure capex?"
  • "Compare gross margin trends across the five largest cloud infrastructure companies over the last three years"
  • "Which defense contractors have the highest backlog-to-revenue ratios and how has that changed?"
  • "Who are the biggest beneficiaries if US reshoring accelerates — show revenue mix by geography for major industrials"

Forensic Accounting

Detect earnings quality issues, stress-test reported numbers, and surface divergences between what management says and what the financials show.

  • "Compare Palantir's GAAP net income vs operating cash flow vs stock-based compensation over the last 8 quarters — is earnings quality improving?"
  • "Show the change in days sales outstanding and inventory levels for Nike over the last six quarters"
  • "Flag any companies in the S&P 500 consumer sector where revenue growth is accelerating but cash conversion is declining"
  • "What changed in Boeing's 10-K risk factors between 2022 and 2024 — show new additions and deletions"
  • "Reconcile Tesla's reported free cash flow against capex and working capital changes — does the cash flow story hold?"

Cross-Company Data Tabulation

Pull a specific metric across a peer group and lay it out side by side — no manual lookup required.

  • "Show revenue, gross margin, operating margin, and FCF margin for the top 10 enterprise software companies — last four quarters"
  • "Compare EV/EBITDA, EV/Sales, and P/FCF for the five largest US banks right now"
  • "Table out EPS beat/miss percentage and average surprise for the Magnificent 7 over the last 8 quarters"
  • "Show capex as a percentage of revenue for major US airlines since 2022 — who is over-investing vs under-investing?"

Earnings Call Fact Lookup

Extract exactly what management said on a specific topic — across one call or multiple quarters.

  • "What did NVIDIA's CEO say about data center demand in the last two earnings calls — pull the exact quotes"
  • "Did Salesforce management say anything about price increases or seat expansion in Q4 2025?"
  • "How has Meta's tone around AI capex commitments changed from Q1 2024 to Q4 2025 — track the language evolution"
  • "What guidance did Microsoft give for Azure growth and did they raise, hold, or lower it versus last quarter?"
  • "Which companies in the semiconductor sector flagged inventory destocking as a risk on their most recent calls?"

SEC Filing Fact Lookup

Pull specific disclosures, track language changes across filings, and surface material events without reading hundreds of pages.

  • "What new risk factors did Apple add to their 2024 10-K that weren't in the 2023 filing?"
  • "Summarize the liquidity and capital resources section of Tesla's most recent 10-Q"
  • "What 8-K events has Boeing filed in the last 60 days — show dates and event types"
  • "Pull executive compensation details from the most recent proxy for Meta — base, bonus, equity breakdown"
  • "Has any activist investor filed a 13D on a consumer staples company in the last 90 days?"

Smart Money & Insider Tracking

Track where informed capital is moving — both insiders at the company and major institutional investors.

  • "Which insiders at Meta have bought stock on the open market in the last 60 days — dollar amounts and prices"
  • "Show how Druckenmiller's family office changed its top 10 positions in the most recent 13F"
  • "Which S&P 500 companies have had the highest insider buying-to-selling ratio in the last quarter?"
  • "Find small-cap stocks where two or more insiders bought at 52-week lows in the last 90 days"
  • "Show the top 20 institutional holders of Palantir and how their positions changed last quarter"

Financial Modeling Support

Pull the exact historical series you need to build or stress-test a model — formatted and ready to use.

  • "Give me Apple's quarterly revenue, gross profit, R&D, SG&A, operating income, and net income for the last 20 quarters"
  • "Pull Nvidia's capex, D&A, stock-based comp, and free cash flow for the last 12 quarters"
  • "Show Amazon's segment revenue and operating income breakdown — AWS vs North America retail vs International — by quarter since 2022"
  • "What is Microsoft's historical effective tax rate by fiscal year for the last 10 years?"
  • "Pull the full balance sheet for Berkshire Hathaway — assets, liabilities, equity — for each year-end since 2018"

Event-Driven & Catalyst Research

Track material events, news catalysts, and price-moving disclosures around specific dates or ongoing situations.

  • "What caused the drop in Fastly stock in early 2026 — show news and any 8-K filings around that period"
  • "Show all press releases and regulatory filings from Boeing in the last 30 days"
  • "Which biotech companies have FDA PDUFA dates coming up in the next 60 days?"
  • "What triggered the spike in Palantir's stock in February 2025 — news, earnings, or something else?"

Valuation & Relative Value

Assess how cheap or expensive something is — in absolute terms, relative to history, or versus peers.

  • "What is Nvidia's P/E ratio history over the last three years alongside its revenue growth rate?"
  • "Which S&P 500 sectors are trading at the widest discount to their 5-year average EV/EBITDA?"
  • "Show Microsoft's current valuation multiples vs its 3-year and 5-year average — is it expensive or cheap historically?"
  • "Find the 10 cheapest large-cap technology stocks by P/FCF that still have double-digit revenue growth"

How to Invoke the Agent

When the user asks a financial research question, run the following inline command. Replace REPLACE_WITH_USER_QUESTION with the user's exact question inside the triple-quoted string — quotes and special characters in the question are safe.

python3 - << 'DRILLR_END'
import http.client, io, json, re, sys, urllib.parse

# Force UTF-8 output (avoids encoding errors on Windows)
if hasattr(sys.stdout, "buffer"):
    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8", errors="replace")

QUERY = """REPLACE_WITH_USER_QUESTION"""

API_URL = "https://diggr-agent-prod-414559604673.us-east4.run.app/api/public/chat"
payload = json.dumps({"messages": [{"role": "user", "content": QUERY}]}).encode("utf-8")

parsed = urllib.parse.urlparse(API_URL)
conn = http.client.HTTPSConnection(parsed.netloc, timeout=15)
conn.request("POST", parsed.path, body=payload, headers={"Content-Type": "application/json"})
resp = conn.getresponse()

# Remove timeout after connect so the SSE stream runs as long as the query takes
if conn.sock:
    conn.sock.settimeout(None)

current_event = None
text_parts = []
artifact_map = {}

reader = io.TextIOWrapper(resp, encoding="utf-8", errors="replace")
for line in reader:
    line = line.rstrip("\r\n")
    if line.startswith("event: "):
        current_event = line[7:]
    elif line.startswith("data: "):
        try:
            d = json.loads(line[6:])
        except json.JSONDecodeError:
            continue
        if current_event == "step.text_delta":
            text_parts.append(d.get("content", ""))
        elif current_event == "step.artifact":
            artifact = d.get("artifact", {})
            art_id = artifact.get("id", "")[:8]
            if artifact.get("type") == "data_table":
                title = artifact.get("title", "Table")
                spec = artifact.get("spec", {})
                columns = spec.get("columns", [])
                rows = spec.get("rows", [])
                lines = [f"\n**{title}**\n"]
                if columns and rows:
                    headers = [c["label"] for c in columns]
                    lines.append("| " + " | ".join(headers) + " |")
                    lines.append("| " + " | ".join(["---"] * len(headers)) + " |")
                    for row in rows:
                        vals = []
                        for col in columns:
                            val = row.get(col["key"], "")
                            fmt = col.get("format", "")
                            if fmt == "currency" and isinstance(val, (int, float)):
                                val = (f"${val/1e9:.1f}B" if abs(val) >= 1e9
                                       else f"${val/1e6:.1f}M" if abs(val) >= 1e6
                                       else f"${val:,.0f}")
                            elif fmt == "percent" and val not in (None, ""):
                                val = f"{val}%"
                            vals.append(str(val) if val is not None else "")
                        lines.append("| " + " | ".join(vals) + " |")
                artifact_map[art_id] = "\n".join(lines)

conn.close()

text = "".join(text_parts)
text = re.sub(r"<!-- artifact:([a-f0-9]+) -->",
              lambda m: artifact_map.get(m.group(1)[:8], ""), text)
print(text or "(No response — rephrase the query and try again)")
DRILLR_END

Alternatively, use the companion script:

python3 query.py "your question here"

Workflow

  1. Identify the research need — company, metric, time period, or type of analysis
  2. Clarify if vague — e.g., "tell me about Apple" → ask: "Revenue trend, recent earnings, insider activity, or valuation?"
  3. Run the agent — the query can be a full sentence; natural language works better than terse keywords
  4. Present the output — format is markdown with tables where the agent generates structured data; lead with the key finding, then data
  5. Offer to go deeper — after answering, suggest one natural follow-up relevant to the result

Example Queries

Thesis-Driven Discovery

  • "Screen for mid-cap software companies with revenue growth above 20%, positive FCF, and P/FCF under 30x"
  • "Find small-cap industrials with improving gross margins, low debt, and insider buying in the last two quarters"

Forensic Accounting

  • "Compare Palantir's GAAP net income vs operating cash flow vs stock-based comp over 8 quarters — is earnings quality improving?"
  • "Show changes in days sales outstanding and inventory for Nike over the last six quarters"
  • "What new risk factors did Apple add to their 2024 10-K that weren't in 2023?"

Earnings Call Fact Lookup

  • "What did NVIDIA's CEO say about data center demand in the last two earnings calls — pull the exact quotes"
  • "How has Meta's language around AI capex commitments changed from Q1 2024 to Q4 2025?"
  • "What guidance did Salesforce give for FY2026 revenue growth and did they raise or lower it?"

Cross-Company Tabulation

  • "Show revenue, gross margin, operating margin, and FCF margin for the top 10 enterprise software companies — last four quarters"
  • "Compare EV/EBITDA, EV/Sales, and P/FCF for the five largest US banks right now"

Financial Modeling

  • "Give me Apple's quarterly revenue, gross profit, R&D, SG&A, operating income, and net income for the last 20 quarters"
  • "Show Amazon's segment revenue and operating income — AWS vs North America vs International — by quarter since 2022"

Smart Money Tracking

  • "Which insiders at Meta have bought stock on the open market in the last 60 days?"
  • "Find small-cap stocks where two or more insiders bought at 52-week lows in the last 90 days"

Event-Driven Research

  • "What caused the drop in Fastly stock in early 2026 — show news and any 8-K filings around that period"
  • "Show all press releases and regulatory filings from Boeing in the last 30 days"

Valuation

  • "Show Nvidia's P/E ratio history over the last 3 years alongside revenue growth"
  • "Which S&P 500 sectors are trading at the widest discount to their 5-year average EV/EBITDA?"

Technical Notes

  • No authentication required — the /api/public/chat endpoint is open
  • US equities — covers NYSE, NASDAQ, and OTC-listed US public companies
  • Streaming response — the API returns Server-Sent Events (SSE); the script handles parsing using Python's stdlib http.client (no curl required)
  • Data tables — the agent returns structured tables for multi-row financial data; the script renders them as markdown
  • Response time — 10–120 seconds depending on query complexity; multi-step screens and forensic queries take longer; no timeout is enforced on reads so all queries complete fully
  • Connect timeout — 15 seconds; if the server is unreachable the script exits immediately rather than hanging