← Back to work

Publication · IEEE COMPSAC 2025

Bluetooth Social Networking

Networking at a conference depends on three fragile things: bumping into the right person, remembering it afterwards, and actually sending the request. At Discovery Partners Institute I worked on an Android app that uses the Bluetooth radio already in everyone's pocket to notice when two attendees are genuinely in conversation, and log it as a connection worth making.

RoleResearch intern · co-author
TimelineJun 2024 – Aug 2024
StackAndroid, Bluetooth RSSI, Navigine indoor positioning, BLE beacons
StatusAccepted · IEEE COMPSAC 2025
60+NUS delegates the work was presented to
5 mproximity threshold for a logged encounter
3 mindwell time before proximity counts as a meeting

The problem

Professional networking is essential and almost entirely unassisted. It runs on chance encounters in hallways and pre-scheduled meetings, on remembering who you met, and on remembering to connect with them afterwards. Any one of those three failing means the connection never happens, and at a conference with a thousand attendees, all three fail constantly.

Contact tracing research has solved a version of this, but usually by deploying infrastructure: BLE beacons handed out to participants, or RFID tags issued at the door. That works and it does not scale to an ordinary event. The question we took on was whether the phones people already carry are enough.

What I built

An Android app in which each phone broadcasts a Bluetooth UUID and scans for others, recording the Received Signal Strength Indicator to infer how close the other person is. Two users within 5 metres for at least 3 minutes get logged as an encounter, a proxy for "these people actually talked." Around that sits an indoor positioning layer and a privacy protocol.

  • Wrote and ran the survey instrument that shaped the feature set: how often people use LinkedIn, whether they email the contacts they make, what their intention is when they attend an event, and how long after meeting someone they actually send the request.
  • Built indoor positioning on Navigine, which locates users against a floor plan, and cross-checked its output against stationary Bluetooth beacons to cut down false positives and negatives.
  • Implemented the encounter logic on top of raw UUID scans and RSSI readings, then a privacy protocol that regenerates each user's UUID on a rotating basis so a persistent identifier never leaves the device.
  • Worked through the centralized-versus-decentralized architecture question deliberately rather than defaulting, since contact tracing apps live or die on whether users trust where the data sits.
System architecture diagram. A User block holding Profile and History feeds an Offline block (Encounters, Positioning System), a Conference System block (Program, Session, Items) and an Online block (Notification, Message); all three feed a Recommendation block holding Proximity and Homophily.
[Caption — how the pieces fit together: the offline signal, the online signal and the conference program all feed the recommendation layer.]
Four-screen user flow. First, an alert asks whether to join the network for the keynote session that just ended. Second, the joined keynote network lists the other attendees. Third, a connect screen for Dianna Perkins offers Facebook, LinkedIn, profile and business card. Fourth, a “why connect with Dianna” screen lists the shared breakout sessions, the person they both met, and the forum they both favorited.
[Caption — the flow from the user's side, from the post-session prompt through to the reasons the recommendation is surfaced.]

What happened

We tested in a controlled setting, and the failures were more informative than the success. In the first case, two people were in conversation and a third sat eight feet away, uninvolved; we expected one encounter between the pair and none involving the third. What we got was the inverse: two encounters involving the bystander, and asymmetric detection between the pair, where one phone saw the other but not the reverse. Traced back, the causes were mundane and exactly the point: one phone had its scanning feature off, and the third person's phone was inside a bag, attenuating the signal. The second case, with all three in conversation and all phones on the table, logged every pairing correctly and for the right durations.

So RSSI alone is not enough. Device placement, phone model and per-user settings move the signal more than distance does, which matches what the literature reports about proximity accuracy across contact tracing apps. The work was presented to 60+ delegates from the National University of Singapore and accepted to the IEEE COMPSAC 2025 Symposium on Human & Social Computing. What follows is adding audio to separate a real conversation from standing near someone, using deep learning to tell whether a user is sitting in a speaker panel or actually talking, and pulling in the LinkedIn API, with permission, to know which connections a user already has.

Next project 21Meals →
Get in touch