Field appraiser app with server-driven acceptance forms over an existing valuation platform
Native Android and iOS companion apps that let independent property appraisers accept assignments, schedule inspections, message and review documents from the field, with the highest-stakes screen in the product — the formal acceptance workflow — rendered dynamically from forms the platform itself defines.
An appraiser's job happens away from a desk, but the system running their workload was a desktop portal. Assignment offers carry a fee and a due date and get reassigned if they sit unanswered, so an appraiser who cannot see and act on an offer until evening loses work to one who can respond within the hour.
Accepting an assignment is a formal act, not a button — it means accepting engagement terms, and accepting with conditions means recording what those conditions are. That paperwork varies by managing organisation and changes for commercial and regulatory reasons, and hard-coding it into two native apps would mean an app-store release cycle every time a clause changed.
Independent appraisers often work for several managing organisations at once, so a single login and a single inbox mattered more than it would in a typical B2B app. And the platform this had to sit on top of already existed and was live — the API's response conventions, date formats and quirks had to be absorbed defensively rather than asked to change.
Built both clients against the platform's existing purpose-built mobile API exactly as it stood, rather than requesting changes to a live enterprise system, and absorbed its response conventions and data-format quirks inside a single networking layer per client so no screen above it was ever exposed to them.
Made the acceptance workflow server-driven. Each client asks the platform for the form definition appropriate to a given assignment and action; the platform returns an ordered list of typed, captioned, optionally-required controls — including formatted terms-of-engagement panels — which the client lays out, validates by type, and posts back as a generic answer set. Terms and conditional-acceptance questions can now change on the server with no app release on either platform.
Served licence, privacy, help and onboarding content from the platform the same way, for the same reason.
Added derived, on-device dashboard views — overdue, unread, appointment-required, all-outstanding — computed once from a single payload so the counts can never drift from the lists behind them, and built connection-key enrolment so one appraiser can work for several managing organisations from a single inbox, with every assignment scoped to the organisation it came from.
Treated the network as unreliable on both platforms: a local relational mirror on Android renders the dashboard before the network responds, and a timed in-memory cache does the same job on iOS, sized to the refresh window the app actually needs.
The administrative half of an appraiser's job moved into the field instead of into the hours before and after it — offers, acceptance, scheduling, messaging and document review all completed from a phone.
Engagement terms and acceptance questions became a server-side change rather than an app-store release on two platforms, and an appraiser connected to several managing organisations sees all of their work in one inbox, correctly scoped to each.
Coordination stays attached to the assignment record through in-app messaging instead of scattering into email and phone calls, and documents are readable at the property instead of back at the office.
Something holding you back?
New build, rebuild, or adding AI to what you already have — I'll take a look and give you an honest perspective.