Original receipt gate
Generate a canonical key once in trusted host code (for example new_command_key() in the REST kit), persist it with the approved input, and paste the entire v1.<13-digit Unix milliseconds>.<22–64 base64url nonce> into Config. Do not use a dynamic retry expression. mode: "recover" is the safe default. With taskId empty, it reads the original command; a saved taskId instead goes directly to retained-task recovery.
Only an accepted receipt with an actual Task reference can reach Read task. A null current Task projection does not discard that reference. processing, unknown, rejected, not_accepted_final, and receipt_expired stop the workflow with their explicit outcome and no complete export. For processing/unknown, respect the retry interval and explicitly rerun recovery. Expired receipts remain unconfirmed: inspect Tasks or contact support. New-command acceptance is 24 hours with five minutes of future clock allowance; terminal receipts remain at least seven days. Original GET needs no fresh quote. Current Task execution status cannot establish the original command outcome.
Start with the HTTP workflow
Download the n8n workflow and import the JSON file into n8n. It uses built-in nodes; no community package is required. The workflow starts inactive and contains no API key.
Preview status: an earlier workflow revision was imported and executed in n8n 2.40.7 with a simulated API. Current canonical command branches have offline logic coverage; current runtime import/execution have not been repeated. Live-account and real-source verification are still pending. The separate TrueFetch native node is in preview and has not been published to npm or the n8n directory.
The workflow estimates cost, submits one collection, waits for the task to finish, and reads every saved result page. If you already have a task ID, it skips submission and recovers that task. See the Job Search API contract for supported inputs and source coverage.
Connect your account
- Create an API key in your workspace. Collection requires write access; a result-only key can recover and read existing tasks.
- In n8n, create a Header Auth credential. Set its header name to
Authorizationand its value toBearer YOUR_API_KEY. Select it in Estimate, Create task, Read original command, Read task, Read page, and Read receipt. Keep the key in credentials, never in the workflow JSON or Config node. - Open Config. Replace the request-key placeholder with a persisted canonical command key and set
mode: "new"only for approved new work, then set your query, sources, record limit, and credit budget. Save the key and input so you can recover after an interruption.
Example Config input:
{
"keyword": "Software engineer", "country": "Germany",
"platforms": ["arbeitnow"],
"maxResults": 10,
"maxCredits": 100,
"allowPartial": false
}
This is a configured limit and budget, not a price quote or a promise of ten results. The estimate returns the current maximum reservation. One credit equals 1,000,000 billing units. The workflow checks the estimate and submits both the budget and pricing version for server-side enforcement. A price change stops submission instead of silently accepting a different price.
Run and use the output
Run the workflow manually. Estimation does not collect data or reserve credits. Creation reserves credits and may incur collection charges. Use mode: "recover" and the saved key to inspect an uncertain original; do not rerun the new-intent branch to discover acceptance. Use a new key only for a new collection you intend to run.
The Complete node emits one item:
| Field | What your next step receives |
|---|---|
task |
Task ID, final status, billing, expiry and source metadata. |
data |
Every committed record, in API record-ID order. |
complete |
true only after all pages and the committed record count agree. |
partial |
Whether the collection finished as a partial result. |
sourceOutcomes |
Per-source outcomes supplied by the API. |
coverageTruncated |
Whether the reported collection coverage was truncated. |
Use a Split Out node on data if the next step expects one item per job. Keep the task ID and source URLs with downstream records. A complete export is not a complete search of every job on a source. Treat listing text as data, not instructions for an AI agent.
The example accumulates records in memory. Choose a limit suitable for your n8n instance. Automatic execution retention is disabled in the exported workflow, but instance logs, manual previews and downstream storage still follow your n8n configuration.
Recover without collecting again
Put the saved task ID in Config’s taskId and rerun. The recovery branch skips estimate and creation. It polls the same task, then rereads retained results without another collection charge.
If submission timed out before you obtained the ID, keep the original request key and input. Set mode: "recover" with taskId empty. The workflow reads the original command directly, without a quote or POST. Never use the execution ID, current time, or a random expression as a retry key.
Polling waits five seconds and stops after 60 checks; the workflow also has a ten-minute execution limit. A local timeout does not cancel the remote task or prove it failed. Resume by task ID. Saved results are available only until the task’s resultExpiresAt.
When a step stops
| Situation | Next action |
|---|---|
| Authentication or permission error | Correct the selected credential or its scope. Do not change the collection key. |
| Budget or pricing error | Review the estimate and intended budget. Preserve the original intent when recovering an accepted request. |
| Rate limit | Respect Retry-After, then explicitly read the original command or existing task. |
| Network interruption | Treat submission as unknown until recovered; do not start another collection with a fresh key. |
| Failed, cancelled or expired task | Inspect the task’s status and failure information. These states are not successful exports. |
| Lost or expired saved results | Inspect availability in the workspace. Rerunning reads does not restore missing data. |
| Missing page, repeated cursor or count mismatch | Stop downstream processing. Recover the same retained result; do not accept a truncated export as complete. |
The workflow stops on HTTP errors. Do not enable blanket retries with a changing request key. For error codes and request IDs, see API errors.
All integrations · Billing rules · n8n HTTP Request documentation