Define what you want.
We handle the rest.

Turn any data source into structured APIs, live dashboards, and smart alerts — from a single YAML config.

security-intel.yaml
job: security-intel
schedule: "0 */2 * * *"

sources:
  - name: kev
    url: "catalog://cisa.kev/default"     # pre-built, auto-refreshed
  - name: nvd
    url: "https://services.nvd.nist.gov/rest/json/cves/2.0?pubStartDate=${sys.yesterday}"
    extract:
      vulns:
        select: "$.vulnerabilities[*].cve"
        as: list:object

compute:
  critical:  'where(nvd.vulns, "cvss >= 9.0")'
  exploited: "filter_in(critical, 'id', pluck('cveID', kev.vulnerabilities))"

views:                                    # data contracts with schemas
  - name: urgent
    source: computed.exploited
    sort_by: cvss
    sort_direction: desc
    limit: 10

lifecycle:
  on_success:
    trigger:                             # chain jobs into pipelines
      - job: vuln-enricher
        when: "len(computed.exploited) > 0"
    notify:
      - type: slack
        if: "len(views.urgent) > 0"
        message: "🚨 {{len(views.urgent)}} critical vulns actively exploited"
  on_stale:                              # alert if feed goes stale
    threshold: "6h"
    notify: pagerduty

How It Works

Three steps to structured data

1

Define

Describe your data sources, extraction rules, and transforms in a YAML config.

sources:
  - name: nvd
    url: "https://services.nvd.nist.gov/..."
    extract:
      vulns:
        select: "$.vulnerabilities[*].cve"
        as: list:object
2

Deploy

Push your config with a single CLI command. We handle scheduling, retries, and scaling.

$ extractctl jobs deploy security-intel.yaml

✓ Validated spec (2 sources, 3 fields)
✓ Deployed job security-intel v4
✓ Next run: 2026-02-21T12:00:00Z
3

Deliver

Get structured data, live dashboards, and smart alerts. Chain jobs into pipelines.

lifecycle:
  on_success:
    trigger:
      - job: vuln-enricher
        when: "len(exploited) > 0"
    notify:
      - type: slack
        message: "{{len(urgent)}} critical"

Pipelines

See your data flow

Every extraction follows the same five-stage pipeline. Watch it run.

Stop writing scripts.
Start getting insights.

We're building something powerful. Join the waitlist to get early access.

$ extractctl jobs deploy security-intel.yaml
Deployed. Dashboard live at extractctl.com/d/security-intel