PULLFIRST[THE RECORD]
Guides

Data sources

Where each field on a PullFirst contractor record originates, how it attaches to the record, and how fresh it is.

Context: Where Minnesota contractor data comes from — the narrative behind the source architecture described here.

A Minnesota contractor record in PullFirst is assembled from separate government systems that were never designed to line up. This page is the reference for what each source contributes, how the attachment is made, and what freshness to expect.

MN DLI licenses

Provides: contractor license records — license number, business name, trade, status, issue date, expiration date, contact details.

Attachment: authoritative. Every other source attaches to a license from this feed, either by explicit license number when the source publishes one, or through the matching pipeline when it does not.

Refresh: daily bulk export from the Minnesota Department of Labor and Industry.

Downstream dependency: a contractor missing from the DLI export has no anchor for permits, discipline, or OSHA history to attach to. The license table is deliberately boring — it is the join key for everything else.

MN DLI discipline

Provides: disciplinary orders — order date, action type, penalty amount, violation language, source document reference.

Attachment: sometimes by explicit license number, sometimes by business and person name. The attachment tier reflects which: an order linked by license number is VERIFIED; an order linked by name plus city runs through the match pipeline and surfaces at the tier the evidence supports.

Refresh: scraped on a rolling cadence as DLI publishes new orders.

Separation note: this is a different feed from the license export. They share a publisher and nothing else. Do not expect a discipline record to appear inline on the license row — it attaches as a related record.

MN Attorney General actions

Provides: consumer-protection filings — lawsuits, settlements, consent decrees initiated by the Minnesota AG against contractors.

Attachment: through the match pipeline. AG filings name the business and sometimes the principal; they rarely cite a DLI license number. Confidence tiers apply.

Refresh: monitored on a rolling cadence.

Separation note: AG actions are not the same signal as DLI discipline. DLI discipline is administrative — a license-holder violated a licensing regulation. An AG filing usually means the state moved into fraud, consumer protection, or broader civil enforcement. A contractor can have both, either, or neither, and collapsing them into a single "enforcement" field would hide the distinction.

OSHA inspections

Provides: federal Occupational Safety and Health Administration inspection records — establishment name, address, inspection date, violation counts, penalties.

Attachment: through the match pipeline. The OSHA IMIS export publishes establishment name and address. It does not publish Minnesota license numbers. Attachment runs name-and-address against the license table; confidence tiers apply.

Refresh: OSHA publishes IMIS updates weekly; PullFirst ingests on the same cadence.

Separation note: OSHA is federal, not Minnesota licensing. The signal is workplace-safety inspection history, which is a different risk axis from licensing status or consumer-protection enforcement.

City and county permits

Provides: building and trade permits — permit type, description, address, issue date, valuation, contractor name as written in the permit system, and property parcel where available.

Attachment: through the match pipeline. Permit systems carry their own contractor-name field, which rarely matches the DLI license string cleanly. This is where the matching work earns its keep.

Refresh: varies by jurisdiction. Some systems publish daily updates through public portals; others refresh weekly or on a manual cadence; a handful publish only when a public-records request forces the issue.

Source systems: Minnesota does not publish a statewide building-permit feed. The record is scattered across jurisdiction-by-jurisdiction municipal permit systems, each with its own format, identifiers, and publishing cadence.

Coverage note: permit coverage is jurisdiction-by-jurisdiction, not a blanket statewide number. Minneapolis is one source. Saint Paul is another. The LOGIS suburban ring is its own cluster. Some systems publish rich detail; some publish the minimum to support a usable record. Treat the coverage page as the authoritative list of what is indexed and how current it is.

What the API exposes per field

Every field on a PullFirst record carries:

  • The originating source (DLI license, DLI discipline, AG, OSHA, or named permit system).
  • The freshness timestamp from the underlying publisher.
  • The attachment method and confidence tier when the field came in through matching rather than an explicit identifier.

A field that cannot be attributed to a specific source is a field that will fail when you need it most. PullFirst surfaces the attribution instead of hiding it.