Skip to content
Fantom Systems

LLMs connected to your data, with the numbers to prove it.

I build MCP servers, document assistants that cite their sources, and document-to-data pipelines for finance and operations teams. Every project is scoped and priced before it starts, and ships with an evaluation report.

Macro-F1 on 240 human-labelled Serbian financial headlines, held out from training
Fine-tuned Llama 3.2 3B, QLoRA
0.74
Zero-shot Llama 3.2 3B
0.64
Translate to English, then FinBERT
0.54

From SerbFin-Sentiment, published on Hugging Face with the dataset and the evaluation harness.

What I build

Three things, each with a paid pilot on your data as the first step.

An MCP server for your data

Claude, ChatGPT or Cursor get safe, typed access to your database, API or reporting tables, so people ask a question instead of filing a lookup request.

  • Typed tools with validated inputs, read-only unless you decide otherwise
  • Caching, retries and rate limits, so one bad query cannot take a source down
  • Install guide for Claude Desktop, Cursor or your own agent
  • A test per tool, runnable without live credentials

Pilot: Two or three tools over one data source. $200, five days.

An assistant that answers from your documents, with sources

A chat assistant over your PDFs, policies, contracts and manuals that cites the page it used, so every answer can be checked.

  • Ingestion for your document set, including PDFs with tables
  • Retrieval tuned on your own questions, not a generic benchmark
  • Page-level citations on every answer
  • A question set with scored answer accuracy that you can re-run after changes

Pilot: One document set, twenty of your questions scored. $200, five days.

Documents into structured data

Invoices, bank statements and contracts into validated JSON or Excel, with an accuracy table on your own sample before anything goes live.

  • Extraction against a schema you approve first
  • Field-level validation: totals reconcile, dates parse, identifiers check out
  • An accuracy table per field on your documents
  • Export to JSON, Excel or straight into your system

Pilot: Twenty of your documents extracted and scored. $200, five days.

How engagements are sized

PackagePriceTimeYou get
Pilot$2005 daysProof on your sample and a short report with the numbers.
Working version$50010 daysA runnable script or API with documentation, ready for your team to use.
Integration$1,50021 daysDeployed in your stack, with an evaluation suite and a handover session.

Larger pilots, such as document intake or transaction categorisation across a whole department, run two to four weeks and are scoped separately.

The same packages are listed on Upwork, with escrow and milestones, if you would rather start there.

Live demos

Things you can try before writing to me.

belex-mcp

MCP server, on npm

Twelve tools over Belgrade Stock Exchange quotes, indices and National Bank of Serbia rates. Add it to Claude Desktop, then ask for yesterday's EUR/RSD mid-rate or the day's most traded shares.

claude_desktop_config.json
{
  "mcpServers": {
    "belex": {
      "command": "npx",
      "args": ["-y", "belex-mcp"]
    }
  }
}

npmGitHubHow it is built

Work

Four public projects. Each page lists what was built, the measured result and the limitations.

belex-mcp

Open-source MCP server, on npm

Twelve typed tools over Belex and NBS data, installed with one npx line

Belgrade Stock Exchange quotes, indices and National Bank of Serbia rates as twelve typed tools that Claude, Cursor or any MCP client can call.

Read the case study

FinAgent

Multi-agent financial research with an evaluation harness

100% numerical accuracy on the 14 checkable answers of a 22-question evaluation, zero runtime errors

A LangGraph agent that decides which tools to call across SEC filings, web search, a sandboxed calculator and RAG, checks whether it has enough to answer, and returns a structured, cited result.

Read the case study

SerbFin-Sentiment

Fine-tuned Serbian financial-sentiment model, on Hugging Face

Macro-F1 0.74 against 0.64 zero-shot and 0.54 for translate-then-FinBERT, on 240 human-labelled headlines

Llama 3.2 3B fine-tuned with QLoRA to classify Serbian financial headlines from an investor's point of view, scored against a human-labelled test set alongside two baselines.

Read the case study

FinSight

Question answering over financial reports, with page-level sources

Answers over financial PDFs with the source page attached to each one

A retrieval-augmented assistant over annual and quarterly report PDFs that answers in natural language and shows the pages it drew on.

Read the case study

How I work

The six things every engagement has in common.

Start on your sample
Anonymised documents or a read-only copy are enough for a pilot. NDA on request.
No production access
I work on a copy. You deploy, or we deploy together inside your own cloud account.
Data can stay in the EU
When it has to, models run through AWS Bedrock in an EU region rather than a US API.
Fixed scope, fixed price
Written down before work starts. A change in scope is re-quoted, not absorbed into surprises.
Numbers with every delivery
An evaluation set and a one-page report: accuracy, latency and cost per request.
A small first step
Every engagement starts with a paid pilot on your data, so you see the result before committing further.

About

Fantom Systems is the independent practice of Filip Filipović. I studied software engineering at the University of Belgrade (ETF, 2022–2026), specialising in AI, cloud engineering and FinTech.

As an AI and cloud engineering intern at Levi9 I shipped a production scheduling assistant on AWS Bedrock (Claude, Lambda, API Gateway, DynamoDB, Cognito) and built MCP servers that exposed PostgreSQL and REST data to Claude and GPT-4 as validated tools, replacing manual lookups.

In the open: belex-mcp on npm, the first MCP server for the Serbian financial market, and SerbFin-Sentiment on Hugging Face, the first public Serbian financial-sentiment model.

Contact

Write to filip@fantom.systems with a sample of the documents or the data source you have in mind, and what a good result would look like. You will hear back within one working day.

Upwork projects come with escrow and milestones, useful for a first engagement. Larger pilots can also run on a direct contract.