A headline says a new drug "cuts heart attack risk by 40%." Is that an FDA approval, a peer-reviewed trial, a preprint nobody has checked yet, or the company's own press release? Most health feeds don't tell you, and the difference is everything.
HealthSurface is a free reading list of health news, funding and jobs. Every story is labeled by source type and summarized by AI. I built it for people moving into health tech: nurses, pharmacists and hospital administrators retraining as product managers, analysts and founders, who today follow the industry through a dozen tabs and a lot of guessing about what to trust.
Scope of Work

One reading list with three tabs that share the same Sector and Focus area tags. There are no accounts, no personal data and no medical advice, and every item links to its original source.

Language models are good at reading and bad at being trusted, so I split the work on purpose. Code decides the facts: the Source type label (from where an item came), links, dates, deduplication, the free-to-read check and job board verification. Amazon Nova handles the reading: sector and focus areas, a two-sentence summary, whether a headline announces funding, and job function, type and seniority. Every model reply is checked against the taxonomy, and off-list answers are dropped instead of trusted.
Funding facts are checked in code. Early on, the model labeled a $1B Sanofi and Regeneron partnership as a "Series B" round. Now a story only counts as funding if the text says raised, closed or secured, and the amount, round and investors must each appear in the source text or they're left blank. The model can't invent a number.

HealthSurface runs entirely on AWS, defined as code in a single AWS SAM template:
/api/* to API Gateway, so there's one public URL and no CORS. Deploys finish with a CloudFront invalidation.sam deploy.aws login): how the coding agent connected to the account to run every deploy.
I wrote the product brief and shipped HealthSurface in one evening with Claude Code (Claude Opus 5.5), which ran every AWS step itself: the identity check, the Bedrock model check, the budget, the guardrail, every sam deploy, the S3 uploads and the CloudFront invalidations. Each build step was tracked as a Linear issue through the Linear MCP connector and deployed on completion, so there was always a working live version. The first AWS command ran at 4:42 PM; all three tabs were live with real data by 5:16 PM.
The rest of the evening went to quality, including problems a tutorial wouldn't cover:
Python, Amazon Bedrock (Nova Lite), Bedrock Guardrails, Amazon Polly, AWS Lambda, EventBridge Scheduler, DynamoDB, S3, CloudFront, API Gateway, AWS SAM, AWS Budgets, Claude Code, Linear MCP, GitHub. Backed by 53 unit tests.
An MCP server and an Alexa+ daily voice briefing that reuse the classifier as-is; it's a plain Python module with no AWS code, and the model is passed in as a function. Also on the roadmap: ClinicalTrials.gov and Europe PMC as sources, email digests by focus area, and paid alerts for investors and operators while the reading list stays free.