get_nlrb_cases
Returns NLRB (National Labor Relations Board) case filings: unfair- labor-practice charges and union representation/election petitions. Use this when the user asks about: union organizing at a company, labor disputes or ULP charges, union election petitions and outcomes, decertification efforts, or a company's labor-relations record. Case numbers follow {region}-{type}-{sequence}, e.g. '03-CA-390171' (NLRB Region 03, CA charge). The middle code determines the case family: C-cases are ULP CHARGES against an employer (CA) or a union (CB, CC, CD, CE, CG, CP) — allegations of unlawful labor practices. R-cases are REPRESENTATION petitions — RC (union seeks certification), RD (employees seek decertification), RM (employer-filed), plus UD/UC/AC unit matters. Each record carries case_type ('ULP' or 'representation') and case_subtype (the raw code). The name field is the named party on the filing — usually the employer, but on CB/CC-type charges it is the union being charged. employer_name matches against it as a substring. Representation cases carry eligible_voters, certified_representative (filled after a won election), and unit_sought (the bargaining-unit description). FRESHNESS CAVEAT: cases mutate after filing — status flips Open→Closed and date_closed / reason_closed / certified_representative fill in later. The daily sync re-pulls a trailing 180-day date_filed window, so those fields on cases FILED MORE THAN ~180 DAYS AGO may lag the source until a periodic full re-pull; the source_url case page is always current. Filter combinations note: server-side indexes support ONE of state / case_type combined with the date_filed sort + since/until. Other filters (employer_name substring, case_subtype, status, region, state+case_type together) post-filter client-side over a widened fetch window. Pure-publisher posture: NLRB's public case rows as published — no outcome scoring. Each record's source_url links to the nlrb.gov public case page (which also carries docket activity and related documents not in this dataset).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum cases to return. Default 50, max 500. | |
| since | No | date_filed lower bound (YYYY-MM-DD inclusive). | |
| state | No | Two-letter state/territory code of the case site (e.g., 'NY', 'CA', 'PR'). | |
| until | No | date_filed upper bound (YYYY-MM-DD inclusive). | |
| region | No | Two-digit NLRB region number from the case-number prefix (e.g., '03' Buffalo, '13' Chicago). Client-side filter. | |
| status | No | Case status. Client-side filter. | |
| sort_by | No | Sort key. Only date_filed is supported (the default). | |
| case_type | No | Case family: 'ULP' = unfair-labor-practice charges (C-cases), 'representation' = election/unit petitions (R-cases). | |
| sort_order | No | Default: desc (most recently filed first). | |
| case_number | No | Direct lookup by NLRB case number (e.g., '03-CA-390171'). Fastest path. | |
| case_subtype | No | Exact case-number code (e.g., 'CA' charge against employer, 'CB' against union, 'RC' certification petition, 'RD' decertification). Client-side filter. | |
| employer_name | No | Case-insensitive substring against the named party (e.g., 'starbucks', 'amazon'). Usually the employer; on CB-type charges the union. Client-side filter. |