DEV Community

Cover image for Turn a missing website fingerprint into a review task rather than a removal claim
Tim Zinin
Tim Zinin

Posted on

Turn a missing website fingerprint into a review task rather than a removal claim

A script disappearing from one HTML response does not prove that a company removed the product. The page could be different, a consent system could suppress the tag, or the signature catalog could miss the implementation. Website technology comparison is more useful when it retains that uncertainty.

Tech Stack Change Detector fetches a bounded public page and compares observed catalog signatures with an optional supplied baseline. It is stateless: the baseline comes from your input rather than an automatically remembered previous run. Your surrounding system therefore owns the comparison history.

Supply the baseline you actually mean

This installed public example requests a current observation and a comparison for the same domain. They are different requests because one includes WordPress as previous evidence. The example does not assert that the site currently uses or has removed WordPress.

{
  "items": [
    "gymshark.com",
    "gymshark.com|WordPress"
  ]
}
Enter fullscreen mode Exit fullscreen mode

Save the baseline's capture time, page URL and collection method outside the pipe-delimited input. A list copied from an unrelated detection service may cover different pages and signatures. Without that context, the resulting added and removed compatibility fields can be mistaken for real installation events.

Preserve evidence type instead of raw page content

The installed catalog can recognize public HTML patterns, final-URL patterns, response-header names and site-scoped signatures. Evidence rows identify the technology, category and matching evidence types. Raw HTML and header values are not emitted as evidence fields.

That is useful for a review queue: an analyst can see whether a claim came from a header or a page signature. It is still bounded evidence from the requested page. The catalog is curated and not exhaustive, and subpages are not scanned as a complete website inventory. Retain those gaps in any downstream technology profile.

Interpret additions and non-observations conservatively

Current-only names are candidate additions. Baseline-only names are candidate non-observations. Neither establishes an installation or removal date. Keep the exact comparison status, confidence reasons and recommended action rather than flattening the row into a Boolean migration trigger.

A successful response with no catalog match is also different from a fetch failure. The first is a bounded negative observation; the second supplies no usable page evidence. If an operations dashboard combines them into one empty list, the next comparison can generate artificial changes caused entirely by collection failures.

Use a review gate before commercial routing

The Actor includes stable IDs, timestamps, coverage and failure information. Keep those fields with the proposed change in your CRM or research table. A candidate Shopify or WordPress change can justify opening the cited page, but it does not establish budget, buying intent or permission to contact anyone.

For a local parser fixture, use a clearly synthetic HTML signature and a known response-header name, then verify the retained evidence types. Separately validate baseline ordering and case normalization. These checks do not test the remote website or production fetch transport. Before treating a later authorized platform result as a real migration signal, compare the same URL and scope, inspect its gaps, and confirm the change against another suitable source or manual page review. The output then becomes a traceable investigation task rather than a definitive claim unsupported by one response.

Price and verification scope

FREE-tier event prices read on 24 October 2026 are $0.005 for apify-actor-start and $0.01 for result-found. Start-event count can depend on allocated memory; other account tiers have their own rates. Check the listing's current billable unit and the platform's run spending limit before executing an example. Input row or result caps are separate from Max total charge. A free diagnostic does not necessarily remove the platform start charge.

This article is pinned to public latest build 0.2.1 (vVMauRfR9rJmzCCJ2) at the recorded read time. Source, input and pricing were read from Apify; no new cloud build or run was started. The supplied example and any synthetic local checks do not establish current source facts, cloud delivery or customer outcomes.

Inspect the Actor's current contract and pricing.

AI-assisted writing. Source contracts and verification limits are documented above.

Top comments (0)