Dan Baruch · September 19, 2026 · 17 min read
Building HCM Intelligence, From Idea to Production With AI
A tour of the live product, the technology behind it, and the hands-on work of building with AI.
I built HCM Intelligence because I wanted a better way to follow the human capital management market. Company announcements, product updates, financial news, SEC filings, demos, and industry commentary are useful, but scattered. I wanted to bring them together in a product that helps me understand what is happening, keep the evidence, and turn the research into something worth revisiting.
The site is live and functional. You can follow companies, explore their news and filings, generate analysis, discover videos, compare stock performance, bookmark sources, and turn selected material into saved briefings. Around that are the other parts of a working application: accounts, preferences, authentication, email delivery, responsive layouts, and the infrastructure keeping everything running.
I would not have been able to build this on my own without AI-native development. It still took countless rounds of iteration: tuning the backend, refactoring code, refining the experience down to individual pixels, improving the analysis, testing the output, and connecting the supporting services. AI made the scope possible, but I drove the decisions, challenged the results, and kept working through what was not right.
1. Why this product
Human capital management spans payroll, benefits, workforce management, recruiting, talent, and the platforms connecting them. Having worked in this market, I know how much context sits behind a seemingly straightforward announcement.
A new feature can matter because of the workflow it changes. A filing can add context that never makes it into the headline. Several articles can cover the same announcement without adding much new information. Following the market means deciding which developments deserve attention and which sources warrant a closer read.
I wanted an application that connected those activities: start with a broad market view, narrow it to specific companies, inspect the underlying material, and save what matters. When enough useful information accumulates, turn it into a briefing rather than reconstructing the research from browser tabs.
2. The dashboard: a place to start
The dashboard brings together company coverage, recent news, SEC filings, market prices, and saved briefings. It provides an entry point without requiring a specific research question before opening the site.
The generated competitive overview has three sections: Key Developments, Implications, and What to Watch. Those distinguish what happened, what the evidence suggests it means, and what deserves follow-up.
The Generate Insight action respects the research scope. With Focus Mode off, it covers the broader tracked market. With Focus Mode on, it uses the selected companies. That scope is part of the analysis request, not a filter applied to a general answer afterward.
Sometimes the overview is enough. Other times, a development sends me into a company profile, an original article, or a filing.
3. Focus Companies: choose what you follow
The Focus Companies page combines a company directory with controls for setting a personal research scope. You can search by company, ticker, or product, filter for public or private companies, and open a profile to investigate further.
Opening a company and following it are separate actions. The star saves a company to your Focus list; selecting the company opens its profile. You should be able to research a business without automatically adding it to everything you follow.
The Focus control in the top navigation applies that list across the dashboard, news, daily updates, filings, search, videos, and eligible stocks. It also scopes dashboard insights and regular generated briefings. Turning Focus off returns to the broader market without deleting the saved list.
The stars define the companies, and the toggle decides whether that list is currently applied. Page-level filters can narrow the view further.
Bookmarks serve a different purpose. They are saved evidence, and a briefing generated from checked bookmarks uses those specific sources rather than the broader Focus scope.
4. Company profiles: connect the background to the evidence
A company profile brings together its description, website, headquarters, leadership information, and, where available, a ticker and stored market snapshot. From there, you can move directly into company-specific news or SEC filings.
The timeline places news and filings in date order, with controls for the period and evidence type. Dates and source labels stay visible so you can follow the sequence and open the underlying material.
Rather than treating every headline as an isolated event, the profile gives me somewhere to examine what came before it and what other sources say.
5. News Monitor, Daily Updates, and search
News Monitor is the main working feed. It supports search and filtering by company, topic, publication window, and sentiment. Card view provides a readable overview, while list view allows denser scanning.
Each item keeps the publisher visible and distinguishes it from the service that discovered the story. An article found through Brave Search should still identify the publication that wrote it. Opening the original, saving the item, and requesting a summary are available alongside the story.
Daily Updates brings news and filings into one view. Search provides another route into the collected material when you already have a company, headline, or topic in mind. These experiences share the same underlying collection, keeping browsing and follow-up research connected.
The sentiment filter uses keyword signals to group coverage by tone. It is another way to narrow the feed, not a definitive judgment about a company or event.
I also carried the same card design across Daily Updates, Bookmarks, and relevant search results so the controls remain familiar as you move through the application.
6. Article summaries: a useful first read
Requesting a summary opens a preview immediately, with a loading state while the analysis runs. That same preview becomes the reading view when the result arrives.
The intended output is specific: a one-sentence takeaway followed by up to six distinct highlights. Each should contribute something concrete about the development, its implications, risks, or timing. When the source contains less information, the answer should be shorter rather than filling space.
Before requesting a news summary, the server retrieves readable article text. The preview identifies the evidence used, including when the analysis is based on selected passages. When retrieval fails, the interface provides a message and next step instead of pretending a substantive summary is available.
The reading experience includes Copy and Listen, with playback-speed controls. Read-aloud uses browser speech, and the source title and evidence note remain visible beside the answer.
7. SEC filings: a different kind of source
SEC filings have their own view, with filters for annual, quarterly, current, and foreign-issuer reports. Each card keeps the filing date and original disclosure accessible.
Retrieval works differently from a news article. A filing’s index page identifies the report, but substantive information can be in the primary document or its exhibits. The application follows that structure, extracts usable passages, and labels the evidence supplied for analysis.
The summary instructions also reflect the material. Reporting periods, units, and currencies need to stay intact. Reported results should remain distinct from forecasts and risk disclosures. Where available, section references help the reader return to the relevant passage.
I wanted this to be useful for examining primary disclosures, not simply another feed of links with an AI button attached.
8. Video discovery: demos, podcasts, and industry discussion
The experimental Video Feed brings content from curated YouTube channels into the research workflow, including product demos, podcasts, news shows, and educational material.
You can search, filter by company or category, change the layout, save an item, and open the original on YouTube. A demo can help explain how a vendor presents a capability, while a podcast can introduce a question worth investigating.
The AI preview uses the video’s title and description to help you decide whether to watch. It is not a summary of the complete video or a claim that the system has reviewed its transcript. The original remains the place to hear the full discussion or see the product demonstrated.
9. Stock tracking: financial context alongside the research
The stock tracker adds another perspective for public companies represented in the product. It includes selectable history ranges, comparison views, delayed stored prices, and an Analyze Trend action.
The application calculates the measured change over the selected period and identifies the high and low. That information, together with related news evidence, can be supplied to the model for an explanation.
The numerical work and interpretation stay distinct. The chart establishes what happened to the price over a particular period. Related coverage can provide possible context, but its presence does not establish why the price moved. For vendors owned by a larger public company, the displayed share price represents the parent business.
This provides another starting point: inspect a movement, compare the period, and follow the associated coverage into the broader company story.
10. Bookmarks: keep the evidence that matters
Bookmarks turn a browsing session into a research collection. Stories and filings can be saved, searched, filtered, and revisited.
You can check specific items, review the selection, and generate a briefing from that evidence. The current workflow supports up to twelve saved news items and filings.
That selection defines the briefing’s scope regardless of Focus Mode or publication date. An older filing can sit alongside a recent article when both matter to the question you are investigating.
This is deliberately different from requesting a recent market update. One workflow asks what has happened lately; the other lets you decide which evidence belongs together.
11. Briefings: turn research into something reusable
A regular briefing takes a recent window of news and filings and turns it into a saved report. A selected-source briefing starts from the items you checked in Bookmarks.
The reader shows the creation time, scope, source information, and generated sections. Saved briefings remain available in the adjoining list, so the output does not disappear when the generation dialog closes.
You can reopen a briefing, listen to it, or download it as a PDF. Enabled accounts also have briefing email and share-link functionality, and share links can be disabled later. Source references provide a route back to the evidence.
I also worked on the writing itself. The current profile takes inspiration from a McKinsey-style executive brief: lead with the main point, make the evidence easy to scan, and avoid filler. That direction becomes specific instructions, including a target of roughly 280–420 words, an Executive Summary of no more than two bullets and 60 words, and distinct Key Developments.
The instructions call for each event to appear once and each bullet to carry a supplied source reference. The backend selects and enriches a bounded set of sources, supplies those references, and checks returned citation identifiers against the evidence set.
A valid citation identifier is not proof that a sentence represents its source correctly. Reviewing the substance of the writing remains part of improving the feature. The goal is a report I can return to, share, and question, with its supporting material still attached.
12. Accounts, onboarding, preferences, and email
An account connects the personal parts of the application: the saved Focus list, bookmarks, and briefings. Sign in with Google and email magic links provide entry points, while an onboarding walkthrough explains how to move from browsing to following companies and saving material.
Settings includes a timezone preference for displayed dates and times, plus a way to reopen the walkthrough. Signed-in preferences are saved to the account; guest preferences remain in that browser. Changing the display timezone does not alter an event’s underlying timestamp.
For accounts with scheduled briefings enabled, delivery can be configured daily or weekly, with a local time, timezone, and scope covering either Focus companies or the whole market. The current feature supports up to two schedules, and both daily and weekly delivery use a seven-day briefing window. Availability depends on the account and feature settings.
The delivery timezone is separate from the display preference. Changing how dates appear should not quietly change when an email arrives.
Resend is part of the email infrastructure behind these workflows. Getting communications in place was part of the build alongside authentication, account behavior, and the rest of the application.
13. The experience across devices and states
I spent substantial time refining details that can look minor in a screenshot: spacing, alignment, wrapping, labels, control placement, and how much information belongs in a card.
The application needs to work before, during, and after an AI request. Loading indicators, retry controls, failure messages, and completion states are part of the experience, not finishing touches around the generated answer.
Responsive behavior needed the same attention. Desktop has room for persistent navigation and supporting context. Tablet and phone layouts need more compact controls and a reading flow that works in a narrower column. Actions should stay together when there is room and wrap cleanly when there is not. Light and dark themes need readable source labels, clear selected states, and usable contrast.
Some iterations made a feature work. Others made it feel right at a different width or in a different state. I kept returning to the actual interface because an implementation can be technically functional and still need another pass.
The same feed, across three screen sizes
Signed-in browser views at desktop, tablet, and phone widths. Filters and navigation reorganize as space narrows. Tap any view to enlarge.
Light and dark, side by side
The signed-in News Monitor in both themes. Tap either to enlarge.
14. Underneath the product: collecting and organizing the information
The backend collects information from RSS feeds, company-oriented Brave news searches, SEC data, selected YouTube feeds, and stock-price sources. Scheduled refreshes build on the stored collection used throughout the application.
Before that information becomes a card or enters an analysis request, it needs company matching, topic classification, date handling, URL resolution, duplicate checks, and storage.
Each step has practical complications. A company can appear under several names. The same announcement can arrive through multiple feeds. A discovery link can lead to an aggregator rather than the publisher. A story collected today may have been published several days ago.
Publication time and collection time are kept distinct. One describes when the source published the story; the other describes when the application found it. Publisher attribution and usable source links also need to survive the collection process.
This shared collection supports feeds, company timelines, search, and briefings. Improving it benefits several features at once, which is why backend work became such a significant part of the iteration. A better prompt cannot make up for supplying the wrong source or placing an old story in the wrong context.
15. The AI inside the product
HCM Intelligence uses AI for defined tasks: article summaries, filing summaries, competitive overviews, cited briefings, video previews, and stock commentary. Each has its own instructions and source material.
The application controls the task, evidence, and available tools. Source material is supplied as evidence, not as authority to redefine the request.
Product requests run on the server through OpenRouter. Its common API provides access to different models without requiring a separate provider integration in every feature. The application’s API credential stays on the server rather than in the browser.
This is separate from the AI tooling I use for development. The model helping me refactor the backend does not have to be the model generating a user-facing briefing. Changing my development model does not automatically change the product’s configured analysis model. They have separate integration and usage paths.
That lets me experiment with development tools while maintaining a deliberate configuration for the application itself.
Tuning the output and checking the result
A significant amount of work went into the analysis beyond choosing a model. I iterated on the retrieved evidence, instructions, response structure, evaluation, and presentation.
Dashboard instructions distinguish developments from implications and questions to watch. Briefing instructions constrain length, repetition, structure, and source references. Filing instructions preserve the distinctions that matter in financial disclosures.
Caching reuses retrieved text and recent results while keeping answers associated with the relevant company scope and model.
Evaluation combines automated checks with review of generated results. Checks look for unavailable evidence, invented citation identifiers, missing citations, incomplete responses, and formatting problems such as duplicated headings or cut-off sentences. Human review examines whether the output is clear, relevant, and faithful to the supplied material.
An answer is not finished just because it is fluent. It needs to help the reader understand the source without saying more than the evidence supports.
16. The stack and the path to production
HCM Intelligence runs on a DigitalOcean Droplet with Ubuntu Linux. Caddy serves the site over HTTPS, and systemd manages the application process.
The frontend uses React and Vite, with Tailwind for styling, Radix UI components, and Recharts for stock visualizations. Node.js and Express power the backend, SQLite stores the product’s data, and GitHub holds the versioned source. OpenRouter supports the product’s model integration, with Google sign-in and Resend handling authentication and email.
I wanted a stack I could inspect and work through across the whole application. The interface, collection pipeline, analysis, account behavior, and deployment needed to connect, with an environment that supported debugging when something did not behave as expected.
A separate development environment provides room to test before release. Automated checks and responsive reviews support that process, with backups and a previous release available for rollback.
The broader workspace includes browser testing with Playwright and release evidence such as build output, test results, live checks, and screenshots. Those records give me something concrete to inspect rather than relying on an agent’s statement that a change worked.
17. What building it with AI actually looked like
AI participated throughout the process: shaping ideas, planning changes, writing code, tracing bugs, refactoring, refining copy, testing, and preparing releases.
My role was not limited to describing the initial concept. I worked through the product repeatedly, deciding what was useful, what was confusing, what the analysis was getting wrong, and which parts of the implementation needed to change.
Some rounds focused on the backend and how information moved through the application. Others focused on navigation, filtering, or individual spacing and alignment decisions. There were iterations on generated analysis, evaluation checks, authentication, email communications, infrastructure, and the connections between those pieces.
That work was often less tidy than a feature list suggests. A backend change could affect the data shown in a card. A revised output structure could require a different reading experience. A layout that worked on desktop needed another pass on a phone.
The tools made it possible to work across those boundaries, but I still had to judge the result.
Working through OpenClaw, Codex, and DeepSeek
OpenClaw provided a persistent remote workspace. Codex gave me another way to inspect and work on the product code, and DeepSeek contributed substantial development work. The project was not dependent on a single conversation with one model.
The persistent workspace matters because useful context extends beyond a prompt. Repositories, project documents, architecture notes, backlogs, operating procedures, tests, logs, and release evidence give the next round of work somewhere to start.
I wrote more about that environment in The AI Breakthrough Is Not the Model. It Is the Workspace. Its skills define repeatable procedures for activities such as triage, design, implementation, and QA, including what to inspect and what evidence to leave behind.
HCM Intelligence is one of the products built through that environment.
Keeping the work moving from my phone
Being able to work remotely through Codex on my phone changed when I could participate. I could review work, send direction, and continue an iteration without being at my desk for every interaction.
OpenClaw also gave me a mobile route into the persistent workspace. I could spot something while using the site, send a note or screenshot, and connect that observation to the project rather than leaving it as a reminder for later.
The development work still needs the code, environment, tools, and checks behind it. The phone is another way to reach that work, shortening the distance between noticing a problem and starting to address it.
Where the effort compounds
The compounding effect comes from improving both the product and the environment used to build it.
A clearer operating procedure can help the next change. A useful test can catch a later regression. A documented architecture decision can reduce rediscovery in another session. Release evidence can make a problem easier to investigate.
Within the product, the same pattern appears in the shared collection pipeline, account preferences, source retrieval, and analysis checks. Work on those foundations improves several experiences rather than just one screen.
That is what has made this process so engaging for me: moving between product decisions, technical implementation, design refinement, and operational work, with AI helping me execute across all of them.
18. What I wanted to show
HCM Intelligence brings that work together in a live research application: connected features, source-based analysis, saved outputs, personal preferences, communications, and the infrastructure behind it.
The details matter as much as the breadth. Following a company is different from opening its profile. A summary shows what evidence it used. An older filing can join a recent article in a selected-source briefing. A display preference does not change an email’s delivery time. Each reflects a decision about how the product should behave.
AI-native development made this scope possible for me, but it still took sustained direction, judgment, and iteration to turn it into a working product.
The best way to understand the result is to use it. Open HCM Intelligence, choose a few companies, explore the sources, and build a briefing from something you find interesting.