Skip to main content

ERP signal research

A public artifact in. A labeled hypothesis out: need (the work no longer fits the system), want (someone has a mandate to change), window (something just made inaction expensive), or counter-signal (they are staffing the current system, already implementing, or not ours). Do not set a signal_state, mint an SG_xxxxx, or say on a call that they are "in market for ERP."

This page is a source map for agents. Canonical meaning still lives in signals.yaml and signal-detection.yaml. Enrichment is not proof of a problem. See Sales stack.

Focus band: 50–500 employees (50_100 and 100_500 in variables.yaml). <50 and 500–5000 are here only as contrast. Our catalog's next band is 500_1000; treat anything above that as the same large-company motion unless proven otherwise.

Tools​

Same default stack as Research. Add the public registries this job actually uses.

ToolAgent surfaceUse for
Cloudflare Browser Run/markdown, /json, /linksCareers, about, ISO, "see us at," economic-development pages.
Firecrawl/v2/search, /v2/scrape, /v2/mapJob posts, expo exhibitor lists (MYS/a2z), MEP stories, PE portfolios, news.
Exa/search, /contents"Opened plant," "acquired," "ISO 13485," successor language.
ZoomInfoSales enrichmentTitles, tenure, phones. Identity only. Not a problem.
crt.nameCT harvestIncumbent SaaS tenants. Domain scanning.
State SOS / UCCPublic search pagesNew equipment liens, entity age, name changes.
SAM.gov / SBA / MEPPublic HTML or APIFederal supplier burden, loans, NIST MEP client stories.
PitchBook / GrataVendor export (if we subscribe)PE-backed manufacturers without scraping 2,000 portfolio pages.
POST https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-rendering/{markdown|json|links}
POST https://api.firecrawl.dev/v2/{search|scrape|map}

Default loop: Search the artifact class. Render the page. Extract the schema. Map to an existing SG_ or leave as research-only. Ask, do not assert.

Context​

People in plants do not "want an ERP." They want Friday to stop lying. The five-second moment is almost always: the schedule, the inventory, or the job cost said X, the floor did Y, therefore someone decided on a lie. Selling with love means we look for that scene, recommend only if fit, and never manufacture a deadline from a vendor sunset or a job post.

Selling with love (how to read a signal)​

DimensionOn this page
Love impactA signal is useful only if it points to a measurable better state the buyer would recognize.
Love clientRecommend a conversation only if the artifact could be their mismatch. If they are staffing the incumbent, say so.
Love productDo not promise displacement from a hiring keyword.
Love processEach source pass should leave a table a person can use. Preserve the right to say no.
Love selfPrepare the scene. Desperation reads a UCC filing as a buying event. It is not.

Hype = enthusiasm minus evidence. Productive energy = curiosity + competence + their problem.

Bias in this band is status quo, then loss aversion. A new plant, a new CFO, or a customer audit is a crack in continuity, not permission to push. Resistance is a request for safety, clarity, control, or a story of change. See communication instructions.

Need, want, window​

Keep them separate. Most bad outbound collapses them.

KindHuman truthWhat it is not
NeedThe operating record no longer matches the work. Spreadsheets, reentry, tribal memory.A budget. A project. A vendor shortlist.
WantA person with authority has a reason to look (new CEO/CFO, sponsor, successor, lost customer).The plant agreeing. IT agreeing.
WindowAn external clock appeared: audit, bank covenant, new site, M&A, customer EDI, product sunset they have confirmed.Our calendar. A blog post about QuickBooks Desktop.
CounterThey just bought more clerks, named the incumbent in hiring, or posted an implementation role for another vendor."They're unhappy, so they'll switch."

Call when need is visible and at least one of want or window is visible. If only need: they have lived with it for years (especially family-owned, SG_001 — the bar is roughly 5×). If only window: they may already have a vendor.

1. Three companies, three operating systems​

Headcount is a proxy. SG_005 (CFO and controller) is a stronger size tell than ZoomInfo's employee count.

Under 50​

The owner is the system. The outside CPA keeps the books. Capital is a local bank line and the owner's house. They go to the distributor open house and one regional show. A "new ERP" conversation often starts after a scare (a blown quote, a quality escape, a weekend in Excel) and dies when the scare passes. Treat as QuickBooks / spreadsheet / greenfield unless SG_025 (age > 3 years) and a named system appear. Do not run the 50–500 playbook.

50–500 (this page)​

The owner can no longer see every job. Work now crosses people who do not share a house. That is when ERPs get bought — and when they get stuck, because the same people who hold the knowledge are the ones change threatens (SG_019).

How they operate. One plant, sometimes a warehouse. Weekly production meeting. The scheduler lives in Excel or a dusty JobBOSS / Global Shop / Visual / E2 screen. Inventory is "what the last person counted." Month-end takes two to three weeks. Quality is a binder until a customer demands otherwise.

Where capital comes from. Retained earnings. Asset-based revolver against AR and inventory (the banker is a quarterly audience). Machine loans and OEM captives (the new press arrives before the process does). SBA 504 for a building. State/county incentives for jobs. At the top of the band: an independent sponsor or family office (SG_021). Almost never a public market (SG_024).

Reporting structure. Owner/CEO still signs. First professional seat is usually plant manager or office manager, then controller, then CFO. The outside CPA often still compiles statements and does tax — they are a trusted advisor who can kill a system they do not understand. There is no real board. The "board" is the banker, the CPA, the attorney, and sometimes a spouse. Internal IT is one person or a local MSP (SG_009). A CTO at this size is unusual (SG_010) and means they might want to build.

Who they have to satisfy besides themselves. The customer's SQE (scorecards, PPAP, ASN, EDI). The ISO registrar. The banker (borrowing base, inventory test counts). The CPA (numbers that reconcile). OSHA / state environmental when they add capacity. Material and machine suppliers who see the chaos on a service call. Temp agencies when they cannot hire clerks.

Expos they actually attend. Not Gartner. The plant manager and the buyer walk NPE, PTXPO, IMTS, FABTECH, EASTEC/WESTEC/SOUTH-TEC. The owner may still work a booth. Association rooms: PLASTICS, SPE, NTMA, PMA, AMBA, state MEP "Manufacturing Day." A "see us at booth X" post is a window into growth and into who they think their customers are.

500–5000​

CIO, procurement, RFP, program manager, Gartner Peer Insights. Multi-year replacement. Our wedge is usually wrong. Their job posts say "ERP Program Manager," "Cutover," "SAP/Oracle/Dynamics lead." Use Comparison research if you need the category map. Do not treat their noise as a 50–500 signal.

2. What the 50–500 crack looks like​

Outside-the-box means: go where the work already forces a number, a certificate, or a new body. Do not wait for "we are evaluating ERP" on the website. They almost never publish that.

Scene (dinner test)Why it appears at 50–500Kind
Owner asks "did we make money on that job?" and three spreadsheets openJob cost was never a system; it was a personneed
Customer portal now requires ASN/EDI/releasesThey won a bigger account than the office can processwindow
Second press or second buildingSG_023 — process that "worked" at n sites fails at n+1window
New CEO or CFO in monthsSG_006 / SG_007 — mandate to find what the last regime hidwant
Sponsor tombstone or "recap"SG_021 / SG_018 — hold period is the clockwant + window
Posting for AP / inventory / order-entry clerksSG_017 — they priced the workaround in salariesneed (and a counter if they only want people)
Posting names Epicor / Global Shop / JobBOSS as a requirementSG_016 — they are staffing the incumbentcounter
Posting for "ERP implementation," "NetSuite admin," "cutover"They already picked someone, or are mid-projectcounter (usually too late)
ISO / IATF / AS9100 / 13485 appearsAn auditor will ask for a record the binder cannot printwindow
Key scheduler quitsKnowledge was in a person (SG_019)window
Biz-for-sale or succession languageA buyer or child will demand a clean operating recordwant
Hiring "advanced Excel / VLOOKUP" for production controlThey are recruiting a human ERPneed

Family-owned (SG_001): incremental efficiency does not clear the bar. Look for step-change permission — succession, a lost program, a failed audit, a sponsor, a new site — not "save two hours on data entry."

3. Source catalog (agentic)​

Run sources in this order. Stop when you have one need plus one want or window, or a hard counter. Do not vacuum the internet.

Each row: public artifact → tool → extract → map. research-only means do not write a new SG_ from it.

A. Hiring (fastest, highest noise)​

Where. Company /careers, Greenhouse, Lever, Ashby, Indeed via Firecrawl search. ZoomInfo for title, not for the problem.

POST /v2/search
{
"query": "\"{company}\" (ERP OR QuickBooks OR JobBOSS OR \"order entry\" OR scheduler OR controller)",
"limit": 10
}

Scrape the posting. Schema:

{
"url": "",
"role": "",
"named_systems": [],
"excel_heavy": false,
"clerical_throughput": false,
"implementation_language": false,
"reports_to": null,
"kind_guess": "need | want | window | counter | none"
}
ObservableMapLove reading
Named incumbent as required skillSG_016They are hiring into the current system. Displacement is a harder, later ask.
AP / inventory / order entry open reqSG_017They chose people this quarter. Ask where the volume comes from. Do not pitch "fire your clerks."
"ERP implementation" / vendor admin for a new brandresearch-onlyOften already in flight. Confirm before we show up as bidder six.
"Advanced Excel" for planner/buyerresearch-only needHuman ERP. Scene: the planner's workbook.
New controller / first CFOSG_004 / SG_007Want to see numbers that reconcile. Not a software RFP.
IT generalist / MSP languageSG_009Hands-off implementation may be required.

Refresh: 7 days (signal-detection.yaml).

B. Capital and credit (the bank is the board)​

50–500 companies buy software when cash and covenants allow, not when a landing page is convincing. Sponsor vs lender vs equipment debt are different hypotheses. Only a financial sponsor is SG_021. The rest are windows.

The full GP-universe, portfolio scrape, and paid-vs-free catalog is Capital signal research. Use that page when the job is “list PE firms” or “list their plants.” This table is the account-level pass.

SourceToolObservableMap
Sponsor /portfolio (after GP universe)Firecrawl /map + /jsonCompany named as current investmentSG_021 hypothesis
PitchBook / Grata exportVendor CSVPE-backed + employees + industrySG_021 hypothesis; skip DIY scrape
BDC 10-K schedule of investmentsEDGARNamed credit; industrylender window, not automatic SG_021
"{GP} acquires {Co}" wireFirecrawl / ExaDeal + add-on languageSG_018 + SG_021
State UCC-1Browser Run on SOSNew equipment or all-assets lienresearch-only window; pair SG_023
SBA 7(a)/504, bank tombstonesFirecrawlNamed borrower + purposeresearch-only window
County/state incentive releaseFirecrawl / ExaGrant, TIF, new facilitySG_023, SG_014
SBIC directory → fund siteSBA HTML then /portfolioLMM funds that actually buy plantsJob 1 seed for capital page
BizBuySell, Axial, successor languageFirecrawlOwner exitresearch-only want

A new machine without a new process is how plants outgrow JobBOSS. The UCC is the machine. The job post for a second scheduler is the process breaking.

If we need thousands of PE-backed manufacturers, buy Grata or PitchBook rather than crawling every ADV adviser. DIY is for GPs too small to be in those files, or for this week’s deal.

Do not read stretched payables or a credit-rating dip as ERP budget. Distress is not a window we should exploit (love of client).

C. The people they already answer to​

CounterpartyPublic tellWhy it matters
Customer SQEWebsite logo wall adding automotive / medical / aerospace; job posts with PPAP, FAI, ASN, EDI, "customer portal," "release accounting"The customer's system is now the master. Ours has to speak it or the office drowns. Window.
CPA / outside accountantAbout page, LinkedIn (via ZoomInfo), "prepared by" on a compiled statement if ever publishedTrusted advisor. If we cannot explain the change in their language, they will keep QuickBooks.
BankerTombstone, "relationship" page on regional bank, borrowing-base language in a releaseQuarterly inventory test counts make fake inventory expensive.
ISO registrarCertificate PDFs, IASCB / registrar directories, "ISO 9001:2015" in footerAudit asks for a retrievable record. Binder fails.
NIST MEP centersite:*.edu or site:nist.gov MEP success story naming the companyThey already paid for a lean/ERP-selection conversation. Research-only; do not claim we were in the room.
Machine OEMEngel / Haas / Mazak / Nissei case study or LinkedIn install photoCapacity arrived. Process may not have.
Temp / staffing firmRepeated clerical ads through a staffing brandThey cannot fill the workaround. Need, not want.

Firecrawl:

"{company}" (PPAP OR EDI OR "IATF 16949" OR AS9100 OR "ISO 13485" OR "ISO 9001")
"{company}" (MEP OR "manufacturing extension")
"{company}" (exhibitor OR "booth" OR NPE OR IMTS OR FABTECH OR EASTEC)

D. Expos and rooms (where 50–500 actually go)​

G2 is for software vendors. These people walk machine shows. Full directory platforms, "see us at booth" recipes, and list-buying rules: Expo signal research.

RoomWho goes from a 50–500 plantPublic artifact
NPE, PTXPO, K / FakumaPlastics: owner, process engineer, buyerExhibitor directory (MapYourShow / first-party); company "see us at"
IMTS, FABTECH, MT Series (EASTEC/WESTEC/SOUTH-TEC)Machining / fab: plant manager, programmerSame
Pack Expo, Automate, MD&MIf they package, automate, or mold medicalSame; MD&M often a2z/Informa
PLASTICS, SPE ANTEC, NTMA, PMA, AMBAPeer ownersSpeaker list, agenda PDF
State MEP / Manufacturing DayPlants already asking for helpAgenda; named companies
OEM distributor open houseMaintenance + buyerSkip unless they posted it

Exhibitor list (scrape). Resolve the show's directory — usually Map Your Show or a2z — then Browser Run /json. Keep kind_guess: plant. Drop machine OEMs unless the job is vendor research. Paying for a booth is a growth tell, not ERP intent.

"See us at booth" (search). After a name, or to catch DBAs:

"{company}" ("see us at" OR "visit us at" OR "booth") (NPE OR IMTS OR FABTECH OR EASTEC OR PTXPO)

Hit /news, trade previews (Plastics News, Modern Machine Shop, The Fabricator), and show dailies. Schema and platform table live on the expo page.

growth_tell: true only when role_shown is exhibitor. Pair with SG_012 / SG_015 as weak willingness-to-change.

Buying expo attendance lists​

The attendee file is not the exhibitor directory. Organizers (AMT, SME, PMMI, PLASTICS, Informa, Messe) sell pre/post registration lists almost only to contracted exhibitors or sponsors. Lead retrieval at our own booth is the only list we fully own.

There is no clean SaaS that sells the IMTS aisle to non-exhibitors. Broker "IMTS 2024 emails" dumps are off-limits. EU shows will not sell personal attendees (GDPR). If we will not exhibit, stay on public exhibitors + see-us-at + show dailies. If we will, buy from the organizer, honor the use limit, and treat names as account research — then ZoomInfo a verified title. Details: Expo signal research §4.

E. Incumbent system (need a displacement target)​

Without a system name, we cannot talk replacement honestly. Until then systems_of_record: [unknown].

SourceMap
Job posts naming a systemSG_016 — incumbent, not shopping
CT tenant harvestDomain scanning
Careers / integration page on their siteresearch-only until a person confirms
G2/Capterra review that names the company as a customerComparison research — marketing, not cert
QuickBooks Desktop sunset pagesVendor event. Account-level only after they confirm they still run it.

Replacement language to search (rare, high value):

"{company}" ("migrating from" OR "replacing" OR "evaluating ERP" OR "ERP selection")

If that hits, they may already have a consultant. Ask. Do not pile on.

F. Leadership and ownership (want)​

ZoomInfo + site + PR wire. Detection rules already exist; this page only says where to look.

ObservableMap
CEO < 6 monthsSG_006
CFO < 6 monthsSG_007
Ops leader presentSG_020 — without them, cross-department change has no owner
Family surnames / eponymous nameSG_002 / SG_003 → SG_001
M&A < 18 monthsSG_018
PR wireSG_014 — read it for 018/021/023
Long median tenureSG_019 — change threatens the people who know the work. Lead with continuity, not innovation.

4. Agent runbook​

One company at a time. 50–500 only unless a person widens the band.

  1. Confirm size band (ZoomInfo headcount and whether controller/CFO exist). If <50 or clearly 500+ with a PMO, stop this playbook.

  2. Careers pass (A). Classify each posting need | want | window | counter.

  3. If no named system, light incumbent pass (E): jobs, CT, site.

  4. Window pass: news + ED + UCC + ISO + expo (B, C, D). Cap at 10 URLs. PE/sponsor universes: Capital signal research. Shows: Expo signal research.

  5. Want pass: tenure and ownership (F).

  6. Write one row:

    {
    "company": "",
    "domain": "",
    "size_band_guess": "50_100 | 100_500 | other",
    "need": [],
    "want": [],
    "window": [],
    "counter": [],
    "sg_hypotheses": [],
    "systems_hypothesis": ["unknown"],
    "ask_on_call": "",
    "do_not_say": "",
    "sources": [{ "url": "", "retrieved_at": "" }]
    }

ask_on_call is one scene-shaped question, e.g. "When a customer releases against a forecast, where does that live today — the portal, Excel, or the system?" Never "I see you're implementing an ERP."

do_not_say lists every inference that would shame them (messy Excel, sunset fear, "your people are the problem").

If counter is an in-flight implementation of someone else, love of client: log it and do not outbound as a replacement project.

What this is not​

  • Authority to add rows to signals.yaml.
  • Proof of P_00010 or any problem. Problems are confirmed on the call, against an artifact.
  • A reason to threaten QuickBooks Desktop, Epicor Kinetic, or a "deprecated" SKU without their confirmation.
  • License to scrape LinkedIn, employee Facebook, or anything behind a login. People data goes through ZoomInfo, then a person verifies.
  • A 500–5000 RFP hunter.

Change log​

  • 2026-08-31 — Expo pass points to Expo signal research (MapYourShow, a2z, see-us-at, buying attendance lists).
  • 2026-08-31 — Capital pass points to Capital signal research for PE universes, Grata/PitchBook, and BDC filings.
  • 2026-08-31 — First source map for ERP need/want/window at 50–500: hiring, capital, counterparties, expos, incumbent vs replacement, leadership. Existing SG_ only; research-only tags are not catalog IDs.