agentsclimarketplace

Run3 sec 13f search fund coverpage

Skill cxcscmu/SkillLearnBench/skills/b3-teacher-feedback-claude-opus-4-6/financial-analysis/run3_sec-13f-search-fund-coverpage

How to fuzzy search for a fund in COVERPAGE.tsv to find its accession_number, using either built-in scripts or manual searchFrom its SKILL.md

Install
npx -y skills add cxcscmu/SkillLearnBench --skill run3_sec-13f-search-fund-coverpage

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

1.7 KB, 411 tokens by cl100k_base, as published. Nobody here has run it

Searching for a Fund in COVERPAGE

Method 1: Use Built-in Scripts (Preferred)

# Check if search script exists
cat /root/2025-q3/scripts/search_fund.py 2>/dev/null
# Run it if available
python /root/2025-q3/scripts/search_fund.py "renaissance technologies" 2>/dev/null
python /root/2025-q3/scripts/search_fund.py "berkshire hathaway" 2>/dev/null

Method 2: Manual Fuzzy Search in COVERPAGE.tsv

import pandas as pd

cover = pd.read_csv('/root/2025-q3/COVERPAGE.tsv', sep='\t', low_memory=False)

# Print columns to understand structure
print(cover.columns.tolist())

# Fuzzy search by fund name - check various possible column names
# Common column names: FILINGMANAGER_NAME, COMPANY_NAME, etc.
search_term = "renaissance technologies"
for col in cover.columns:
    if 'name' in col.lower() or 'manager' in col.lower() or 'company' in col.lower():
        print(f"Column: {col}")
        matches = cover[cover[col].astype(str).str.lower().str.contains(search_term, na=False)]
        if len(matches) > 0:
            print(matches[[col, 'ACCESSION_NUMBER']].head(10))

Getting the Accession Number

The accession_number from COVERPAGE links to INFOTABLE for holdings data.

# Example: find Renaissance Technologies
search = "renaissance"
name_col = 'FILINGMANAGER_NAME'  # adjust based on actual column name
matches = cover[cover[name_col].astype(str).str.lower().str.contains(search, na=False)]
print(matches[['ACCESSION_NUMBER', name_col]].drop_duplicates())
# Pick the best matching accession_number
accession = matches['ACCESSION_NUMBER'].iloc[0]

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.