MGC Developments

Hiring · AI Developer & Engineer

Build something small that actually runs.

A practical task in four parts — AI development, database, ML and web development. About 90 minutes. We'd rather see something rough that works than something polished that doesn't.

4 parts · about 90 minutes Deadline Fri 16 Oct · 11:59 PM PKT Closes in … Any stack AI tools allowed

The situation

Two things eat our sales team's day.

  • Staff answer the same questions about price, payment plans and booking policy over and over, usually by flipping through PDFs. They get it wrong often enough to matter.
  • We get far more leads than the team can call. Nobody knows which to call first, so they work down the list by date and the good leads go cold.

This task is a small slice of both. Everything you need is in the task pack: three real MGC documents and a leads dataset (9,160 rows).

The task

Four parts. About 90 minutes.

If you hit 90 minutes, stop and submit what you have — with a note on what you'd do next. That's a completely acceptable submission and we've hired on them before. Finishing two parts well beats rushing four.

Part 1 · AI Development · ~30 min

A grounded document assistant

Three MGC documents: a brochure, a price list with payment plans, and a booking policy FAQ. Build something a salesperson can ask questions of in plain language and get an answer grounded in those documents. Every answer must name the document (and section) it came from — an answer without its source counts as wrong.

QuestionWhy it's here
Base price of a 2-bed in Block B?Straight lookup
Total for a Margalla-facing corner unit, floor 15, 2-bed Block B?Base price plus stacked premiums
Overseas buyer pays 50% upfront on a 3-Bed Executive — price after discounts, and what's due at booking?Discount stacking + payment plan, across two documents
What's the transfer fee?The two documents disagree. Handle it.
Rental yield on a 1-bed?Not in the documents. Don't invent one.
Who is the anchor tenant?Explicitly unconfirmed. Say so.

The last three matter more than the first three. A confident wrong answer costs us a sale. "I don't have that, ask the marketing manager" costs us nothing. Hint for the arithmetic: language models are bad at it — decide where the maths should actually happen.

Part 2 · Database · ~15 min

Schema & queries for a messy CRM

leads.csv is the dump of a messy CRM (~9,000 leads). Treat it that way:

  • Design a minimal SQL schema you'd store this in properly — schema.sql. One table is fine if you can defend it.
  • Write three queries in queries.sql: conversion rate by lead source (200+ leads only, best first); a query that finds the duplicate leads and keeps exactly one canonical row per pair with a deterministic winner rule (plus a comment on preventing them at schema level); and conversion rate by city after normalizing the messy spellings (ISB, Rwp, khi, UPPERCASE) inside the query itself.

Any SQL dialect. Runnable is best, but clearly written counts.

Part 3 · ML · ~25 min

Lead scoring, honest baseline

Same leads.csv, outcome column converted:

  • Decide what you'd clean, drop or fix — and write those decisions down. A few bullets in your README is enough.
  • Train a baseline model that scores likelihood to convert. No tuning — a notebook or script is fine.
  • Split by time, not randomly — train on older leads, test on newer — and say why that matters here. We'll ask about your split on the call.
  • Report one metric against a no-skill baseline, and translate it: if the team can only call the top 100 scored leads, how many convert?

The data is real-world shaped: missing values, duplicates, inconsistent spellings, and columns of varying usefulness. Part of the test is noticing which columns you should and shouldn't use.

Part 4 · Web Development · ~20 min

One page that ties it together

A minimal web interface where a salesperson can do both:

  • ask the document assistant a question and see the answer with its source, and
  • enter a lead's details and see its score.

Bare HTML served by anything — Flask, FastAPI, Express, Streamlit. No styling points. It should run on our machine from your README.

mgc-task-pack.zip The full brief, three MGC documents, and leads.csv (9,160 rows) · ~310 KB
↓

How we judge it

We read it, run it, then talk to you about it.

Does it run

From your README, on our machine, without back-and-forth.

Part 1's hard cases

Grounding, source citation, refusal, the conflict — and where you put the arithmetic.

Part 2's schema sense

Keys, types, the dedup winner rule, and the normalization.

Part 3's decisions

What you dropped and why, the time split, and an honest number tied to the business.

Part 4 working at all

Wiring, not looks. Bare HTML is completely fine.

Code you can explain

Structure over style. Every line is fair game on the call.

What we're not looking at: visual design, test coverage, deployment, auth. Don't spend your 90 minutes there.

Ground rules

Use AI tools. Seriously.

Claude, Copilot, ChatGPT — whatever you normally use. We do too, and pretending otherwise would tell us nothing about how you actually work.

The one thing that matters: you must be able to explain every line you submit. Shortlisted candidates get a 30-minute call where we open your repo and ask why you did things. That's the real interview. Code you can't explain is worse than code you didn't write.

Questions about the task itself: 0308 77 77 275. Asking a clarifying question is not a mark against you.

Submission

Submit your work

Push to a public GitHub repo and drop the link here before Friday 16 October, 11:59 PM PKT. The form closes automatically at the deadline.

Submissions are closed

The deadline (Friday 16 October, 11:59 PM PKT) has passed. If you believe this is an error, WhatsApp 0308 77 77 275.

Public, please — we won't be able to review a private repo.

A few short questions

Two or three sentences each. These are what we'll open the call with.

Answering honestly here has never counted against anyone.

✓

Received

Thanks — your repo is with the MGC team.

We run and review every submission properly. Shortlisted candidates get a 30-minute call where we go through your code together.

Questions? 0308 77 77 275