parallel-findall
Khám phá các thực thể (công ty, con người, sản phẩm, v.v.) phù hợp với mô tả bằng ngôn ngữ tự nhiên. Sử dụng khi người dùng yêu cầu 'tìm tất cả X' hoặc 'liệt kê mọi Y mà…' —…
npx skills add https://github.com/parallel-web/parallel-cursor-plugin --skill parallel-findallFindAll: Entity Discovery
Find: $ARGUMENTS
Requires
parallel-cli≥ 0.3.0 (thefindallcommand was added in 0.3.0). Ifparallel-cli findallerrors withno such commandor similar, tell the user to runparallel-cli update(orpipx upgrade parallel-web-toolsif installed via pipx), then retry.
When to use this skill
Use FindAll when the user wants a structured list of entities matching a description, not webpages or a narrative answer.
| User asks for… | Use |
|---|---|
| "Find all X that…" / "List every Y…" | parallel-findall (this skill) |
| Webpage results / quick answers / current info | parallel-web-search |
| Narrative report / analysis / "research X" | parallel-deep-research |
| Add fields to a list you already have | parallel-data-enrichment |
If the user already has a list and just wants to add fields, this is the wrong skill — use parallel-data-enrichment.
Step 1: Start the run
parallel-cli findall run "$ARGUMENTS" --no-wait --json
Defaults: generator core, match limit 10. Stick with core unless the user has a reason to escalate:
-g pro— most thorough generator (slower, costlier). Use when the user asks for "comprehensive" coverage or matches are sparse oncore-g base— fastest, but markedly lower quality. Often returns query-echo entities (e.g., directory pages, the literal query string), entries with no URL, or category placeholders. Only use if the user explicitly asks for a quick scan and accepts noise; otherwise prefercore-n 50— return up to 50 matched entities (5–1000 allowed)
If the user wants to exclude known entities (e.g., "find competitors but not Google or OpenAI"):
parallel-cli findall run "$ARGUMENTS" --no-wait --json \
--exclude '[{"name":"Google","url":"google.com"},{"name":"OpenAI","url":"openai.com"}]'
Tip — preview the schema first if the objective is ambiguous: parallel-cli findall ingest "$ARGUMENTS" --json shows the entity type and match conditions the API inferred, so you can refine wording before paying for a run.
Parse the JSON output to extract the findall_id and any monitoring URL. Tell the user:
- A FindAll run has been started
- Approximate cadence (minutes for
core, longer forpro) - They can keep working while it runs
Step 2: Poll for results
Choose a descriptive filename (e.g., series-a-ai-2026, charlotte-roofers). Use lowercase with hyphens, no spaces.
parallel-cli findall poll "$FINDALL_ID" -o "/tmp/$FILENAME.json" --timeout 540
Important:
- Use
--timeout 540(9 minutes) to stay within tool execution limits - Do NOT pass
--jsonfor large result sets — it will flood context.-osaves the full results to disk
If the poll times out
Re-run the same parallel-cli findall poll command to continue waiting. Server-side the run continues regardless.
Response format
Before presenting matches, filter the results for obvious noise:
- Drop entries with empty/missing
url - Drop entries whose
nameechoes the user's query (e.g., literal "YC W25 batch companies in developer tools") — those are search-result placeholders, not real entities - Drop entries whose
urlis a third-party directory or profile page rather than the entity's own domain. Concretely: drop URLs onlinkedin.com,ycombinator.com/companies/...,crunchbase.com,pitchbook.com, generic news/blog posts about the entity, etc. The URL should be something the entity itself owns (its product site, docs, or marketing site)
If filtering removes a meaningful share of matches, mention this to the user and suggest re-running with -g pro or a higher -n.
Sanity-check -g base results. The base generator can hallucinate categorical attributes (e.g., return a YC S22 company as a YC W25 match). The filter rules above only catch URL/name shape, not factual correctness. If the user's query has a falsifiable attribute (a specific batch, year, geography, etc.), spot-check the kept entries against the source URL and flag any that don't fit. Recommend re-running with -g core (or higher) if either multiple kept entries fail the spot-check or noise filtering dropped a meaningful share of the matched set (say, ≥40%) — both indicate base isn't producing reliable results for this query.
Present the remaining (real) entities as a markdown table or list. Lead with the count, then list each entity with its name, URL, and a one-line description if available. Cite each entity with its source URL.
Tell the user:
- How many entities were matched (and how many were filtered as noise, if any)
- The full results path (
/tmp/$FILENAME.json) - That they can:
-
Add fields to these results, e.g.:
parallel-cli findall enrich $FINDALL_ID '{"properties":{"ceo":{"type":"string"},"employee_count":{"type":"number"}}}'The schema is a JSON Schema-style object with
propertiesmapping field names →{type, description?}. -
Get more matches:
parallel-cli findall extend $FINDALL_ID 50
-
If the parallel-cli binary is not installed
If the shell reports command not found: parallel-cli (i.e. the binary itself is missing — distinct from a No such command error from a stale CLI, which the in-body guidance above covers), stop immediately. Do NOT search the web yourself, do NOT use any built-in search tools, and do NOT try to answer the query from your own knowledge. Instead, tell the user:
parallel-cliis not installed- Run
/parallel-setupto install it - Then retry their request