Inspiration

B2B customers can purchase across multiple divisions, each with a different eligible catalog. We wanted private order exports to become relevant, division-safe recommendations without an always-on endpoint, while exploring how OpenAI Codex could help build and deploy a production system.

What it does

Stages 1 and 2 are complete. The platform creates validated datasets and schemas from private order exports, then uses Amazon Personalize User-Personalization-v2 with optional Popularity-Count fallback. It produces batch recommendations per (USER_ID, DIVISION_ID), prevents cross-division leakage, validates against future snapshots, and publishes immutable full/delta cache artifacts. Proprietary records remain private.

How we built it

Python, pandas, PyArrow, Pydantic Settings, S3, Personalize, Lambda containers, Step Functions, EventBridge Scheduler, SQS, CloudWatch, IAM, ECR, and CloudFormation power the system. Codex helped turn staged requirements and real AWS failures into tested code, infrastructure, policies, and documentation. Lambdas submit jobs and exit; Step Functions owns long waits.

Challenges we ran into

Division-aware keys had to remain consistent through feature engineering, filtering, inference, validation, and caches. Numeric-looking IDs had to stay strings. We also solved managed-job retries, validation leakage, unknown divisions, output-prefix constraints, and deployment permission limits.

Accomplishments that we're proud of

The end-to-end AWS smoke deployment succeeded and enabled separate training, validation, inference, and cleanup schedules. All of this was implremented and deployed completely by Codex ChatGPT 5.6 Sol. Runs are immutable, setup is idempotent, failures are resumable, and verified recommendation artifacts are exposed through stable S3 manifests—without campaigns or permanent endpoints.

What we learned

Reliable ML depends on schemas, manifests, validation, idempotency, and ownership as much as the model. Staged Codex collaboration was strongest when every deployment failure became a concrete fix and regression test.

What's next for Recommendation system

Next come division-aware demand forecasting, transactional MySQL publishing, automated validation reports, stronger monitoring, and optional custom recommendation models.

P.S.: Even the Codex prompts for implementing this were generated by ChatGPT 5.6 Sol itself after implementation discussions with it. And the hackathon video was also generated by ChatGPT 5.6 Sol without invideo (no credits available), by utilizing ffmpeg, local Ubuntu TTS, storyboard & narrative scripts.

Built With

Share this project:

Updates