All projects
Featured ProjectDec 2025 – Present

Finance Digest: Daily Editorial System

A daily-output finance editorial system that drafts and schedules LinkedIn posts across four discrete topic lanes (markets, deals, macro, transition finance), pulling from primary sources and a structured chronicle archive. Each day's run produces a market-only post (no politics, no war content), pushes to mobile via two Bark notifications at 9:30 PM IST, and updates the chronicle so the system gets continuously richer over time.

Daily post cadence · 4 topic lanes · chronicle archive of every prior post · 9:30 PM IST schedule
4 Topic LanesDaily Cadence9:30 PM ISTChronicle ArchiveMarket-Only Lens
PythonLLM IntegrationCron SchedulingBark (iOS push)Markdown ArchiveEditorial Prompt Engineering

Topic rotation picks the lane · curated sources are pulled · the LLM drafts a market-only post · the post is queued for LinkedIn · two Bark pushes confirm · the chronicle archive is updated for tomorrow's context.

Topic Rotation4 lanesSource IngestFilings · CB · brokersLLM DraftEditorial promptLinkedIn QueuePost body + linkBark Push ×29:30 PM ISTChronicle SaveMarkdown archive

Each stage is explained twice, first for the finance reader, then for the engineer.

1. Four-Lane Topic Coverage with Editorial Rules

Finance lens

Daily finance content has a discoverability problem, same headlines, same takes, no system. Finance Digest covers four discrete lanes (markets, deals, macro, transition finance) and rotates through them on a planned schedule, so the audience gets variety and no theme goes stale. Editorial rules are baked in: market-only lens, no politics, no war content, links live in the post body rather than in a separate comment.

Engineering lens

Each lane has its own source list, prompt template, and tone profile. A rotation engine ensures even coverage across days and weeks. Editorial rules (no politics / no war / link placement / disclosure language) are enforced at prompt-construction time, not as a post-hoc filter, the model never sees a state where it could violate them.

2. Source Ingestion & Editorial Synthesis

Finance lens

Posts are not regurgitated headlines. Each draft pulls from multiple primary sources, filings, press releases, central-bank communications, broker reports, and synthesizes a market-only take focused on what actually moves prices, not commentary about the news.

Engineering lens

A pipeline of feed and source readers normalizes raw inputs into a structured corpus per topic. The drafting LLM gets curated context plus an editorial system prompt that enforces market-only rules. Output passes through a deterministic linter (length, link count, disallowed terms) before queueing.

3. Two Bark Pushes at 9:30 PM IST

Finance lens

Cadence matters. Posts go out at the same time every day so the audience knows when to expect them and engagement compounds. Two Bark notifications confirm the daily run on iOS, one when the post is drafted and queued, a second when the chronicle archive is updated, so a missed push is a real signal something went wrong.

Engineering lens

A cron schedule fires the daily run at 21:30 IST. Two Bark webhook calls are made on success, one to confirm post drafted, one to confirm chronicle saved. Failures escalate to a separate alert path. Idempotent: re-running the same day's job overwrites cleanly rather than duplicating posts.

4. Chronicle Archive: Long Memory

Finance lens

Every post is more than a one-time tweet. The chronicle archive stores every prior day's post with metadata (date, lane, sources, market context) so future drafts can reference past coverage and the system has continuity over time. It's closer to a private research-note archive than a content calendar.

Engineering lens

Markdown files per day, indexed by date and lane. Source references kept inline. The archive is queryable for "what did I cover last quarter" and feeds cross-references into future drafts via prompt injection, so the LLM sees prior coverage of the same topic and avoids repeating itself.