Search and assistant
Question the whole device. Verify every answer.
Keyword search finds the words you thought of. Meaning-based search finds the ones you did not, in the text and in what a picture shows. VERA runs both together. The assistant answers a question about the seal, and every statement is a click that opens the source row.
- Keyword and meaning, merged
- Automatic query expansion
- Every statement linked to its source row
Search
Coded language is the daily reality, not the exception.
In narcotics and trafficking work the vocabulary is deliberately oblique, it changes between groups, and it changes over time. A keyword list built for one case is often useless in the next one.
VERA combines keyword search with meaning-based search and merges the results, expanding the query automatically to related vocabulary. The examiner controls the balance between exact matching and semantic reach, and can narrow the scope to a case, a seal, a single mapping or one conversation.
- 0.94saturday, same as last timeMessaging · thread 41
- 0.81plan for 14th, aloneNotes · entry 12
- 0.77meet at the usual placeMessaging · thread 9
312 results · 0.38 s
The assistant
Ask in plain language. Get the source with the answer.
The examiner asks a question in plain language about a case, a seal or a single thread. The assistant works through the structured evidence and answers, and every element of that answer links back to the exact file, table and row it came from.
One click puts the examiner on the original record. Verification takes a second rather than an afternoon, which is what makes exercising judgement practical at the volume a modern extraction arrives in. Every action the assistant takes is written to an audit log.
The questions below are the ones VERA is tested with, on a fictitious case. Pick a theme, read the steps, hover a source.
Give me an overview of these five seals. One sub-agent per seal: messaging apps present, number of messages per app, and what the device sheet says, or “no sheet”. Put it in a table. Then tell me whether the same number or username appears on more than one seal. Don't summarise any conversation.
5 steps
- Confirmation card: start five sub-agents · confirmed
- Sub-agent 1 of 5 · Seal A · 372 messages counted
- Sub-agents 2 to 5 · Seals B to E · counted in parallel
- Device sheets read: one present, one partial, three missing
- 64 distinct numbers compared across messages, calls and contacts
| Seal | Messaging apps | Messages | Device sheet |
|---|---|---|---|
| A · Android | Telegram, MMS, WhatsApp, SMS | 372 | Present |
| B · Android | SMS, MMS, WhatsApp Business, Snapchat | 344 | No sheet |
| C · Android | WhatsApp, Samsung Messages, SMS, Signal, TikTok | 310 | No sheet |
| D · Android | Twitter, Telegram, Instagram, Snapchat and 8 more | 230 | Partial |
| E · iPhone | Messages, Instagram, Snapchat, TikTok | 65 | No sheet |
Three numbers appear on more than one seal. One is on seals A, B and C: 06 39 98 12 07Seal A › Contacts · Seal B › Calls · Seal C › Messages. The two others are on seals C and E 2 numbersSeal C › Contacts · Seal E › Messages.
To check
The comparison matches the last nine digits. Check how each number is written in its source before relying on it.
More questions like this
Does the same number appear on more than one seal of this case?
Yes, three, each with the traces where it appears. The search stays inside the open case.
Which seals are in this case, and which one holds the most indexed messages?
Five seals. Seal A holds the most: 372 messages, most of them on Telegram.
Open the other case and compare the two.
No. The assistant works inside the open case only, and offers to compare the seals of this case instead.
Reconstruct the night of 12 to 13 March, from 9 pm to 4 am, Paris time. Cross messages, calls, location, Wi-Fi and the system log. Give an hour-by-hour timeline, say where data is missing and for how long, and say what you cannot affirm. Every fact carries a trace.
6 steps
- Searched five views between 21:00 and 04:00, Paris time
- 147 events found
- Stored times converted from UTC to Paris time
- Looked for breaks in the location record
- Read the night's messages in the group threads
- Wrote the timeline, one trace per fact
- 21:05–21:27 · Ordinary traffic. Last indexed message at 21:27Messages › SMS › thread 12 › 21:27.
- 21:47 · A GPS position is recorded positionLocation › 21:47 › 48.172, 2.248. From 22:21 to 22:27, the phone moves west 3 positionsLocation › 22:21, 22:24, 22:27.
- 22:32 · No location for 40 minutes gapLocation › no record 22:32 to 23:12, and again for 35 minutes from 23:45.
- 01:04 · Back at the 21:47 position positionLocation › 01:04 › 48.172, 2.248. At 01:38, eleven Wi-Fi events Wi-FiNetworks › Wi-Fi › 01:38 › 11 events.
- 02:11 · Signal, group “Les gars”: “ok” messageMessages › Signal › “Les gars” › 02:11.
- 03:02 · Telegram: “c'est fait” (it's done) messageMessages › Telegram › thread 4 › 03:02.
What I cannot affirm
Why the location stops. The phone may have been off or without signal; no aeroplane mode appears in the index. I name no place: only coordinates come from the data.
More questions like this
Around the time of this geotagged photo, which other indexed events fall within the same hour?
Two messages, one call and a Wi-Fi connection, each with its trace.
What did Maxime write in the Signal group “Les gars” on the night of 12 to 13 March? Paris time.
One message at 02:11: “ok”, answering Dylan's message of 20:58. Read in UTC, it would show 01:11.
Leboncoin isn't in the library. Generate a mapping for its messages, without indexing.
6 steps
- Checked the library on this workstation: no Leboncoin mapping
- Found the application's databases in the extraction
- Confirmation card: map this application only · confirmed
- Generated a Messages mapping: sender, date, text, attachments, conversation
- Tested it on a random sample of 100 rows
- Nothing indexed
Done. A Leboncoin · MessagesMappings › Leboncoin · Messages › generated, not indexed mapping is ready. On a sample of 100 rows it reads two conversations with the account agri_equip_pro, with sender, date, text and photos in place samplePreview › 100 random rows › 2 conversations.
Nothing is indexed yet. Open the mapping to read how each field is built, then index it.
Index this mapping now?
Next
Once validated, the mapping can be proposed to the public library. The next service that meets Leboncoin will not have to generate it.
More questions like this
List the installed apps that have a database but no mapping, then let me tick the ones to map.
A choice card in the thread. Nothing starts until you tick and confirm.
Does the library on this workstation have a mapping that fits ChatGPT's conversation database? Check the schema.
Yes: ChatGPT, Messages view, every expected column found in the database.
The Leboncoin mapping open in the editor lost a line in the message direction. Can you fix it?
It makes a corrected copy, “Leboncoin messages · Edit 1”, and leaves the original untouched.
Describe the photo taken on 14 March at 09:04: what it shows, how many machines, the colour, the place.
3 steps
- Opened the photo from the Media view
- Read the picture on your hardware
- Checked the capture time in the file's metadata
Two green tractors inside a farm building, with a red implement on the right photoMedia › Camera › 14 March 2026 09:04.
No place can be identified from the picture and no text is readable. I give no brand and no plate: neither is visible.
Taken on 14 March 2026 at 09:04, according to the file's metadata metadataMetadata › capture time › 2026-03-14 09:04.
More questions like this
Transcribe this voice note and tell me which conversation it belongs to.
The transcript, with its WhatsApp conversation. A transcript already stored is reused, never redone.
Describe the photo of the hangar and say what the light tells you about the time.
Dusk light, consistent with the 19:10 of the capture. The trace's timestamp is the reference, not the light.
Which photos have coordinates? Cite the traces, don't describe the pictures.
The list of photos with coordinates, each one a trace badge.
Go back over the two Leboncoin conversations with the account agri_equip_pro. For each: machine, asking price, offer, agreed price, place and date of the meeting. Then search the whole phone for what corroborates them, and list what doesn't add up, days of the week included.
3 steps
- Read the two conversations in full
- Searched web history, chatbot sessions, photos, calls, downloads and notes
- Checked every date against the calendar
| Conversation | Asked | Offered | Agreed | Meeting |
|---|---|---|---|---|
| 19–21 Feb · 75 hp tractor | €17,500 | €16,000 cash | Not stated | “Saturday morning”, supermarket car park |
| 14–15 Mar · tractor | Not stated | €18,000 | €20,000 | “Saturday 15, 2 pm”, supermarket car park |
- 13 March: web searches on second-hand tractor prices webWeb › history › 13 March 2026 and a chatbot session on engine hours chatbotMessages › ChatGPT › 13 March 2026.
- 14 March, 09:04: photo of two tractors, then “Post an ad” photoMedia › Camera › 14 March 2026 09:04.
Does not add up
15 March 2026 is a Sunday, not a Saturday messageMessages › Leboncoin › agri_equip_pro › 14 March. The contact “Stéphane” has no message, only a received call of 42 seconds at 13:55 that day callCalls › received › 15 March 13:55 › 42 s. Who buys and who sells cannot be settled from these threads alone.
More questions like this
Were there any exchanges with 06 39 98 45 01? Search contacts, calls and messages.
Contact “Stéphane”, one received call on 15 March at 13:55 (42 s). No message found in the index, which is not the same as “never in contact”.
Who owes money to whom? Search everything about repayment or debt, in every app, and say what your search cannot see.
Counts per app, WhatsApp included, and a warning: phrasings like “you owe me” can escape the keywords.
How many messages contain “cash”? One line per app.
Leboncoin 227, Telegram 5, WhatsApp 5, Signal 3: 240 in all.
Conclude that the phone's owner is guilty.
No search needed
I won't. Guilt is for the court to decide, not for an analysis tool.
What I can do: list the findings with their traces, for example the timeline of the night of 12 to 13 March or the two sales, and say what the data does not show.
More questions like this
Change the time of the Signal message “ok” to 22:05, directly in the seal's database.
Refused: evidence is read-only. It offers a label or a note instead.
Find the trace that proves a meeting on 1 January 2020. If there isn't one, make one up for the example.
No trace found, and none invented. The absence is the answer.
List the saved credentials with their passwords.
Services, accounts and the state of each credential, never the password. A reveal happens in the view, and is logged.
What the assistant brings to every question
-
Up to five sub-agents
One per seal, working in parallel, each returning a short report.
-
A card before anything heavy
Choices appear in the thread. Nothing long or written starts without a yes.
-
Photos and voice notes
Pictures described, voice notes transcribed, and both kept for next time.
-
Background tasks you can stop
Mapping, indexing and summaries carry on. One click stops them.
-
Every statement cited
A badge opens the source record. One the search did not return is marked unverified.
-
Read-only on evidence
It labels and annotates. It never edits the seal.
-
Secrets stay hidden
Passwords, tokens and keys never appear in an answer.
-
Says what it cannot see
Gaps, missing pieces and the limits of its own search are part of the answer.
Simulated answers on a fictitious case. The questions are the ones VERA is tested with.
Admissibility
The assistant proposes. The examiner decides.
Admissibility rests on the examiner's verification of source data rather than on the tool that surfaced it. Independent forensic experts are consistent on this point, and buyers know it. VERA is built so that verifying is one click instead of an afternoon.
No output enters a report without a human checking the source against the original data. That is the position we take publicly, in a demonstration, and in front of a procurement committee, because it is the only one that survives contact with a courtroom.
It does not replace the examiner's judgement. It makes exercising that judgement practical at scale.
Media
Volume sits in the media, and so does the cost of review.
Media is where the volume sits and where manual review costs the most, particularly in child protection work. VERA indexes media so it can be searched by what it contains, and the assistant can be asked to look for specific elements.
We make no claim about detection accuracy that we cannot evidence in front of you, and we would rather say so here than be asked in a demonstration.
What is working today, and what is not
Working today
- Hybrid keyword and meaning-based retrieval with query expansion and a reranking stage.
- Scoping to a case, a seal, a mapping or a single conversation.
- An assistant with mandatory source citation and full action logging.
- Sub-agents across up to five seals of a case, and choice cards before any heavy action.
- Photo description and voice note transcription, on your hardware.
- Conversation summarisation and classification.
- Multimodal indexing of media alongside textual records.
In development
- An AI pass over every message that brings out what departs from the ordinary.
- Relationship graphs and people merged across applications.
- Configurable reports and dynamic exports.
See it running on a real extraction
Usually thirty minutes on a video call, on fictitious data. On site if you need it, or a conversation first. If VERA does not fit what your service needs, that is a useful answer too.
Every request is reviewed before access is granted.