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.
- 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
| Package | Price | Time | You get |
|---|---|---|---|
| Pilot | $200 | 5 days | Proof on your sample and a short report with the numbers. |
| Working version | $500 | 10 days | A runnable script or API with documentation, ready for your team to use. |
| Integration | $1,500 | 21 days | Deployed 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.
{
"mcpServers": {
"belex": {
"command": "npx",
"args": ["-y", "belex-mcp"]
}
}
}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.
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.
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.
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.
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.