Inspiration

Marketing copy is often generated faster than the evidence behind it can be checked. A claim can sound plausible, contain a real number, and still quietly add a qualifier that the source never supported.

GroundPitch was built around a simple rule: marketing copy cannot outrun its receipts.

The aim was not to build another text generator, but a control that makes unsupported claims visible before they reach customers.

What it does

GroundPitch takes product or technical evidence and a set of candidate marketing claims, then grounds each claim against the source material.

Nutrient DWS provides the primary evidence boundary by extracting structured document content and page-level text. Claims that fail that source-evidence gate are rejected and cannot be rescued by web search.

For claims whose truth may depend on current public or market context, GroundPitch can then use SerpApi to perform a live web check. Those results are treated as context rather than authority: they can hold or downgrade a claim, but they cannot turn unsupported source copy into an admitted claim.

Where live context is ambiguous or unavailable, the claim is held for explicit human review rather than silently passed through.

Every run produces an audit ledger containing source and API response hashes, search metadata, evidence receipts, skipped scans, and final dispositions.

How we built it

GroundPitch is a Python/Streamlit application with two deliberately separate evidence boundaries.

The Nutrient DWS integration extracts JSON content, structured text, tables and key-value pairs from the uploaded evidence. A deterministic claim-gating layer scores the relationship between each claim and the extracted source evidence and detects unsupported numbers, absolutes and superlative language.

Eligible claims can then enter the SerpApi live-context lane. Search results are normalised and filtered for subject relevance before they can influence the decision. Live-context decisions remain explicitly human-controlled.

The application records SHA-256 receipts for the source and returned API payloads so that the evidence chain is inspectable after the run.

Challenges we ran into

The hardest part was not making the API calls. It was defining what the calls were allowed to mean.

During live testing we found several failure modes that would have been easy to miss in a purely demonstrative build: a no-result search could be mistaken for an API failure; inferred product names could be distorted by document extraction; and apparently relevant search results could actually belong to a similarly named product.

Those cases led us to tighten the evidence boundaries and subject-relevance controls rather than treating a successful API response as evidence in itself.

Accomplishments that we're proud of

We are proud that GroundPitch does not simply produce a confidence score and call it done.

It visibly distinguishes ADMIT, REVIEW, REJECT and HOLD_LIVE_CONTEXT, shows the underlying source receipts, records when SerpApi was deliberately not called, and requires human clearance where live context remains unresolved.

The live system has been exercised against both Nutrient DWS and SerpApi, with the resulting evidence and decision trail captured in an audit ledger.

What we learned

The important lesson was that evidence provenance and evidence authority are different things.

A live web search can provide useful current context without becoming proof. Likewise, a document extraction API can establish what a source says without establishing that every marketing formulation derived from it is justified.

The system became stronger when we treated those boundaries as explicit controls rather than assuming that better search or better scoring would solve the problem.

What's next for GroundPitch

The immediate goal is to make the evidence chain robust enough for real marketing and compliance workflows, with stronger entity resolution, richer source citations and more formal review policies.

Longer term, GroundPitch could sit between AI-generated copy and publication, providing a reviewable evidence boundary before claims are released.

Built With

  • nutrient-dws-api
  • python
  • serpapi
  • streamlit
Share this project:

Updates