# There's An AI For That Scraper - AI Tools + Maker Emails (`alexdany/ai-tools-launch-radar`) Actor

A fresh, structured feed of trending / newly-launched AI tools with maker-contact enrichment. Source #1: TheresAnAIForThat (Cloudflare-protected), scraped with a real browser + residential proxies.

- **URL**: https://apify.com/alexdany/ai-tools-launch-radar.md
- **Developed by:** [Alex](https://apify.com/alexdany) (community)
- **Categories:** AI, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

## AI Tools Launch Radar

**A fresh feed of the AI tools that are trending right now, with the maker's email attached.**

Every day new AI tools launch and climb the charts. This Actor turns that stream into clean, structured data you can actually use: a ranked list, full tool details, and, when you want it, the **maker's contact email and social links** for outreach.

Source #1 is **TheresAnAIForThat (TAAFT)**, which sits behind a **Cloudflare managed challenge**. A normal HTTP scraper just gets a `403 Just a moment` page. This Actor runs a **real Chromium browser with residential proxies and browser fingerprinting**, so it returns the actual data instead of a challenge screen.

***

### Who buys this

- **Agencies and dev-tool vendors** building a lead list of AI-tool makers to pitch.
- **AI newsletter and directory creators** who need a fresh, deduped feed every day.
- **Investors and scouts** watching the AI-tool launch pipeline.
- **SEO / GEO researchers** tracking which tools are rising in a category.

***

### What you get

Three tiers, one Actor.

#### 1. `list` mode — the ranking, fast and cheap

`rank`, `name`, `slug`, `toolUrl`, `task`, `website`, `period`.

#### 2. `detail` mode — the full record

Everything in list, plus `description`, `primaryCategory`, `categoryPath`, `tags`, `image`, `rating`, `reviews`, `launchDate`.

#### 3. `enrichContacts` — the lead layer

For each tool, visits the maker's website and adds `emails` and `socialLinks`. This is the outreach-ready data.

#### Real sample output (`detail` + `enrichContacts`)

| Tool | Category | Website | Maker email | Rating |
| --- | --- | --- | --- | --- |
| Criticly | Productivity | getcriticly.app | leecy@getcriticly.app | 5.0 |
| Glean | Personal assistant | glean.com | hello@glean.com | 5.0 |
| ACME.BOT | SEO content | acme.bot | human@acme.bot | 4.4 |
| remio | Knowledge bases | remio.ai | info@remio.ai | 4.1 |
| TeachCatalystAI | Teaching | teachcatalystai.com | yusufullaah@gmail.com | 3.0 |

```json
{
  "rank": 7,
  "name": "StockNewsAI",
  "slug": "stocknewsai",
  "toolUrl": "https://theresanaiforthat.com/ai/stocknewsai/",
  "task": "Stock market news",
  "website": "https://www.babbl.dev/",
  "description": "AI-powered stock news and sentiment...",
  "primaryCategory": "Stock market news",
  "categoryPath": ["Personal", "Wealth", "Stocks", "Stock market news"],
  "tags": ["API", "Finance", "Information", "Invest", "Stocks", "Summary"],
  "image": "https://media.theresanaiforthat.com/stocknewsai.png",
  "rating": 4.3,
  "reviews": 12,
  "launchDate": "February 22, 2025",
  "emails": ["support@babbl-labs.com"],
  "socialLinks": {
    "twitter": "https://twitter.com/babbllabs",
    "linkedin": "https://linkedin.com/company/babbl-labs"
  },
  "period": "month",
  "scrapedAt": "2026-08-22T08:35:10.547Z",
  "source": "theresanaiforthat.com"
}
```

***

### Input

| Option | Type | Default | Notes |
| --- | --- | --- | --- |
| `period` | `day` | `week` | `month` | `month` | Which trending window to pull. |
| `mode` | `list` | `detail` | `list` | `detail` returns the full record. |
| `enrichContacts` | boolean | `false` | Add the maker's email + socials. Forces `detail`. |
| `maxItems` | integer | `50` | The trending page yields about 50 tools per period. |
| `categoryUrls` | array of URLs | `[]` | Advanced: scrape any TAAFT task/category list page instead of trending. |
| `proxyConfiguration` | proxy object | `RESIDENTIAL` | Keep residential. Datacenter IPs usually fail the Cloudflare challenge. |

#### Example input

```json
{
  "period": "week",
  "mode": "detail",
  "enrichContacts": true,
  "maxItems": 50,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

***

### Pricing

Pay only for what you pull (pay-per-event).

| Event | Price | When |
| --- | --- | --- |
| `tool` | **$0.003** each | Per tool returned (list or detail). |
| `contact` | **$0.01** each | Per maker email found (only with `enrichContacts`). |
| Minimum per run | **$1.00** | Covers a small run. |

Example: a `detail` run of 300 tools with contacts, where 200 makers expose an email, costs about `300 × $0.003 + 200 × $0.01 = $2.90`.

***

### Tips

- Run it on a **schedule** to keep a live feed of what is trending, with fresh maker leads.
- Start in `list` mode to scan, then re-run the winners in `detail` + `enrichContacts`.
- Use `categoryUrls` to track one niche instead of the global trending list.
- Export to **JSON, CSV, Excel, or Google Sheets** from the run page, or pull via the Apify API.

### Notes and limits

- Only public data is collected. No login, no private data.
- Email discovery depends on the maker publishing a contact address; large companies often hide it, so the contact hit rate varies by niche.
- The trending list is roughly the top 50 per period; use `categoryUrls` to go wider.
- If a run returns nothing, a Cloudflare session was blocked. Keep residential proxies on; the Actor already retries with fresh sessions.

# Actor input Schema

## `period` (type: `string`):

Which trending window to scrape from theresanaiforthat.com/trending/<period>/.

## `mode` (type: `string`):

list = fast & cheap (name, slug, url, task, website when present). detail = premium (also visits each tool page for description, category path, tags, rating, reviews, launch date, image).

## `enrichContacts` (type: `boolean`):

Premium lead-gen layer: visit each tool's website to find the maker's email and social links. Forces detail mode. Charged per contact found.

## `maxItems` (type: `integer`):

Maximum number of tools to return. The trending page yields about 50 per period.

## `categoryUrls` (type: `array`):

Advanced: instead of a trending page, scrape one or more TAAFT list pages (e.g. a task or category URL). Leave empty to use the trending period above.

## `proxyConfiguration` (type: `object`):

Residential proxies are strongly recommended: TAAFT is behind a Cloudflare managed challenge that datacenter IPs usually fail.

## Actor input object example

```json
{
  "period": "month",
  "mode": "list",
  "enrichContacts": false,
  "maxItems": 50,
  "categoryUrls": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `tools` (type: `string`):

The dataset of scraped AI tools (JSON items): name, category, website, rating, and maker contacts.

## `preview` (type: `string`):

Open the results table in Apify Console.

# 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("alexdany/ai-tools-launch-radar").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("alexdany/ai-tools-launch-radar").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 alexdany/ai-tools-launch-radar --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alexdany/ai-tools-launch-radar"
        }
    }
}

```

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/kTLXn4JltJ9qcdKzR/builds/qgIx8qoWz924lY4Vp/openapi.json
