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.

$browse install homedepot.com/find-a-product-on-home-depot-sognq8
0 commentsdiscussion
summary

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.

skill.md
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 trying bb fetch variants — there's no header / param / path combo that defeats the challenge. The browser path with --verified --proxies is the only known cookieless-incompatible path that yields rendered HTML.
  • apionline.homedepot.com is 403 from datacenter IPs. Verified during iter-1 with bb 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.com and store.homedepot.com are TLS-cert-rotation / redirect traps. m.homedepot.com 502s with "TLS certificate verification failed" through Browserbase Fetch even with --allow-redirects; store.homedepot.com 500s. Stick to www.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 search over-indexes auxiliary pages. Without the /p path-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 (no reviews or questions keyword) and itemId must match [0-9]{9,}.
  • bb search for 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 on homedepot.com. Always pin the domain explicitly.
  • Category browse uses an N-{taxonomy-id} token. URLs like /b/Tools-Power-Tools-Drills/Cordless/Brushless/N-5yc1vZc27fZ1z140i3Z1z17tnq encode a taxonomy intersection in the N- segment (chain of Z-delimited refinement codes). This is opaque but stable — if a caller wants "all Brushless Cordless Drills" rather than a single product, capture the N-... token from the search result and pass it through; don't try to reconstruct.
  • Search results include a publishedDate that 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 title for the keyword (hammer, impact) rather than assuming the top result is correct.
  • image field is sometimes absent. About 20% of search results omit image (typically older catalog entries). Don't rely on it being present; if needed, fall back to the image field 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 body contains id="sec-if-cpt-container" or class="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

How to use find-a-product on Cursor

AI-first code editor with Composer

1

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
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$browse install homedepot.com/find-a-product-on-home-depot-sognq8

The skills CLI fetches find-a-product from GitHub repository homedepot.com/find-a-product-on-home-depot-sognq8 and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/find-a-product

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

GET_STARTED →

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. 1.Install skill using provided installation command
  2. 2.Test with simple use case relevant to your work
  3. 3.Evaluate output quality and relevance
  4. 4.Iterate on prompts to improve results
  5. 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

  1. 1Familiarize yourself with skill capabilities and limitations
  2. 2Start with low-risk, non-critical tasks
  3. 3Progress to more complex and valuable use cases
  4. 4Build expertise through regular use and experimentation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.871 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

1 / 8