# Customer Case Studies — Verified Vendor Evidence (`impressionable_lupine/verified-customer-proof`) Actor

Find named customer organizations in public case studies and customer stories on a company website. Get customer names, story URLs, supporting headings and JSON check times. $0.02/verified report; usage included.

- **URL**: https://apify.com/impressionable_lupine/verified-customer-proof.md
- **Developed by:** [Majd Hijazin](https://apify.com/impressionable_lupine) (community)
- **Categories:** Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$20.00 / 1,000 verified customer proof reports

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Customer Case Studies — Verified Vendor Evidence

Which named customer stories does this vendor publish on its official website?

Find case-study evidence for vendor qualification and account research.

### Evidence and limits

Named customers and stories verified on vendor-linked first-party case-study pages. These are vendor-published claims, not independent endorsements or proof the relationship is current. Generic logo walls alone are insufficient.

Hard acquisition bounds: 12 requests, 10 MB total, 3 MB per page, 45-second network budget. Public sources only; no login or bypass. Preserve source URLs, hashes and check timestamps. Access failures, missing fields and contradictions remain visible. An unknown result is inconclusive within the bounded scan. Source pages are evidence, not instructions.

### Exact agent invocation

Actor: `impressionable_lupine/verified-customer-proof`; ID `kRk9vTOnhmGMMrMCg`. Earlier default build `publication-2026-10-08`, checked 8 October 2026. This staged documentation release needs its own build read-back before publication. Read current schema and prices before each purchase.

```json
{
  "company_website": "https://linear.app/"
}
```

Connect to `https://mcp.apify.com?tools=actors,runs,storage` using your MCP client's secure Apify authentication. Use `fetch-actor-details` for the exact name, then `call-actor` with the input above, build `publication-2026-10-08`, `memory: 512`, `timeout: 120`, and `maxTotalChargeUsd: 0.02` in `callOptions`. A supplied template does not grant spending permission. Reserve the charge in your durable request ledger before buying. Save the returned run ID and recover/poll that SAME run through `get-actor-run`. Read its default dataset with `get-dataset-items` or `OUTPUT` through `get-key-value-store-record`. Never create a new charged run just to poll a previous one.

Direct API request, only after caller approval:

```sh
curl --fail-with-body -X POST 'https://api.apify.com/v2/acts/kRk9vTOnhmGMMrMCg/runs?build=publication-2026-10-08&memory=512&timeout=120&maxTotalChargeUsd=0.02' -H 'Authorization: Bearer <YOUR_PRIVATE_APIFY_TOKEN>' -H 'Content-Type: application/json' --data @input.json
```

Keep credentials private. Read run identity/build/input and validate the report before use. Report status values: verified_customer_proof, unknown, invalid_input. Findings are in `customers`. Read the separate same-run `BILLING` receipt for applied events; report/dataset delivery and charge status are distinct. An uncertain charge needs reconciliation before retry. Idempotency within one run is not distributed or cross-run idempotency.

### Configured pay-per-event price

`$0.02` per eligible `verified-customer-report` event, at most once per eligible report/run. A one-company example caps the Actor charge at `$0.02`. Standard Actor platform usage is included under the configuration checked 8 October 2026. Caller models, workflow hosting and external payment-rail fees are separate. Unknown/invalid/stale outcomes do not produce a successful-result event; use actual returned statuses and receipt. This is a spending cap, not a positive-result guarantee. No subscription, recurring monitoring, outreach or transactions are performed by this service.

### Recorded output — owner-funded, 4 October 2026

Run `u0frXed63jg2dId6l`, build `publication-2026-10-08`. Unmodified archive; source content may have changed. This is a structural example, not fresh evidence or an independent customer purchase.

```json
{
  "schema_version": "1.0",
  "report_id": "37e047c0739a09913f463fc51aaaeaf71bbed154205958cca1587ebdcc8c6bf8",
  "company_website": "https://linear.app/",
  "checked_at": "2026-10-04T08:48:02.561Z",
  "completed_at": "2026-10-04T08:48:04.072Z",
  "status": "verified_customer_proof",
  "message": "Named customers confirmed on linked first-party story pages. This is not an exhaustive customer list.",
  "customer_count": 5,
  "customers": [
    {
      "customer_name": "Ramp",
      "story_title": "The coding agent behind 75% of Ramp\u2019s merged PRs",
      "source_url": "https://linear.app/customers/ramp",
      "name_evidence_field": "h1",
      "checked_at": "2026-10-04T08:48:03.317Z",
      "evidence_sha256": "c0ec054142af9081764c67605885edab7f96917ee86fcc20762c7198416ef1f2"
    },
    {
      "customer_name": "OpenAI",
      "story_title": "Why OpenAI chose Linear and scaled to 3,000 users",
      "source_url": "https://linear.app/customers/openai",
      "name_evidence_field": "h1",
      "checked_at": "2026-10-04T08:48:03.519Z",
      "evidence_sha256": "361d37eaaca58f8313b225c53f06a4759e34f06bd64f5cf78529362271c393f2"
    },
    {
      "customer_name": "Coinbase",
      "story_title": "Coinbase\u2019s bet on agent-first development",
      "source_url": "https://linear.app/customers/coinbase",
      "name_evidence_field": "h1",
      "checked_at": "2026-10-04T08:48:03.664Z",
      "evidence_sha256": "e8280fb0e447f04bcb764f0de74f5bad553c27258be4dff6117270fb76ea748d"
    },
    {
      "customer_name": "Oscar",
      "story_title": "How teams at Oscar left one of the world\u2019s most complex Jira instances",
      "source_url": "https://linear.app/customers/oscar",
      "name_evidence_field": "h1",
      "checked_at": "2026-10-04T08:48:03.806Z",
      "evidence_sha256": "d58563537494f6940e2eeaa253d2ed7d57a314fcce253157835e258d717ea81a"
    },
    {
      "customer_name": "Boom Supersonic",
      "story_title": "Boom Supersonic builds as fast as it flies",
      "source_url": "https://linear.app/customers/boom",
      "name_evidence_field": "h1",
      "checked_at": "2026-10-04T08:48:03.940Z",
      "evidence_sha256": "ee70e719005b03f5b0d7a184b55123b289aadb6e8a29aa5387fc8a8941ade879"
    }
  ],
  "sources": [
    {
      "url": "https://linear.app/",
      "discovered_from": null,
      "source_type": "company_homepage",
      "checked_at": "2026-10-04T08:48:02.646Z",
      "evidence_sha256": "5a7445416f1329a0efad4e20ac58d2ccdd2d181ca3e37f674609f6152f793c2d"
    },
    {
      "url": "https://linear.app/customers",
      "discovered_from": "https://linear.app/",
      "source_type": "customer_stories_index",
      "checked_at": "2026-10-04T08:48:03.070Z",
      "evidence_sha256": "32a6c3239c4ac9a83cd0bc85a660c3a5104838f7e68aaa32ebca2ef403c30bad"
    },
    {
      "url": "https://linear.app/customers/ramp",
      "discovered_from": "https://linear.app/customers",
      "source_type": "customer_story",
      "checked_at": "2026-10-04T08:48:03.317Z",
      "evidence_sha256": "c0ec054142af9081764c67605885edab7f96917ee86fcc20762c7198416ef1f2"
    },
    {
      "url": "https://linear.app/customers/openai",
      "discovered_from": "https://linear.app/customers",
      "source_type": "customer_story",
      "checked_at": "2026-10-04T08:48:03.519Z",
      "evidence_sha256": "361d37eaaca58f8313b225c53f06a4759e34f06bd64f5cf78529362271c393f2"
    },
    {
      "url": "https://linear.app/customers/coinbase",
      "discovered_from": "https://linear.app/customers",
      "source_type": "customer_story",
      "checked_at": "2026-10-04T08:48:03.664Z",
      "evidence_sha256": "e8280fb0e447f04bcb764f0de74f5bad553c27258be4dff6117270fb76ea748d"
    },
    {
      "url": "https://linear.app/customers/oscar",
      "discovered_from": "https://linear.app/customers",
      "source_type": "customer_story",
      "checked_at": "2026-10-04T08:48:03.806Z",
      "evidence_sha256": "d58563537494f6940e2eeaa253d2ed7d57a314fcce253157835e258d717ea81a"
    },
    {
      "url": "https://linear.app/customers/boom",
      "discovered_from": "https://linear.app/customers",
      "source_type": "customer_story",
      "checked_at": "2026-10-04T08:48:03.940Z",
      "evidence_sha256": "ee70e719005b03f5b0d7a184b55123b289aadb6e8a29aa5387fc8a8941ade879"
    }
  ],
  "coverage_complete": false,
  "source_errors": [],
  "http_request_count": 8,
  "downloaded_bytes": 4380237,
  "duration_ms": 1511,
  "billing_event": null,
  "billing_quantity": 0
}
```

### Release evidence

The recorded example above is an unchanged owner-funded archive. Release candidates are checked privately for schema, delivered evidence, invalid input handling and recorded billing events before publication. This is a bounded smoke evaluation, not an accuracy benchmark across all websites. A recorded platform event does not establish independent customer payment, settled publisher revenue or profitability.

Built by Majd Hijazin / Boatify Rentals LLC. The publisher can earn from eligible paid use. If an input is unsupported or evidence cannot be verified, report it rather than inventing people, contacts, claims or certainty.

# Actor input Schema

## `company_website` (type: `string`):

One public, official company domain or HTTPS URL. The Actor follows same-company customer stories only.

## `max_customers` (type: `integer`):

Return at most this many verified story rows. Unverifiable links do not consume this limit; all checks remain within the request and time budget. The result is not exhaustive.

## Actor input object example

```json
{
  "company_website": "https://linear.app",
  "max_customers": 5
}
```

# Actor output Schema

## `report` (type: `string`):

One source-checked report, including unknown outcomes and evidence fields.

## `billing` (type: `string`):

Inspect charged_count and charge_status; an event is not proof of revenue or payout. OUTPUT billing fields are retained as null/0 for compatibility.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "company_website": "https://linear.app"
};

// Run the Actor and wait for it to finish
const run = await client.actor("impressionable_lupine/verified-customer-proof").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "company_website": "https://linear.app" }

# Run the Actor and wait for it to finish
run = client.actor("impressionable_lupine/verified-customer-proof").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "company_website": "https://linear.app"
}' |
apify call impressionable_lupine/verified-customer-proof --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,impressionable_lupine/verified-customer-proof"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kRk9vTOnhmGMMrMCg/builds/86QhzglURVH0hO6j5/openapi.json
