# Public Case Study Depth Agent (`jacksu/public-case-study-depth-agent`) Actor

Analyze one public case study, customer story, or success story page for customer, industry, challenge, solution, product, implementation, quantified results, quotes, risks, evidence, and change hashes.

- **URL**: https://apify.com/jacksu/public-case-study-depth-agent.md
- **Developed by:** [jack su](https://apify.com/jacksu) (community)
- **Categories:** Marketing, Business, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Public Case Study Depth Agent

Extract structured evidence from one public case study, customer story, success story, or customer spotlight page: customer hints, industry, segment, challenge, solution, product mentions, implementation details, quantified result metrics, quotes, stakeholders, timeline hints, before/after evidence, risks, evidence URLs, and stable change hashes.

This Actor is built for AI agents, sales enablement, partnerships, customer marketing, competitive research, vendor evaluation, and GTM teams that need to understand what a single public customer story actually proves without crawling a full website.

### What It Returns

- Case study title and type, customer name hints, industry hints, company size and region hints.
- Challenge, solution, implementation, product mention, before/after, and timeline evidence.
- Quantified result claims such as percentages, time saved, cost reduction, speed increases, revenue impact, or ROI.
- Customer quotes, stakeholder/title hints, related case study links, optional focus-term matches, evidence snippets, evidence URLs, and a stable `caseStudyHash`.
- Risk labels and missing fields when the page lacks named customer, challenge, solution, metrics, or quote evidence.

### Pricing Behavior

The Actor uses pay-per-event pricing and only charges the useful result event when it finds useful public case study depth evidence.

Paid event:

- `useful-case-study-depth-result`

It does not charge the useful event for:

- invalid or private-network URLs;
- failed fetches;
- customer listing pages with no visible case-study narrative;
- lead magnets, PDFs, press pages, or generic pages without useful case-study depth signals;
- `focusTerms` misses;
- unchanged records when you pass a previous `caseStudyHash`.

`apify-default-dataset-item` is intentionally not used.

### Scope And Safety

- Public HTTP/HTTPS pages only.
- Private-network hosts, credentials, query strings, fragments, path parameters, and token-like account paths are rejected.
- JavaScript is not executed.
- Forms are not submitted.
- PDF files, gated downloads, lead magnet assets, customer directory pages, related case links, images, and external assets are not fetched.
- The Actor does not discover case studies from a customer page, scrape contacts, enrich companies, identify emails or phone numbers, or build CRM profiles.
- Output is evidence-based and should be reviewed before sales enablement, competitive research, customer marketing, or vendor evaluation.

### Example Input

```json
{
  "caseStudyPageUrls": [
    "https://www.atlassian.com/customers/canva"
  ],
  "focusTerms": [
    "Canva"
  ],
  "requestTimeoutSecs": 20
}
```

### Best Use Cases

- Turn one public case study into AI-ready evidence for account research.
- Compare case study quality across vendors without reading each page manually.
- Extract result metrics and quotes for sales enablement or competitive briefs.
- Monitor case study pages without paying for unchanged results.

# Actor input Schema

## `caseStudyPageUrls` (type: `array`):

Public HTTP/HTTPS case study, customer story, success story, or customer spotlight page URLs. Query parameters, fragments, credentials, path params, private-network hosts, and token-like account paths are rejected.

## `focusTerms` (type: `array`):

Optional customer names, industries, outcomes, products, or buyer keywords that must appear in visible public evidence before the useful result event is charged.

## `previousCaseStudyRecords` (type: `array`):

Optional previous records from this Actor. If the stable caseStudyHash is unchanged for the same URL, the result is written without charging the useful event.

## `requestTimeoutSecs` (type: `integer`):

Maximum time in seconds to wait for the public page response.

## Actor input object example

```json
{
  "caseStudyPageUrls": [
    "https://www.atlassian.com/customers/canva"
  ],
  "focusTerms": [],
  "previousCaseStudyRecords": [],
  "requestTimeoutSecs": 20
}
```

# Actor output Schema

## `datasetId` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("jacksu/public-case-study-depth-agent").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("jacksu/public-case-study-depth-agent").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 '{}' |
apify call jacksu/public-case-study-depth-agent --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jacksu/public-case-study-depth-agent"
        }
    }
}

```

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/db7odVFOmSTf3KP5H/builds/XUOs25vujIeXBN5X1/openapi.json
