anti-gambling-trader-tw
무료 오픈소스 투자 사기 방지·거래 통계·자동매매 도구, 기본 PaperBroker와 14개 증권사 옵션 제공, 로컬 분석
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A unified intelligence layer for RIA prospecting, nonprofit/endowment research, retirement-plan analysis, institutional-market intelligence, and macro/rate context — normalized Postgres (Neon) plus live public APIs, exposed to Claude via the Model Context Protocol (MCP). 234 tools across 41 dataset families. Queried in production by Randall, Vistamark's AI associate.
DB-backed (Neon Postgres, scheduled ingests):
irs990_persons, ~8 people per return, trigram-indexed on a normalized name; 990-PF rows carry the person's address). Loaded by the IRS 990 ingest GitHub Actions workflow (monthly, 8th) — not a Vercel cron, because one IRS batch is 50–500 MB. Ledger in irs990_batches; status at GET /api/admin/irs990.POST /api/admin/refresh-dol-sch-c (manual; ~265K rows for 2024 in ~25 s). Answers "who is the incumbent adviser on this plan" and "which plans pay this consultant".Live-API (no local ingest):
apollo_enrich_prospect writes hits onto prospect rows as unverified with append:apollo:tried / email:apollo tags so nothing is re-billed.Synthesis / Triangulation, added in v0.34 (lib/synthesis/): composite tools that call the other families in-process, in parallel, join on EIN / CRD / CIK / LEI / PIN or normalized name × geography, score the result and end with ranked outreach angles — each with a draft first line and the guardrail that governs it. Every composite reports coverage (which upstreams answered / failed / were skipped) so an absent signal is never read as an absent fact.
prospect_360 — one person across the prospect DB, the 990 board index, Section 16 insiders, Form D related persons, IDFPR licenses, Cook + PTAX parcel buyers/sellers, the employer's 5500 plans and (opt-in, free) Apollo. Identity is confirmed only when ≥2 independent sources agree; returns a 0–100 wealth-signal score with auditable weights (SIGNAL_WEIGHTS).org_360 — one institution across 990 e-file, BMF, 5500 + Schedule C (the named incumbents), ADV, LEI, EDGAR, USAspending, PPP, ProPublica history; additive in-play score with every reason listed, finance-titled decision makers flagged.liquidity_event_radar — money in motion in a town/zip: Cook + PTAX sales, insiders by owner location, Form D persons by location, cross-referenced to the prospect DB (known / do-not-contact / client) and the 990 people index.relationship_graph — warm paths via shared board service (depth 1–2), intersected with the prospect DB; claims only "serves alongside".market_regime_brief — eight sources (FRED board, DTS, OFR, NY Fed, Atlanta Fed, Philly Fed, Shiller, Cboe, Damodaran) → seven pillar reads → one regime label (needs ≥3 pillars agreeing) → client talking points and a prospect hook.synthesis_playbooks — the doctrine and the hypothesis → fan-out → confirmation → angle recipes (also for questions with no composite yet: iCIO RIA screening, endowment benchmarking)./api/ask carries the same doctrine in its system prompt, tells the model to call a composite first, gives composites a 16K-char result window and a 45s leash, raises the round cap to 12, and accepts depth:"deep" (8 rounds, full playbook).
Live-API, added in v0.32 (all free and keyless unless marked):
Live-API, added in v0.33 "data-everything" (keyless unless marked):
EIA_API_KEY); CFTC Commitments of Traders (legacy/disaggregated/TFF, net positioning percentiles, crowded-trade gauge, market search); Baker Hughes weekly rig count.BLS_API_KEY), QCEW county wages by NAICS (investment advice 523940, LQ), Census ACS 5-yr wealth profile for any ZCTA/county/place with state+US comparison, any ACS variable, County Business Patterns, Census geocoder (address → FIPS/tract/ZCTA/districts). Census data calls need CENSUS_API_KEY (free; keyless access was removed in 2026).PATENTSVIEW_API_KEY), College Scorecard and SAM.gov entities (keyed DATA_GOV_API_KEY).HUD_API_KEY).Legal Professionals, added in v0.35 (lib/legal-pros/): Chicago-area attorneys by practice area for the referral-partner network — Illinois attorneys are licensed by the ARDC, not IDFPR, so this family fills the gap idfpr_licensee_search cannot. Trusts & estates: actec_fellow_search (ACTEC WP REST directory), cepc_member_search (Chicago Estate Planning Council public services directory), naela_il_search (NAELA Find-a-Lawyer by zip radius). Family law: aaml_il_fellow_search (AAML Illinois, 89 fellows), collaborative_divorce_il_search (Collaborative Divorce Illinois, 127 professionals). ERISA: acebc_fellow_search (American College of Employee Benefits Counsel) and dol_sch_c_legal_counsel (DB rollup of Schedule C service code 29 = Legal — which firms Illinois plans actually pay). Any practice area: leading_lawyers_search (Illinois peer-recommended, 15 presets incl. estate, employee_benefits, family, elder, tax) and courtlistener_counsel (federal RECAP dockets → counsel/firm tallies; COURTLISTENER_TOKEN recommended). ardc_lawyer_lookup verifies licence status, firm, admission date, malpractice flag and discipline — run it last. legal_pros_playbook carries the routing doctrine and guardrails. Nine keyless selftest probes.
DB-backed, added in v0.33:
F_5500 in 2024, so dol_plan_search / Schedule C asset filters now COALESCE from this table. Loaded by POST /api/admin/refresh-dol-sch-h (~88K H + ~60K I rows for 2024 in < 1 min). Tools: dol_plan_financials, dol_plans_by_asset_mix, dol_sch_h_status.IRS EO extras ingest GitHub Actions workflow (monthly, 10th; reuses IRS990_DATABASE_URL). Tools: irs_pub78_lookup, irs_revocation_search, irs_990n_search, irs_990n_officers_search, irs_eo_extras_status.First-party (PII — token-or-session gated, never on an open endpoint):
email_opt_in, do_not_contact/email/call/mail), lead status/score, source provenance, and an event log. Target zips live in prospect_zips (seeded with 60521 Hinsdale). See Prospects.| Endpoint | Auth | Purpose |
|---|---|---|
POST /api/mcp | ACCESS_TOKEN header | MCP JSON-RPC (initialize, tools/list, tools/call) |
GET /api/selftest | none | Read-only diagnostic battery (113 checks; the keyed EIA/Census/Scorecard/HUD probes fail fast until their keys land). ?only= substring filter, ?t= per-check timeout (1000–9000ms). Gate or remove after validation. |
GET /api/market-brief | none | The morning composite, served for the vistamark-m365 pre-market digest cron. Aggregated public macro data only — same exposure posture as selftest. |
GET/POST /api/prospects | ACCESS_TOKEN or Entra session | Prospect database: search/filter, CSV download, VistaCRM feed (?format=crm), and intake — JSON records, inline CSV, raw CSV/TSV/XLSX body, or multipart file upload. |
GET/POST /api/ask | ACCESS_TOKEN or Entra session | "Ask Randall" natural-language layer: a server-side tool loop over the MCP tools plus hosted web search (Anthropic web_search / OpenRouter web plugin) and an Ask-only export_excel tool that returns a real .xlsx as a download. GET is the capability probe and the model roster (Anthropic lineup + live OpenRouter catalog); POST { question, provider?, model?, webSearch?, domains?, maxRounds?, history? }. Any model id is accepted; Mythos-class primaries fail over to the Opus line on 429/5xx. |
| Name | Required | Purpose |
|---|---|---|
DATABASE_URL | yes | Auto-injected by the Neon integration |
ACCESS_TOKEN | yes | Required header on every MCP request |
CRON_SECRET | yes | Authenticates manual cron/admin triggers |
FRED_API_KEY | yes (macro tools) | Free key — https://fred.stlouisfed.org |
EODHD_API_TOKEN | yes (eodhd_* tools) | EODHD API token — https://eodhd.com |
APOLLO_API_KEY | yes (apollo_* tools) | Apollo.io API key — app.apollo.io → Settings → Integrations → API |
DOL_5500_YEAR | optional | Override ingest year (default = current − 2); also the default Schedule C year |
FINRA_API_CLIENT_ID / FINRA_API_CLIENT_SECRET | optional (finra_trace_aggregates) | Free FINRA API Console credentials; short volume and short interest need none |
HUNTER_API_KEY | optional (hunter_* tools) | Hunter.io key — free tier available |
ZEROBOUNCE_API_KEY | optional (zerobounce_* tools) | ZeroBounce key; ZEROBOUNCE_API_BASE picks the US/EU host |
SOCRATA_APP_TOKEN | optional | Higher rate limits on Cook County / data.illinois.gov |
EIA_API_KEY | yes (eia_* tools) | Free — https://www.eia.gov/opendata/register.php |
CENSUS_API_KEY | yes (census_acs_*/census_cbp) | Free, instant — https://api.census.gov/data/key_signup.html (required on every data request since 2026) |
BASE="https://<your-deploy>.vercel.app"
curl -X POST "$BASE/api/admin/migrate" -H "Authorization: Bearer $CRON_SECRET"
curl -X POST "$BASE/api/cron/ingest-adv" -H "Authorization: Bearer $CRON_SECRET"
for region in eo1 eo2 eo3 eo4 eo_pr eo_xx; do
curl -X POST "$BASE/api/admin/refresh-irs-bmf?region=$region" -H "Authorization: Bearer $CRON_SECRET"
done
curl -X POST "$BASE/api/admin/refresh-dol-5500" -H "Authorization: Bearer $CRON_SECRET"
curl -X POST "$BASE/api/admin/refresh-ipeds" -H "Authorization: Bearer $CRON_SECRET"
curl -X POST "$BASE/api/admin/refresh-nacubo" -H "Authorization: Bearer $CRON_SECRET"
IRS 990 e-file returns load from GitHub Actions, not from a Vercel endpoint. Add the repository secret IRS990_DATABASE_URL (the Neon connection string), then run Actions → IRS 990 ingest → Run workflow (blank inputs = load every un-loaded batch for 2024→current, ~1–2 h per index year; or batch = 2025_TEOS_XML_10A for a 1-minute smoke test). The same script runs locally:
DATABASE_URL=... npx tsx scripts/irs990-ingest.ts --list # index batches vs ledger
DATABASE_URL=... npx tsx scripts/irs990-ingest.ts --batch 2025_TEOS_XML_10A
DATABASE_URL=... npx tsx scripts/irs990-ingest.ts --years 2025,2026 # diff-load those years
| Cron | Schedule (UTC) | Purpose |
|---|---|---|
ingest-adv | Mon 06:00 | Weekly Form ADV refresh |
refresh-irs-bmf | Wed 04:00 | Next region in the 6-region rotation |
refresh-dol-5500 | Thu 05:00 | Re-pull latest plan year |
refresh-ipeds | daily 06:00 | IPEDS freshness check |
refresh-nacubo | Feb 15 yearly | Annual NACUBO study refresh |
prospect-engine | daily 00:00 & 01:00 (runs only at 7 PM Chicago) | 3 researched, personalized outreach drafts → Outlook Drafts |
refresh-13f | quarterly (1st, 08:00) | Stub — returns 200, no-op; real 13F loads are manual admin ingests |
IRS 990 ingest (GitHub Actions, not Vercel) | 8th 08:10 | Diff-loads new IRS TEOS 990 XML batches → irs990_filings / irs990_persons; writes irs-990/<batch> rows to ingest_runs |
database_status reports per-pipeline health: each ingest family's latest run, errors sorted first with redacted error messages — a failing scheduled ingest surfaces there instead of failing silently. A family absent from pipelineHealth has never created a run record, meaning its handler is not being reached.
Migration 0006_prospects.sql adds prospect_zips, prospect_imports, prospect_households, prospects, prospect_events. Apply with the normal migrate call (POST /api/admin/migrate, Bearer CRON_SECRET); it is idempotent and seeds 60521.
Intake (all paths share one normalizer + merge):
B="https://vistaintel.app"; T="$ACCESS_TOKEN"
# 1. Dry-run a county assessor export — read columnMap, sample, zipCounts, rejected before writing
curl -s -H "ACCESS_TOKEN: $T" -F "file=@dupage_60521.xlsx" -F "source=dupage-assessor-2026" -F "nameOrder=last-first" -F "dryRun=1" "$B/api/prospects"
# 2. Same call without dryRun to load it (restrictZips=1 skips rows outside active target zips)
curl -s -H "ACCESS_TOKEN: $T" -F "file=@dupage_60521.xlsx" -F "source=dupage-assessor-2026" -F "nameOrder=last-first" -F "restrictZips=1" "$B/api/prospects"
# 3. Raw CSV body (Excel "Save as CSV"), single-zip list with no zip column
curl -s -H "ACCESS_TOKEN: $T" -H "Content-Type: text/csv" --data-binary @list.csv "$B/api/prospects?source=list-broker:acme&defaultZip=60521"
# 4. A website form / Zapier lead
curl -s -H "ACCESS_TOKEN: $T" -H "Content-Type: application/json" -d '{"via":"form","record":{"firstName":"Gina","lastName":"Hall","email":"[email protected]","zip":"60521","emailOptIn":true}}' "$B/api/prospects"
# 5. Work a lead
curl -s -H "ACCESS_TOKEN: $T" -H "Content-Type: application/json" -d '{"action":"update","id":42,"leadStatus":"meeting","note":"Lunch 9/10","actor":"mrice"}' "$B/api/prospects"
Column headers are auto-mapped by synonym (Owner Name/Situs Address/Market Value/PIN …); force with columnMap={"Weird Header":"fullName"}. Unmapped columns are kept in raw. Excel files are read natively (first sheet, or sheet=); legacy .xls is not — save as .xlsx/.csv. Bodies are capped at ~4.5 MB by Vercel (≈40k rows); split larger lists.
Merge rules: incoming non-null wins; do_not_* flags only ever turn on; lead_status is never demoted to new by an import; tags union; notes append; wealth_signals shallow-merge; first-seen source/import_id preserved.
VistaCRM link: GET /api/prospects?format=crm (or the prospects_export_crm tool) returns CRM-shaped contacts — externalId vistaintel:prospect:<id>, email only when contactable, phone/address suppressed under do-not-call/mail — defaulting to not yet synced or changed since last sync, so a VistaCRM puller can run it bare on a schedule. &markSynced=1 stamps the batch; POST {"action":"crm_ack","vistacrmContactIds":{"<id>":"<crmId>"}} writes VistaCRM's ids back for a two-way link. Filter the feed with any search param (zip=60521&minHomeValue=2000000&contactableByEmail=1).
Tests: DATABASE_DRIVER=pg DATABASE_URL=postgres://… npx tsx scripts/test-prospects.ts (pure normalization checks run without a DB).
GET /api/cron/nonprofit-engine?program=matt|ryan runs at 7:00 PM America/Chicago (vercel.json fires 00:05Z/01:05Z for matt and 00:25Z/01:25Z for ryan; the handler runs only at 19:00 local) and produces 3 institutional nonprofit leads per principal per weekday evening: endowments, foundations, and nonprofit retirement-plan sponsors, each with a researched, personalized Outlook draft in that principal's own mailbox and a Lead in VistaCRM assigned to that principal carrying the full enrichment.
Pipeline per lead: BMF+990 universe (program band/geo, ranked by geography → 990 Part IX 11f investment-mgmt fees paid → pool size; orgs never repeat across programs) → 990 Part VII board/officer roster cross-matched with Apollo people search (LinkedIn-derived profiles: headline, employment history, linkedin_url) → apollo_person_enrich professional-email reveal (status carried everywhere; guessed is flagged for verification) → web-search research pass hunting the program's shared affinities (Matt: Northwestern/Chicago; Ryan: Ohio State/Northwestern + Chicago/Cleveland/Akron/Columbus/Evanston) plus cross-board seats from the local 990 people index and Form 5500 plan facts → persona-driven draft with a plain-text [FOR MATT: …] / [FOR RYAN: …] bracket line, CAN-SPAM footer, and two real availability dates → Graph draft (never sent) → VistaCRM Lead created only after the draft exists (POST /api/contacts, coordinator = the principal, tags nonprofit outreach + np-matt/np-ryan, enrichment in background + a timeline note; 409 duplicate → note lands on the existing contact).
Targeting lives in lib/nonprofit/programs.ts (bands, zip-prefix geo, affinities, personas, banned phrases). Matt: IL hard (Chicago metro 600–609 first) + SE WI (530–535) + W MI (490–495) + NW IN (463–464), pools $20M–$200M. Ryan: IL/OH/WI/MI/IN whole-state, $25M–$110M, affinity-metro boost. Ledger in np_leads / np_events (migration 0008). Scheduled runs are ON by default; NONPROFIT_ENGINE_ENABLED=0 pauses. Needs VISTACRM_BRIDGE_SECRET (same value as vistarandall's) for the CRM leg — until it lands, drafts still go out and the CRM step queues as np_events kind crm_pending. Manual run: curl -H "Authorization: Bearer $CRON_SECRET" "https://vistaintel.app/api/cron/nonprofit-engine?program=matt&target=1&dryRun=1".
GET /api/cron/prospect-engine runs at 7:00 PM America/Chicago year-round (vercel.json fires 00:00Z and 01:00Z; the handler runs only when it is 19:00 in Chicago) and produces 3 fully researched, personalized outreach drafts from the untouched 60521 prospects, highest home value first.
Per candidate: one web-search-backed model call finds the person's professional footprint and any published professional email (with the URL it came from); no email → tagged engine:no_published_email and skipped. Emails are never pattern-guessed and never taken from social networks or people-search sites. A second call writes the note from lib/prospects/persona.ts (edit that file to change voice/facts), the banned-phrase list is enforced, and the CAN-SPAM footer (address + opt-out) is appended. Nothing is sent: drafts go to Outlook Drafts via Microsoft Graph when MS_GRAPH_TENANT_ID / MS_GRAPH_CLIENT_ID / MS_GRAPH_CLIENT_SECRET / OUTREACH_MAILBOX are set, otherwise they queue in prospect_events (kind outreach_draft) for GET /api/prospect-outreach?status=pending to pull and POST /api/prospect-outreach {eventId, delivery} to ack. Acking sent flips the lead to contacted.
Manual run: curl -H "Authorization: Bearer $CRON_SECRET" "https://vistaintel.app/api/cron/prospect-engine?target=1&dryRun=1". Optional env: OUTREACH_SENDER_NAME, OUTREACH_SENDER_TITLE, OUTREACH_FIRM_LEGAL, OUTREACH_FOOTER, PROSPECT_ENGINE_LOCAL_HOUR.
RIA / Form ADV (8) · Nonprofit (9, incl. irs990_filing_search, irs990_filing_get, irs990_board, irs990_people_search, irs990_boards_of_person) · Macro & Treasury (10, incl. macro_market_signals, fred_batch_latest, morning_market_brief, treasury_daily_cash, treasury_daily_flows) · DOL 5500 (2) · Endowments & NACUBO (7) · SBA PPP (2) · USAspending (2) · SEC 13F (2) · FDIC (3) · OFR (3) · EDGAR (6) · GLEIF (2) · BDC (3) · Public pensions (3) · EODHD market data (7: eodhd_search, eodhd_eod_prices, eodhd_quote, eodhd_dividends_splits, eodhd_fundamentals, eodhd_news, eodhd_screener) · Apollo contact enrichment (6: apollo_people_search, apollo_person_enrich, apollo_people_bulk_enrich, apollo_org_search, apollo_org_enrich, apollo_enrich_prospect) · Prospects (9: prospects_zip_summary, prospects_search, prospect_lookup, prospects_upsert, prospects_import_csv, prospect_update, prospect_zip_targets, prospects_export_crm, prospect_imports) · Research Datasets (French · AQR · Damodaran · Shiller · Cboe) (7: kfrench_factors, kfrench_dataset, aqr_factors, damodaran_erp, damodaran_industry, shiller_cape, cboe_vol_history) · Fed Regional Banks (NY · Atlanta · Philadelphia) (8: nyfed_reference_rates, nyfed_primary_dealer, nyfed_operations, nyfed_term_premia, nyfed_recession_probability, atlfed_gdpnow, atlfed_wage_tracker, philfed_spf) · International Macro (IMF · OECD · BIS · World Bank) (7: worldbank_indicator, worldbank_indicator_search, imf_weo, imf_indicator_list, imf_sdmx_series, oecd_series, bis_series) · Market Structure (FINRA · SEC FTD) (4: finra_short_volume, finra_short_interest, finra_trace_aggregates, sec_fails_to_deliver) · Funds & Managers (N-PORT · N-CEN · Form PF · Form MA) (5: , , , , ) · Filings People (Insiders · Form D · ADV Brochures · 5500 Sch C) (6: , , , , , ) · Local Wealth Signals & Contact Tools (Cook/DuPage · IDFPR · Hunter · ZeroBounce) (10: , , , , , , , , , ) · Synthesis / Triangulation (6: , , , , , ) · Energy & Commodities (EIA · CFTC COT · Baker Hughes) (5: , , , , ) · Labor & Demographics (BLS · Census ACS/CBP · QCEW) (7: , , , , , , ) · Mortgage, Credit Unions & Consumer Finance (HMDA · NCUA · CFPB) (7: , , , , , , ) · Fed Board & Treasury Markets (FOMC · press · auctions · TIC · savings bonds) (8: , , , , , , , ) · Advisor & Broker Records (BrokerCheck · IAPD · SEC enforcement) (9: , , , , , , , , ) · Physicians & Health Economy (NPPES · CMS Open Payments · Medicare utilization) (5: , , , , ) · Research Grants, Patents & Higher-Ed (NIH · NSF · Grants.gov · PatentsView · College Scorecard) (7: , , , , , , ) · Housing Markets (Zillow ZHVI · FHFA HPI · Realtor.com inventory) (6: , , , , , ) · Open Data Portals (Socrata catalog/query · data.gov · Chicago · Illinois · Cook/DuPage) (7: , , , , , , ) · News, Entities & Courts (GDELT · Google News RSS · Wikidata/Wikipedia · CourtListener · OpenCorporates) (7: , , , , , , ) · Digital Assets (CoinGecko) (4: , , , ) · DOL 5500 Schedule H/I (plan financials & asset mix) (3: , , ) · IRS EO Extras (Pub 78 · Auto-Revocation · 990-N e-Postcard officers) (5: , , , , ) · Sanctions & Enforcement Screening (OFAC · FinCEN MSB · OCC/FDIC enforcement · SEC PAUSE) (6: , , , , , )
Call tools/list on /api/mcp for full schemas and descriptions.
morning_market_brief (no args)macro_market_signalstreasury_daily_cash / treasury_daily_flowsdol_plan_search (state=IL, is401k=true, minAssetsEoy=50000000)edgar_concept_frame (concept=Assets, year=2025, quarter=4)formd_search (query='credit fund', startDate=…)endowment_percentile_rank (instnm='University of Chicago')ppd_plan_search (state=IL, maxFundedRatioPct=50)apollo_people_search (personName + organizationNames) → apollo_person_enrich (apolloId) → validate → draftprospects_zip_summary → "Homes over $2M we can email" → prospects_search (zip=60521, minHomeValue=2000000, contactableByEmail=true)| Phase | Scope | Status |
|---|---|---|
| 1 | Form ADV + IRS BMF + ProPublica 990s | shipped |
| 2 | DOL Form 5500 | shipped |
| 3 | FRED + Treasury + macro signals + Daily Treasury Statement + morning brief | shipped |
| 4 | IPEDS endowments + NACUBO cohort benchmarks | shipped |
| 5 | FDIC, OFR, EDGAR suite (FTS/Form D/frames), GLEIF, BDC, PPD pensions, USAspending, GLEIF | shipped |
| 6 | 13F automated quarterly parse (cron currently a stub; manual admin ingest live) | pending |
| 7 | Keyed-API tier: EIA, BLS, Data.gov, CFTC COT | shipped (v0.33); EIA/Census/Data.gov/HUD keys pending |
| 8 | NCUA credit unions + BrokerCheck/IAPD records | shipped (v0.33) |
| 9 | IRS 990 e-file family — filings + Part VII people, GitHub Actions loader (v0.28.0) | shipped; first backfill pending IRS990_DATABASE_URL secret |
| 10 | 990-N e-Postcard / Pub 78 / auto-revocation files | shipped (v0.33, migration 0011); first load pending workflow run |
| 11 | DOL 5500 Schedule H/I plan financials (restores 2024 assets) | shipped (v0.33, migration 0010); load pending |
| 12 | Prospect ↔ board-member matcher (prospect_affiliations) across irs990_persons + irs_990n officers + insiders | next |
| 13 | Legal Professionals family — ACTEC, AAML-IL, Collaborative Divorce IL, CEPC, NAELA, ACEBC, Leading Lawyers, ARDC lookup, Sch C legal rollup, CourtListener counsel | shipped (v0.35) |
Internal — Vistamark Investments LLC.
COURTLISTENER_TOKEN), OpenCorporates companies/officers (keyed OPENCORPORATES_API_TOKEN; anonymous tier no longer exists).COINGECKO_API_KEY).BLS_API_KEY | optional (bls_*) | 500 req/day vs 25/day keyless per IP — https://data.bls.gov/registrationEngine/ |
DATA_GOV_API_KEY | yes (college_scorecard, sam_entity_search) | Free — https://api.data.gov/signup |
PATENTSVIEW_API_KEY | yes (patentsview_search) | Free — https://patentsview.org/apis/keyrequest |
HUD_API_KEY | yes (hud_* tools) | Free token — https://www.huduser.gov/hudapi/public/register |
OPENCORPORATES_API_TOKEN | yes (opencorporates_*) | OpenCorporates API token (no anonymous tier) |
COURTLISTENER_TOKEN / COINGECKO_API_KEY | optional | Higher CourtListener / CoinGecko rate limits |
DOL_5500_SCH_H_BASE_URL / BAKER_HUGHES_RIG_XLSX_URL | optional | Override upstream file locations if they move |
ANTHROPIC_API_KEY / OPENROUTER_API_KEY | yes (Ask layer) | At least one. ANTHROPIC_MODEL / OPENROUTER_MODEL pin the defaults the picker opens on. |
ASK_WEB_SEARCH | optional | 0 turns hosted web search off by default (the console toggle still overrides per question). ASK_WEB_SEARCH_MAX_USES caps searches per answer (default 8). |
ASK_EXTRA_MODELS | optional | JSON array of {id,label,provider?,tier?,notes?} to add models to the picker without a deploy. |
nport_fund_searchnport_holdingsncen_service_providersformpf_statisticsform_ma_searchinsider_transactionsinsider_by_locationformd_related_personsadv_brochuresdol_sch_c_providers_by_plandol_sch_c_plans_by_providercook_parcel_salesdupage_parcel_salesil_ptax_transfersidfpr_licensee_searchhunter_domain_searchhunter_email_finderhunter_email_verifierhunter_accountzerobounce_validatezerobounce_creditsprospect_360org_360liquidity_event_radarrelationship_graphmarket_regime_briefsynthesis_playbookseia_serieseia_browsecftc_cotcftc_cot_marketsbaker_hughes_rig_countbls_seriesbls_popularbls_qcew_countycensus_acs_profilecensus_acs_variablecensus_cbpcensus_geocodehmda_aggregationshmda_jumbo_lendershmda_lender_lookupncua_credit_union_searchncua_call_reportcfpb_complaintscfpb_complaint_trendsfed_press_releasesfomc_calendarfomc_statementfed_enforcement_actionstreasury_auctionstreasury_upcoming_auctionstreasury_tic_holderstreasury_savings_bond_ratesbrokercheck_individual_searchbrokercheck_individual_detailbrokercheck_firm_searchbrokercheck_firm_detailiapd_individual_searchiapd_individual_detailiapd_firm_detailsec_litigation_releasessec_admin_proceedingsnppes_searchnppes_lookupcms_open_paymentscms_medicare_provider_utilizationcms_hospital_general_infonih_reporter_searchnih_reporter_publicationsnsf_awards_searchgrants_gov_searchpatentsview_searchcollege_scorecardsam_entity_searchzillow_zhvizillow_datasetfhfa_hpirealtor_inventoryhud_fair_market_rentshud_usps_crosswalksocrata_catalog_searchsocrata_querysocrata_dataset_columnschicago_business_licenseschicago_building_permitsil_open_data_presetsdatagov_searchgdelt_doc_searchnews_rss_searchwikidata_entity_searchwikipedia_summarycourtlistener_searchopencorporates_searchopencorporates_officerscoingecko_pricescoingecko_marketscoingecko_historycoingecko_globaldol_plan_financialsdol_plans_by_asset_mixdol_sch_h_statusirs_pub78_lookupirs_revocation_searchirs_990n_searchirs_990n_officers_searchirs_eo_extras_statusofac_sdn_searchofac_sdn_statusfincen_msb_searchocc_enforcement_searchsec_pause_listcftc_red_list