Money Article Workflow

Money Article Workflow

This document explains how to generate, write, and publish articles for the vibe-living/money category. It mirrors the moving article pipeline but targets r/personalfinance and personal finance topics.


The Pipeline at a Glance

  1. Run generate_articles.py to fetch 5 threads from r/personalfinance
  2. Script writes briefs to article-briefs.txt
  3. In Cursor chat, say "write the 5 articles from article-briefs.txt"
  4. Review and fact-check
  5. Publish

How to Run the Script

Open a terminal in vibe-living/money/ and run:

cd "C:\Users\jssan\OneDrive\Documents\CityVibeCheck\vibe-living\money"
python generate_articles.py

Options:

Command What it does
python generate_articles.py Fetch 5 threads, auto-select top scored
python generate_articles.py --count 3 Fetch and brief only 3 threads
python generate_articles.py --keyword "emergency fund" Force a specific topic

The script requires pip install requests if not already installed.


Deduplication

used-threads.json tracks every Reddit thread ID that has been used. The script loads this file before searching and updates it after selecting threads. Never delete this file. It prevents the same thread from being used twice.


Author Block

All money articles use Emilia Grey as the author.

author: "Emilia Grey"
author_bio: "Emilia Grey is a writer who helps people navigate the complexities of personal finance and relocation. With a practical approach and a knack for breaking down complex topics with story-telling, Emilia provides actionable advice for those looking to save money, invest wisely, and make informed decisions about their next move. In her free time, she's a fan fiction enthusiast, getting lost in the worlds of her favorite books and TV shows."
author_photo: "/vibe-living/images/authors/emilia-grey.webp"
author_title: "Personal Finance & Relocation"

Frontmatter Checklist

Every money article needs:

  • [ ] layout: article.njk
  • [ ] title: — uses a fictional character's name or scenario
  • [ ] excerpt: — 1-sentence hook
  • [ ] description: — SEO-friendly, practical summary
  • [ ] keywords: — comma-separated, specific
  • [ ] category: "money"
  • [ ] author: "Emilia Grey" with full author block
  • [ ] featured_image: "/vibe-living/images/money/[slug].webp"
  • [ ] image_caption: — short, descriptive
  • [ ] date: — YYYY-MM-DD
  • [ ] read_time: 5
  • [ ] tags:money plus 2-4 relevant subtopics

Narrative Structure

Every article follows this structure:

  1. Opening hook (italicised paragraph) — fictional character in a relatable money moment
  2. H2: The Problem — financial situation, stakes, emotional weight
  3. H2: The Research / Discovery — character investigates, mirrors Reddit advice
  4. H2: [Solution or Method] — practical breakdown with sub-sections if needed
  5. Callout box (> ### Title) — real numbers, checklist, or decision snapshot
  6. H2: [Complication or Hidden Factor] — non-obvious thing that matters
  7. H2: [Result] — character's outcome
  8. Closing paragraph — broader lesson + CTA link

Callout Box Format

> ### The Budget That Actually Worked
> - Income: $3,400/month
> - Rent: $1,100
> - Fixed costs: $800
> - Savings target: $500/month
> - Discretionary: $1,000

Image Format

![descriptive alt text](/vibe-living/images/money/descriptive-slug.webp)

Place 1-2 images inside the article body. Images live at /vibe-living/images/money/.


CTA Links

Use one of these at the end of every article:

  • Budget / cost angle: [cost of living calculator](https://cityvibecheck.com/vibe-calculator)
  • City choosing angle: [city matching tool](https://cityvibecheck.com)

External Links

Every article must contain 2-3 authoritative external links placed inline within the text, opening in a new tab.

Format:

<a href="https://www.consumerfinance.gov/about-us/blog/tips-save-money/" target="_blank" rel="noopener noreferrer">CFPB savings tips</a>

Rules:

  • 2-3 links per article, no more
  • Authoritative sources only
  • Each link supports a specific factual claim in the article
  • Inline only — not in a list at the bottom
  • Always include target="_blank" rel="noopener noreferrer"

Common link targets for money articles:

Topic Good external link
Budgeting / spending consumerfinance.gov
Credit scores annualcreditreport.com
IRS / taxes irs.gov
Retirement / 401k dol.gov/agencies/ebsa
Investing basics investor.gov
Student loans studentaid.gov
Wage / salary data bls.gov/oes
Emergency fund guidance consumerfinance.gov
Medical debt / billing cms.gov
Personal finance concepts investopedia.com

Writing Rules (Non-Negotiable)

  • No em dashes. Use a comma, a period, or restructure the sentence. Never use -- or .
  • No preachy closings. Do not end with a moral lesson spelled out. Let the story carry it.
  • No listicle openers. The article must begin with the narrative hook.
  • No real Reddit usernames or identifying details. All names and locations must be fictionalized.
  • Advice emerges from the story. Tips are discovered by the character, not front-loaded.
  • Contractions are fine. The voice is warm and human, not formal.
  • Length: 900 to 1,100 words. read_time: 5 in frontmatter.
  • Subheadings use sentence case.

Fact-Check Pass

Before saving any article, verify every specific claim:

Claim type How to verify
Interest rates (savings, loans, credit) Federal Reserve or current bank rate sources
IRS limits (401k, IRA, HSA contribution caps) irs.gov official publications
FICO score ranges CFPB or official credit bureau documentation
Median income / wage data BLS or Census QuickFacts
Student loan terms / forgiveness rules studentaid.gov
Medical billing / surprise bill rules CMS.gov or No Surprises Act official guidance
Savings rate statistics Federal Reserve Survey of Consumer Finances

If a claim cannot be verified with confidence, soften it to "typically" or "often," or attribute it to the character's experience.


Date Spreading

When generating a batch of articles all at once, spread dates across a realistic range (1-3 weeks apart). Future one-off runs can use the current date.


File Locations

File Purpose
generate_articles.py Fetches r/personalfinance threads and generates briefs
used-threads.json Deduplication log — never delete
article-briefs.txt Temporary brief file for the current batch — overwritten each run
*.md Published articles