business-search▌
apps.ilsos.gov/business-search-wk944z · updated May 21, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
Search the Illinois Secretary of State's Business Entity database (Corporations, NFPs, LPs, LLCs, LLPs) by business name, registered agent, manager, officer, or file number — returns file number, entity name, status, and entity type per match. Read-only. Form is Akamai-protected and POST is hard-blocked from Browserbase remote sessions.
| name | business-search |
| title | Illinois Business Entity Search |
| description | >- Search the Illinois Secretary of State's Business Entity database (Corporations, NFPs, LPs, LLCs, LLPs) by business name, registered agent, manager, officer, or file number — returns file number, entity name, status, and entity type per match. Read-only. Form is Akamai-protected and POST is hard-blocked from Browserbase remote sessions. |
| website | apps.ilsos.gov |
| category | government |
| tags | - government - illinois - business-registry - akamai - corporations - llc |
| source | 'browserbase: agent-runtime 2026-05-20' |
| updated | '2026-05-20' |
| recommended_method | browser |
| alternative_methods | [] |
| verified | true |
| proxies | true |
Illinois Business Entity Search
Purpose
Search the Illinois Secretary of State's Business Entity database (Corporations, Not-for-Profit Corporations, LPs, LLCs, LLPs) for matches to a query string — typically a business name — and return each result's file number, entity name, status, and entity type. Read-only.
When to Use
- Verify whether a business name is registered in Illinois.
- Bulk lookups by business name, registered agent, manager, secretary, president, or file number.
- Pre-filing name-availability checks before incorporating in Illinois.
- Anywhere you'd otherwise scrape the public Illinois business registry.
Workflow
The Illinois Business Entity Search is a server-rendered form-POST
application protected by Akamai Bot Manager. Submission is hard-blocked
from Browserbase remote sessions across every session config we tested
(see Site-Specific Gotchas for the matrix). The form GET path loads fine,
the form is fillable, and the Akamai sensor data POSTs to the dynamic
/9lxW…/…/QYQ2wB-style endpoint DO fire — but _abck never transitions
out of the unvalidated ~-1~…~-1~-1~-1 state, so the subsequent form
POST is killed at the HTTP/2 layer (ERR_HTTP2_PROTOCOL_ERROR,
Failed to fetch, navigation lands on chrome-error://chromewebdata/).
There is no public API alternative — the database is gated solely through this form per the site's "individual searches only, no bulk" policy.
Recommended approach when running in a non-Browserbase environment (e.g. real residential desktop Chrome, a non-headless instance with a warm user-data-dir, or an environment whose fingerprint Akamai accepts): drive the form via the browser flow below. From Browserbase remote sessions specifically, the skill will return a candidate failure documenting the anti-bot wall — see the "Akamai-block outcome" shape in Expected Output.
Browser flow
-
Open the search page:
https://apps.ilsos.gov/businessentitysearch/. Wait forloadand then sleep 8–12 seconds to let the Akamai sensor script (/akam/13/<id>) initializewindow.bmakand complete its first sensor data POST to the dynamic/9lxW…/…/QYQ2wB-style endpoint. -
Pick a search method — eight radio options, each posts a single character to
searchMethod:Radio id value Use when … #namesExact-prefix business name (most restrictive) #agentsearchaRegistered Agent name #presidentsearchrOfficer search — President #secretarysearchcOfficer search — Secretary #managersearchmLLC Manager — reveals separate Last/First/Middle + Business Name fields (NOT the same searchValuefield)#fileNumberfDirect lookup by 8-digit file number #keyWordeKeyword (matches a word in the name) #partialWordpPartial Word (substring match, the loosest) For a multi-word query like "smith ventures",
p(Partial Word) is the right choice — it matches names containing both substrings. Ifpreturns zero rows, fall back toe(Keyword), thens(Business Name). -
Generate user-interaction signals before submitting — Akamai's sensor weights real keyboard/mouse events heavily. Click the input field, then
browse type "smith ventures"(do notbrowse fill—fillskips keypress events). Wait 1.5–3s between steps. -
Submit: click
#btnSearch(the form's<input type="submit">). The form action isPOST /businessentitysearch/businessentitysearchwith hiddencommand=entitySearch&method=searchplus the chosensearchMethod+searchValue. -
Read the results page. On success the response is a server-rendered HTML table — one row per matching entity. Extract from the result table:
- File Number (left-most column, also encoded in the per-row "detail" form-POST that loads the entity record).
- Entity Name (typically all-caps as stored in the registry).
- Status —
ACTIVE,INACTIVE,DISSOLVED,NOT IN GOOD STANDING, etc. - Entity Type —
CORP,NFP(not-for-profit corp),LLC,LP,LLP.
The site does not expose stable detail-page URLs — each detail-link is a per-row form POST carrying the file number plus the same Akamai cookies. Read-only for this skill: do not click into detail pages.
-
Branch on URL after submit:
https://apps.ilsos.gov/businessentitysearch/businessentitysearch(or similar/businessentitysearch/...path) → normal results page; parse the table.https://www.ilsos.gov/(silent redirect) → Akamai rejected the request and bounced you to the ilsos.gov homepage. Retry from step 1 with a longer warmup (15s+), or surface theakamai_blockedoutcome.chrome-error://chromewebdata/(ERR_HTTP2_PROTOCOL_ERROR) → the hard Akamai wall — the POST never reached the application server. Surface theakamai_blockedoutcome.
-
If the table renders "No Records Found" / "No matching records": retry with the next-looser search method (
p→e→s). If all three return empty, returntotal_results: 0.
Site-Specific Gotchas
-
Akamai blocks Browserbase remote sessions on every config tested. We verified the POST is killed at the network layer (
Failed to fetchfrom page-contextfetch(),ERR_HTTP2_PROTOCOL_ERRORfrom click-based navigation) across this matrix:Session flags Region Result --verified --proxiesus-west-2 blocked --verified --proxies --solve-captchasus-west-2 blocked --verified --proxiesus-east-1 blocked bare (no --verified, no--proxies)us-west-2 blocked The page GET works fine (200 OK with rendered HTML), the Akamai sensor script loads, sensor-data XHRs fire, but
_abcknever transitions out of~-1~…~-1~-1~-1(the unvalidated state). Akamai's edge then silently RST's the POST stream. Do not waste time trying additional stealth knobs from Browserbase — the block is at Akamai's bot-validation layer, which Browserbase Verified mode does not pass on this domain. -
Mitigation for non-Browserbase environments: a real residential desktop Chrome with a warm profile (cookies, history, etc.) typically passes. Headless Chrome / Playwright with default args is also blocked. If you must run from automation, consider importing a valid
_abckcookie from a human-driven session into your automation session (the cookie validates for ~30 minutes after a successful human submission). -
browse fillvsbrowse type:fillwrites the value to the DOM directly and does not fire individual keypress events that Akamai watches.browse type(orbrowse clickthen individual keypresses) generates the events Akamai's sensor expects. Always prefertypeon this form. -
form#indexis intercepted by jQuery validate. The form's submit is wired through jQuery validate (submitHandler: function(form){ if($("form#index").valid()){ $("input[type=submit]").prop("disabled", true); form.submit(); } }). Callingdocument.getElementById('index') .submit()directly frombrowse evalwill throw because validate overrides.submit. Use a realclickon#btnSearchinstead. -
GET requests with query params don't work as a backdoor: appending
?command=entitySearch&method=search&searchMethod=p&searchValue=...to the action URL produces a redirect loop (502 frombrowse cloud fetch --allow-redirectsafter 20 hops), or a silent redirect tohttps://www.ilsos.gov/from the browser. The endpoint requires POST. -
No public JSON / REST API exists for this database. The Illinois Secretary of State's policy explicitly forbids bulk extraction: "The database is available to the public for individual searches only. This database may not be used to copy or download bulk information searches." There is no GraphQL, no
/api/, no sitemap-indexed per-entity URL. The form is the only surface. -
Manager-search uses a different field set. Picking
#managersearchhides#searchValueand reveals separate#maLastName,#maFirstName,#maMiddleIni, and#maBusinessNameinputs (with an "Or" between the personal-name group and the business-name field). Validation:maLastNamemust be ≥3 chars,maFirstNamemust be ≥2 chars, and the personal-name vs business-name fields are mutually exclusive (filling one disables the other). The other seven search methods all use the single#searchValuefield. -
searchValueismaxlength=30. Longer queries are truncated by the browser at the input level. Plan for this on long business names. -
Session JSESSIONID is short-lived (HttpOnly, SameSite=Lax, Path=/). The
_abckAkamai cookie has a 1-year Max-Age but its validated state expires after ~30 minutes of inactivity, after which Akamai re-challenges. -
bazadebezolkohpepadrscript-injected global is the Akamai sensor signature seed — observed asbazadebezolkohpepadr="556413745"in the page's inline script. It correlates with the sensor JS load. If this global isn't present, the sensor never initializes.
Expected Output
Four distinct outcome shapes:
// 1. Success — results returned
{
"success": true,
"query": "smith ventures",
"search_method_used": "p",
"total_results": 7,
"results": [
{
"file_number": "12345678",
"name": "SMITH VENTURES INC.",
"status": "ACTIVE",
"entity_type": "CORP"
},
{
"file_number": "87654321",
"name": "SMITH VENTURES LLC",
"status": "DISSOLVED",
"entity_type": "LLC"
}
],
"error_reasoning": null
}
// 2. Zero matches across all three fallback methods
{
"success": true,
"query": "smith ventures",
"search_method_used": "s",
"total_results": 0,
"results": [],
"error_reasoning": null
}
// 3. Akamai-block outcome (the documented failure path on Browserbase)
{
"success": false,
"query": "smith ventures",
"search_method_used": "p",
"total_results": null,
"results": [],
"error_reasoning": "akamai_blocked: POST /businessentitysearch/businessentitysearch returned ERR_HTTP2_PROTOCOL_ERROR — _abck cookie remained in unvalidated -1 state across 12s warmup + simulated user interaction. Browserbase Verified mode + residential proxies + us-east-1 region all blocked. Retry from a non-Browserbase environment with a warm Chrome profile or imported _abck cookie."
}
// 4. Form-validation error (e.g. empty searchValue, sub-3-char Manager Last Name)
{
"success": false,
"query": "",
"search_method_used": "p",
"total_results": null,
"results": [],
"error_reasoning": "validation_error: Serach Value is required"
}
How to use business-search on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your development machine
- ›Node.js version 16.0+ with npm package manager (verify with
node --version) - ›Active project directory or workspace where you want to add business-search
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches business-search from GitHub repository apps.ilsos.gov/business-search-wk944z and configures it for Cursor.
Select Cursor when prompted
The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Reload or restart Cursor to activate business-search. Access the skill through slash commands (e.g., /business-search) or your agent's skill management interface.
Security & Verification Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases▌
Task Automation & Efficiency
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Knowledge Enhancement
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Quality Improvement
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Implementation Guide▌
Prerequisites
- ›Claude Desktop or compatible AI client with skill support
- ›Clear understanding of task or problem to solve
- ›Willingness to iterate and refine outputs
Time Estimate
15-45 minutes depending on use case complexity
Installation Steps
- 1.Install skill using provided installation command
- 2.Test with simple use case relevant to your work
- 3.Evaluate output quality and relevance
- 4.Iterate on prompts to improve results
- 5.Integrate into regular workflow if valuable
Common Pitfalls
- ⚠Expecting perfect results without iteration
- ⚠Not providing enough context in prompts
- ⚠Using skill for tasks outside its intended scope
- ⚠Accepting outputs without review and validation
Best Practices▌
✓ Do
- +Start with clear, specific prompts
- +Provide relevant context and constraints
- +Review and refine all outputs before using
- +Iterate to improve output quality
- +Document successful prompt patterns
✗ Don't
- −Don't use without understanding skill limitations
- −Don't skip validation of outputs
- −Don't share sensitive information in prompts
- −Don't expect skill to replace human judgment
💡 Pro Tips
- ★Be specific about desired format and style
- ★Ask for multiple options to choose from
- ★Request explanations to understand reasoning
- ★Combine AI efficiency with human expertise
When to Use This▌
✓ Use When
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid When
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
Learning Path▌
- 1Familiarize yourself with skill capabilities and limitations
- 2Start with low-risk, non-critical tasks
- 3Progress to more complex and valuable use cases
- 4Build expertise through regular use and experimentation
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.7★★★★★34 reviews- ★★★★★Ama Nasser· Dec 28, 2024
business-search fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Dev Liu· Dec 8, 2024
Solid pick for teams standardizing on skills: business-search is focused, and the summary matches what you get after install.
- ★★★★★Arya Haddad· Nov 27, 2024
Registry listing for business-search matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Sakshi Patil· Nov 23, 2024
business-search reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Dev Harris· Nov 19, 2024
We added business-search from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Arya Lopez· Oct 18, 2024
Useful defaults in business-search — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Chaitanya Patil· Oct 14, 2024
business-search is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Dev Zhang· Oct 10, 2024
Keeps context tight: business-search is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★James Gill· Sep 25, 2024
We added business-search from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Neel Robinson· Sep 21, 2024
Solid pick for teams standardizing on skills: business-search is focused, and the summary matches what you get after install.
showing 1-10 of 34