What are Pipelines?
Transformation Pipelines let you filter, reshape, enrich, and transform job data before it’s pushed to an external destination via an Outbound Feed. Build visual flows by dragging nodes onto a canvas, connecting them, and configuring each step — no code required. Once attached to a feed destination, a pipeline runs automatically on every sync cycle: each job passes through your pipeline before being written to the destination.Pipelines run during Outbound Feed syncs — you cannot trigger them
independently, but you can test them against a real job from your feed at any
time in the editor’s test panel. The test input is exactly the document
your pipeline receives during a live sync.
Feature Highlights
Filters
Sync only the jobs you want — match on any field with 12 operators
(equals, contains, greater than, regex, and more). Non-matching jobs are
skipped and counted, never written.
Field Mapping
Rename and restructure fields to your own schema with simple source →
target path mappings. No templates needed for the common case.
Liquid Templates
Full Liquid templating for advanced
reshaping: conditionals, loops, date formatting, string manipulation.
AI Transforms
Send data to any OpenRouter model to extract
skills, classify jobs, or rewrite descriptions — using your own OpenRouter
key.
JSON Merge
Combine AI output with original data using deep or shallow merge with
configurable conflict resolution. Preserves all existing fields.
Test with Real Data
Run a random job from your live feed through the pipeline and inspect
every node’s input, output, timing, and errors.
Node Types
Every pipeline has exactly one Input node and one Output node. In between, you can add any combination of transformation nodes.Input
Entry point — receives the job document from the Outbound Feed sync engine
Filter
Keep or drop jobs based on field conditions
Field Mapper
Rename and restructure fields with path mappings
Liquid Template
Transform data using Liquid template syntax
AI (OpenRouter)
Process data with any LLM via OpenRouter with structured JSON output
JSON Merge
Combine two JSON inputs (base + patch) with configurable strategies
Output
Exit point — final JSON written to your destination
How It Works
Every pipeline is a directed acyclic graph (DAG) of nodes. Data flows from the Input node through transformation nodes and arrives at the Output node.1
Create a Pipeline
Open the visual editor in Data → Pipelines in the dashboard. Start from
a blank canvas or choose a pre-built template — including a zero-cost
Filter + Field Mapper template that needs no AI setup.
2
Add & Connect Nodes
Drag nodes from the palette onto the canvas. Connect outputs to inputs to
define the data flow.
3
Configure Each Node
Click a node to open its config panel. Set filter conditions, field
mappings, Liquid templates, AI prompts and output schemas, or merge
strategies.
4
Test with Real Data
Use the built-in test panel to run a real job from your feed through the
pipeline and inspect each node’s output before going live.
5
Attach to a Feed Destination
Select the pipeline in the destination’s configuration on the Outbound
Feed page. Every sync cycle runs jobs through the pipeline before writing.
Attaching to Outbound Feeds
Pipelines don’t run in isolation — they’re attached to a destination on the Outbound Feed page. When the feed syncs, each job passes through the attached pipeline before being written.- Create your pipeline — build and test it in the Pipeline Editor. A pipeline with unresolved configuration errors can be saved, but not attached.
- Open your Outbound Feed — edit the destination configuration you want to transform.
- Select a pipeline — choose it from the Transformation pipeline dropdown in the destination settings.
Supported destinations
Pipelines can change the shape of your documents, so they’re available on document destinations only:Document identity is preserved. Whatever your pipeline does to a job’s
body, the destination document keeps the original Jobo job id as its
identifier. Updates and expiry deletions keep working even if you rename
every other field.
AI nodes and cost
AI nodes call OpenRouter with your own API key (configured in Settings). During a sync, that means one LLM call per synced job for each AI node in your pipeline:Applying pipeline changes to already-synced jobs
Feed syncs are incremental — they only process jobs that are new or changed since the last sync. When you edit an attached pipeline, the new logic applies to future syncs only. To reapply it to everything, use Full resync on the destination card: it clears the sync watermark and re-runs the whole feed through the pipeline.Next Steps
Node Types Reference
Detailed configuration for each node type
Example Flows
Pre-built pipeline examples for common use cases
Execution Model
How nodes are executed and how errors are handled
Best Practices
Tips for building efficient and reliable pipelines

