Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Intelligent data processing can handle tens of thousands of LLM calls, or thousa
| [**Merge**](https://everyrow.io/docs/reference/MERGE) | Join tables when keys don't match | 5k rows |
| [**Research**](https://everyrow.io/docs/reference/RESEARCH) | Web research on every row | 10k rows |

See the full [API reference](https://everyrow.io/docs/api), [guides](https://everyrow.io/docs/guides), and [notebooks](https://everyrow.io/docs/notebooks), (for example, see our [notebook](https://everyrow.io/docs/notebooks/llm-web-research-agents-at-scale) running a `Research` task on 10k rows, running agents that used 120k LLM calls.)
See the full [API reference](https://everyrow.io/docs/api), [guides](https://everyrow.io/docs/guides), and [case studies](https://everyrow.io/docs/case-studies), (for example, see our [case study](https://everyrow.io/docs/case-studies/llm-web-research-agents-at-scale) running a `Research` task on 10k rows, running agents that used 120k LLM calls.)

---

Expand Down Expand Up @@ -92,7 +92,7 @@ result = await agent_map(
print(result.data.head())
```

See the API [docs](https://everyrow.io/docs/reference/RESEARCH.md), a case study of [labeling data](https://everyrow.io/docs/classify-dataframe-rows-llm) or a notebook for [researching government data](https://everyrow.io/docs/notebooks/research-and-rank-permit-times) at scale.
See the API [docs](https://everyrow.io/docs/reference/RESEARCH.md), a case study of [labeling data](https://everyrow.io/docs/classify-dataframe-rows-llm) or a case study for [researching government data](https://everyrow.io/docs/case-studies/research-and-rank-permit-times) at scale.


## Sessions
Expand Down
2 changes: 1 addition & 1 deletion docs-site/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ docs-site/src/notebooks/*.html
Next.js build (reads HTML, wraps in DocsLayout)
docs-site/out/notebooks/*.html (full pages with sidebar)
docs-site/out/case-studies/*.html (full pages with sidebar)
```

The `src/notebooks/` directory is gitignored since files are generated at build time.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export async function generateMetadata({ params }: PageProps) {
return { title: "Not Found" };
}

const canonicalUrl = `https://everyrow.io/docs/notebooks/${slug}`;
const canonicalUrl = `https://everyrow.io/docs/case-studies/${slug}`;
const description = notebook.description || `Case study: ${notebook.title}`;

return {
Comment on lines 20 to 26

This comment was marked as outdated.

Expand Down
2 changes: 1 addition & 1 deletion docs-site/src/app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const SECTION_DESCRIPTIONS: Record<string, string> = {
const SECTION_LINKS: Record<string, string> = {
"API Reference": "/api",
Guides: "/guides",
"Case Studies": "/notebooks",
"Case Studies": "/case-studies",
};

function SectionCard({ section }: { section: NavSection }) {
Expand Down
4 changes: 2 additions & 2 deletions docs-site/src/app/sitemap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
const docSlugs = getDocSlugs();
const notebookSlugs = getNotebookSlugs();

const hubSlugs = new Set(["guides", "notebooks", "api"]);
const hubSlugs = new Set(["guides", "case-studies", "api"]);

const docPages = docSlugs.map((slug) => ({
url: `${baseUrl}/${slug}`,
Expand All @@ -20,7 +20,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
}));

const notebookPages = notebookSlugs.map((slug) => ({
url: `${baseUrl}/notebooks/${slug}`,
url: `${baseUrl}/case-studies/${slug}`,
lastModified: new Date(),
changeFrequency: "monthly" as const,
priority: 0.7,
Expand Down
4 changes: 2 additions & 2 deletions docs-site/src/utils/docs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,9 @@ export function getNavigation(): NavSection[] {
},
{
title: "Case Studies",
href: "/notebooks",
href: "/case-studies",
items: notebooks.map((n) => ({
slug: `notebooks/${n.slug}`,
slug: `case-studies/${n.slug}`,
title: n.title,
})),
},
Expand Down
10 changes: 5 additions & 5 deletions docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ result = await screen(task=..., input=df, response_model=Model)

[Full reference →](/docs/reference/SCREEN)
Guides: [Filter a DataFrame with LLMs](/docs/filter-dataframe-with-llm)
Notebooks: [LLM Screening at Scale](/docs/notebooks/llm-powered-screening-at-scale), [Screen Stocks by Investment Thesis](/docs/notebooks/screen-stocks-by-investment-thesis)
Case Studies: [LLM Screening at Scale](/docs/case-studies/llm-powered-screening-at-scale), [Screen Stocks by Investment Thesis](/docs/case-studies/screen-stocks-by-investment-thesis)

## rank

Expand All @@ -29,7 +29,7 @@ result = await rank(task=..., input=df, field_name="score")

[Full reference →](/docs/reference/RANK)
Guides: [Sort a Dataset Using Web Data](/docs/rank-by-external-metric)
Notebooks: [Score Leads from Fragmented Data](/docs/notebooks/score-leads-from-fragmented-data), [Score Leads Without CRM History](/docs/notebooks/score-leads-without-crm-history)
Case Studies: [Score Leads from Fragmented Data](/docs/case-studies/score-leads-from-fragmented-data), [Score Leads Without CRM History](/docs/case-studies/score-leads-without-crm-history)

## dedupe

Expand All @@ -41,7 +41,7 @@ result = await dedupe(input=df, equivalence_relation="...")

[Full reference →](/docs/reference/DEDUPE)
Guides: [Remove Duplicates from ML Training Data](/docs/deduplicate-training-data-ml), [Resolve Duplicate Entities](/docs/resolve-entities-python)
Notebooks: [Dedupe CRM Company Records](/docs/notebooks/dedupe-crm-company-records)
Case Studies: [Dedupe CRM Company Records](/docs/case-studies/dedupe-crm-company-records)

## merge

Expand All @@ -53,7 +53,7 @@ result = await merge(task=..., left_table=df1, right_table=df2)

[Full reference →](/docs/reference/MERGE)
Guides: [Fuzzy Join Without Matching Keys](/docs/fuzzy-join-without-keys)
Notebooks: [LLM Merging at Scale](/docs/notebooks/llm-powered-merging-at-scale), [Match Software Vendors to Requirements](/docs/notebooks/match-software-vendors-to-requirements)
Case Studies: [LLM Merging at Scale](/docs/case-studies/llm-powered-merging-at-scale), [Match Software Vendors to Requirements](/docs/case-studies/match-software-vendors-to-requirements)

## agent_map / single_agent

Expand All @@ -65,4 +65,4 @@ result = await agent_map(task=..., input=df)

[Full reference →](/docs/reference/RESEARCH)
Guides: [Add a Column with Web Lookup](/docs/add-column-web-lookup), [Classify and Label Data with an LLM](/docs/classify-dataframe-rows-llm)
Notebooks: [LLM Web Research Agents at Scale](/docs/notebooks/llm-web-research-agents-at-scale)
Case Studies: [LLM Web Research Agents at Scale](/docs/case-studies/llm-web-research-agents-at-scale)
40 changes: 40 additions & 0 deletions docs/case-studies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: Case Studies
description: Runnable case studies demonstrating everyrow operations on real datasets — screen, rank, dedupe, merge, and research with LLM-powered agents.
---
Comment on lines +1 to +4

This comment was marked as outdated.


# Case Studies

Runnable case studies with real datasets. Each case study demonstrates an everyrow operation end-to-end with output you can inspect.

## Screen

- [LLM-Powered Screening at Scale](/docs/case-studies/llm-powered-screening-at-scale)
- [Screen Stocks by Investment Thesis](/docs/case-studies/screen-stocks-by-investment-thesis)
- [Screen Stocks by Margin Sensitivity](/docs/case-studies/screen-stocks-by-margin-sensitivity)
- [Screen Job Postings by Criteria](/docs/case-studies/screen-job-postings-by-criteria)

## Rank

- [Score Leads from Fragmented Data](/docs/case-studies/score-leads-from-fragmented-data)
- [Score Leads Without CRM History](/docs/case-studies/score-leads-without-crm-history)
- [Research and Rank Permit Times](/docs/case-studies/research-and-rank-permit-times)

## Dedupe

- [Dedupe CRM Company Records](/docs/case-studies/dedupe-crm-company-records)

## Merge

- [LLM-Powered Merging at Scale](/docs/case-studies/llm-powered-merging-at-scale)
- [Match Software Vendors to Requirements](/docs/case-studies/match-software-vendors-to-requirements)
- [Merge Contacts with Company Data](/docs/case-studies/merge-contacts-with-company-data)
- [Merge Overlapping Contact Lists](/docs/case-studies/merge-overlapping-contact-lists)

## Research

- [LLM Web Research Agents at Scale](/docs/case-studies/llm-web-research-agents-at-scale)

## Multi-Method

- [Multi-Stage Lead Qualification](/docs/case-studies/multi-stage-lead-qualification)
4 changes: 2 additions & 2 deletions docs/fuzzy-join-without-keys.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pip install everyrow
export EVERYROW_API_KEY=your_key_here # Get one at everyrow.io
```

We'll use two datasets of S&P 500 companies from different sources. Download [company_info.csv](https://media.githubusercontent.com/media/futuresearch/everyrow-sdk/refs/heads/main/docs/data/company_info.csv) and [valuations.csv](https://media.githubusercontent.com/media/futuresearch/everyrow-sdk/refs/heads/main/docs/data/valuations.csv), or run the [full notebook](notebooks/match-software-vendors-to-requirements).
We'll use two datasets of S&P 500 companies from different sources. Download [company_info.csv](https://media.githubusercontent.com/media/futuresearch/everyrow-sdk/refs/heads/main/docs/data/company_info.csv) and [valuations.csv](https://media.githubusercontent.com/media/futuresearch/everyrow-sdk/refs/heads/main/docs/data/valuations.csv), or run the [full notebook](case-studies/match-software-vendors-to-requirements).

```python
import asyncio
Expand Down Expand Up @@ -71,4 +71,4 @@ This approach works well when your tables represent the same entities but use di

---

See the full analysis with multiple experiments in the [merge tutorial notebook](notebooks/match-software-vendors-to-requirements).
See the full analysis with multiple experiments in the [merge tutorial notebook](case-studies/match-software-vendors-to-requirements).
2 changes: 1 addition & 1 deletion docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,5 +136,5 @@ df = await fetch_task_data("12345678-1234-1234-1234-123456789abc")
## See Also

- [Guides](/filter-dataframe-with-llm): step-by-step tutorials
- [Case Studies](/notebooks/basic-usage): worked examples
- [Case Studies](/case-studies/basic-usage): worked examples
- [Skills vs MCP](/skills-vs-mcp): integration options
40 changes: 0 additions & 40 deletions docs/notebooks.md

This file was deleted.

4 changes: 2 additions & 2 deletions docs/reference/DEDUPE.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,8 @@ Output (selected rows only):
- [Remove Duplicates from ML Training Data](/docs/deduplicate-training-data-ml)
- [Resolve Duplicate Entities](/docs/resolve-entities-python)

### Notebooks
- [Dedupe CRM Company Records](/docs/notebooks/dedupe-crm-company-records)
### Case Studies
- [Dedupe CRM Company Records](/docs/case-studies/dedupe-crm-company-records)

### Blog posts
- [CRM Deduplication](https://futuresearch.ai/crm-deduplication/)
Expand Down
10 changes: 5 additions & 5 deletions docs/reference/MERGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,11 @@ A DataFrame with all left table columns plus matched right table columns. Rows t
### Guides
- [Fuzzy Join Without Matching Keys](/docs/fuzzy-join-without-keys)

### Notebooks
- [LLM Merging at Scale](/docs/notebooks/llm-powered-merging-at-scale)
- [Match Software Vendors to Requirements](/docs/notebooks/match-software-vendors-to-requirements)
- [Merge Contacts with Company Data](/docs/notebooks/merge-contacts-with-company-data)
- [Merge Overlapping Contact Lists](/docs/notebooks/merge-overlapping-contact-lists)
### Case Studies
- [LLM Merging at Scale](/docs/case-studies/llm-powered-merging-at-scale)
- [Match Software Vendors to Requirements](/docs/case-studies/match-software-vendors-to-requirements)
- [Merge Contacts with Company Data](/docs/case-studies/merge-contacts-with-company-data)
- [Merge Overlapping Contact Lists](/docs/case-studies/merge-overlapping-contact-lists)

### Blog posts
- [Software Supplier Matching](https://futuresearch.ai/software-supplier-matching/)
Expand Down
8 changes: 4 additions & 4 deletions docs/reference/RANK.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,10 @@ When specifying a response model, make sure that it contains `field_name`. Other
### Guides
- [Sort a Dataset Using Web Data](/docs/rank-by-external-metric)

### Notebooks
- [Score Leads from Fragmented Data](/docs/notebooks/score-leads-from-fragmented-data)
- [Score Leads Without CRM History](/docs/notebooks/score-leads-without-crm-history)
- [Research and Rank Permit Times](/docs/notebooks/research-and-rank-permit-times)
### Case Studies
- [Score Leads from Fragmented Data](/docs/case-studies/score-leads-from-fragmented-data)
- [Score Leads Without CRM History](/docs/case-studies/score-leads-without-crm-history)
- [Research and Rank Permit Times](/docs/case-studies/research-and-rank-permit-times)

### Blog posts
- [Ranking by Data Fragmentation Risk](https://futuresearch.ai/lead-scoring-data-fragmentation/)
Expand Down
4 changes: 2 additions & 2 deletions docs/reference/RESEARCH.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,5 +137,5 @@ companies = await single_agent(
- [Add a Column with Web Lookup](/docs/add-column-web-lookup)
- [Classify and Label Data with an LLM](/docs/classify-dataframe-rows-llm)

### Notebooks
- [LLM Web Research Agents at Scale](/docs/notebooks/llm-web-research-agents-at-scale)
### Case Studies
- [LLM Web Research Agents at Scale](/docs/case-studies/llm-web-research-agents-at-scale)
12 changes: 6 additions & 6 deletions docs/reference/SCREEN.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,12 @@ Compare: regex on "remote-friendly" job postings gets 68% precision.
### Guides
- [Filter a DataFrame with LLMs](/docs/filter-dataframe-with-llm)

### Notebooks
- [LLM Screening at Scale](/docs/notebooks/llm-powered-screening-at-scale)
- [Screen Job Postings by Criteria](/docs/notebooks/screen-job-postings-by-criteria)
- [Screen Stocks by Investment Thesis](/docs/notebooks/screen-stocks-by-investment-thesis)
- [Screen Stocks by Margin Sensitivity](/docs/notebooks/screen-stocks-by-margin-sensitivity)
- [Multi-Stage Lead Qualification](/docs/notebooks/multi-stage-lead-qualification)
### Case Studies
- [LLM Screening at Scale](/docs/case-studies/llm-powered-screening-at-scale)
- [Screen Job Postings by Criteria](/docs/case-studies/screen-job-postings-by-criteria)
- [Screen Stocks by Investment Thesis](/docs/case-studies/screen-stocks-by-investment-thesis)
- [Screen Stocks by Margin Sensitivity](/docs/case-studies/screen-stocks-by-margin-sensitivity)
- [Multi-Stage Lead Qualification](/docs/case-studies/multi-stage-lead-qualification)

### Blog posts
- [Thematic Stock Screen](https://futuresearch.ai/thematic-stock-screening/)
Expand Down
2 changes: 1 addition & 1 deletion docs/resolve-entities-python.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,4 @@ This approach handles cases that string similarity misses entirely. "AAPL" match

The equivalence relation is flexible. For matching people, you might write "Two entries are duplicates if they refer to the same person, accounting for name variations and nicknames." For products: "Two entries represent the same product if they're the same item sold under different names or SKUs."

See the [full notebook](notebooks/dedupe-crm-company-records) for additional examples including how to merge the clustered records into consolidated entries.
See the [full notebook](case-studies/dedupe-crm-company-records) for additional examples including how to merge the clustered records into consolidated entries.
2 changes: 1 addition & 1 deletion docs/skills-vs-mcp.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -89,4 +89,4 @@ They're the same product at different abstraction levels. The plugin ships both.
- [Installation Guide](/docs) - Full setup instructions
- [Progress Monitoring](/docs/progress-monitoring) - Status bar, stop guard, and session URLs
- [API Reference](/docs/reference/RESEARCH) - Detailed function documentation
- [Case Studies](/docs/notebooks/dedupe-crm-company-records) - Real-world examples
- [Case Studies](/docs/case-studies/dedupe-crm-company-records) - Real-world examples