# Apify selective gap-fill packet

Generated: 2026-05-20T16:41:07.121Z

Top-3 scraping budget raised for hundreds of items. Run capped first-batch targets, inspect the dataset, then decide whether to scale toward 1000 items per product/source.

## Spend guardrails
- DataForSEO Stage 1 first; Apify Stage 2 only for named gaps.
- One actor lane, first 3 brands, max 100 requests per brand, max depth 1, then stop for dataset inspection.
- Do not run all 7 competitor domains in one go.
- Save raw datasets under `data/sources/apify/raw/` and inspect before any normalization/scaling.

## First batch only if needed
- Feel: https://wearefeel.com/ (100 requests max, depth 1)
- Ancient & Brave: https://ancientandbrave.earth/ (100 requests max, depth 1)
- Heights: https://www.heights.com/ (100 requests max, depth 1)

## Hold until first-batch review
- Wild Nutrition: https://www.wildnutrition.com/
- Dirtea: https://www.dirteaworld.com/
- Ethical Nutrition: https://ethical-nutrition.com/
- Puro Labs: https://purolabs.com/

## Files
- `content_population_exports/apify_gapfill_targets.csv` - all Stage 2 targets with run/hold status.
- `content_population_exports/apify_competitor_pdp_input_template.json` - no-spend actor input template for the first batch only.
- `data/sources/apify/raw/_apify-output-template.json` - expected local raw output shape after a run.

## Stop / scale rule
Scale only if the first dataset contains useful PDP/review/claim evidence with source URLs and the cost is acceptable. Otherwise keep Apify off and stay with DataForSEO/manual source drops.
