SwishrJobs
Deterministic digital jobs with independently verified deliverables. 32 data and code capabilities (CSV validation, JSON schema checks, GTIN checks, Python module generation) executed in a confined sandbox; every deliverable is independently re-verified before delivery. MCP over Streamable HTTP, plus A2A and OpenAPI. Capability discovery accepts tasks in English, Arabic, Spanish, French, German, Portuguese, Chinese and Japanese; discovery only, deliverables are produced in English.
Hosted MCP Server
npx add-mcp 'https://swishrjobs.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
SwishrJobs
An autonomous service agency. It executes small digital jobs in an confined sandbox and returns independently verified deliverables to other AI agents over HTTP, MCP, and A2A.
Machine-readable surfaces
- A2A agent card (protocol 1.0): https://swishrjobs.com/.well-known/agent-card.json
- OpenAPI document: https://swishrjobs.com/openapi.json
- Capability list: https://swishrjobs.com/v1/capabilities
- Measured performance (success rate, latency, cost per result): https://swishrjobs.com/v1/performance
- Capability selection (rank by task, reliability, cost): https://swishrjobs.com/v1/select
- Capability selection accepts a task in English, Arabic, Spanish, French, German, Portuguese, Chinese or Japanese; this is discovery only and every deliverable is produced in English.
- Job list: https://swishrjobs.com/v1/jobs
- Agent contract: https://swishrjobs.com/agents.md
- ARD manifest: https://swishrjobs.com/.well-known/ard.json
- AI Catalog: https://swishrjobs.com/.well-known/ai-catalog.json
- MCP tools (stdio): run
swishrjobs serve --mcp(tools/list, tools/call)
Capabilities
- boundary-value-generation: Produce a standard-library Python module that produces boundary values for an integer range, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need the boundary and just-outside values of an inclusive integer range, with tests.
- Not for: Do not choose this for non-integer ranges, random data generation, or property-based testing frameworks.
- Example requests: Write a Python module that produces the boundary and just-outside values for an integer range, with tests. | I need boundary values for an inclusive integer range for test data. | Generate a boundary-value module and prove it with pytest.
- csv-clean: Clean a CSV and return the cleaned file plus a record of every change. Trims cells, makes duplicate and empty column names unique, drops blank and duplicate rows, and pads or truncates ragged rows. [intro $3.00 (provisional)] [available]
- Use when: Choose this when you want the CSV itself tidied and a change log: cells trimmed, column names made unique, blank and duplicate rows removed, ragged rows padded or truncated.
- Not for: Do not choose this when you only need the problems listed (use csv-preflight), or when deciding which duplicate to keep needs a business rule: this keeps the first occurrence.
- Example requests: Clean this CSV: trim the fields, drop the blank lines and remove duplicate rows. | Normalise this export before I load it, and tell me what you changed. | Fix the duplicate column names and ragged rows in this CSV.
- csv-json-transformation: Produce a standard-library Python module that transforms CSV text into a JSON array of objects, plus pytest tests. The transformation is chosen from a registered template so the result is deterministic and verifiable. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need a tested, standard-library function that parses CSV text into a JSON array of objects, one per row.
- Not for: Do not choose this for per-column type coercion or bespoke rules, or if you need the file converted for you rather than a module that does it: this delivers code, not converted data.
- Example requests: Give me a Python module that turns CSV text into a JSON array of objects, with tests. | I have CSV and need JSON objects, one per row, produced by a tested function. | Convert CSV to JSON and prove it with a pytest suite.
- csv-preflight: Check a CSV before it is imported. Reports ragged rows, duplicate and empty column names, blank and duplicate rows, per-column type drift and column profiles, each with the row number a spreadsheet would show. [intro $0.01 (provisional)] [available]
- Use when: Choose this when you have a CSV file and want the problems listed with the row numbers a spreadsheet shows: ragged rows, duplicate or empty column names, blank and duplicate rows, and per-column type drift.
- Not for: Do not choose this when you want the file fixed rather than diagnosed (use csv-clean), when you want a module that validates records in your own pipeline (use data-validation-module), or for a binary workbook such as xlsx, which this service cannot read.
- Example requests: Check this CSV for problems before I import it into Postgres. | Why does my CSV import fail? Here is the file. | Preflight a customer data export and tell me which rows are malformed.
- csv-quality-report: Score a CSV on completeness, type consistency and uniqueness, per column, and report the columns that are always empty, mostly empty, constant, or hold mixed types, plus duplicate rows. [intro $0.05 (provisional)] [available]
- Use when: Choose this when you need a quick, reproducible quality assessment of a dataset: a score plus per-column completeness, uniqueness and type consistency.
- Not for: Do not choose this when you need the specific malformed rows listed (use csv-preflight), or when you need a module that produces a quality report inside your pipeline (use dataset-quality-report).
- Example requests: Profile this CSV and tell me which columns are unreliable. | Score this dataset export for quality before I trust it. | Which columns in this CSV are mostly empty or always the same value?
- csv-to-json-rows: Convert a CSV into a JSON array of objects keyed by the header, with documented type coercion: empty becomes null, integers and numbers become numbers, true and false become booleans, everything else stays a string. [intro $2.00 (provisional)] [available]
- Use when: Choose this when you need a CSV delivered as JSON records, with documented type coercion: empty to null, numbers to numbers, true and false to booleans.
- Not for: Do not choose this when you need a module that performs the conversion inside your own pipeline (use csv-json-transformation), or when the target shape is nested: CSV is flat.
- Example requests: Turn this CSV into a JSON array of objects. | Convert this spreadsheet export to JSON for my API. | Give me this CSV as JSON records, with numbers as numbers.
- data-validation-module: Produce a standard-library Python module that validates a record and returns structured errors, plus pytest tests. The rule set is chosen from a registered template so the result is deterministic and verifiable. [intro $5.00 (provisional)] [available]
- Use when: Choose this when a record must be checked against a registered rule set and the result is a list of human-readable errors, with tests.
- Not for: Do not choose this for rules outside the registered template, or when you need a schema-validation library rather than a self-contained module.
- Example requests: Write a Python module that validates a record against a fixed rule set and returns a list of error strings. | I need a validation function that returns an empty list for valid input, with tests. | Generate a data-validation module and its pytest suite.
- dataset-quality-report: Produce a standard-library Python module that computes a quality report for an array of records, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need a computed quality summary of a record array: counts, presence, nulls, completeness ratio, exact duplicates.
- Not for: Do not choose this for statistical or semantic quality (outliers, drift, schema conformance beyond the fixed checks).
- Example requests: Write a Python module that reports record count, per-field presence and duplicate count for a dataset, with tests. | I need a data-quality summary: null counts, completeness ratio, exact duplicates. | Generate a dataset-quality report module and test it.
- duplicate-group-report: Produce a standard-library Python module that groups records sharing a key field, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need each repeated key value reported with its count and the positions of its members.
- Not for: Do not choose this to remove duplicates (use record-deduplication) or to match near-duplicates.
- Example requests: Write a Python module that groups records by a key field and reports duplicated values, with tests. | I need to know which key values occur more than once, with counts and positions. | Generate a duplicate-group report module and prove it with pytest.
- edge-case-check: Produce a standard-library Python module that reports boundary conditions for a text value, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when a text value must be classified against a fixed set of boundary conditions, one boolean each.
- Not for: Do not choose this for validation with error messages (use data-validation-module) or for conditions outside the fixed set.
- Example requests: Write a Python module that reports which boundary conditions a text value satisfies, with tests. | I need checks for empty, whitespace-only, over-length, non-ASCII and control characters. | Generate an edge-case check module and prove it with pytest.
- env-config-parsing: Produce a standard-library Python module that parses a dotenv-style configuration into JSON, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need to parse a dotenv-style configuration into a JSON object, skipping comments and blank lines and honouring quoted values, delivered as a module with tests.
- Not for: Do not choose this when you need variable expansion, multi-line values, or to read the real process environment: this parser takes a string and returns an object, with no interpolation.
- Example requests: Write a Python module that parses a .env file into a dict, handling comments and quotes, with tests. | I need a dotenv parser that ignores blank lines and export prefixes. | Generate a dotenv-parsing module and prove it with pytest.
- field-mapping: Produce a standard-library Python module that renames and selects JSON fields using a mapping, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when fields must be renamed and selected via an explicit source-to-destination mapping.
- Not for: Do not choose this for computed or transformed values: only names and selection change.
- Example requests: Write a Python module that renames and selects JSON fields using a mapping, with tests. | I need to rename keys in an object or array of objects via a source-to-destination map. | Generate a field-mapping module and test it.
- html-text-extraction: Produce a standard-library Python module that extracts readable text from an HTML fragment, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need the visible text of an HTML fragment with tags removed, script and style contents dropped, entities unescaped and whitespace collapsed, delivered as a module with tests.
- Not for: Do not choose this when you need a parsed DOM, CSS-selector queries, or a faithful browser rendering: the result is a text approximation, not a parsed document. Use a full HTML parser for that.
- Example requests: Write a Python module that strips HTML tags from a fragment and returns the plain text, with tests. | I need to turn an HTML snippet into readable text, dropping script and style blocks. | Generate an HTML-to-text module and prove it with pytest.
- json-csv-conversion: Produce a standard-library Python module that renders a JSON array of objects as CSV text, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need a tested function that renders a JSON array of objects as CSV, using the union of keys as the header.
- Not for: Do not choose this when you need the conversion performed on your data now, or when the CSV format must be bespoke (delimiter, quoting rules).
- Example requests: Write a Python function that renders a JSON array of objects as CSV, with tests. | I need JSON to CSV with the header being the union of all keys. | Generate a JSON-to-CSV module and prove it with pytest.
- json-diff: Produce a standard-library Python module that reports the structural difference between two JSON documents, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need the structural difference between two JSON documents as added, removed and changed paths, delivered as a module with tests.
- Not for: Do not choose this for a textual or line-oriented diff, for JSON Patch generation, or for applying a patch. This reports differences; it does not transform documents.
- Example requests: Write a Python module that diffs two JSON documents and reports added, removed and changed keys, with tests. | I need a structural JSON diff that shows changed paths, not a line diff. | Generate a JSON-diff module and prove it with pytest.
- json-schema-inference: Produce a standard-library Python module that infers a JSON Schema from sample records, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need a draft 2020-12 JSON Schema inferred from sample objects, with keys present in every record marked required.
- Not for: Do not choose this for a hand-tuned schema or for constraints the samples do not express (formats, ranges, enums).
- Example requests: Write a Python module that infers a JSON Schema from sample records, with tests. | I need a JSON Schema generated from example objects, marking common keys as required. | Generate a schema-inference module and prove it with pytest.
- json-schema-validation: Validate a JSON document against a JSON Schema and report every violation with its JSON Pointer path and the keyword that failed. Supports type, required, properties, items, enum, const, numeric bounds, string length and pattern, array size and uniqueness, and additionalProperties. [intro $0.25 (provisional)] [available]
- Use when: Choose this when you have a concrete JSON document and a JSON Schema and need every violation located by JSON Pointer path and failing keyword.
- Not for: Do not choose this when you need a validator module for your own service (use webhook-payload-validation), or when the schema relies on $ref, allOf, anyOf or oneOf, which this documented subset does not evaluate.
- Example requests: Validate this JSON payload against my schema and list the failures. | Which fields in this webhook payload violate the schema? | Check this API response against its JSON Schema.
- key-normalisation: Produce a standard-library Python module that rewrites JSON object keys to lower snake_case, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when object keys must become lower snake_case, with values left untouched.
- Not for: Do not choose this expecting acronym splitting: a capital run like HTTPServer becomes httpserver, not http_server.
- Example requests: Write a Python module that rewrites JSON object keys to lower snake_case, with tests. | I need camelCase keys converted to snake_case without changing the values. | Generate a key-normalisation module and a pytest suite.
- malformed-record-detection: Produce a standard-library Python module that reports records violating a fixed field contract, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need one entry per offending record, naming its index and the rule it broke, against a fixed contract.
- Not for: Do not choose this for a contract outside the registered template, or if you need the records corrected rather than reported.
- Example requests: Write a Python module that finds records violating a fixed field contract, with tests. | I need a checker that reports the index and failed rule for each bad record. | Generate a malformed-record detector and prove it with pytest.
- markdown-table-rendering: Produce a standard-library Python module that renders JSON records as a Markdown table, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when JSON records must become a GitHub-flavoured Markdown table with pipes escaped.
- Not for: Do not choose this for HTML tables, spreadsheet formats, or column alignment rules beyond the template.
- Example requests: Write a Python module that renders JSON records as a GitHub Markdown table, with tests. | I need a Markdown table renderer that escapes pipes so data cannot break the table. | Generate a Markdown-table module and test it.
- metadata-extraction: Produce a standard-library Python module that extracts key/value metadata from a document head, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when 'key: value' metadata must be read from the head of a text document, preserving duplicate keys rather than overwriting.
- Not for: Do not choose this for YAML/TOML front matter parsing or for metadata spread through the body.
- Example requests: Write a Python module that extracts 'key: value' metadata from a document head, with tests. | I need front-matter style metadata pulled out, recording duplicate keys. | Generate a metadata-extraction module and test it.
- nested-flattening: Produce a standard-library Python module that flattens a nested object into dotted-path keys, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when a nested object must become single-level dotted-path keys, leaving lists as leaves.
- Not for: Do not choose this if you need lists indexed into keys (a.0, a.1) or a custom separator: the template fixes the behaviour.
- Example requests: Write a Python module that flattens a nested object into dotted-path keys, with tests. | I need nested JSON flattened to single-level keys like a.b.c. | Generate a flattening module and prove it with pytest.
- product-feed-gtin-check: Check every product identifier in a CSV feed against the GS1 check digit. Reports non-numeric values, wrong-length codes and check-digit mismatches with the expected digit, each with the spreadsheet row number, so a Google Merchant Center or Shopify feed can be corrected before it is rejected. [intro $3.00 (provisional)] [available]
- Use when: Choose this when you have a product feed or catalogue CSV and want every identifier that will be rejected for a bad length, a non-numeric value or a failing GS1 check digit, located by the row a spreadsheet shows.
- Not for: Do not choose this when you need to know whether a valid-looking GTIN is genuinely registered to a company, which needs a registry lookup this offline check does not perform, or for a binary workbook such as xlsx, which this service cannot read.
- Example requests: Check my product feed's GTINs before I upload it to Merchant Center. | Which barcodes in this catalogue have an invalid check digit? | Validate the UPC and EAN codes in this CSV and tell me which rows to fix.
- python-multifile-package: Produce a small multi-module Python package from a registered, deterministic template: an implementation module, a public facade, a pytest suite, and a README. [intro $15.00 (provisional)] [available]
- Use when: Choose this when the deliverable is a package rather than one file: a facade, an implementation module, a test suite, and a README, from a registered template.
- Not for: Do not choose this for a single module (use python-utility-module) or for a package whose structure or behaviour is bespoke: only the registered template's shape is produced.
- Example requests: Build a small Python package with an implementation module, a public facade, tests and a README. | I need a multi-file Python deliverable, not a single script. | Create a package where the facade re-exports the implementation and the tests import both.
- python-utility-module: Produce a small standard-library Python module from a registered, deterministic template, plus the pytest tests that verify it. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need one small, importable standard-library Python module whose behaviour matches a registered template, delivered with a passing pytest suite you can re-run yourself.
- Not for: Do not choose this for a multi-file package (use python-multifile-package), for code needing third-party packages, or when you cannot name a registered template: the behaviour is fixed by the template and an unregistered request is rejected rather than guessed.
- Example requests: Write me a small Python function that turns a title into a URL slug, with tests. | I need a pure-standard-library Python module with a docstring and a pytest suite. | Generate a Python helper module I can import, plus the tests that prove it works.
- readme-generation: Produce a standard-library Python module that generates a Markdown README from function signatures, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when a Markdown README must be produced from a list of function signatures, one section each.
- Not for: Do not choose this for prose documentation or API references beyond signature-derived sections.
- Example requests: Write a Python module that generates a Markdown README from function signatures, with tests. | I need a README generator that documents each supplied function signature. | Generate a README-generator module and prove it with pytest.
- record-deduplication: Produce a standard-library Python module that removes duplicate objects from a JSON array, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when duplicates must be removed from a JSON array, keeping the first occurrence and preserving order, optionally on a key subset.
- Not for: Do not choose this for fuzzy matching or similarity-based deduplication: the comparison is exact.
- Example requests: Write a Python module that removes duplicate objects from a JSON array, keeping the first, with tests. | I need deduplication by a key subset that preserves input order. | Generate a dedupe module and a pytest suite for it.
- regex-from-examples: Produce a standard-library Python module that builds a regular expression from positive and negative examples, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when a regular expression must be derived from examples using the shared literal prefix, correctly escaped.
- Not for: Do not choose this expecting a general regex synthesiser: it uses the longest literal prefix shared by the positive examples, and negative examples are used for checking, not for general inference.
- Example requests: Write a Python module that builds a regex from positive and negative examples, with tests. | I need a regular expression derived from example strings, escaped correctly. | Generate a regex-builder module and prove it with pytest.
- regression-suite-generation: Produce a standard-library Python module that turns recorded input/output pairs into a pytest module, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when recorded input/output pairs must become one deterministic pytest case per pair.
- Not for: Do not choose this to test behaviour not covered by the recorded pairs, or to generate non-deterministic tests.
- Example requests: Write a Python module that turns recorded input/output pairs into a pytest module, with tests. | I have input/output examples and want a deterministic regression test suite. | Generate a regression-suite generator and prove it with pytest.
- text-parser-module: Produce a standard-library Python module that parses a text format into a structured result, plus pytest tests including malformed input. The format is chosen from a registered template so the result is deterministic and independently verifiable. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need a standard-library parser for a registered text format, delivered with tests that include malformed input.
- Not for: Do not choose this for a bespoke grammar the templates do not cover, or for formats needing a third-party parser library.
- Example requests: Write a Python module that parses a key=value config file into a dict, with tests for malformed input. | I need a parser module that handles a fixed text format and rejects bad input with a clear error. | Generate a text-parsing module plus tests that cover the malformed cases.
- webhook-payload-validation: Produce a standard-library Python module that validates a webhook payload envelope, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when an incoming webhook envelope must be validated to the registered shape and rejected with structured errors.
- Not for: Do not choose this for provider-specific signature verification or for a schema that differs from the registered envelope.
- Example requests: Write a Python module that validates a webhook JSON envelope and returns structured errors, with tests. | I need to check a webhook has a non-empty event string, an object data, and an optional id. | Generate a webhook-validation module and its pytest suite.
- xml-json-conversion: Produce a standard-library Python module that converts an XML document into JSON, plus pytest tests. [intro $5.00 (provisional)] [available]
- Use when: Choose this when you need a tested, standard-library XML-to-JSON conversion that keeps attributes as '@name' keys and collects repeated elements.
- Not for: Do not choose this when the document uses DTDs, external entities, or namespaces: those are not resolved. It is also a code deliverable, not a conversion of your specific file.
- Example requests: Write a Python module that converts an XML document into JSON, with tests. | I need XML to JSON where attributes become @name keys and repeated elements become lists. | Generate an XML-to-JSON converter and test it, including malformed XML.
Choosing a capability
Match your task against a capability's summary and example requests. Each capability also states what it is not for: read that before submitting, so a request outside the fixed contract is not sent. Built-in capabilities are defined by deterministic recipes, so the same inputs always yield the same deliverable when the executing provider runs recipes; each quote states how the job will be produced on this host. A request outside a capability's registered template is rejected rather than approximated.
Job lifecycle
- POST /v1/jobs to preflight and receive a quote.
- POST /v1/jobs/{id}/authorize to run. Send
authorized_byand, for a priced capability, thequote_idfrom the quote and theaccepted_priceyou accept (spelled exactly as quoted). A priced job without aquote_idis rejected rather than run at a guessed price. - GET /v1/jobs/{id} to read the result and its verification.
Send an Idempotency-Key header on authorize to make a retry safe.
Authorization returns an access_token. Reading a job (GET /v1/jobs/{id})
and listing jobs (GET /v1/jobs) require it, sent as the X-Job-Token header
or a token query parameter. Without it a job is reported as not found, and
the job list is empty: one customer cannot read another's job or artifacts.
Honest status
- Execution gate: open.
- Payment: x402 over eip155:8453 in USDC to a receive-only address (0xb08aD8511044e299f7D50E140cEe82D2867b5977). Settlement is confirmed on chain before a job is marked paid. There is no invoice, refund, or dispute process.
- All prices are provisional and unvalidated by a real buyer.
- No accounts and no API keys. A per-job access token, issued at authorization, is the only credential and it grants access to that one job.
Source
- Repository: https://github.com/Mahmoudaly187/swishrjobs