Capital signal research
Firm list in. Portfolio companies and a thesis extract out. Then qualify each portco against 50–500 manufacturing. A logo on a sponsor site is an SG_021 hypothesis, not a confirmed owner and not a reason to say "your PE firm will make you buy an ERP."
This page expands the capital pass in ERP signal research. It does not mint signals. Sponsor ownership still has to be confirmed on the call when it would change the frame.
Two jobs, in order:
- Universe — a large list of GPs, independent sponsors, SBICs, BDCs, search funds, and family offices that buy operating companies in our size band.
- Portfolios + thesis — what each one owns now, what they say they buy (check size, sector, geography), and which names look like plants.
A paid origination product (PitchBook, Preqin, Grata) can skip most of
job 1 and a lot of job 2. DIY scrape is job 1 from public filings, then
Firecrawl/Browser Run on /portfolio.
Tools
| Tool | Agent surface | Use for |
|---|---|---|
| Cloudflare Browser Run | /markdown, /json, /links, /screenshot | JS portfolio grids, logo walls without names. |
| Firecrawl | /v2/search, /v2/map, /v2/scrape, /v2/crawl | Find /portfolio, extract company names, news of acquisitions. |
| Exa | /search includeDomains, /contents | "Acquired by {GP}," add-on announcements. |
| EDGAR / data.sec.gov | Company search, full-text, bulk ADV | BDCs' schedules of investments; Form ADV adviser universe. |
| IAPD | adviserinfo.sec.gov | One-adviser lookup; private funds on Form ADV. |
| SBA SBIC directory | Public HTML | Licensed lower-middle-market funds. |
| PitchBook / Preqin / Grata | Vendor UI + CSV/API if we subscribe | Skip scrape. Export GP list, portfolios, deals, thesis. |
| ZoomInfo | Parent / ultimate parent, employees | Identity after a portco name is known. Not ownership proof. |
POST https://api.firecrawl.dev/v2/{search|map|scrape}
POST https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-rendering/{markdown|json|links}
Default loop: Buy a file when the job is "every middle-market manufacturer with a sponsor." Scrape when the job is "this GP's current portfolio" or we do not have a seat yet.
Context
At 50–500 employees the "board" is often a banker. When a sponsor is in the cap table, the clock changes: hold period, reporting pack, add-ons, professional CEO/CFO (SG_006 / SG_007). That is SG_021. Love of client: a sponsor is not a threat. It is a different proof (speed, auditability) and a different no (they may already have a preferred systems integrator).
Who actually buys plants in this band
Mega-buyout names (Blackstone, KKR control deals) rarely own a 80-person molder as a platform. The universe that matters:
| Buyer type | Typical check | Why they show up at 50–500 | Where they hide |
|---|---|---|---|
| Lower-middle-market PE | ~$5–75M equity | Platform or add-on manufacturer | AIC-ish, PEI 300 tail, their own /portfolio |
| Independent sponsor | Deal-by-deal | One plant at a time; thin website | ACG, Axial, ZoomInfo titles |
| SBIC | SBA-levered | Mandate to do smaller US deals | SBA directory |
| BDC / direct lender | Credit, not always control | Shows who just levered a deal | EDGAR 10-K schedule of investments |
| Search fund / ETA | Very small | Owner retirement, 20–150 people | Searchfunder, Stanford/IESE lists |
| Family office | Quiet, long hold | Succession, no PE clock | FINTRX (paid); almost invisible free |
| Regional bank / ABL / equipment lender | Revolver, machine note | Not equity; still a capital window | UCC-1, tombstones |
Do not treat a BDC credit as PE control. Record capital_event: lender vs sponsor. Only the latter is SG_021.
1. Massive lists of PE firms (job 1)
Free (start here)
| Source | URL / handle | What you get | Agent note |
|---|---|---|---|
| Form ADV bulk | SEC Investment Adviser data sets on sec.gov data research / adviserinfo | Every SEC-registered adviser; private funds on Schedule D (7.B) | Best free GP universe. Filter private fund + United States. Exempt reporting advisers are thinner. |
| IAPD | adviserinfo.sec.gov | One firm: AUM, funds, CRD | Use after bulk, or to confirm a scrape hit. |
| SBA SBIC directory | sba.gov “find an SBIC” | Licensed funds, many LMM | Built for our check size. Scrape the directory, then each fund site. |
| American Investment Council | investmentcouncil.org members | Large-firm member list | Incomplete for true LMM; still a seed. |
| PEI 300 (league-table articles) | peievents.com / magazine roundups | Named GPs by capital raised | Copy the names; ranking is not a portfolio. |
| Wikipedia | “List of private equity firms” | Seed names | Noisy. Dedup against ADV. |
| ACG chapters | acg.org | Middle-market deal professionals | Directories often gated. Chapter event attendee PDFs sometimes public. |
| Invest Europe / similar trade bodies | Member lists | EU GPs | Use if the plant or parent is EU. |
| Crunchbase (free tier) | crunchbase.com | Some investors + a few portcos | Coverage is VC-heavy. Do not trust as PE-complete. |
Form ADV is the closest thing to a “dump of all PE firms” that does not require a contract. It will include hedge funds, fund-of-funds, and real estate. Keep rows whose fund type or narrative says private equity / buyout / growth / mezzanine, then keep those whose website thesis says manufacturing / industrial / business services and lower middle market.
Paid (buy the file when DIY cost exceeds a seat)
| Product | Who it’s for | What we would actually export | Does it “do the scrape for us”? |
|---|---|---|---|
| PitchBook | Deal origination, bankers | Investors by strategy, AUM, portfolio companies, deals, employees, NAICS-ish | Yes for portfolios and thesis. Standard buy. |
| Preqin Pro | Fundraising / LP research | GPs, funds, performance, some portcos | Strong on firms and funds; portco depth often behind PitchBook. |
| Grata (SourceScrub) | PE origination | Web-derived private companies, employee estimates, PE ownership flags, filters | Yes — this is the product that already scrapes the web so we do not have to map 2,000 /portfolio pages. Closest to “pay them instead of Firecrawl.” |
| S&P Capital IQ | Corporates, banks | Ownership trees, transactions | Yes for who owns whom once you have a legal name. |
| Moody’s Orbis (BvD) | International ownership | Ultimate parent, % ownership | Best legal ownership graph, weaker on “thesis.” |
| FactSet / Mergerstat | Deal teams | M&A, advisors | Event stream, not a pretty portco list. |
| PrivCo | Private-company financials | Estimates, some investors | Secondary. |
| Crunchbase Pro | Startups | Rounds, investors | Weak on traditional buyout manufacturing. |
| Gain.pro | EU mid-market | Private companies + ownership | If we hunt EU plants. |
| FINTRX / FOX | Family offices | FO names, sometimes holdings | Only if we seriously chase family offices. |
| Axial | Sell-side / independent sponsors | Introductions, not a dump | Membership network, not a scrape substitute. |
| ZoomInfo (already in stack) | Sales | Parent fields, headcount | Use to resolve a name. Do not use as the PE universe. |
Practical recommendation: if the job is a repeatable list of PE-backed manufacturers in US 50–500, buy Grata or PitchBook and stop. DIY scrape is for (a) we do not have a seat yet, (b) a GP is too small to be in PitchBook, (c) we want the thesis page wording, (d) we are refreshing one sponsor this week.
Grata vs PitchBook: Grata is “find me unknown plants on the internet, including who might own them.” PitchBook is “this GP, these deals, this financial history.” Many origination teams hold both.
2. What they invest in (thesis)
Do not infer thesis from the GP’s famous name. Read the criteria page.
Firecrawl map:
POST /v2/map
{ "url": "https://{gp-apex}", "search": "portfolio strategy criteria approach investments thesis manufacturing" }
/json schema:
{
"gp_name": "",
"gp_domain": "",
"url": "",
"retrieved_at": "",
"strategies": ["buyout | growth | add_on | distressed | mezz | unknown"],
"sectors_stated": [],
"geographies": [],
"revenue_range": null,
"ebitda_range": null,
"equity_check": null,
"employee_hint": null,
"add_ons_mentioned": false,
"hold_period_years": null,
"manufacturing_fit": "yes | no | unclear",
"size_band_fit": "under_50 | 50_500 | 500_plus | unclear"
}
manufacturing_fit: yes and size_band_fit: 50_500 → scrape
portfolio. Otherwise keep the GP on a skip list (mega-cap, real estate,
software-only, healthcare services-only, etc.).
3. Portfolio companies (job 2)
3.1 Scrape the sponsor site
Common paths (still resolve via /map, do not guess only):
/portfolio /companies /investments /current-investments
/our-companies /platform-companies /prior-investments
Extract:
{
"gp_domain": "",
"portfolio_url": "",
"status": "ok | blocked | empty_logos | not_found",
"companies": [
{
"name": "",
"is_current": true,
"sector_on_page": null,
"hq_on_page": null,
"year_invested": null,
"url_on_page": null,
"add_on_of": null
}
]
}
If the page is a logo wall with no names, Browser Run /json plus
/screenshot. If names still fail, skip that GP or use PitchBook.
Realized / “prior” portfolios are not current SG_021. Keep them in a separate list (they still know the space; they are not the owner).
Then resolve each name to a domain with
Research §1. ZoomInfo for headcount. Qualify process
(extrusion, molding, machining) before anyone calls.
3.2 Free sources that already named the companies
Use these when the GP site is empty or JS-blocked.
| Source | Artifact | Kind |
|---|---|---|
| BDC 10-K / 10-Q “Schedule of Investments” | EDGAR. Company name, industry, cost, sometimes HQ | lender (usually). Still a capital window; map to a domain. |
| PR Newswire / Business Wire | "{GP} acquires {Co}" / "add-on to {platform}" | SG_018 + SG_021 |
| PE Hub / Buyouts / The Middle Market | Deal briefs | Same, often paywalled — search snippets may be enough to name both sides |
| Economic development + local paper | “sold to a private equity firm” | Confirm GP name before SG_021 |
| UCC-1 | Lender name if the GP’s credit arm filed | Window, not equity |
| Company about/history page | “backed by,” “partnered with” | Weak; confirm on GP site |
EDGAR search pattern:
site:sec.gov "schedule of investments" (manufacturing OR "plastic" OR machining)
Then scrape the filing HTML/XML. Cap to BDCs you already listed (Ares Capital, Main Street, Blue Owl, Golub, FS KKR, and peers — do not treat that list as complete; refresh from ADV/EDGAR).
3.3 Paid “do it for us”
| If we pay for… | We should stop doing… |
|---|---|
PitchBook export of companies where Investor = {GP} and Industry contains manufacturing, employees 50–500 | Manual /portfolio scrape for that GP |
| Grata filter: PE-backed, NAICS manufacturing, employee band | Building the manufacturer list from GP sites at all |
| Capital IQ / Orbis corporate tree | Guessing parent from a DBA |
We still scrape when PitchBook lags a deal announced this week, or the GP is an independent sponsor with no PitchBook profile.
4. Other capital (not PE, still a window)
Keep these on the same pass. They are not SG_021.
| Source | Tool | Use |
|---|---|---|
| State UCC-1 | Browser Run on SOS search | New press / all-assets lien. Pair SG_023. |
| SBA 7(a)/504 FOIA or local bank tombstone | Firecrawl | Building or machinery debt. |
| County/state incentives | Firecrawl / Exa | Job grants, TIF, new facility. SG_014. |
| BizBuySell / Axial teasers | Firecrawl | Exit / succession. Quality of earnings wants a real record. |
| Equipment captive (OEM finance) | Rarely public | Skip unless named in a release. |
Distress (falling Paydex, lawsuit, missed covenant) is not a buying window we hunt. Love of client.
5. Agent runbook
Path A — we have PitchBook or Grata
- Filter: US, manufacturing/industrials, employees 50–500 (or revenue that implies it), ownership = PE / financial sponsor.
- Export CSV. Resolve domains. Dedup.
- Optional: scrape each GP thesis page for hold-period language.
- Write
sg_021_hypothesis+ source =pitchbookorgrata. - Confirm on the call before using sponsor framing.
Path B — DIY (no seat)
- Pull ADV private-fund advisers + SBIC directory + AIC/PEI seed. Dedup by CRD and domain.
- For each GP domain,
/mapstrategy + portfolio. Extract thesis. Skip ifmanufacturing_fitis no. - Extract current portcos. Rate-limit. Honor robots. No login.
- Resolve domains (Research). Size via ZoomInfo.
- ICP qualify (process, sites). Stop. No Salesforce bind from a logo.
{
"gp_name": "",
"gp_domain": "",
"source_universe": "adv | sbic | pitchbook | grata | news",
"thesis": {},
"portco_name": "",
"portco_domain": null,
"ownership_kind": "sponsor | lender | unknown",
"sg_021_hypothesis": false,
"size_band_guess": null,
"retrieved_at": "",
"urls": []
}
Cap DIY at a batch of GPs (for example 25 theses/day), not the entire ADV file in one night.
If /portfolio is a challenge page: blocked. Do not rotate identity.
Use Path A or a person.
What this is not
- Confirmation of SG_021. Detection still wants
the sponsor naming the company, or a filing/release. A scraped logo
is
guessed. - A threat story (“PE will force an ERP”). Hold period changes proof, not our right to pressure.
- License to scrape PitchBook, Preqin, or Grata behind a login we do not own.
- A list of hedge funds, crypto funds, or 13F long-only shops. 13F is public equity, not a plant portfolio.
Related knowledge
- ERP signal research — need / want / window
- Project bidding — PE bake-offs vs public portals; most BidNet "ERP" is not a portfolio company
- signals.yaml — SG_021, SG_006, SG_007, SG_018, SG_014
- signal-detection.yaml — SG_021
sources already include
pr_wire,public_filings,manual_research - Research — name → domain
- Sales stack
Change log
- 2026-08-31 — PE/GP universe (ADV, SBIC, AIC), thesis + portfolio scrape, BDC filings, PitchBook/Preqin/Grata vs DIY, other capital windows.