Repository navigation
feat(piloterr): add Piloterr integration - #9837
josselinlbe wants to merge 2 commits into
Conversation
Add a Piloterr block for web scraping and structured data: - Fetch a page's HTML, render a JavaScript page, or take a screenshot - Detect the technologies a website runs - Search Google, Amazon and eBay - Get LinkedIn and Crunchbase company profiles by page, name or website domain - Get an eBay listing or a Zillow home Outputs follow the documented OpenAPI schemas and were checked against live responses. Credentials are a Piloterr API key sent in the x-api-key header.
|
Someone is attempting to deploy a commit to the Sim Team on Vercel. A member of the Team first needs to authorize it. |
[Medium impact] Piloterr adds external data lookups to workflows that choose to use the new integration. The PR appears safe to merge, with non-blocking fixes for agent number checks and the Google Search description. FindingsSummaryAdds Piloterr with eleven tools for web scraping, screenshots, search, and company and property research.
|
| params: (params) => { | ||
| const result: Record<string, unknown> = {} | ||
| if (params.operation === 'render_html') { |
There was a problem hiding this comment.
Agent tools skip number checks
tools.config.params checks params.operation, but agent tools keep the selected operation separately and pass it through the second callback argument. After switching a Piloterr agent tool to a search or screenshot operation, its numeric inputs skip this mapper. Saved short-input strings stay strings, and blank values are sent instead of being omitted. Read context?.operation ?? params.operation before choosing which numbers to parse.
| id: 'piloterr_google_search', | ||
| name: 'Piloterr Google Search', | ||
| description: | ||
| 'Search Google and get organic results with their position, title, link and snippet, the knowledge graph and the estimated total.', |
There was a problem hiding this comment.
Knowledge graph output is missing
piloterr_google_search promises a knowledge graph, but its response mapper and output fields expose only results, totalResults, and hasNextPage. Workflows and agents cannot read the advertised company or entity details. Expose the knowledge graph, or remove that promise from the tool description and generated docs and catalog.
- Describe Google Search without a knowledge graph, which it does not return - Read the operation from the mapper context so agent tools coerce numeric inputs too - Keep response mappers with a single caller in that tool's file - Document the PiloterrIcon export
Summary
Adds a Piloterr integration: tools, block, icon and generated docs page. I work on Piloterr, so this PR comes from the Piloterr team.
Fetch or render any web page, take screenshots, detect a website's technologies, search Google, Amazon and eBay, and get structured LinkedIn and Crunchbase company profiles and Zillow properties, with proxies and anti-bot handling included.
Operations:
piloterr_fetch_html): Fetch a public web page over fast HTTP, without running JavaScript, and get its HTML.piloterr_render_html): Render a JavaScript-heavy page in a headless browser and get the HTML after rendering.piloterr_screenshot): Capture a public web page as a PNG, JPEG, WebP image or a PDF, by viewport, full page or CSS selector, and store it as a file.piloterr_detect_technologies): Detect the technologies a website runs, such as its CMS, frameworks, analytics, CDN and hosting.piloterr_google_search): Search Google and get organic results with their position, title, link and snippet, the knowledge graph and the estimated total.piloterr_amazon_search): Search an Amazon marketplace and get products with ASIN, title, price, rating and review count.piloterr_ebay_get_listing): Get an eBay listing by item ID or URL, with its price, condition, availability, seller, shipping and item specifics.piloterr_ebay_search): Search eBay listings by keyword or search URL and get their price, condition, buying format, shipping and seller.piloterr_linkedin_company): Get a LinkedIn company's profile by page URL, slug or ID, or by website domain: industry, size, headquarters, specialties and followers.piloterr_crunchbase_company): Get a company's Crunchbase profile by name, permalink or URL, or by website domain: description, size, categories, locations, investors and products.piloterr_zillow_property): Get a Zillow home from its homedetails URL: address, price, Zestimate, status, size, rooms, year built and photos.Credentials are a Piloterr API key on the block (
AuthMode.ApiKey), sent as thex-api-keyheader. Every tool is an externalToolConfig.requestagainst the Piloterr API.Product update (if relevant)
Sales, e-commerce and research teams can scrape pages, monitor marketplace prices, and enrich accounts with LinkedIn and Crunchbase data. The block appears in the integrations catalog with 7 templates and grounded skills; the docs page is
apps/docs/content/docs/integrations/piloterr.mdx.Type of Change
Testing
requestandtransformResponseto confirm the mapped outputs; fields that the API documents as nullable are optional outputs.bun run lint,bun run type-check,bun run check:audits(all 62 audits),bun run apps/sim/scripts/check-block-registry.ts origin/staging,bun run apps/sim/scripts/check-canvas-sentences.ts --block=piloterr, and the existingblocksandtools/request-transportVitest suites all pass.Checklist
Screenshots/Videos