Offers register and purchase demands register


Two registers, one database,
and the matching happens on its own

TanVilla brings the offers register and the purchase demands register into one database, and shows the matching buyers, with names and phone numbers, the moment you record an offer.

Arabic first, with full right to left support, and French in one click.

The problem

The buyer is already in your register, but nobody links the two files

سجل عروض للبيع
بيان العقارالثمن
أرض 320م²240 مليون
شقة S+2210 مليون
منزل المروجات230 مليون
عمارة R+43مليارات ونصف
No link
سجل طلبات الشراء
الموقع المطلوبالميزانية
المروجات · سكنى250 مليون
المروجات · سكنى200 مليون
المروجات · سكنى240 مليون
+ 5 مشترين آخرين200–250 مليون
8buyers in the demands register want residential property in El Mourouj on a budget of 200,000 to 250,000 TND.
2Two separate files: the cross-reference only exists in the agent's head.
Prices written colloquially, such as 3مليارات ونصف, 950مليون and 800دينار متر: neither sortable nor searchable.

The moment

You record the offer, the buyers' names appear

عمارة غير مكتملة · 600م² · R+4سكنىبيعنشط
مرناق القصيبي، ولاية بن عروس · شهادة ملكية فردية · تكليف حصري MRN-04-0117
3.5 مليارقابل للنقاش

تم العثور على 4 مشترين مطابقين

فتحي بن عمّارشاريحتى 4 مليار · فلوس كاش
98 658 •••22 417 •••
ضمن الميزانيةنفس المعتمديةالمساحة مطابقة
96%
اتصال
Price 40Location 30Surface 15Rooms 10
سامية الجندوبيشارية3 مليار إلى 3.6 مليار · عن طريق قرض بنكي
55 302 •••
ضمن الميزانيةنفس المعتمدية
88%
اتصال
رضا الحمرونيأم/أب شاريحتى 3.2 مليار
52 732 •••
فوق الميزانيةقابل للنقاشنفس المعتمدية
74%
اتصال
نبيل الطرابلسيشاريمقيم بالخارجحتى 4 مليار · فلوس كاش
+33 6 27 35 •• ••
ضمن الميزانيةنفس الولايةالمساحة غير محددة
61%
اتصال

Illustrative data. The names and numbers are not real.

Scoring

Why this buyer is at the top

Matching starts with hard filters: transaction type, property category, location, then price and surface. Whatever survives is ranked on points, and only the criteria the buyer actually stated are counted.

Points breakdown
Price40
Location30
Surface15
Rooms10
+5 points when the price is negotiable+5
Price band
Within budgetUp to 15% over budgetUp to 25% when the price is negotiableThis offer's price

Fields

Every field serves the matching

Structured price
مليار
3,500,000 د.ت
للمتر المربعقابل للنقاش
Hierarchical location
بن عروسمرناقكل المعتمدية
24 governorates264 delegations
Mandate
حصريغير حصريA number per agent, with no collision even when two agents record at the same time.
Record status
نشطمحجوزتم البيعمسحوبمنتهي
A sold or withdrawn offer stops appearing in match lists.
Matching both ways
OfferDemand
A new offer looks for buyers, a new demand looks for offers.
Two roles only
AgentAdmin
Create and edit records
Reports and settings
User management

Scope

What the pilot covers, and what it does not

In scope
Offers register, demands register and contactsBidirectional matching engine, with a status per matchStructured price, hierarchical locations and numbered mandatesFive statuses per record: active, reserved, sold, withdrawn, expiredOne off import of both Excel files, with review sheets
Out of scope
WhatsApp and Messenger chatbotPaid add on laterContract generationPhase 2Self service Excel importAfter three agenciesListing caption generationBacklogOffline syncAfter the pilot
The app is online only during this phase. The schema is ready for sync later without a rebuild.

How it works

Three steps, from the file to the call

01

Import both registers

We import your existing Excel files once, with a review sheet for every row that needs checking before it is saved.

02

Record the offer or demand

Structured fields for price, location, surface and mandate, instead of free text nothing can search.

03

Call the buyer

The matching buyers appear right after saving, ranked, with numbers you can call in one tap.

Your registers, matched automatically

Send us both Excel files and we hand them back inside the app, with the first list of matches.

Email: pending · Phone: pending