Careers · Remote · US & Australia

Build the systems that run the business.

We build custom AI systems for business operations, and hand over working software in about six weeks. Everyone we hire works on client builds directly, with no ticket queue in between.

Open positions

What we are hiring for

  1. Machine Learning Engineer

    Own the ML in our client systems: framing, evaluation, integration, and production quality.

    Full-time Remote · US & Australia
  2. General expression of interest

    Tell us what you build. If the fit is obvious, we will build the role around it.

    Any discipline Remote · US & Australia

Open role · Full-time · Remote · US & Australia

Machine Learning Engineer

You will design, evaluate, and ship the models behind our client systems. Full-time. Remote across the US and Australia.

01

About the role

Kursol builds custom AI systems for business operations: document extraction, retrieval, classification, assistants with tool use, and internal tools. Typical delivery is about six weeks. The team is remote, with people in Sydney, Austin, and Los Angeles.

This role owns the ML in those systems. You take a production problem, decide whether the answer is a hosted LLM, a fine-tuned model, a classical model, or no model, then train or integrate it, evaluate it, ship it, and operate it in production.

You are not training foundation models. Most of the work is applied: datasets, evals, integration, and the judgment of when an API is good enough versus when you need to train something.

02

Responsibilities

  • Frame the ML problem with the client and the rest of the engineering team: inputs, outputs, constraints (latency, cost, accuracy), and what good means.
  • Design and ship systems for retrieval, extraction, classification, ranking, and tool-calling agents. Use classical ML when it beats an LLM.
  • Build offline evaluation sets and harnesses. Measure quality, latency, and cost before anything reaches production.
  • Train, fine-tune, or distill models when a hosted API is the wrong fit. Otherwise integrate existing models.
  • Integrate models into production services in Python, and work across the rest of the stack in JavaScript or TypeScript.
  • Own production quality after launch: monitoring, failure analysis, regression tests, and the next iteration.
  • Sequence and ship work on roughly six-week cycles.

03

Minimum qualifications

  • 3+ years shipping ML systems in production.
  • Strong Python.
  • Comfortable reading and writing JavaScript or TypeScript.
  • Experience with PyTorch, scikit-learn, or an equivalent training and evaluation stack.
  • Experience evaluating model quality (accuracy, precision/recall, hallucination, latency, cost) and changing the system based on the results.
  • Able to overlap some working hours with Sydney, Austin, or Los Angeles.

04

Preferred qualifications

  • Production LLM systems: retrieval-augmented generation, tool calling, structured extraction, evaluation harnesses.
  • Fine-tuning or distillation.
  • Monitoring and incident response for model-backed products.
  • Working with non-engineers to turn an operations problem into a spec and a dataset.

05

How to apply

Email hello@kursol.io with the subject “Application: Machine Learning Engineer”. Include:

  • A CV, Hugging Face profile, GitHub, and/or a LinkedIn profile.
  • Two or three systems you shipped. Links if they are public, otherwise a short write-up covering the problem, the approach, the metrics, and what happened in production.

Always open · Any discipline · Remote · US & Australia

General expression of interest

We do not wait for a posting to act on the right person. One role on this team was built around the person rather than advertised and filled. Send your work whenever.

01

Who we hire

  • Engineers who ship. Most of our work is backend and integration — Python, TypeScript, Node, Postgres, and the APIs a business already runs on.
  • People who have built an internal tool or an automation that someone now depends on daily, and who stayed around to fix it when it broke.
  • Designers who can take a working system and make it legible to the person who has to use it every day.
  • Anyone comfortable talking to a client directly. Everyone here does — there is no account layer between the builder and the business.

This is a description, not a checklist. If you do something we have not thought to ask for, tell us what it is.

02

What to send

  • A CV, LinkedIn, GitHub — whichever actually represents your work.
  • One or two things you built. What the problem was, what you did, and what happened after it shipped. A paragraph each is enough.
  • Where you are, and which hours you can overlap with Sydney, Austin, or Los Angeles.
  • The kind of work you would want to do here, in a sentence.

03

What happens next

We read everything that arrives and keep it. When a role opens, this list is where we look first — which is why an open application is usually the fastest route in.

Email hello@kursol.io with the subject “Expression of interest”.