
Turn any Website into an API
Browser agent that you can re-run for any task with new data and pages as an API. Draft with LLMs, run deterministic steps, and keep it working with self-healing.
Describe the task -> Oversteer agent runs your task.
Oversteer saves the workflow in deterministic format.
Enter variables and run the workflow as an API with any inputs.
Deterministic steps
Human-readable steps compiled from an LLM draft. Replays exactly and self-heals when the DOM drifts.
- 1Navigate — https://shop.example.com
- 2Input — value: {searchQuery}
- 3Click — button: 'Price: Low to High'
- 4Extract — name, image, price, description, rating
const run = await client.flows.runs.create({
flowId: "flow_abc123xyz",
initialVars: { searchQuery: "wireless headphones" }
})
✓ Step 1: Navigated to shop.example.com
✓ Step 2: Searched for "wireless headphones"
✓ Step 3: Sorted by price (low to high)
✓ Step 4: Extracted 47 products
{
"products": [
{
"name": "Budget Buds Pro",
"image": "https://cdn.example.com/...",
"price": "$29.99",
"description": "Lightweight wireless...",
"rating": 4.2
},
...
]
}Create once, run many times
Simple TypeScript SDK for building and executing browser workflows
Create your flow once
Define from a natural language prompt or explicit steps
import { createClient } from '@oversteer/automation'
const client = createClient({
apiKey: 'your-api-key'
})
// Create from a prompt
const flow = await client.flows
.createFromPrompt({
url: 'https://shop.example.com',
prompt: 'Search for {searchQuery}, \n sort by price, extract products'
})
console.log(flow.flowId)
// → 'flow_abc123xyz'Run with different variables
Execute your saved flow with new inputs each time
// Create a run with variables
const run = await client.flows
.runs.create({
flowId: 'flow_abc123xyz',
initialVars: {
searchQuery: 'wireless headphones'
}
})
// Stream live progress
const stop = client.flows.runs
.stream(run.runId, event => {
if (event.event === 'completed') {
console.log(event.results)
stop()
}
})Why Oversteer
Self-healing locators
Resolves DOM drift with semantic matching and reviewable diffs.
Parameterizable runs
Turn any field into a variable. Batch via CSV, API, or scheduler.
Deterministic replays
No hidden prompts at run time. Flows are auditable and diff-able like code.
Step-level observability
Screens, DOM snapshots, and timings for every interaction.
Least-privilege & secrets
Isolated sessions, encrypted secrets, per-flow permissions.
Anti bot detection
Avoid bot detection and bypass CAPTCHA.
How Oversteer compares
Traditional bots
- Brittle CSS selectors
- Script per site
- Opaque failures
Browser & Computer use agents
- LLM cost each run
- Variable outcomes
- Hard to audit
Oversteer
- Reusable flows
- Deterministic replay
- Self-healing on page changes
- Scalable
Create a custom API for any workflow today. Run it for months.
Start free. Keep your flows deterministic, observable, and resilient.
