FOLKO.APP Out 4 November Out 4 Nov

How a voice note becomes a searchable network

FOLKO is a personal CRM built around voice notes. After you meet someone, you record what they told you; FOLKO transcribes it, pulls out the facts, and later answers questions about your network — including about people you have not met yourself, because your contacts mentioned them. The database is on your phone.

Four steps, and you only do the first one

1

You talk, 60–90 s

One button on the home screen starts the recorder: a waveform, a timer, stop and cancel. You say who you met, where, and what they told you. Spoken register is the expected input — the recordings it was measured on are exactly that.

2

The audio is transcribed

The file goes through our proxy to a speech-recognition service and comes back as text. The proxy exists for one reason: so that API keys are not compiled into the app, where anyone who unpacks the .apk would find them. The audio is never written down on our side: it exists only for the seconds the request is open. On the phone it is deleted too, as soon as the note is saved — only the text stays.

3

The text becomes records

The transcript goes to Claude and comes back as structure: the person, their role, company and city; the facts; the third people who were mentioned; the promises in both directions; the next action; the tags. Each fact is written twice — as it was said, and normalised. That second copy is what makes search work later.

4

You approve or fix it

The review screen shows everything the model produced. The person — name, role, company, city — you can edit; the facts and the mentions you can read, and the low-confidence ones are marked. Nothing is saved until you say so — that is a step in the loop, not a setting you can turn off. Every saved record also carries the model and prompt version that produced it.

Which means a bad extraction is a correctable one: when the extraction gets better, we know exactly which records were made by the version that was worse.

The mention is the part no other app has

A mention is a third person who came up in a conversation and whom you have never met. It is a record of its own, in its own table, with the same standing as a contact. It can have no surname, no number and no company — “his wife works at a bank” is a valid mention, and it is enough to answer a question about who works at a bank.

A sales CRM stores deals, and this person will never be a deal. LinkedIn stores the graph, and it will never store what was said. There is no field anywhere for “Mantas’s brother, handles contracts, Klaipėda” — which is why the useful half of a conversation has never been written down.

Text search doesn’t work in the way people talk

Text search compares characters. People don’t repeat characters — they use a synonym, a paraphrase, or the same word with a different ending. So the word in the note and the word in your question almost never match, and the search that works perfectly on your own writing fails on somebody else’s speech.

What the note said, what you asked, and what each kind of search does with it
THE NOTE SAID YOU ASKED TEXT SEARCH FOLKO
“handles contracts” “lawyer” no match — paraphrase found
“attorney” “solicitor” no match — synonym found
“teisininkas Klaipėdoje” lawyer, in Klaipėda, locative case “advokatą Klaipėdoje” attorney, in Klaipėda, accusative case no match — synonym and case ending found
“his brother” “who knows a lawyer?” nothing to match — he was never a contact found, with the chain
“werkt bij een advocatenkantoor” works at a law firm “lawyer” no match — compound word found
“es abogada” she is a lawyer, feminine “abogado” lawyer, masculine no match — gender ending found

Spanish and Dutch are planned, and those two rows show what the approach has to handle, not what has been measured. Only Lithuanian and English have been measured, and English on three recordings.

Two layers, not one

First, at extraction time, every fact gets a normalised form beside the spoken one: “Klaipėdoje” becomes “Klaipėda”, “dirba teisininku” becomes “teisininkas”. The profession itself is left as it was said. Second, at search time, a language model reads the question against those facts — and that is the layer that knows “advokatas” and “teisininkas” are the same job. No stemmer, no synonym list.

What leaves the phone when you ask

The names, roles, companies and cities of your people, their facts and the mentions — assembled on the phone and sent with the question. Not your transcripts and not your audio. It is used to produce the answer and not kept: there is no contacts table on the server, so there is nowhere for it to be written down.

The whole data path →

What it will not do

  • It does not read your email, calendar or LinkedIn
  • It does not sync your phone’s address book
  • It does not share anything with a team — there is no team
  • It does not run without a network, because the models are not on the phone

The LinkedIn part is not a decision, it is an API: searching people by name and pulling profile data are not endpoints that exist. What works is the QR card, which often already carries a LinkedIn URL, and a button that opens a search. Automatic matching will not happen.

Out 4 November