Docs

Everything the product does, in order.

One page. Read it top to bottom in about five minutes, or jump to the section you need. There is no separate help centre.

1. Start a run

Sign in and choose New run. Paste websites, one per line, up to 50 per run. Assay normalises each line to a domain and lists anything that is not a website instead of dropping it silently.

2. Describe who fits

Write, in plain words, who you want. At least 20 characters. Name the signals that matter: a role being hired, a pricing model, a size band, a market. Three presets are offered as a starting point. There are no filters to configure; the description is the filter.

3. The quote

Before anything is spent, the third step shows the count, the pages to be read, an estimated cost and an estimated time. Both estimates are drawn with a “≈” and come from the last real runs: about $0.05 and 20 seconds a company. The measured cost is written per company as the run goes.

4. While it runs

Assay reads one company per request, so nothing times out and progress is saved between requests. Close the tab and reopen the run: it picks itself up. If a request fails it retries with backoff, up to five times, inside a spend ceiling of $5 a run and a wall clock ceiling of 25 minutes. Whatever stops a run, the screen says what stopped it, how far it got and what it cost.

5. Reading a receipt

Open any company. Each field shows a value, the sentence the value was read from, and the page that sentence is on. The sentence was searched for in the pages Assay actually fetched, after folding quotes, dashes, spacing and case. If it was found, the field is marked receipt checked. If it was not, the field is marked no receipt and is kept, not hidden.

a receiptone field, opened
{
  "field": "Hiring signal",
  "value": "2 SDR roles open",
  "quote": "We are hiring two Sales Development Representatives",
  "source_url": acme-analytics.com/careers,
  "verified": true
}

6. Score and verdict

Each company gets a score from 0 to 100 and a verdict: strong, possible or no. A score above 44 needs at least one verified quote behind it; with none, the score is pulled to 40 and the verdict set to no. A company whose website could not be read gets no score at all and is marked unreadable. It does not count against your cap.

7. Export and share

Export CSV writes every company and every field, with three extra columns per field: the quote, the source url and the verified flag. Share makes the run public at a read-only link. Anyone with the link sees every receipt; no account is needed. Turn sharing off and the link returns 404 at once.

8. Webhook out

Send the rows that passed to Make, n8n, Smartlead or anything else that accepts JSON over https. Nothing is stored; you pass the url each time. Private and local addresses are refused before anything is sent.

webhookPOST
POST /api/runs/<run id>/push
{
  "webhook_url": "https://hook.make.com/...",
  "min_score": 70,
  "verified_only": true
}

9. Re-audit

A receipt is a claim about a page on a day, and pages change. From any finished run: Re-check applies today’s Receipt Rule to the stored text, free. Read again fetches the pages today and checks the stored quotes against them, about $0.0025 a company. A quote that is no longer on the page is marked expired, and a company left with no verified quote flips to unproven.

10. Plans and caps

Each plan reads a set number of companies per calendar month, UTC. The cap is checked when a run starts and again before every company, so a run can never read past it. At the cap the run stops, says so, and the rest stays queued for next month. Your usage is on the billing page. Plans and prices are on the pricing page.

11. What it does not do

  • It does not send email. Keep Smartlead or Instantly; Assay hands the row to them.
  • It does not find people. No personal emails, no direct dials, no scraped profiles.
  • It is not faster than a lookup. Reading three pages and thinking about them takes about 20 seconds a company.