Medialyst
GuidesCreditsCost Optimization

Cost Optimization

This playbook follows one principle: spend credits only on the journalists most likely to care about your story.

1. Replace AI with formulas whenever possible

Use formulas for deterministic tasks:

  • Data cleanup (TRIM, SUBSTITUTE, UPPER)
  • Extraction (GET, SPLIT, REGEX_REPLACE)
  • Scoring and routing (IF, comparisons, logical operators)
  • Priority bucketing (A/B/C tiers)

Save AI for judgment calls—deciding pitch angles, analyzing journalist fit. Don't burn credits on tasks formulas handle for free.

2. Gate expensive columns with runWhen

Apply runWhen to every expensive column. Define clear entry criteria—only qualified journalists pass.

Column typeTypical gating rule
Pitch angle generation{{Match Score}} >= 7 && {{Email}} != null && {{Email}} != ""
Deep journalist analysis{{Priority Tier}} = "A - Priority"
Profile enrichmentISBLANK({{Journalist Profile}})

Reusable Gates

If a gating rule is reused across workflows, store it in one formula column and reference that column in multiple runWhen expressions. One source of truth, consistent qualification.

3. Use filters to run only visible rows

When you run a column, we only process the rows currently visible in your table. Hidden rows are skipped entirely—no credits spent.

This means filtering is a free way to control costs:

  1. Filter by Match Score — Show only Match Score >= 7, then run your AI column. The 60s and 70s stay hidden and untouched.
  2. Filter by email status — Show only rows where Email is not empty. No point generating pitch angles for journalists you can't contact.
  3. Filter by priority tier — Show only A - Priority journalists, run expensive personalization, then widen the filter for the next batch.

Example workflow:

Full table: 500 journalists
Filter to Match Score >= 8: 87 visible
Run "Generate Pitch Angle": 87 credits (not 500)

This pairs well with batching—filter to your top tier first, run, review, then widen the filter if you need more.

Filters + runWhen = Double Protection

Filters control which rows are visible. runWhen adds a second gate on each row. Use both: filter for your working set, then let runWhen catch edge cases within that set.

4. Create categorization columns for precise filtering

Before running expensive columns, add a cheap Use AI column to categorize your rows. Then filter by category and run only the rows that matter.

Step-by-step:

  1. Add a Use AI column with a classification prompt (e.g., "Classify this journalist's beat as Tech, Business, Lifestyle, or Other based on {{Recent Articles}}")
  2. Run it on all rows — classification is a low-cost AI operation
  3. Filter by the new category — Show only "Tech" journalists
  4. Run your expensive columns (pitch angles, deep research) on the filtered set

This gives you fine-grained control over which rows consume credits, without manually reviewing hundreds of rows.

Full table: 300 journalists
Add "Beat Category" column: 300 credits (cheap)
Filter to Beat Category = "Tech": 45 visible
Run "Deep Research Agent": 45 credits (not 300)
Total: 345 credits instead of 600