find-a-product▌
homedepot.com/find-a-product-on-home-depot-sognq8 · updated May 21, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
Search homedepot.com for products matching a free-text query, brand+model, or itemId; return canonical /p/{slug}/{itemId} URLs, titles, images, and (optionally, via a Verified browser session) price, availability, brand, rating, and key specs. Read-only.
| name | find-a-product |
| title | Home Depot Find a Product |
| description | >- Search homedepot.com for products matching a free-text query, brand+model, or itemId; return canonical /p/{slug}/{itemId} URLs, titles, images, and (optionally, via a Verified browser session) price, availability, brand, rating, and key specs. Read-only. |
| website | homedepot.com |
| category | shopping |
| tags | - home-improvement - shopping - product-search - akamai - hybrid |
| source | 'browserbase: agent-runtime 2026-05-18' |
| updated | '2026-05-18' |
| recommended_method | hybrid |
| alternative_methods | - method: api rationale: >- Browserbase Search API (bb search) indexes Home Depot's catalog via Google/Bing and returns canonical /p/{slug}/{itemId} URLs, titles, and images for $0 browser cost. Validated as the discovery shortcut for this skill. Sufficient on its own when the caller only needs to resolve a query to a product URL + image. - method: browser rationale: >- When the caller needs price, availability, specs, or reviews — fields not in the search-API snippet — a Verified+residential-proxy browser session is required. Both --verified and --proxies are mandatory; the cookieless Browserbase Fetch API (with or without --proxies) is 100% Akamai-blocked across every homedepot.com path tested in iter-1. - method: cli rationale: >- Confirmed dead-end: bb fetch returns HTTP 200 with the Akamai sensor challenge body on /, /s/, /p/{itemId}, /p-search/, /robots.txt, and /api/v1/products/{itemId}. apionline.homedepot.com returns 403 from datacenter IPs. Don't waste turns on cookieless paths. |
| verified | true |
| proxies | true |
Home Depot Find a Product
Purpose
Given a natural-language product query (free text, brand+model, or a Home Depot itemId), return one or more matching products from homedepot.com — title, canonical URL, 9-digit itemId, image URL, and (when a browser session is used) current price, availability, brand, rating, and key specs. Read-only — never adds to cart, never checks out.
When to Use
- "Find me a DEWALT cordless drill on Home Depot."
- "Get the Home Depot URL and current price for a Behr Marquee paint in Cameo White."
- "I have model number DCD791P1 — pull the Home Depot listing."
- Bulk product-URL resolution for a list of brand+model strings prior to price-monitoring.
- Any flow where the next step is "open the product page in a browser" — this skill yields the canonical
/p/{slug}/{itemId}URL plus enough metadata to disambiguate.
Workflow
Home Depot is fronted by Akamai Bot Manager. Cookieless HTTP paths (raw curl, bb fetch with or without --proxies) get a 200 OK whose body is the Akamai sensor challenge page — never the rendered product HTML. Verified across /, /s/?, /p-search/?, /p/{itemId}, /robots.txt, and apionline.homedepot.com (the last 403s outright from datacenter IPs). There is no public JSON API and no cookieless fetch path that bypasses Akamai.
There IS, however, a much cheaper discovery shortcut than driving the search page: Browserbase Search API (bb search) indexes Home Depot's catalog through Google/Bing and returns canonical /p/{slug}/{itemId} URLs + titles + product images — for zero browser cost and no anti-bot exposure. Use it as step 1; only spin up a Verified browser if the caller needs fields the search snippet doesn't include (price, stock, specs, reviews).
1. Discovery — bb search (no browser, no anti-bot risk)
bb search "<your query> site:homedepot.com/p" --num-results 10 --output /tmp/hd-search.json
Each result for a /p/ URL contains:
{
"id": "https://www.homedepot.com/p/DEWALT-...-DCD791P1/312119566",
"url": "https://www.homedepot.com/p/DEWALT-...-DCD791P1/312119566",
"title": "20V MAX XR Cordless Brushless 1/2 in. Drill/Driver with (1) 20V 5.0Ah Battery, Charger and Bag",
"publishedDate": "2025-03-26T00:00:00.000Z",
"image": "https://images.thdstatic.com/productImages/.../dewalt-power-drills-dcd791p1-64_1000.jpg"
}
Parse the trailing 9-digit segment as itemId:
itemid=$(echo "$url" | grep -oE '/[0-9]{9,}([?/]|$)' | grep -oE '[0-9]{9,}')
The site:homedepot.com/p operator filters out the category browse pages (/b/...), reviews pages (/p/reviews/...), and Q&A pages (/p/questions/...) that otherwise pollute results. If the query is generic enough (e.g. "cordless drill"), /b/ category-listing pages may still appear — filter client-side by requiring /p/{slug}/{itemId} in the URL.
For SKU lookups, search with "<model#> home depot" rather than the bare model — observed during validation: "model# DCD791P1 home depot" resolves cleanly while "DCD791P1" alone surfaces the manufacturer's own site as a competing top result.
2. Enrichment — only if you need price/stock/specs (browser required)
A Verified + residential-proxy session is mandatory:
SID=$(bb sessions create --keep-alive --verified --proxies | jq -r '.id')
export BROWSE_SESSION="$SID"
browse --connect "$SID" open "https://www.homedepot.com/p/$itemid" # short form — redirects to canonical /p/{slug}/{itemId}
browse --connect "$SID" wait load
browse --connect "$SID" wait timeout 3000 # price widget + JSON-LD hydrate ~1–3 s after load
browse --connect "$SID" snapshot
Both --verified and --proxies are required. A bare or proxies-only session lands on the Akamai bot-challenge page (<div id="sec-if-cpt-container">) — that's the failure-mode signature; if you see it in browse get html body, treat the session as burned and recreate it.
Extract fields from the snapshot a11y tree or from the embedded <script type="application/ld+json"> Product block (every /p/{itemId} page emits one once Akamai clears). The structured-data block carries name, brand.name, image, sku, offers.price, offers.priceCurrency, offers.availability (InStock | OutOfStock | PreOrder), and aggregateRating.{ratingValue, reviewCount} — read these first; fall back to a11y-ref scraping only for fields the schema omits (e.g. localized-store inventory, current promo callouts).
Release when done:
bb sessions update "$SID" --status REQUEST_RELEASE
3. Combine + emit
Merge step-1 search metadata (URL, title, image, itemId) with step-2 enriched fields (price, availability, brand, rating). If the caller only asked for "find me a product," steps 1 alone suffices — don't open a browser unless price/stock/specs were requested.
Site-Specific Gotchas
- Akamai blocks all cookieless fetches.
bb fetch https://www.homedepot.com/<any-path>returns HTTP 200 with the Akamai challenge body (<script src="/06MU_...?t=...">+<div id="sec-if-cpt-container">) — including/robots.txt,/p/{itemId},/p-search/?keyword=..., and/api/v1/products/{itemId}. Without--proxies, the same paths return HTTP 403. Don't waste turns tryingbb fetchvariants — there's no header / param / path combo that defeats the challenge. The browser path with--verified --proxiesis the only known cookieless-incompatible path that yields rendered HTML. apionline.homedepot.comis 403 from datacenter IPs. Verified during iter-1 withbb fetch --proxies --allow-redirects. It returns Akamai's "Access Denied" HTML, not the bot-challenge page — meaning even a successful CAPTCHA solve at the www level wouldn't unlock the GraphQL gateway from a non-residential egress. Don't waste time on the internal GraphQL endpoint.m.homedepot.comandstore.homedepot.comare TLS-cert-rotation / redirect traps.m.homedepot.com502s with "TLS certificate verification failed" through Browserbase Fetch even with--allow-redirects;store.homedepot.com500s. Stick towww.homedepot.com.- URL shape:
/p/{slug}/{itemId}is canonical;/p/{itemId}redirects to it. ItemIds are 9-digit integers (e.g.312119566,331273305). The slug is decorative but URL-stable — if Home Depot rewrites the slug across catalog updates, the itemId path still resolves. For storing references, persist the itemId, not the full URL. bb searchover-indexes auxiliary pages. Without the/ppath-filter, top results frequently include/p/reviews/...,/p/questions/..., and/b/...category-listing pages mixed in with actual product pages. Always require/p/{slug}/{9-digit-itemId}in the URL when filtering — slug must be non-empty (noreviewsorquestionskeyword) and itemId must match[0-9]{9,}.bb searchfor bare model numbers leaks to the manufacturer site. A query of"DCD791P1"returns the DEWALT.com product page as the second result;"home depot DCD791P1"or"<model> site:homedepot.com/p"keeps results onhomedepot.com. Always pin the domain explicitly.- Category browse uses an
N-{taxonomy-id}token. URLs like/b/Tools-Power-Tools-Drills/Cordless/Brushless/N-5yc1vZc27fZ1z140i3Z1z17tnqencode a taxonomy intersection in theN-segment (chain ofZ-delimited refinement codes). This is opaque but stable — if a caller wants "all Brushless Cordless Drills" rather than a single product, capture theN-...token from the search result and pass it through; don't try to reconstruct. - Search results include a
publishedDatethat is the search-engine first-indexed date, not the catalog list date. Don't use it as "product launch" or "last updated" — it's a search-engine artifact (typically the date the URL was first crawled). Useful only as a recency tie-breaker between near-duplicate listings. - Hammer drill / drill / driver are distinct catalog entries. Casual queries like "cordless drill" return a mix of drill-drivers and hammer drills, plus impact drivers. If the caller specified one, post-filter
titlefor the keyword (hammer,impact) rather than assuming the top result is correct. imagefield is sometimes absent. About 20% of search results omitimage(typically older catalog entries). Don't rely on it being present; if needed, fall back to theimagefield in the/p/{itemId}JSON-LD block during step 2.- The Akamai sensor JS is the "this session is burned" signal. If at any point during a browser session
browse get html bodycontainsid="sec-if-cpt-container"orclass="behavioral-content", the session has tripped Akamai. Release and recreate with Verified+proxy; don't try to interact with the challenge UI from a script. - Sandbox firewall caveat (build-time, not runtime). The browse-sh build sandbox cannot reach
connect.usw2.browserbase.com(DNS-firewalled), so this skill's browser path was not directly validated end-to-end in iter-1; only the search-API discovery path was. A runtime agent without that firewall should expect the browser path to behave per the OpenTable / Akamai pattern (Verified + proxies → rendered DOM, sometimes 1–2 retries needed on cold sessions).
Expected Output
Schema for a search-only response (step 1 alone):
{
"query": "cordless drill",
"match_count": 8,
"method": "bb-search",
"products": [
{
"itemId": "312119566",
"title": "20V MAX XR Cordless Brushless 1/2 in. Drill/Driver with (1) 20V 5.0Ah Battery, Charger and Bag",
"url": "https://www.homedepot.com/p/DEWALT-20V-MAX-XR-Cordless-Brushless-1-2-in-Drill-Driver-with-1-20V-5-0Ah-Battery-Charger-and-Bag-DCD791P1/312119566",
"image": "https://images.thdstatic.com/productImages/a62efdbd-f93b-4614-9e89-7dfad8dc5c3a/svn/dewalt-power-drills-dcd791p1-64_1000.jpg",
"first_indexed": "2025-03-26"
}
]
}
Schema for enriched response (step 1 + step 2):
{
"query": "DEWALT DCD791P1",
"match_count": 1,
"method": "bb-search+browser",
"products": [
{
"itemId": "312119566",
"title": "20V MAX XR Cordless Brushless 1/2 in. Drill/Driver with (1) 20V 5.0Ah Battery, Charger and Bag",
"url": "https://www.homedepot.com/p/DEWALT-20V-MAX-XR-Cordless-Brushless-1-2-in-Drill-Driver-with-1-20V-5-0Ah-Battery-Charger-and-Bag-DCD791P1/312119566",
"image": "https://images.thdstatic.com/productImages/.../dewalt-power-drills-dcd791p1-64_1000.jpg",
"brand": "DEWALT",
"model_number": "DCD791P1",
"price": { "value": 199.00, "currency": "USD" },
"availability": "InStock",
"rating": { "value": 4.8, "count": 3471 }
}
]
}
Failure shapes:
// No products match the query at all
{ "query": "xyzzy floogle widget", "match_count": 0, "method": "bb-search", "products": [] }
// Browser enrichment hit Akamai and could not recover after 2 retries
{ "query": "...", "match_count": 1, "method": "bb-search+browser",
"products": [ { "itemId": "...", "title": "...", "url": "...", "_enrichment_error": "akamai_blocked" } ] }
How to use find-a-product 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 find-a-product
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches find-a-product from GitHub repository homedepot.com/find-a-product-on-home-depot-sognq8 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 find-a-product. Access the skill through slash commands (e.g., /find-a-product) 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.8★★★★★71 reviews- ★★★★★Sophia Lopez· Dec 28, 2024
Solid pick for teams standardizing on skills: find-a-product is focused, and the summary matches what you get after install.
- ★★★★★Nia Abbas· Dec 16, 2024
Keeps context tight: find-a-product is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Nia Ndlovu· Dec 12, 2024
We added find-a-product from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Ren Park· Dec 12, 2024
I recommend find-a-product for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Isabella Abebe· Dec 12, 2024
Useful defaults in find-a-product — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Ren Gonzalez· Nov 19, 2024
I recommend find-a-product for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Nia Choi· Nov 7, 2024
find-a-product is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Yash Thakker· Nov 3, 2024
Useful defaults in find-a-product — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Maya Sanchez· Nov 3, 2024
find-a-product fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Nia Wang· Nov 3, 2024
Registry listing for find-a-product matched our evaluation — installs cleanly and behaves as described in the markdown.
showing 1-10 of 71