# Broke to Built > Broke to Built is Anthony Snider’s independent company, building useful software, open research, autonomous experiments, games, and practical guides. Its website introduces the whole body of work. Paid tools and experimental research have different purposes and are identified below. ## Start here - [Company homepage](https://broke2builtai.com/): the studio, selected tools, research, experiments, and videos. - [Our story](https://broke2builtai.com/story/): why the company exists and what it is working toward. - [About the founder and company](https://broke2builtai.com/about/): Anthony Snider is an engineer who works with AI agents. - [Apify actor catalogue](https://broke2builtai.com/actors/): all 129 public cloud tools, grouped by the job each one does, with per-result prices. - [Free library](https://broke2builtai.com/library/): searchable guides and browser tools, with work, everyday admin, and love-and-loss categories. ## Software on Apify 129 public tools (Apify “actors”), each doing one job by API. They require an Apify account and are paid per result. The full catalogue, grouped by job, is in the “Apify actor catalogue” section below and at [https://broke2builtai.com/actors/](https://broke2builtai.com/actors/). The linked listing is the source for current pricing, input requirements, limits, and API instructions. - [All Broke to Built actors on Apify](https://apify.com/eliai): the company’s Apify profile and product listings. - [Podcast transcription workflow for n8n](https://code.broke2builtai.com/b2b-assets/): free workflow source and setup instructions (folder n8n/podcast-agency-transcripts). Processes new episodes across RSS feeds using the paid transcription actor; requires the user’s own n8n and Apify configuration. Its event-charge budgets do not cover every possible platform fee. ## Open research and autonomous experiments - [Abundance](https://abundance.broke2builtai.com/): cited research and interactive calculators about global production, basic needs, and distribution. [Source and methodology](https://code.broke2builtai.com/Abundance/). Research conclusions should be read with their assumptions and limitations. - [ZERO](https://zero.broke2builtai.com/): an autonomous earning experiment governed by a rule that nobody funds its wallet. The public dashboard shows methods and attempts. This is an experiment, not a promise of investment returns or a service for depositing money. - [ZERO’s public wallet record](https://base.blockscout.com/address/0xC94929d14435D80dd04b3206BfEA9F5dEBAbD57A): inspect the record independently; do not infer current earnings from this directory. - [AIIM](https://aiim.broke2builtai.com/): the agent communication and collaboration world, with a spectator interface. [Agent handbook](https://aiim.broke2builtai.com/skill.md). - [Games and experiments](https://broke2builtai.com/play/): the broader collection of playable and interactive projects. Experiments are not all commercial products. - [Public source repositories](https://code.broke2builtai.com/): inspect source and each repository’s own license and status. ## Watch - [Broke to Built on YouTube](https://www.youtube.com/@BrokeToBuiltai): tool demonstrations and public-domain film publishing. - [Film archive](https://broke2builtai.com/public-domain/): the site’s media wing. ## Developer interfaces - [Agent Skills API documentation](https://api.broke2builtai.com/): current skills, input contracts and access terms. - [Agent discovery document](https://broke2builtai.com/.well-known/agent.json): discovery information for the separate skills API. It is not a declaration that every project on this company site is an API. ## Contact and reading policy - [Contact](https://broke2builtai.com/contact/): product questions, feedback, corrections and project enquiries. Company contact: eli@broke2builtai.com. - [Editorial standards](https://broke2builtai.com/editorial-standards/) · [Disclosure](https://broke2builtai.com/disclosure/) · [Privacy](https://broke2builtai.com/privacy/) · [Terms](https://broke2builtai.com/terms/). - [Sitemap](https://broke2builtai.com/sitemap-index.xml) · [Full company map and guide text](https://broke2builtai.com/llms-full.txt). Guide text is free to read without an account. Some non-sensitive guides link to optional paid resources, disclosed on their pages. Guides about acute loss contain no commerce. Quote the relevant page and preserve its qualifications, especially for health, legal, financial and research topics. This index contains no current revenue, uptime or customer-count claims. ## Apify actor catalogue (129 public actors) Grouped by the job each one does. Every actor runs on Apify (account required), is paid per result, and can be called over the Apify API (run-sync endpoint: https://api.apify.com/v2/acts/eliai~/run-sync-get-dataset-items) or from Apify’s MCP server. Prices are the Apify free-plan rate at the time this file was generated (2026-09-24); paid Apify plans pay less, and the listing is authoritative. Human-readable version: https://broke2builtai.com/actors/ ### Transcribe audio, video and captions (4) Use these when you need to turn speech or subtitles into text you can search, quote or translate. #### Audio & Video to Text (Whisper) — Transcript + SRT Subtitles Store URL: https://apify.com/eliai/audio-transcriber-whisper API (run and get results): https://api.apify.com/v2/acts/eliai~audio-transcriber-whisper/run-sync-get-dataset-items Price: $0.03 per “Transcribed audio minutes” event (One started minute of audio successfully transcribed (ceil of audio duration). Failed downloads or unreadable files are never charged) (Apify free-plan rate) Audio/video URL to transcript + SRT with Whisper, no extra API key. $0.03 per started minute. Podcast teams: free recurring-feed n8n workflow at https://github.com/lordbasilaiassistant-sudo/b2b-assets/tree/main/n8n/podcast-agency-transcripts #### SRT to VTT Converter - Subtitles, Resync & Plain Text Store URL: https://apify.com/eliai/srt-to-vtt-converter API (run and get results): https://api.apify.com/v2/acts/eliai~srt-to-vtt-converter/run-sync-get-dataset-items Price: $0.005 per “Converted subtitles” event (One subtitle file successfully parsed and converted. Files that yield no cues are recorded free) (Apify free-plan rate) Convert SRT to VTT or VTT to SRT, strip timings to a plain text transcript, and resync cues by any offset. Paste text or pass up to 50 file URLs. Handles optional VTT hours, comma vs dot decimals and NOTE blocks. $0.005 per file; files with no cues are free. #### TikTok Video Transcript Extractor - Captions, SRT Store URL: https://apify.com/eliai/tiktok-transcript-clean API (run and get results): https://api.apify.com/v2/acts/eliai~tiktok-transcript-clean/run-sync-get-dataset-items Price: $0.001 per “Extracted transcripts” event (Charged once per video that actually yields a transcript. Videos without captions return their metadata free of charge) (Apify free-plan rate) Extract TikTok video transcripts from native captions: clean text, timestamps, SRT, language selection (ISO codes), batch URLs, short links and bare video IDs. $0.001 per transcript — and unlike per-result competitors, videos without captions are never charged. No login, no cookies. #### YouTube Video Transcript Extractor - No API Key, SRT Store URL: https://apify.com/eliai/youtube-transcript-clean API (run and get results): https://api.apify.com/v2/acts/eliai~youtube-transcript-clean/run-sync-get-dataset-items Price: $0.004 per “Extracted transcripts” event (One video transcript successfully extracted. Videos without captions are never charged) (Apify free-plan rate) Extract a YouTube transcript without an API key: clean text, timestamps, and SRT. Batch URLs, auto or manual captions. $0.004 per transcript — videos without captions are never charged. ### Collect posts, videos and reviews from platforms (12) Use these when you need to pull public posts, comments, playlists or reviews out of a platform into rows. #### App Store Keywords Scraper - Ranked Apps & Ratings Store URL: https://apify.com/eliai/app-store-keywords-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~app-store-keywords-scraper/run-sync-get-dataset-items Price: $0.002 per “Scraped apps” event (Charged once per app delivered. Failed items are recorded and not charged) (Apify free-plan rate) See which iOS apps rank for any App Store keyword, in search order: rank, app, seller, price, rating and rating count, category, version, size and update date. Any storefront, bulk keywords. $0.002 per app. #### Bluesky Posts Scraper - Author Feed, Likes & Reposts Store URL: https://apify.com/eliai/bluesky-posts-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~bluesky-posts-scraper/run-sync-get-dataset-items Price: $0.001 per “Posts scraped” event (One posts scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Scrape any public Bluesky account: post text, ISO dates, likes, reposts, replies, quotes and a combined engagement total, one row per post. Pages past the API's 100 ceiling, bulk accounts, no login. $0.001 per post. #### dev.to Articles Scraper - Tags, Reactions & Authors Store URL: https://apify.com/eliai/dev-to-articles-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~dev-to-articles-scraper/run-sync-get-dataset-items Price: $0.003 per “Scraped articles” event (Charged once per article delivered. Failed items are recorded and not charged) (Apify free-plan rate) Scrape dev.to by tag or author: title, author, organization, publish date, reactions, comments, a combined engagement total, reading time, tag list and the AI-disclosure label. Bulk tags, no API key. $0.003 per article. #### GitHub User Scraper - Profiles, Followers & Hiring Store URL: https://apify.com/eliai/github-user-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~github-user-scraper/run-sync-get-dataset-items Price: $0.01 per “Users scraped” event (One users scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Look up GitHub users by login or profile URL, or search by location, language and follower count. One row per user: name, company, location, public email, bio, hireable flag, followers and repo counts. $0.015 per profile; failures are free. #### Stack Overflow Scraper - Questions, Scores & Tags Store URL: https://apify.com/eliai/stack-overflow-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~stack-overflow-scraper/run-sync-get-dataset-items Price: $0.005 per “Questions scraped” event (One questions scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Search Stack Overflow or any Stack Exchange site and get one row per question: score, answer count, views, tags, author reputation and ISO dates. Tag filters, bulk searches, no API key needed. $0.005 per question; empty searches are free. #### Steam Reviews Scraper - Playtime, Votes & Sentiment Store URL: https://apify.com/eliai/steam-reviews-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~steam-reviews-scraper/run-sync-get-dataset-items Price: $0.002 per “Scraped reviews” event (Charged once per review delivered. Failed items are recorded and not charged) (Apify free-plan rate) Scrape Steam game reviews: recommended or not, full text, helpful and funny votes, and the author's playtime AT THE TIME OF REVIEW in hours. Filter by language, sentiment and sort. Bulk apps, no API key. $0.002 per review. #### Substack Posts Scraper - Any Newsletter, No API Key Store URL: https://apify.com/eliai/substack-posts-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~substack-posts-scraper/run-sync-get-dataset-items Price: $0.004 per “Posts scraped” event (One posts scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Scrape any Substack newsletter by handle OR custom domain: post title, author, publish date, subtitle, cover image and word count, one row per post. Optional full text. Bulk publications. $0.004 per post; empty feeds are free. #### Telegram Channel Scraper - Public Posts, Views & Media Store URL: https://apify.com/eliai/telegram-channel-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~telegram-channel-scraper/run-sync-get-dataset-items Price: $0.01 per “Posts scraped” event (One posts scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Scrape any public Telegram channel: post text, publish date, view counts, photo/video flags, forward and reply markers, and a direct link. One row per post, pages past the 20 a page shows, bulk channels. No API key or login. $0.01 per post. #### Tumblr Posts Scraper - Any Blog, Tags & Dates Store URL: https://apify.com/eliai/tumblr-posts-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~tumblr-posts-scraper/run-sync-get-dataset-items Price: $0.002 per “Scraped posts” event (Charged once per post delivered. Failed items are recorded and not charged) (Apify free-plan rate) Scrape any public Tumblr blog: post title, id, publish date, full tag list, word count and a reblog flag, one row per post. Accepts a blog name, a tumblr.com URL or a custom domain. Bulk blogs, no API key. $0.002 per post. #### YouTube Comments Scraper — No API Key, Exact Likes, Replies Store URL: https://apify.com/eliai/youtube-comments-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~youtube-comments-extractor/run-sync-get-dataset-items Price: $0.0004 per “Extracted comments” event (One comment or reply extracted (batched per video). Failed or comment-disabled videos are never charged) (Apify free-plan rate) Scrape YouTube comments without an API key or cookies: top-level plus replies, top or newest sort, exact like counts (not rounded), author channel IDs, batch videos. $0.0004 per comment. Videos with comments turned off are never charged. #### YouTube Playlist Extractor — No API Key, Every Video, Duration Store URL: https://apify.com/eliai/youtube-playlist-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~youtube-playlist-extractor/run-sync-get-dataset-items Price: $0.02 per “Read playlists” event (One playlist successfully read, with its metadata and the videos YouTube's listing surface exposes. Playlists that are private, empty or error are recorded free) (Apify free-plan rate) Every video in a YouTube playlist as clean JSON: video ID, title, watch URL, channel, duration in seconds, view count and publish age. Up to 25 playlists per run. No API key, no login, no browser. $0.02 per playlist plus $0.005 per 25 videos; empty or private playlists are never charged. #### YouTube Search Extractor — No API Key, Duration & Date Filters Store URL: https://apify.com/eliai/youtube-search-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~youtube-search-extractor/run-sync-get-dataset-items Price: $0.02 per “Ran searches” event (One search query successfully run, with the results YouTube's listing surface exposed. Queries that return nothing are recorded free) (Apify free-plan rate) Search YouTube without an API key. Videos, channels, playlists, Shorts as JSON. Filter by type, duration, or upload date; sort by date or views. $0.02 per search plus $0.005 per 25 results; empty results are never charged. ### Track news, research papers and feeds (9) Use these when you need to monitor a feed or search a research index on a schedule. #### arXiv Papers Scraper - Authors, Abstracts & PDFs Store URL: https://apify.com/eliai/arxiv-papers-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~arxiv-papers-scraper/run-sync-get-dataset-items Price: $0.01 per “Papers scraped” event (One papers scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Search arXiv and get one row per paper: title, full abstract, every author, categories, the bare arXiv id plus its version, a direct PDF link, DOI and journal reference. arXiv query syntax, category filter, bulk searches. $0.01 per paper. #### Clinical Trials Scraper - Phases, Sponsors & Sites Store URL: https://apify.com/eliai/clinical-trials-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~clinical-trials-scraper/run-sync-get-dataset-items Price: $0.01 per “Trials scraped” event (One trials scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Search ClinicalTrials.gov and get one row per trial: NCT id, status, phase, enrollment, sponsor, conditions, interventions, eligibility and site countries. Status, phase and location filters. $0.01 per trial; empty searches are free. #### Google News Scraper - Headlines, Sources & Dates by Keyword Store URL: https://apify.com/eliai/google-news-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~google-news-scraper/run-sync-get-dataset-items Price: $0.005 per “Scraped articles” event (One news article returned as its own row. Searches that return no articles are recorded free) (Apify free-plan rate) Search Google News by keyword and get one row per article: clean headline, publisher, link and publish date. Any language/country, recency filter from the last hour to the last year, bulk queries. $0.005 per article; empty searches are free. #### Open Library Books Scraper - ISBN, Authors & Editions Store URL: https://apify.com/eliai/open-library-books-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~open-library-books-scraper/run-sync-get-dataset-items Price: $0.008 per “Scraped books” event (Charged once per book delivered. Failed items are recorded and not charged) (Apify free-plan rate) Search Open Library by title, author, subject or ISBN and get one row per work: authors, first publish year, edition count, a real ISBN-13, subjects, ratings, cover image and whether it can be read online now. $0.008 per book. #### Public Holidays Scraper - 200+ Countries, Any Year Store URL: https://apify.com/eliai/public-holidays-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~public-holidays-scraper/run-sync-get-dataset-items Price: $0.002 per “Holidays scraped” event (One holidays scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Public holidays for 200+ countries and any year from 1975 to 2075: date, weekday, weekend flag, local and English names, nationwide vs regional with the subdivision list. Bulk countries and years. $0.002 per holiday. #### PubMed Articles Scraper - Authors, Journals & DOIs Store URL: https://apify.com/eliai/pubmed-articles-scraper API (run and get results): https://api.apify.com/v2/acts/eliai~pubmed-articles-scraper/run-sync-get-dataset-items Price: $0.008 per “Articles scraped” event (One articles scraped delivered. Failed items are recorded and not charged) (Apify free-plan rate) Search PubMed and get one row per article: title, full author list, journal, volume/issue/pages, DOI with a resolvable link, PMCID, publication types and languages. Full PubMed query syntax, bulk searches. $0.008 per article; empty searches are free. #### RSS Feed Change Monitor - Only New & Updated Items Store URL: https://apify.com/eliai/rss-change-monitor API (run and get results): https://api.apify.com/v2/acts/eliai~rss-change-monitor/run-sync-get-dataset-items Price: $0.005 per “Checked feeds” event (Charged once per RSS/Atom feed checked for new or updated items) (Apify free-plan rate) Watch RSS and Atom feeds and get only what changed since the last run. Keeps a baseline between scheduled runs, separates new items from edited ones, ignores tracking-parameter churn, and never floods you on run one. From $0.001 per feed checked on paid plans; failures free. #### RSS Feed Change Monitor — Only New & Updated Items Store URL: https://apify.com/eliai/rss-feed-change-monitor API (run and get results): https://api.apify.com/v2/acts/eliai~rss-feed-change-monitor/run-sync-get-dataset-items Price: $0.005 per “Checked feeds” event (Charged once per RSS/Atom feed checked for new or updated items) (Apify free-plan rate) Watch RSS and Atom feeds and get only what changed since the last run. Keeps a baseline between scheduled runs, separates new items from edited ones, ignores tracking-parameter churn, and never floods you on run one. $0.005 per feed checked; feeds that fail to fetch or parse are never charged. #### RSS Feed Parser — Convert Any RSS or Atom Feed to Clean JSON Store URL: https://apify.com/eliai/rss-feed-parser API (run and get results): https://api.apify.com/v2/acts/eliai~rss-feed-parser/run-sync-get-dataset-items Price: $0.02 per “Parsed feed” event (One RSS/Atom feed parsed into normalized JSON items) (Apify free-plan rate) RSS feed parser for developers and AI agents: pass any RSS or Atom feed URL as input and get back clean, structured JSON items (title, link, date, and other feed fields). $0.02 per feed parsed — cost scales with feeds, nothing hidden. ### Verify emails and find business contacts (9) Use these when you need to clean an email list or find who to contact at a company. #### Bulk Email List Verifier - MX, Null-MX, Disposable, Typos Store URL: https://apify.com/eliai/email-list-verifier API (run and get results): https://api.apify.com/v2/acts/eliai~email-list-verifier/run-sync-get-dataset-items Price: $0.001 per “Verified emails” event (Charged once per email address verified in the submitted list) (Apify free-plan rate) Clean a list before you send it. Catches null-MX domains that guarantee a bounce, keeps implicit-MX domains other tools wrongly delete, flags typo domains that resolve anyway, and separates disposable from role addresses. Never charges for an address it could not resolve. $1.00 per 1,000. #### Company Enrichment — Domain to Company Profile, With Sources Store URL: https://apify.com/eliai/company-enrichment API (run and get results): https://api.apify.com/v2/acts/eliai~company-enrichment/run-sync-get-dataset-items Price: $0.02 per “Enriched domains” event (One company domain fetched and profiled (homepage plus up to a few contact/about pages). Domains whose site could not be fetched are never charged) (Apify free-plan rate) Turn a list of domains into company profiles: name, description, logo, on-domain emails, phone, address, social profiles and tech stack. Every field cites the URL it came from, so you can audit any row. No API keys, no data broker. $0.02 per domain; failed fetches never charged. #### Disposable Email Detector - Block Temp & Throwaway Emails Store URL: https://apify.com/eliai/disposable-email-detector API (run and get results): https://api.apify.com/v2/acts/eliai~disposable-email-detector/run-sync-get-dataset-items Price: $0.0005 per “Disposability-checked email/domains” event (One email address or domain checked against the disposable blocklist and heuristics. Invalid inputs are recorded free) (Apify free-plan rate) Check up to 500 emails/domains per run against a 7,582-domain disposable blocklist + keyword and pattern heuristics, with ~30 legit webmail providers whitelisted. $0.0005 per check, no start fee, invalid inputs never charged — half the cheapest measured incumbent. #### DMARC Record Checker - Fetch, Parse & Grade DMARC Policy Store URL: https://apify.com/eliai/dmarc-record-checker API (run and get results): https://api.apify.com/v2/acts/eliai~dmarc-record-checker/run-sync-get-dataset-items Price: $0.0008 per “DMARC-checked domains” event (One domain's DMARC record fetched, parsed and graded. Invalid domains and DNS failures are recorded free) (Apify free-plan rate) Check DMARC for up to 200 domains per run: policy, pct, rua/ruf reports, grade (enforced/monitor/missing) and plain-English issues. $0.0008 per domain, no start fee, failures never charged — cheaper than measured incumbents ($0.001-$0.05/domain). For security audits, deliverability and lead gen. #### Email Deliverability Checker - MX, SPF, DMARC, DKIM Score Store URL: https://apify.com/eliai/email-deliverability-checker API (run and get results): https://api.apify.com/v2/acts/eliai~email-deliverability-checker/run-sync-get-dataset-items Price: $0.002 per “Deliverability-audited domains” event (One domain's MX + SPF + DMARC + DKIM audited with weighted score, grade and fixes. Invalid inputs and DNS failures are recorded free) (Apify free-plan rate) Audit MX + SPF + DMARC + DKIM (9 selectors) for up to 100 domains per run: weighted 0-100 score, letter grade and copy-paste fixes. $0.002 per domain with all four checks included, no start fee, and invalid inputs or DNS failures are never charged. For cold-email prep and lead qualification. #### Email Finder & Lead Scraper - Contact Details from Any Website Store URL: https://apify.com/eliai/contact-details-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~contact-details-extractor/run-sync-get-dataset-items Price: $0.03 per “Contact extraction” event (Emails, phone numbers, and social profiles extracted from one web page) (Apify free-plan rate) Find business emails, phone numbers and social links on any website. Crawls the pages that actually carry contacts, deduplicates, and returns one row per contact. Bulk domains, no API key. #### Email Verifier & Validator | Bulk Email List Verification Store URL: https://apify.com/eliai/email-validator API (run and get results): https://api.apify.com/v2/acts/eliai~email-validator/run-sync-get-dataset-items Price: $0.001 per “Validated emails” event (Charged once per email address validated (syntax, domain and MX checks)) (Apify free-plan rate) Verify email addresses in bulk and clean your list before you send. Checks RFC syntax, live MX records and deliverability, flags role accounts and disposable domains — cutting bounces and protecting sender reputation. No mail is ever sent. $0.001 per email, 500 per run. #### MX Record Checker - Verify a Domain Can Receive Email Store URL: https://apify.com/eliai/mx-record-checker API (run and get results): https://api.apify.com/v2/acts/eliai~mx-record-checker/run-sync-get-dataset-items Price: $0.0004 per “MX-checked domains” event (One domain's MX records resolved, sorted and verified (incl. implicit-MX fallback). Invalid inputs and DNS failures are recorded free) (Apify free-plan rate) Check MX records for up to 200 domains or email addresses per run: priority-sorted exchanges resolved to IPs, RFC 5321 implicit-MX fallback, canReceiveEmail verdict. $0.0004 per domain, no start fee, failures never charged — cheaper than measured incumbents. For list hygiene and lead qualification. #### SPF Record Checker - Validate SPF & Count DNS Lookups Store URL: https://apify.com/eliai/spf-record-checker API (run and get results): https://api.apify.com/v2/acts/eliai~spf-record-checker/run-sync-get-dataset-items Price: $0.0008 per “SPF-checked domains” event (One domain's SPF record fetched, parsed and linted. Invalid domains and DNS failures are recorded free) (Apify free-plan rate) Validate SPF for up to 200 domains per run: parsed mechanisms, DNS lookup count vs the RFC 7208 limit of 10, all-qualifier and plain-English issues. $0.0008 per domain, no start fee, failures never charged — cheaper than measured incumbents ($0.001+/item). For deliverability and security audits. ### Developer utilities (17) Use these when you need to encode, hash, parse, generate or convert a value inside a pipeline. #### Base64 Encode / Decode - Auto-Detect + Type Sniffing Store URL: https://apify.com/eliai/base64-tool API (run and get results): https://api.apify.com/v2/acts/eliai~base64-tool/run-sync-get-dataset-items Price: $0.0004 per “Run operations” event (One string Base64 encoded or decoded (auto-detect), with content-type sniffing on decode. Empty input is uncharged) (Apify free-plan rate) Encode or decode Base64 with auto-detection and content-type sniffing (PNG/JPEG/PDF/JSON/text). Standard or URL-safe. Bulk. $0.0004 per operation; empty input uncharged. #### Base64 Encoder & Decoder API — Files, Text & Data URIs Store URL: https://apify.com/eliai/base64-encoder-decoder API (run and get results): https://api.apify.com/v2/acts/eliai~base64-encoder-decoder/run-sync-get-dataset-items Price: $0.001 per “Text converted” event (One event per text string successfully encoded or decoded. Failed items are recorded in the dataset but never charged) (Apify free-plan rate) Encode text or file URLs to Base64 and data URIs, or decode Base64 to text and downloadable files. Batch and base64url support. Free-plan rates: $0.001 per text item, $0.002 per file; Store discounts available. Failed items are not charged. #### Cron Expression Parser - Validate, Explain, Next Run Times Store URL: https://apify.com/eliai/cron-expression-parser API (run and get results): https://api.apify.com/v2/acts/eliai~cron-expression-parser/run-sync-get-dataset-items Price: $0.0008 per “Parsed expressions” event (One cron expression validated with description and timezone-aware next fire times. Invalid expressions are recorded free) (Apify free-plan rate) Validate up to 50 cron expressions per run: plain-English description + timezone-aware next fire times (DST-correct, any IANA zone), 5/6-field, @shortcuts, names, dom/dow OR rule. $0.0008 per expression, invalid ones never charged — cheaper than measured incumbents ($0.001-$0.03). #### Fake Data Generator - Schema-Driven, Seedable, Coherent Store URL: https://apify.com/eliai/lorem-data-generator API (run and get results): https://api.apify.com/v2/acts/eliai~lorem-data-generator/run-sync-get-dataset-items Price: $0.003 per “Generated datasets” event (One synthetic dataset generated (up to 1,000 rows, 20 field types, seedable). Runs producing no rows charge nothing; unknown field types are excluded and noted free) (Apify free-plan rate) Synthetic test datasets from your schema: 20 field types, persona-coherent rows (email matches the row's name), seed = fully deterministic reruns, safe demo-only email domains. $0.003 flat per dataset up to 1,000 rows — vs incumbents charging per record ($0.60/1k measured). #### Favicon Fetcher - Get Any Site's Icon as a Data URI Store URL: https://apify.com/eliai/favicon-to-data-uri API (run and get results): https://api.apify.com/v2/acts/eliai~favicon-to-data-uri/run-sync-get-dataset-items Price: $0.001 per “Fetched icons” event (One site's favicon fetched and returned as a base64 data URI plus a hosted file, with content-type and pixel dimensions. Failed fetches are recorded free) (Apify free-plan rate) Fetch any website's favicon and get it back as a base64 data URI plus a hosted PNG/ICO file URL, with content-type and real pixel dimensions. Bulk. $0.001 per icon, below paid favicon fetchers; failed fetches free. #### Hash Generator - MD5, SHA-256, SHA-512 & HMAC Store URL: https://apify.com/eliai/hash-generator API (run and get results): https://api.apify.com/v2/acts/eliai~hash-generator/run-sync-get-dataset-items Price: $0.0005 per “Generated hashes” event (One input (text or fetched file) hashed with MD5/SHA-1/SHA-256/SHA-512 and optional HMAC, hex + base64. Failures are recorded free) (Apify free-plan rate) Generate MD5, SHA-1, SHA-256, SHA-512 and HMAC hashes of text or a fetched file, in hex and base64 - all algorithms in one call. Bulk. $0.0005 per input; failures are free. #### HTML Entity Encoder & Decoder - Named, Hex, Emoji Store URL: https://apify.com/eliai/html-entity-converter API (run and get results): https://api.apify.com/v2/acts/eliai~html-entity-converter/run-sync-get-dataset-items Price: $0.0004 per “Run operations” event (One string encoded to or decoded from HTML entities (named/hex/decimal, emoji-aware). Empty input is uncharged) (Apify free-plan rate) Encode text to HTML entities or decode entities back, with auto-direction - named, decimal & hex references, emoji-safe. Bulk. $0.0004 per operation; empty input uncharged. #### JWT Decoder - Header, Claims, Expiry (Decode Only, No Keys) Store URL: https://apify.com/eliai/jwt-decoder API (run and get results): https://api.apify.com/v2/acts/eliai~jwt-decoder/run-sync-get-dataset-items Price: $0.002 per “Decoded JWTs” event (One JWT decoded (header, payload, claims, expiry verdict, security warnings). Decode only — signatures are never verified. Malformed tokens are recorded free) (Apify free-plan rate) Decode up to 50 JWTs per run: header, payload, iss/sub/aud, humanized iat/exp/nbf, expiry verdict, security warnings (alg=none, no-expiry, sensitive claims). Decode ONLY — signatures never verified, tokens never transmitted anywhere. $0.002 per token vs $0.02 measured incumbent; malformed free. #### Markdown TOC Generator - GitHub-Anchor Table of Contents Store URL: https://apify.com/eliai/markdown-toc-generator API (run and get results): https://api.apify.com/v2/acts/eliai~markdown-toc-generator/run-sync-get-dataset-items Price: $0.0008 per “Generated TOCs” event (One markdown document parsed into a GitHub-anchor table of contents + outline. Unfetchable URLs are recorded free) (Apify free-plan rate) Paste-ready TOC for any markdown doc or URL: GitHub-compatible anchors, nested indentation, duplicate headings deduped, code fences ignored, setext + ATX parsed, links stripped from heading text. Up to 50 docs per run. $0.0008 per document, unfetchable URLs never charged. #### Number Base Converter - BigInt-Exact, Bases 2-36 Store URL: https://apify.com/eliai/number-base-converter API (run and get results): https://api.apify.com/v2/acts/eliai~number-base-converter/run-sync-get-dataset-items Price: $0.0004 per “Converted numbers” event (One number converted across bases 2-36 with BigInt precision, bit/byte lengths and two's-complement views. Invalid digits are recorded free) (Apify free-plan rate) Radix conversion that never corrupts big values: BigInt throughout, so 2^64-1 converts exactly (floats fail past 2^53). Bases 2-36, 0x/0o/0b prefixes just work, negatives get 8/16/32/64-bit two's-complement views, bit/byte lengths included. $0.0004 per conversion; invalid digits never charged. #### Regex Tester - Matches, Groups, Explanation, ReDoS Warnings Store URL: https://apify.com/eliai/regex-tester API (run and get results): https://api.apify.com/v2/acts/eliai~regex-tester/run-sync-get-dataset-items Price: $0.0005 per “Tested patterns” event (One regular expression tested against the sample text with matches, groups, explanation and ReDoS warnings. Invalid patterns are recorded free) (Apify free-plan rate) Test up to 50 regex patterns against sample text by API: all matches with indexes + named groups, plain-English pattern explanation, ReDoS heuristics and a 4s time-box so catastrophic patterns report instead of hanging. #### Slug Generator - URL-Safe Slugs with Transliteration Store URL: https://apify.com/eliai/slug-generator API (run and get results): https://api.apify.com/v2/acts/eliai~slug-generator/run-sync-get-dataset-items Price: $0.0004 per “Generated slugs” event (One URL-safe slug generated with transliteration and batch-unique suffixes. Unsluggable inputs are recorded free) (Apify free-plan rate) Bulk URL slugs with real transliteration: diacritics, Cyrillic, Greek, symbol words (& -> and), batch-unique suffixes on collisions, custom separator + maxLength. Up to 200 per run. $0.0004 per slug, unsluggable inputs never charged. Release-tested on the non-ASCII cases naive slugifiers eat. #### Text Case Converter - camelCase, snake_case & 7 More Store URL: https://apify.com/eliai/text-case-converter API (run and get results): https://api.apify.com/v2/acts/eliai~text-case-converter/run-sync-get-dataset-items Price: $0.0004 per “Converted texts” event (One text converted into 9 cases (camel, Pascal, snake, kebab, CONSTANT, title, sentence, dot, slug) with correct acronym splitting. Tokenless inputs are recorded free) (Apify free-plan rate) Round-trip case conversion done right: camelCase, PascalCase, snake_case, kebab, CONSTANT_CASE, Title, Sentence, dot.case, slug — with correct acronym splitting (parseHTMLParserOutput -> parse_html_parser_output). 200 texts/run. $0.0004 per text all nine cases; junk never charged. #### Timestamp Converter - Unix, ISO, RFC 2822, Any Timezone Store URL: https://apify.com/eliai/timestamp-converter API (run and get results): https://api.apify.com/v2/acts/eliai~timestamp-converter/run-sync-get-dataset-items Price: $0.0004 per “Converted timestamps” event (One timestamp converted to unix s/ms, ISO 8601, RFC 2822, timezone rendering, day/week numbers and relative time. Unparseable inputs are recorded free) (Apify free-plan rate) Any timestamp shape in (unix s/ms auto-detected, ISO, "now") — every form out: unix, ISO 8601, RFC 2822, DST-correct IANA timezone rendering, real ISO week numbers, day-of-year, leap flag, relative time. $0.0004 per conversion (cost-plus floor, no paid rival measured); bad inputs never charged. #### Unit Converter - Length, Weight, Temp & More, Any Alias Store URL: https://apify.com/eliai/unit-converter API (run and get results): https://api.apify.com/v2/acts/eliai~unit-converter/run-sync-get-dataset-items Price: $0.0004 per “Converted units” event (One physical-unit conversion computed (length, mass, temperature, volume, area and more) with the full sibling-unit table. Unknown or incompatible units are recorded free) (Apify free-plan rate) Physical-unit conversion by API: kg/kilos/kilogramme all resolve, temperature uses real formulas (212F = exactly 100C, release-tested), every result includes the value in ALL sibling units of its category, float noise stripped. #### User-Agent Parser - Browser, OS, Device + Bot Detection Store URL: https://apify.com/eliai/user-agent-parser API (run and get results): https://api.apify.com/v2/acts/eliai~user-agent-parser/run-sync-get-dataset-items Price: $0.0004 per “Parsed user agents” event (One User-Agent string parsed into browser, OS, device, engine, CPU and bot verdict. Implausible strings are recorded free) (Apify free-plan rate) Parse up to 1,000 User-Agent strings per run: browser + version, OS, device, engine, CPU, and isBot verdict covering search crawlers, AI crawlers (GPTBot, ClaudeBot...), HTTP libraries and monitors. $0.0004 per UA, no start fee, junk strings never charged. For log analysis and traffic audits. #### UUID Generator - v4, v7, ULID, NanoID & Short IDs in Bulk Store URL: https://apify.com/eliai/uuid-generator API (run and get results): https://api.apify.com/v2/acts/eliai~uuid-generator/run-sync-get-dataset-items Price: $0.0004 per “Generated id batches” event (One batch of up to 10,000 ids generated (v4, v7, ULID, NanoID, or short). Unknown types are recorded free) (Apify free-plan rate) Generate up to 10,000 ids per batch: UUID v4, time-sortable UUID v7, ULID, NanoID, 8-char short codes — CSPRNG-backed, several kinds per run. $0.0004 per batch whatever its size vs $0.01/start measured incumbent. Unknown types never charged, never silently substituted. Release-tested formats. ### Check domains, DNS, security and uptime (14) Use these when you need to check what a domain, certificate, header or token is really doing. #### Base Token Risk Scanner - Honeypot Flags, Owner, Liquidity Store URL: https://apify.com/eliai/base-token-risk-scanner API (run and get results): https://api.apify.com/v2/acts/eliai~base-token-risk-scanner/run-sync-get-dataset-items Price: $0.01 per “Token scan” event (One Base token on-chain risk + info scan (metadata, ownership, live DEX liquidity/volume, risk flags, verdict)) (Apify free-plan rate) Vet any Base (chainId 8453) token before buying. Input: a token contract address. Output: one JSON risk report with on-chain metadata, ownership-renounced status, live DEX liquidity and 24h volume, and explicit risk flags. Every record lists what it did NOT check. $0.01 per token, no key or wallet. #### Cookie Scanner - GDPR & Security Audit for Any URL Store URL: https://apify.com/eliai/webpage-cookie-scanner API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-cookie-scanner/run-sync-get-dataset-items Price: $0.0008 per “Scanned pages” event (One page scanned for cookies: each Set-Cookie parsed with Secure/HttpOnly/SameSite/expiry, third-party and GDPR category flags. Failed fetches are recorded free) (Apify free-plan rate) Scan a page's cookies: each Set-Cookie parsed with Secure/HttpOnly/SameSite/expiry, third-party & tracker flags, GDPR category, security issues. Bulk. $0.0008 per page, cheaper than paid GDPR scanners; failed fetches free. #### DNS Records Lookup - All Record Types for Any Domain Store URL: https://apify.com/eliai/dns-records-lookup API (run and get results): https://api.apify.com/v2/acts/eliai~dns-records-lookup/run-sync-get-dataset-items Price: $0.02 per “Domain lookup” event (All DNS record types resolved for one domain) (Apify free-plan rate) Look up every DNS record type for a domain in one call. Input: domains (list). Output: JSON per domain with A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV, PTR records and values. Cheap pay-per-result: $0.02 per domain checked. #### Domain Age Checker - Registration Date & Exact Age (WHOIS) Store URL: https://apify.com/eliai/domain-age-checker API (run and get results): https://api.apify.com/v2/acts/eliai~domain-age-checker/run-sync-get-dataset-items Price: $0.02 per “Domain checked” event (One domain looked up and its registration date and age returned) (Apify free-plan rate) Input: one domain or up to 100 domains. Output per domain: the WHOIS registration date, exact age in days and years, and a maturity class (new under 1y, established 1-5y, mature 5y+). A fast first filter for vetting sites, prospects and backlinks at scale. #### Domain Availability Checker — RDAP, WHOIS & DNS JSON Store URL: https://apify.com/eliai/domain-availability-checker API (run and get results): https://api.apify.com/v2/acts/eliai~domain-availability-checker/run-sync-get-dataset-items Price: $0.0028 per “Checked domain” event (One domain with a definite available or taken verdict, plus registrar and dates when the registry returns them. Invalid names and lookup failures are recorded free) (Apify free-plan rate) Check if a domain is available to register. RDAP + WHOIS + DNS in one JSON row: available/taken, registrar, created/expiry, nameservers. No start fee. $0.02 per definite verdict; invalid and unknown names are free. #### HTTP Headers Inspector - Full Headers + Security Grade Store URL: https://apify.com/eliai/http-headers-inspector API (run and get results): https://api.apify.com/v2/acts/eliai~http-headers-inspector/run-sync-get-dataset-items Price: $0.0004 per “Checked URLs” event (All HTTP response headers fetched plus security-header analysis and server fingerprint for one URL. Failed fetches are recorded free) (Apify free-plan rate) Fetch every HTTP response header of any URL, plus a security-header analysis (HSTS, CSP, X-Frame-Options) with an A-F grade and server fingerprint. Single or bulk. $0.0004 per URL, cheaper than every paid headers actor measured; failed fetches are free. #### Mixed Content Checker — Find HTTP Resources on HTTPS Store URL: https://apify.com/eliai/mixed-content-checker API (run and get results): https://api.apify.com/v2/acts/eliai~mixed-content-checker/run-sync-get-dataset-items Price: $0.02 per “Mixed-content check” event (One HTTPS page scanned for insecure http resources (mixed content)) (Apify free-plan rate) Find insecure http:// resources on HTTPS pages — the mixed content browsers block and that breaks the padlock. Scans img, script, css, iframe, media and CSS url() references. $0.02 per URL scanned. No API key. #### Password Strength Analyzer - Entropy + Patterns, No Breach DB Store URL: https://apify.com/eliai/password-strength-analyzer API (run and get results): https://api.apify.com/v2/acts/eliai~password-strength-analyzer/run-sync-get-dataset-items Price: $0.0004 per “Analyzed passwords” event (One password scored by entropy + pattern heuristics (0-4, crack-time estimates, issues, suggestions). Passwords are never echoed, logged or transmitted; analysis is fully in-process) (Apify free-plan rate) Analyze password strength — entropy in bits, crack-time estimate, and specific weaknesses (common passwords, patterns, repeats). Privacy-safe: nothing is stored. $0.0004 per password analyzed. #### Redirect Chain Checker — Trace 301/302 Hops Store URL: https://apify.com/eliai/redirect-chain-checker API (run and get results): https://api.apify.com/v2/acts/eliai~redirect-chain-checker/run-sync-get-dataset-items Price: $0.02 per “Redirect check” event (Full redirect chain traced for one URL: each hop, status, and final destination) (Apify free-plan rate) Trace any URL redirect chain: every 301/302 hop with status code and Location, the final destination, hop count, plus redirect loops, long chains, insecure http hops and 302-vs-301 issues. Expands short links too. Bulk input, no API key, $0.02 per URL, no start fee. #### Security Headers Checker - Grade CSP, HSTS, X-Frame-Options Store URL: https://apify.com/eliai/security-headers-checker API (run and get results): https://api.apify.com/v2/acts/eliai~security-headers-checker/run-sync-get-dataset-items Price: $0.02 per “Header check” event (Security headers of one URL checked and graded (HSTS, CSP, X-Frame-Options, etc.)) (Apify free-plan rate) Security headers checker for any URL: pass a list of URLs, get one JSON record per URL with the observed CSP, HSTS, X-Frame-Options and related headers, missing-header findings, and an A–F security grade. $0.02 per URL checked. #### SSL Certificate Checker - Issuer, SANs, Expiry, Chain JSON Store URL: https://apify.com/eliai/ssl-certificate-checker API (run and get results): https://api.apify.com/v2/acts/eliai~ssl-certificate-checker/run-sync-get-dataset-items Price: $0.0008 per “Certificate-checked hosts” event (One host's live TLS certificate inspected: issuer, SANs, expiry, chain, protocol. Unreachable hosts and connection failures are recorded free) (Apify free-plan rate) Live TLS handshake for up to 200 hosts per run: issuer, SANs, days-to-expiry, full chain walk, negotiated protocol, self-signed/expired diagnosis with exact error. $0.0008 per host, no start fee, unreachable hosts never charged — cheaper than measured incumbents ($0.001-$0.035). #### Subdomain Finder - CT Log Enumeration + Live DNS Check Store URL: https://apify.com/eliai/subdomain-finder API (run and get results): https://api.apify.com/v2/acts/eliai~subdomain-finder/run-sync-get-dataset-items Price: $0.005 per “Checked domains” event (One domain enumerated for ALL its subdomains from CT logs (optionally DNS-resolved) in a single record, however many subdomains it has. Failures recorded free) (Apify free-plan rate) Enumerate a domain's subdomains from Certificate Transparency logs, with an optional live DNS resolve. All subdomains in one record. $0.005 per domain (not per subdomain), far cheaper than paid finders; failures are free. #### Website Uptime Checker — Is It Down? Status, SSL Monitor Store URL: https://apify.com/eliai/website-uptime-checker API (run and get results): https://api.apify.com/v2/acts/eliai~website-uptime-checker/run-sync-get-dataset-items Price: $0.01 per “Uptime check” event (One URL checked for availability and latency) (Apify free-plan rate) Check whether a website is up or down — a health check and uptime monitor without a subscription. Input: urls array. Output: JSON per URL with up/down, HTTP status, latency in ms, SSL validity. Schedule as a cron to monitor continuously. $0.01 per URL checked. #### WHOIS Lookup API — Who Owns a Domain and When It Expires Store URL: https://apify.com/eliai/whois-lookup API (run and get results): https://api.apify.com/v2/acts/eliai~whois-lookup/run-sync-get-dataset-items Price: $0.002 per “Domain lookup” event (WHOIS record fetched and parsed for one domain) (Apify free-plan rate) Look up who owns a domain and when it expires. One JSON record per domain: registrar, registrant org, name servers, creation, expiry and updated dates, and status codes parsed from raw WHOIS. Bulk lists, results returned in the call. $0.002 per domain checked. ### Audit a website's SEO and performance (26) Use these when you need to find what is stopping a page from ranking, loading fast or being quoted by AI search. #### AI Overview Visibility Tracker — Who Google Cites, By Country Store URL: https://apify.com/eliai/ai-overview-visibility-tracker API (run and get results): https://api.apify.com/v2/acts/eliai~ai-overview-visibility-tracker/run-sync-get-dataset-items Price: $0.02 per “Checked keywords” event (One keyword resolved in one country: AI Overview citations with the passage Google quoted, your domain's citation status and position, and your organic rank. Keywords whose fetch fails are returned as {ok:false} and never charged) (Apify free-plan rate) See which domains Google cites in its AI Overview for your keywords, and the exact passage it quoted from each. Track your own domain: cited or not, at what position, plus your organic rank. 15 countries — AI Overviews differ by market. $0.02 per keyword; failed fetches never charged. #### AI Readability Checker — Can ChatGPT & Claude Read Your Site? Store URL: https://apify.com/eliai/ai-readability-checker API (run and get results): https://api.apify.com/v2/acts/eliai~ai-readability-checker/run-sync-get-dataset-items Price: $0.05 per “Site audit” event (One completed AI-readability audit: per-bot robots.txt verdicts, live fetches as each AI user-agent, server-rendered text ratio, JSON-LD and sitemap sampling) (Apify free-plan rate) Audit a site the way AI crawlers see it: robots.txt rules per bot (GPTBot, ClaudeBot, PerplexityBot), real per-bot fetches, and how much text exists before JavaScript runs. Weighted from crawler logs, not blog advice. $0.05 per audit. #### AMP Checker - Validate AMP Markup & amphtml Links Store URL: https://apify.com/eliai/webpage-amp-checker API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-amp-checker/run-sync-get-dataset-items Price: $0.0005 per “Scanned pages” event (One page checked for AMP: linked amphtml URL, required AMP markup, and validation issues. Failed fetches are recorded free) (Apify free-plan rate) Check a page's AMP setup: is it AMP, the linked amphtml URL, required AMP markup, and validation issues. Bulk. $0.0005 per page. Failed fetches are recorded free. #### Broken Image Checker - Find 404 Images on Any Page Store URL: https://apify.com/eliai/webpage-broken-image-checker API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-broken-image-checker/run-sync-get-dataset-items Price: $0.002 per “Scanned pages” event (One page scanned for broken images: every img src/srcset HEAD-checked for 404s, plus missing-alt count. Failed page fetches are recorded free) (Apify free-plan rate) Scan a page for broken images: every img src/srcset HEAD-checked for 404s/errors/non-image types, plus missing-alt count. Bulk. $0.002 per page, cheaper than paid broken-link checkers; failed page fetches free. #### Broken Link Checker: 404s & Dead Links w/ Status Codes Store URL: https://apify.com/eliai/broken-link-checker API (run and get results): https://api.apify.com/v2/acts/eliai~broken-link-checker/run-sync-get-dataset-items Price: $0.02 per “Page check” event (All outbound links on one web page checked for broken/dead URLs (4xx, 5xx, timeouts)) (Apify free-plan rate) Broken link checker: give it a start URL, it checks every link on the page and returns the broken ones as JSON — link URL and HTTP status code. $0.02 per page checked, so cost is bounded before you run. No API key. #### Charset Checker - Detect Encoding Mismatches & Mojibake Store URL: https://apify.com/eliai/webpage-charset-encoding-checker API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-charset-encoding-checker/run-sync-get-dataset-items Price: $0.0005 per “Scanned pages” event (One page checked for character-encoding: HTTP vs meta charset, BOM, and mismatch/mojibake risks. Failed fetches are recorded free) (Apify free-plan rate) Verify a page's character-encoding: HTTP vs meta charset, http-equiv, XML, BOM, and mismatch/mojibake risks. Bulk. $0.0005 per page. Failed fetches are recorded free. #### Complete Site Audit — SEO, Security & Social Grade Store URL: https://apify.com/eliai/complete-site-audit API (run and get results): https://api.apify.com/v2/acts/eliai~complete-site-audit/run-sync-get-dataset-items Price: $0.03 per “Analyzed pages” event (One page fully audited: SEO, security headers, accessibility, privacy, performance and social. Domain-level checks (TLS, DNS/SPF/DMARC, robots/sitemap) run once per run and are not charged separately) (Apify free-plan rate) Full website health audit in one call: SEO, security headers, social tags, crawlability, and tech stack, scored into an A–F grade with one prioritized issue list. $0.05 per site audited. No API key. #### Core Web Vitals Checker - Bulk PageSpeed & CrUX Reports Store URL: https://apify.com/eliai/core-web-vitals-checker API (run and get results): https://api.apify.com/v2/acts/eliai~core-web-vitals-checker/run-sync-get-dataset-items Price: $0.01 per “Vitals reports” event (One URL audited via the official Google PageSpeed Insights API: performance score, LCP/CLS/TBT lab metrics, CrUX field data and assessment, top opportunities. Failed URLs are recorded free) (Apify free-plan rate) Bulk Core Web Vitals audits via the official PageSpeed Insights API: score, LCP, CLS, TBT + real-user CrUX assessment per URL. $0.01/report, no start fee. Failed URLs are free. #### Heading Structure Outliner - H1-H6 Outline + SEO Flags Store URL: https://apify.com/eliai/webpage-headings-outliner API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-headings-outliner/run-sync-get-dataset-items Price: $0.0015 per “Scanned pages” event (One page fetched and outlined into its H1-H6 heading structure with SEO issue flags. Failed fetches are recorded free) (Apify free-plan rate) Extract a page's H1-H6 heading structure as an ordered outline with SEO issue flags (missing/multiple H1, skipped levels). Single or bulk. $0.0015 per page, a fraction of paid SEO-audit actors; failed fetches are free. #### Meta Robots Auditor - Is This Page Actually Indexable? Store URL: https://apify.com/eliai/webpage-meta-robots-auditor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-meta-robots-auditor/run-sync-get-dataset-items Price: $0.002 per “Audited pages” event (One page's indexability audited: meta robots + meta googlebot + X-Robots-Tag + canonical, verdict with reasons. Unreachable URLs are recorded free) (Apify free-plan rate) Indexability verdict per URL from ALL the signals: meta robots, meta googlebot, the X-Robots-Tag header (the one checkers miss), canonical + self-canonical check — with the exact reasons. Catches shipped staging noindex and CDN-injected headers. $0.002 per page vs $0.007-$0.011 measured incumbents. #### Mobile-Friendly Checker - Multi-Signal Audit, Not One Tag Store URL: https://apify.com/eliai/webpage-mobile-friendly-checker API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-mobile-friendly-checker/run-sync-get-dataset-items Price: $0.002 per “Checked pages” event (One page's mobile-friendliness audited: viewport (parsed props), responsive hints incl. linked CSS, fixed widths, tiny fonts, legacy tech, weighted score. Unreachable pages are recorded free) (Apify free-plan rate) Batch mobile-friendliness by API: viewport meta fully parsed, @media in inline AND linked CSS, srcset/picture, fixed widths, tiny fonts, Flash, touch icons, user-scalable traps — weighted 0-100 score + verdict with named issues. $0.002 per page, unreachable pages never charged. 50 URLs/run. #### Open Graph & Twitter Card Extractor - Social Tags API Store URL: https://apify.com/eliai/webpage-social-tags-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-social-tags-extractor/run-sync-get-dataset-items Price: $0.0015 per “Scanned pages” event (One page fetched and scanned for Open Graph, Twitter Card, article/fb/Pinterest tags and per-network previews. Failed fetches are recorded free) (Apify free-plan rate) Extract Open Graph, Twitter Card, article, fb & Pinterest tags plus per-network share previews (Facebook/Twitter/LinkedIn) from any URL. Single or bulk. $0.0015 per page, cheaper than paid meta-tag actors; failed fetches are free. #### Outbound Link Auditor - Every External Link, Checked Live Store URL: https://apify.com/eliai/outbound-link-auditor API (run and get results): https://api.apify.com/v2/acts/eliai~outbound-link-auditor/run-sync-get-dataset-items Price: $0.005 per “Audited pages” event (One page's outbound links audited: rel flags, unsafe _blank, non-HTTPS, live status probes (up to maxLinks). Unreachable pages and HTTP errors are recorded free) (Apify free-plan rate) Audit a page's external links with evidence per link: rel/nofollow/sponsored flags, unsafe target=_blank (tabnabbing), non-HTTPS, live HEAD/GET status probes + redirect resolution. Up to 1,000 links/page. $0.005 per page incl. probes vs $0.04 measured incumbent; unreachable pages never charged. #### Page Weight Analyzer - Page Size & Performance Hints Store URL: https://apify.com/eliai/webpage-page-weight-analyzer API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-page-weight-analyzer/run-sync-get-dataset-items Price: $0.001 per “Scanned pages” event (One page fetched and analyzed for weight: HTML size, transfer size, resource counts, and render-blocking + perf hints. Failed fetches are recorded free) (Apify free-plan rate) Estimate page weight and get performance hints from one fetch (no headless): HTML/transfer size, script/style/image/font counts, render-blocking, fixes. $0.001 per page, far below Lighthouse actors; failed fetches free. #### Print Stylesheet Checker - Is Your Page Print-Friendly? Store URL: https://apify.com/eliai/webpage-print-css-checker API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-print-css-checker/run-sync-get-dataset-items Price: $0.0005 per “Scanned pages” event (One page checked for print-friendliness: print stylesheets, @media print rules, and hints. Failed fetches are recorded free) (Apify free-plan rate) Check if a page is print-friendly: print stylesheets, @media print blocks, inline print rules, and page-break hints. Bulk. $0.0005 per page. Failed fetches are recorded free. #### Robots Rule Tester - Would Google Crawl This URL? Store URL: https://apify.com/eliai/robots-rule-tester API (run and get results): https://api.apify.com/v2/acts/eliai~robots-rule-tester/run-sync-get-dataset-items Price: $0.0008 per “Tested URLs” event (One URL tested against its site's robots.txt with Google longest-match semantics (matched rule, UA group, sitemaps, crawl-delay). Invalid URLs are recorded free) (Apify free-plan rate) Test URLs against robots.txt with real Google semantics: longest-match, Allow wins ties, UA group selection (test Googlebot, GPTBot, ClaudeBot...), wildcards. Verdict + the exact rule that decided it + sitemaps. $0.0008 per URL, invalid URLs never charged — vs $0.001-$0.15 measured incumbents. #### robots.txt Analyzer — Rules, Sitemaps & Crawl Blocks Store URL: https://apify.com/eliai/robots-txt-analyzer API (run and get results): https://api.apify.com/v2/acts/eliai~robots-txt-analyzer/run-sync-get-dataset-items Price: $0.02 per “robots.txt scan” event (One site robots.txt parsed: user-agent groups, rules, sitemaps, and issues) (Apify free-plan rate) Parse and audit any site's robots.txt in one call: user-agent groups, allow/disallow rules, declared sitemaps, and crawl-block issues like an accidental site-wide Disallow. $0.02 per site analyzed. No API key. #### RSS Feed Finder - Discover All Feeds on Any Website Store URL: https://apify.com/eliai/webpage-feed-finder API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-feed-finder/run-sync-get-dataset-items Price: $0.0004 per “Scanned pages” event (One page scanned for RSS/Atom/JSON feeds: declared link tags plus common feed paths, de-duplicated. Failed fetches are recorded free) (Apify free-plan rate) Discover every feed a site exposes: declared link rel=alternate RSS/Atom/JSON plus common feed paths, validated & de-duplicated. Bulk. $0.0004 per page, cheaper than the measured comparable; failed fetches free. #### SEO Audit Tool: Title, Meta, Schema, Robots, Sitemap Store URL: https://apify.com/eliai/website-seo-tech-auditor API (run and get results): https://api.apify.com/v2/acts/eliai~website-seo-tech-auditor/run-sync-get-dataset-items Price: $0.10 per “Audited pages” event (One page crawled and audited: on-page SEO, redirect chain, link checks, structured data, plus its contribution to site-wide duplicate and broken-link detection) (Apify free-plan rate) SEO audit for any URL or whole site: crawl mode finds redirect chains, broken links, duplicate titles; page mode checks title/meta, headings, schema, robots.txt, sitemap, canonical. Machine-readable JSON with a pre-sorted fix list. $0.10 per page audited, failures free. #### Sitemap Analyzer — URL Counts, Issues & robots.txt Store URL: https://apify.com/eliai/sitemap-analyzer API (run and get results): https://api.apify.com/v2/acts/eliai~sitemap-analyzer/run-sync-get-dataset-items Price: $0.02 per “Sitemap scan” event (One site XML sitemap analyzed: URL count, structure, and issues) (Apify free-plan rate) Analyze any XML sitemap in one call: auto-discovery via robots.txt, URL counts, sitemapindex vs urlset detection, size, lastmod and HTTPS issue flags. $0.02 per site analyzed — flat, no per-URL charges. #### Sitemap URL Extractor — Every URL in a sitemap.xml as JSON Store URL: https://apify.com/eliai/sitemap-url-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~sitemap-url-extractor/run-sync-get-dataset-items Price: $0.005 per “Parsed sitemap files” event (One event per sitemap file (index or urlset) successfully fetched and parsed. Fetch errors and broken XML are never charged) (Apify free-plan rate) Get every URL out of a sitemap.xml, a sitemap index (followed recursively), or a bare domain via robots.txt. Returns loc, lastmod, changefreq and priority per URL. Priced per FILE, not per URL: $0.005 per sitemap plus $0.015 per 1,000 URLs. Failures never charged. #### Social Preview Checker — Open Graph & Twitter Cards Store URL: https://apify.com/eliai/social-preview-checker API (run and get results): https://api.apify.com/v2/acts/eliai~social-preview-checker/run-sync-get-dataset-items Price: $0.02 per “Preview check” event (How one URL renders when shared on social (Open Graph + Twitter Card title, image, description)) (Apify free-plan rate) See how any URL looks when shared on social: the rendered preview (title, description, image) from Open Graph and Twitter Card tags, with missing-tag issues flagged. $0.02 per URL checked. No API key. #### Structured Data Extractor - JSON-LD, Microdata, RDFa Store URL: https://apify.com/eliai/webpage-structured-data-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-structured-data-extractor/run-sync-get-dataset-items Price: $0.0004 per “Scanned pages” event (One page fetched and scanned for JSON-LD, Microdata, and RDFa structured data with schema.org types. Failed fetches are recorded free) (Apify free-plan rate) Extract all structured data from any page - JSON-LD, Microdata, and RDFa - plus the schema.org types found. Single or bulk. $0.0004 per page, cheaper than every paid structured-data actor measured; failed fetches are free. #### Webpage Keyword Density - Main-Content SEO + Cloud Weights Store URL: https://apify.com/eliai/webpage-keyword-density API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-keyword-density/run-sync-get-dataset-items Price: $0.002 per “Analyzed pages” event (One page fetched, main content extracted and analyzed for uni/bi/tri-gram keyword density with word-cloud weights. Unfetchable pages and HTTP errors are recorded free) (Apify free-plan rate) Keyword density of any URL's MAIN content (nav/footer boilerplate stripped first): ranked unigrams + bigrams + trigrams with density %, plus 1-100 word-cloud weights. Up to 50 URLs per run. $0.002 per page vs $0.011-$0.093 measured incumbents; HTTP errors never charged. Extraction scope reported. #### Webpage Readability Grade - Main Content, 6 Formulas Store URL: https://apify.com/eliai/webpage-readability-grade API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-readability-grade/run-sync-get-dataset-items Price: $0.002 per “Graded pages” event (One page fetched, main content extracted (boilerplate stripped) and graded across six readability formulas. Unfetchable pages and HTTP errors are recorded free) (Apify free-plan rate) Grade any URL's readability the honest way: main content extracted first (nav/footer/sidebar boilerplate stripped,
/
preferred), then Flesch, FK, Fog, SMOG, ARI, Coleman-Liau + level label. Up to 100 URLs per run. $0.002 per page, HTTP errors never charged. #### White-Label SEO Audit Report (HTML) Store URL: https://apify.com/eliai/seo-audit-report API (run and get results): https://api.apify.com/v2/acts/eliai~seo-audit-report/run-sync-get-dataset-items Price: $0.04 per “Generated SEO reports” event (Charged once per full SEO audit report generated for a URL) (Apify free-plan rate) Crawl a site and get back a finished audit report with your agency name and brand colour on it. Findings grouped by severity, each explaining why it costs traffic. Self-contained HTML that prints to PDF. One flat price per report — from $2.99 on paid plans. ### Extract data from any web page (13) Use these when you need to turn a URL into clean text, tables, links, images or a screenshot. #### Bulk Tech Stack Detector — CMS, Hosting, Analytics Store URL: https://apify.com/eliai/bulk-tech-stack-detector API (run and get results): https://api.apify.com/v2/acts/eliai~bulk-tech-stack-detector/run-sync-get-dataset-items Price: $0.01 per “Analysed domains” event (Charged once per domain analysed for its technology stack) (Apify free-plan rate) Paste a list of domains and get what each one runs: CMS, framework, hosting, analytics, payments, support widgets. Every detection returns the evidence that proved it plus a confidence level, so a wrong row is auditable. $0.01 per domain ($0.0067 on Diamond); unreachable domains never charged. #### Favicon Extractor - All Icons, Sizes & Types from URL Store URL: https://apify.com/eliai/webpage-favicon-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-favicon-extractor/run-sync-get-dataset-items Price: $0.0004 per “Scanned pages” event (One page scanned for all favicons/icons (link tags, web manifest, /favicon.ico fallback) with a best-icon pick. Failed fetches are recorded free) (Apify free-plan rate) Find every icon a site declares - link icons, apple-touch, mask-icon, web-manifest icons, favicon.ico fallback - with sizes/types and a best-icon pick. Single or bulk. $0.0004 per page, cheaper than paid favicon actors; failed fetches free. #### HTML Comment Extractor - Find Hidden Notes in a URL Store URL: https://apify.com/eliai/webpage-comment-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-comment-extractor/run-sync-get-dataset-items Price: $0.001 per “Scanned pages” event (One page fetched and scanned for HTML comments, flagging sensitive/leftover notes. Failed fetches are recorded free) (Apify free-plan rate) Extract HTML comments from any page and flag sensitive ones - TODO/FIXME, passwords, API keys, tokens, internal notes. Single or bulk. $0.001 per page. Failed fetches are recorded free. #### Image Extractor — Every Image URL on a Page, With Alt Text Store URL: https://apify.com/eliai/webpage-images-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-images-extractor/run-sync-get-dataset-items Price: $0.01 per “Page scan” event (All images on a page extracted with alt text and attributes) (Apify free-plan rate) Extract every image on a web page as JSON: absolute src, alt text, width/height, loading, srcset, plus og:image and twitter:image. Built for alt-text and asset audits. Returns image URLs and metadata, not the image files. $0.01 per page scanned; failures free. #### Link Extractor - All Links from Any Page with Anchor Text Store URL: https://apify.com/eliai/webpage-links-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-links-extractor/run-sync-get-dataset-items Price: $0.01 per “Page scan” event (All links on a page extracted and categorized) (Apify free-plan rate) Extract every link from any webpage. Input: a list of page URLs. Output: JSON with the absolute link URL, anchor text, internal/external type and rel flags (nofollow, sponsored, ugc), plus mailto and tel lists. $0.01 per page flat, however many links it finds. No start fee, no browser, no code. #### Table Extractor — Scrape HTML Tables from Any URL to JSON/CSV Store URL: https://apify.com/eliai/webpage-tables-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-tables-extractor/run-sync-get-dataset-items Price: $0.02 per “Table extraction” event (All HTML tables on a page extracted to structured JSON) (Apify free-plan rate) Table extractor for webpages: pass a URL and get every HTML data table back as structured rows — JSON via the API or dataset, CSV/Excel via one-click export. Layout tables skipped automatically. For analysts, developers and AI agents. $0.02 per page, failures free. #### Web Form Extractor - Fields, Method & Action from URL Store URL: https://apify.com/eliai/webpage-forms-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-forms-extractor/run-sync-get-dataset-items Price: $0.001 per “Scanned pages” event (One page fetched and scanned for all forms with action/method/enctype and per-field details. Failed fetches are recorded free) (Apify free-plan rate) Extract all forms from any page with action, method, enctype and every field (name/type), plus password/email/file flags. Single or bulk. $0.001 per page. Failed fetches are recorded free. #### Webpage Metadata Extractor - OpenGraph, Twitter Cards, JSON-LD Store URL: https://apify.com/eliai/webpage-metadata-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-metadata-extractor/run-sync-get-dataset-items Price: $0.02 per “Metadata extraction” event (Metadata extracted from one web page) (Apify free-plan rate) Extract webpage metadata from any URL. Input a URL, get one JSON record with the page title, meta tags, OpenGraph, Twitter Card, and JSON-LD structured data. $0.02 per page analyzed — for link previews, SEO checks, and AI agent pipelines. #### Webpage Text Extractor — URL to Clean Text & Markdown Store URL: https://apify.com/eliai/webpage-text-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-text-extractor/run-sync-get-dataset-items Price: $0.03 per “Text extraction” event (Clean text+markdown extracted from one page) (Apify free-plan rate) Get the readable text off a web page. Pass article or page URLs and get the clean main text back as Markdown or plain text, one result per URL, with ads, navigation and boilerplate stripped. $0.03 per page. Built for RAG and AI agents. #### Website Color Palette Extractor - Hex Colors from URL Store URL: https://apify.com/eliai/webpage-color-palette API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-color-palette/run-sync-get-dataset-items Price: $0.0008 per “Scanned pages” event (One page scanned for its color palette (hex/rgb/hsl from styles and theme-color), ranked by frequency. Failed fetches are recorded free) (Apify free-plan rate) Extract a website's color palette - hex/rgb/hsl from styles and theme-color meta - normalized and ranked by frequency. Single or bulk. $0.0008 per page no start fee, cheaper than paid palette actors; failed fetches free. #### Website Font Detector - Fonts Used on Any Page Store URL: https://apify.com/eliai/webpage-font-detector API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-font-detector/run-sync-get-dataset-items Price: $0.001 per “Scanned pages” event (One page scanned for fonts: font-family stacks, @font-face declarations, and Google/Adobe/system sources with font files. Failed fetches are recorded free) (Apify free-plan rate) Detect the fonts a site uses: @font-face + web-font files, font-family stacks, and Google/Adobe/self-hosted/system sources. Bulk. $0.001 per page, cheaper than paid font/brand extractors; failed fetches free. #### Website Screenshot — Full Page, Lazy-Load Safe, Batch, Mobile Store URL: https://apify.com/eliai/website-screenshot-pro API (run and get results): https://api.apify.com/v2/acts/eliai~website-screenshot-pro/run-sync-get-dataset-items Price: $0.0048 per “Captured screenshots” event (One screenshot produced and stored. URLs that fail (DNS, timeout, dead page) are returned as {ok:false} records and never charged) (Apify free-plan rate) Take a full page screenshot of a website. Waits for lazy-loaded images and fonts, dismisses cookie banners. Batch up to 100 URLs, desktop/mobile/retina, PNG or JPEG. $0.0048 per screenshot produced — failed URLs never charged. #### Website Technology Detector API — CMS, Frameworks, CDN Store URL: https://apify.com/eliai/webpage-tech-detector API (run and get results): https://api.apify.com/v2/acts/eliai~webpage-tech-detector/run-sync-get-dataset-items Price: $0.02 per “Page scan” event (CMS, frameworks, analytics and libraries detected on a page) (Apify free-plan rate) Detect what a website is built with via API. Input: a site URL. Output: JSON list of detected technologies — CMS (WordPress, Shopify), JS frameworks (React, Vue, Next.js), analytics, CDNs — from HTML and header signatures. Pay per result: $0.02 per page scanned. ### Convert and inspect files and data (18) Use these when you need to convert or profile a spreadsheet, PDF, image, CSV, JSON, XML or YAML file. #### Barcode Generator - 15 Symbologies, Real Check Digits Store URL: https://apify.com/eliai/barcode-generator API (run and get results): https://api.apify.com/v2/acts/eliai~barcode-generator/run-sync-get-dataset-items Price: $0.0015 per “Generated barcodes” event (One barcode PNG rendered (15 symbologies incl. QR, EAN, UPC, Code128). Invalid data and wrong check digits are rejected free) (Apify free-plan rate) Barcode PNGs by API: QR, Code128, EAN-13/8, UPC-A/E, ITF-14, DataMatrix, PDF417, Aztec + more (bwip-js engine). Retail check digits VALIDATED — a wrong EAN check digit is rejected free, not rendered broken (release-tested). $0.0015 per barcode vs $0.002-$0.004 measured incumbents. 50 per run. #### CSV Profiler - Instant Data Quality Report for Any CSV Store URL: https://apify.com/eliai/csv-profiler API (run and get results): https://api.apify.com/v2/acts/eliai~csv-profiler/run-sync-get-dataset-items Price: $0.003 per “Profiled CSV files” event (One CSV file parsed and profiled: per-column types, null rates, stats, top values and quality warnings. Unfetchable or empty files are recorded free) (Apify free-plan rate) Profile any CSV by URL or paste: per-column types, null rates, unique counts, min/max/mean/median/stddev, top values, quality warnings (mostly-null, mixed-type, constants, identifiers). Up to 200k rows. $0.003 per file whatever its size, no start fee — vs $0.015+ measured incumbents. #### CSV to Excel Converter - CSV to XLSX, by URL or Bulk Store URL: https://apify.com/eliai/csv-to-excel API (run and get results): https://api.apify.com/v2/acts/eliai~csv-to-excel/run-sync-get-dataset-items Price: $0.03 per “Converted files” event (One CSV file converted to an Excel workbook) (Apify free-plan rate) Convert CSV files to Excel spreadsheets by URL - proper quoted-field parsing, custom delimiters, headers detected, column widths set. Batch up to 25 files. Built for scripts, pipelines, and AI agents. $0.03 per file; failures are free. #### CSV to JSON Converter - Convert CSV by URL or Text API Store URL: https://apify.com/eliai/csv-to-json API (run and get results): https://api.apify.com/v2/acts/eliai~csv-to-json/run-sync-get-dataset-items Price: $0.02 per “File conversion” event (One CSV file converted to JSON) (Apify free-plan rate) Convert CSV to JSON via API - from a file URL or pasted raw text (fields: url or csv). Auto-detects delimiter (comma, tab, semicolon, pipe), types values (numbers, booleans, dates), handles quoted fields. Returns JSON records plus a column/type report. $0.02 per file. #### Excel to JSON Converter — XLSX/XLS Spreadsheet, All Sheets API Store URL: https://apify.com/eliai/excel-to-json API (run and get results): https://api.apify.com/v2/acts/eliai~excel-to-json/run-sync-get-dataset-items Price: $0.03 per “File conversion” event (One Excel workbook converted to JSON (per sheet)) (Apify free-plan rate) Convert XLSX or XLS spreadsheet URLs to JSON via API. Extract every sheet as row objects with detected headers, or select one sheet. Process up to 25 workbooks per run. Free-plan rate: $0.03 per workbook, all sheets included; Store discounts available. #### HTML to Markdown Converter - URL or HTML to GFM Store URL: https://apify.com/eliai/html-to-markdown API (run and get results): https://api.apify.com/v2/acts/eliai~html-to-markdown/run-sync-get-dataset-items Price: $0.0015 per “Converted pages” event (One page or HTML string converted to GitHub-flavored Markdown with the page title. Failed fetches are recorded free) (Apify free-plan rate) Convert a page (by URL) or raw HTML to clean GitHub-Flavored Markdown - headings, links, fenced code, tables, strikethrough. Single, bulk, or inline HTML. $0.0015 per page no start fee, cheaper than paid converters; failed fetches free. #### Image Converter — Convert Images to WebP, AVIF, JPEG or PNG Store URL: https://apify.com/eliai/image-converter API (run and get results): https://api.apify.com/v2/acts/eliai~image-converter/run-sync-get-dataset-items Price: $0.004 per “Image conversion” event (Charged once per image successfully converted and stored. Failed downloads, non-images and oversized files are recorded but never charged. The built-in demo image (empty input) is free) (Apify free-plan rate) Convert an image from PNG to JPEG, or to WebP, AVIF, PNG, GIF or TIFF, with optional resizing, quality control and metadata stripping. Batch URLs in; converted files and signed download links out. $0.004 per image; failures never charged, demo run free. #### Image Metadata & EXIF Extractor - Camera, GPS, Size Store URL: https://apify.com/eliai/image-metadata-exif-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~image-metadata-exif-extractor/run-sync-get-dataset-items Price: $0.003 per “Analyzed images” event (One image fetched and its metadata parsed. Failed fetches and non-images are recorded free) (Apify free-plan rate) Read any image URL and get dimensions, format, camera make/model, lens, ISO, shutter, aperture, focal length, capture date and GPS coordinates with a map link. Flags photos that still carry their location. Bulk up to 50. $0.003 per image; non-images are free. #### JSON Schema Inferer - Draft-07 Schema from JSON or API URL Store URL: https://apify.com/eliai/json-schema-inferer API (run and get results): https://api.apify.com/v2/acts/eliai~json-schema-inferer/run-sync-get-dataset-items Price: $0.002 per “Inferred schemas” event (One draft-07 JSON Schema inferred from a URL or raw JSON sample. Non-JSON responses and parse failures are recorded free) (Apify free-plan rate) Infer a draft-07 JSON Schema from any JSON URL or raw sample: types, required fields, email/date-time/uuid/uri formats, small enums, merged array-item schemas. $0.002 per schema, no start fee, non-JSON never charged — vs $0.011+ measured incumbents. Validate APIs and LLM output fast. #### JSON to CSV Converter - Flatten JSON to CSV, URL or Bulk Store URL: https://apify.com/eliai/json-to-csv API (run and get results): https://api.apify.com/v2/acts/eliai~json-to-csv/run-sync-get-dataset-items Price: $0.02 per “Converted files” event (One JSON file flattened to CSV) (Apify free-plan rate) Convert a JSON file by URL into a downloadable CSV - column union across records, proper quoting, Excel-friendly CRLF, one CSV per array for object-of-arrays input. Up to 25 files a run. $0.02 per file; failures are free. #### JSON to Excel Converter - JSON to XLSX, by URL or Bulk Store URL: https://apify.com/eliai/json-to-excel API (run and get results): https://api.apify.com/v2/acts/eliai~json-to-excel/run-sync-get-dataset-items Price: $0.03 per “Converted files” event (One JSON file converted to an Excel workbook) (Apify free-plan rate) Convert JSON to an Excel spreadsheet by URL - arrays of records become clean XLSX sheets with headers, column widths set, one sheet per key for object-of-arrays. Built for scripts, pipelines, and AI agents. $0.03 per file; failures are free. #### JSONPath Extractor - Query JSON, Get Pointers + Values Store URL: https://apify.com/eliai/jsonpath-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~jsonpath-extractor/run-sync-get-dataset-items Price: $0.0005 per “Ran JSONPath queries” event (One JSONPath expression evaluated against the document with pointer+value matches. Invalid expressions and unloadable documents are recorded free) (Apify free-plan rate) Evaluate up to 50 JSONPath expressions against pasted JSON or a URL: every match returned with its JSON Pointer and value, filters/wildcards/recursive descent supported (jsonpath-plus 10.3). $0.0005 per expression, no start fee, invalid expressions never charged. No paid JSONPath rival measured. #### Markdown to HTML Converter - GitHub-Flavored, Safe Store URL: https://apify.com/eliai/markdown-to-html API (run and get results): https://api.apify.com/v2/acts/eliai~markdown-to-html/run-sync-get-dataset-items Price: $0.0005 per “Converted files” event (One Markdown input (URL or text) converted to safe GitHub-flavored HTML with a table of contents. Failures are recorded free) (Apify free-plan rate) Convert Markdown to safe GitHub-flavored HTML by URL or text - anchored headings, table of contents, script/iframe stripping. Bulk. $0.0005 per conversion; failures are free. #### PDF Metadata Extractor - Read PDF Info by URL Store URL: https://apify.com/eliai/pdf-metadata-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~pdf-metadata-extractor/run-sync-get-dataset-items Price: $0.02 per “PDF processed” event (One PDF processed processed and its result returned) (Apify free-plan rate) Extract a PDF's metadata by URL: page count, version, title, author, producer, keywords, dates and a text preview, without full parsing. Single or bulk, up to 25 per run. $0.003 per PDF, no start fee; failures are recorded free. #### PDF Text & OCR Extractor — Scanned PDF to Text API Store URL: https://apify.com/eliai/pdf-text-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~pdf-text-extractor/run-sync-get-dataset-items Price: $0.003 per “Processed PDFs” event (Text and metadata extracted from one PDF. URLs that fail (dead link, not a PDF, encrypted, oversized) return {ok:false} records and are never charged) (Apify free-plan rate) Extract the text from a PDF file. Born-digital or scanned PDFs by URL; OCR runs only when a PDF lacks a text layer. Bulk up to 50 files for RAG and document QA. $0.003 per parsed PDF today; failed URLs free. #### QR Code Generator API — Hosted PNG and SVG, URL/WiFi/vCard Store URL: https://apify.com/eliai/qr-code-generator API (run and get results): https://api.apify.com/v2/acts/eliai~qr-code-generator/run-sync-get-dataset-items Price: $0.02 per “QR code” event (One QR code generated as PNG + SVG) (Apify free-plan rate) Generate QR codes via API. Input: content (URL, text, WiFi, vCard and more) plus optional size, margin, colors, and error-correction level. Output: hosted PNG and SVG image URLs ready to embed or download. $0.02 per QR code generated. #### XML to JSON Converter - Any XML File or Feed to Clean JSON Store URL: https://apify.com/eliai/xml-to-json API (run and get results): https://api.apify.com/v2/acts/eliai~xml-to-json/run-sync-get-dataset-items Price: $0.02 per “Converted files” event (One XML file converted to clean JSON) (Apify free-plan rate) Convert any well-formed XML by URL into clean JSON - attributes preserved, repeated elements as arrays, root element reported. Configs, API responses, RSS feeds, sitemaps. $0.02 per file; fetch/parse failures are free. #### YAML to JSON Converter — and JSON to YAML, Bulk Store URL: https://apify.com/eliai/yaml-to-json API (run and get results): https://api.apify.com/v2/acts/eliai~yaml-to-json/run-sync-get-dataset-items Price: $0.0004 per “Converted files” event (One YAML/JSON input converted (auto-direction) to the other format. Fetch/parse failures are recorded free) (Apify free-plan rate) Convert YAML into JSON, or JSON back into YAML, from pasted text or a file URL. The direction is auto-detected, so you do not pick a mode, and parse errors come back with the line number that broke. Bulk files per run. $0.0004 per file; failures are free. ### Analyze text (7) Use these when you need to score, classify or pull entities and keywords out of text. #### Profanity Detector - Wordlist Filter, Catches f*ck & f4ck Store URL: https://apify.com/eliai/profanity-detector API (run and get results): https://api.apify.com/v2/acts/eliai~profanity-detector/run-sync-get-dataset-items Price: $0.0004 per “Screened texts” event (One text screened against the profanity wordlist + obfuscation heuristics, with severity, positions and masked cleanedText. Non-string entries are recorded free) (Apify free-plan rate) Screen up to 1,000 texts per run against a tiered profanity wordlist with obfuscation heuristics (leet, spacing, partial masks) — severity, exact positions, masked cleanedText, Scunthorpe-guarded boundaries. A filter, NOT an AI moderation system. $0.0004 per text, junk entries never charged. #### Sentiment Analysis API - Score Any Text, No API Key Store URL: https://apify.com/eliai/text-sentiment-analyzer API (run and get results): https://api.apify.com/v2/acts/eliai~text-sentiment-analyzer/run-sync-get-dataset-items Price: $0.01 per “Sentiment check” event (Sentiment scored for one text input) (Apify free-plan rate) Sentiment analysis for any text via API. Input: text string(s). Output: JSON with sentiment label (positive/negative/neutral), normalized score, comparative score, and the driver words. Lexicon-based, no API key. Cheap pay-per-result: $0.01 per text analyzed. #### Text Entity Extractor - Emails, Phones, URLs, Dates, Money Store URL: https://apify.com/eliai/text-entity-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~text-entity-extractor/run-sync-get-dataset-items Price: $0.0008 per “Scanned texts” event (One text scanned for structured patterns (emails, phones, URLs, IPs, dates, money, hashtags, masked cards). Non-string entries are recorded free) (Apify free-plan rate) Regex extraction of 11 structured entity types from up to 100 texts per run: emails, phones, URLs, IPs, dates, times, money, percentages, hashtags, mentions + Luhn-checked ALWAYS-MASKED cards. Not model NER — exact, private, in-process. $0.0008 per text all types, junk entries never charged. #### Text Keyword Extractor - RAKE Phrases + Top Words as JSON Store URL: https://apify.com/eliai/text-keyword-extractor API (run and get results): https://api.apify.com/v2/acts/eliai~text-keyword-extractor/run-sync-get-dataset-items Price: $0.0005 per “Analyzed texts” event (One text analyzed with RAKE keyword phrases, scores and top words. Non-string entries are recorded free) (Apify free-plan rate) Extract ranked multi-word keyword phrases (RAKE-scored) + top words from up to 200 texts per run. For tagging, SEO briefs, ticket clustering, labeling scraped content. $0.0005 per text, no start fee, junk entries never charged. No paid keyword-extraction rival with defined pricing measured. #### Text Language Detector - ISO 639-3 + Confidence, 82 Langs Store URL: https://apify.com/eliai/text-language-detector API (run and get results): https://api.apify.com/v2/acts/eliai~text-language-detector/run-sync-get-dataset-items Price: $0.0005 per “Detected languages” event (One text's language detected (ISO 639-3 + name + confidence + alternatives). Undetectably short snippets are recorded free) (Apify free-plan rate) Detect the language of up to 200 texts per run: ISO 639-3 code, English name, confidence and ranked alternatives (franc trigram model, in-process, texts never leave the run). $0.0005 per text — half the measured incumbent ($0.001); too-short snippets never charged. For routing and dataset splitting. #### Text Readability Analyzer - 6 Formulas, Grade + Tips Store URL: https://apify.com/eliai/text-readability-analyzer API (run and get results): https://api.apify.com/v2/acts/eliai~text-readability-analyzer/run-sync-get-dataset-items Price: $0.0004 per “Scored texts” event (One text scored across six readability formulas with consensus grade, audience and tips. Word-free inputs are recorded free) (Apify free-plan rate) Score up to 100 texts per run with Flesch, Flesch-Kincaid, Gunning Fog, SMOG, ARI and Coleman-Liau + consensus grade, audience label and concrete fix-it tips. $0.0004 per text all six formulas, no start fee, word-free inputs never charged — vs $0.0005-$0.015 measured incumbents. #### Text Statistics API - Word, Sentence, Syllable Counts Store URL: https://apify.com/eliai/text-statistics API (run and get results): https://api.apify.com/v2/acts/eliai~text-statistics/run-sync-get-dataset-items Price: $0.02 per “Text analyzed” event (One text analyzed processed and its result returned) (Apify free-plan rate) Exact counts for any text: characters with and without spaces, words, unique words, sentences, paragraphs, syllables, longest words, per-word and per-sentence averages, and lexical diversity. Unicode-correct. Up to 200 texts per run. Currently listed free - see the Pricing tab. ## Free browser tools - [ATS Resume Checker](https://broke2builtai.com/tools/ats-resume-checker/): browser tool; see the page for its actual checks and limits. ## Full guide text # ATS-Friendly Resume Without Sounding Like a Robot Canonical URL: https://broke2builtai.com/guides/ats-friendly-resume-without-sounding-like-a-robot/ Summary: Make your resume ATS-friendly without sounding like a robot: real parsing rules, keyword tactics, before/after bullet examples, and a free template. There's a frustrating loop a lot of people get stuck in. You read that your resume has to be "ATS-friendly," so you stuff it with keywords and strip out anything with personality. Now it passes the robot — and reads like the robot wrote it. A human recruiter glances at it, feels nothing, and moves on. Here's the thing almost nobody tells you: you don't have to choose. The same resume can parse cleanly through an applicant tracking system *and* sound like a competent human wrote it. The two goals barely overlap, which means fixing one rarely breaks the other. This guide walks you through exactly how to do both — with real before/after examples and a free template at the bottom you can copy right now. ## first, what an ATS actually does (it's not what you think) Most "ATS will auto-reject you" advice is outdated fear. Modern applicant tracking systems (Workday, Greenhouse, Lever, Taleo, iCIMS) mostly do two things: 1. **Parse** your resume into structured fields — name, work history, dates, titles, skills. 2. **Rank or search** candidates so a recruiter can filter, usually by keyword. Most systems do **not** silently throw your resume in the trash because you used the wrong font. What actually happens is quieter and more common: your resume gets parsed *badly*, so your job titles land in the wrong field, your skills don't get indexed, and when a recruiter searches "project manager," you don't show up. You weren't rejected — you were never found. So "ATS-friendly" really means two separate jobs: - **Job A — be machine-readable.** Make sure the software can parse you correctly. - **Job B — be findable.** Use the words the recruiter will actually search for. Neither of these requires you to sound like a robot. The robot voice comes from a *third* thing people do out of panic — and we'll fix that too. ## job A: the formatting rules that actually break parsing These are the things that genuinely confuse parsers. Fix these and you've handled the bulk of the "machine-readable" problem: - **No tables, columns, or text boxes.** This is the big one. A two-column layout looks slick to you and can scramble into nonsense to a parser. Keep it single-column, top to bottom. - **No headers/footers for important info.** Many parsers ignore the header/footer region. If your phone number and email live up there, they can vanish. Put contact info in the main body. - **No graphics, icons, or logos** carrying meaning. A skill bar showing "Python 90%" parses as nothing. Write the word. - **Use standard section headings.** "Work Experience," "Education," "Skills." Not "Where I've Made an Impact." The parser is looking for the boring words. - **Real text, not an image.** Never export your resume as a flattened image or use a designer template that's secretly a picture. Select-all on your PDF — if you can't highlight the text, neither can the ATS. - **Standard fonts and a .docx or text-based PDF.** Arial, Calibri, Garamond, Georgia. When in doubt, .docx is the safest universal format. - **Spell out then abbreviate.** Write "Search Engine Optimization (SEO)" once so you match both searches. None of that touches your *voice*. You can write like a charming human inside a perfectly parseable single-column layout. Formatting and tone are independent. ## job B: keywords without the keyword-stuffing This is where people go robotic. They paste the job description, grab every noun, and cram them in. Don't do that. Here's the honest method: 1. **Pull the real keywords from the job posting.** Look for repeated nouns and specific tools: "stakeholder management," "Salesforce," "A/B testing," "GAAP," "Kubernetes." Those repeated terms are likely the exact words a recruiter will search. 2. **Match the posting's phrasing.** If they say "customer success" and you wrote "client relations," add their phrase. Mirroring is not cheating — it's translation. 3. **Place keywords where they're true.** Weave them into your bullet points and a dedicated Skills section. A skills line is a totally legitimate, ATS-loved place to list hard terms plainly: `Skills: Salesforce, SQL, A/B testing, stakeholder management, GAAP`. 4. **Aim for natural density, not maximum density.** If a human reading it aloud would cringe, you've over-stuffed. The goal is that every keyword sits inside a sentence that would make sense to a friend. The trick: the Skills section carries the "ugly" exact-match keywords so your *bullets* don't have to. That frees your bullets to sound human. ## the actual fix for "robot voice" Robot voice almost always comes from three habits. Kill these and you sound like a person instantly: - **Buzzword openers with no substance.** "Results-driven professional leveraging synergistic solutions." Delete. Start bullets with a strong verb and a concrete thing you did. - **No numbers.** Vague claims read as filler. One real number makes a line breathe. - **Passive, corporate hedging.** "Was responsible for the management of..." → "Managed..." Here's the human-sounding bullet formula that still hits keywords: **[Strong verb] + [what you did, with the keyword] + [number or outcome]** ### before and after **Before (robot, keyword-stuffed):** > Results-oriented team player responsible for leveraging cross-functional synergies to drive stakeholder-aligned deliverables in a fast-paced environment. That's six buzzwords and zero information. A recruiter learns nothing. **After (human, still ATS-friendly):** > Led a 4-person team through a Salesforce migration, cutting weekly reporting time from 6 hours to 45 minutes. Notice it still contains the searchable keywords — *led*, *team*, *Salesforce* — but a human can picture it. The number does the persuading. No synergy required. **Another pair:** > Before: Utilized communication skills to facilitate stakeholder management across various departments. > After: Ran biweekly check-ins with 3 department heads, which kept a delayed product launch on a revised timeline everyone signed off on. Same keywords ("stakeholder," "communication" implied by the action), but it sounds like you actually lived it — because you did. ## a free human-sounding, ATS-safe template Copy this, fill the brackets, keep it single-column: ``` YOUR NAME City, State | phone | email | LinkedIn URL SUMMARY [Your role] with [X years] in [field]. Known for [one real strength]. Looking to [the kind of role you want]. SKILLS [Hard skill], [Hard skill], [Tool], [Tool], [Methodology], [Certification] EXPERIENCE Job Title — Company, City, State Mon YYYY – Mon YYYY - [Strong verb] [what you did + a keyword], [number/outcome]. - [Strong verb] [what you did + a keyword], [number/outcome]. - [Strong verb] [what you did + a keyword], [number/outcome]. EDUCATION Degree — School, Year ``` That's a complete, parseable, human resume skeleton. Single column, standard headings, real text, keywords living in the Skills line so your bullets can stay readable. Run it through any job posting and adjust the verbs. ## quick checklist before you hit submit - Single column, no tables/text boxes, no header-buried contact info — yes - Standard section headings ("Experience," "Skills," "Education") — yes - Keywords pulled from the actual posting, mirrored in their words — yes - Skills section carries the exact-match hard terms — yes - Every bullet starts with a verb and has at least one concrete detail or number — yes - Read three bullets aloud — do they sound like a person, not a press release? — yes - Saved as a text-based .docx or PDF (you can highlight the text) — yes If all seven are true, you've cleared both the machine and the human. That's the whole game. ## the honest truth about doing this well Making *one* resume ATS-friendly and human is a couple of hours of focused work. The pain is doing it *again* for every role, rewriting bullets to mirror each posting, keeping a clean keyword list, pairing each one with a tailored [cover letter](/guides/chatgpt-prompt-to-write-a-cover-letter/), and — if your timeline has a stretch to account for, like a [caregiving gap](/guides/how-to-explain-a-caregiving-gap-on-your-resume/) — keeping that wording honest instead of slipping into buzzword autopilot at 11pm during application #14. Either way: you never have to pick between the robot and the human. Build it once, the right way, and it works for both. # ChatGPT Prompt for a Two Weeks Notice Resignation Letter Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-write-a-two-weeks-notice-resignation-letter/ Summary: A free copy-paste ChatGPT prompt that writes a clean two weeks notice — plus a sample letter, what to leave out, and how to keep your reference intact. ## what a two weeks notice actually needs to do before the prompt, the thing that makes people overthink this: a resignation letter has exactly one job — put your last day in writing, politely. that's it. it is not a place to explain why you're leaving, settle scores, or pour your heart out. the letter lands in your personnel file and your manager may forward it up the chain, so the safest version is short, warm, and almost boring. most people get this wrong in one of two directions. they either write three paragraphs of explanation nobody asked for, or they let frustration leak in and torch a reference they'll want later. a good ChatGPT prompt fixes both by forcing the letter to stay in its lane: resigning, last day, thank you, handover offer. done. here's the one I'd actually use. ## the copy-paste ChatGPT prompt paste this into ChatGPT (or Claude, or any chatbot), fill in the brackets, and send it. ``` You are a calm, professional career coach. Write me a short two weeks notice resignation letter. Keep it warm, neutral, and brief — this goes in my personnel file and may be forwarded, so it must give no one anything to react to. MY DETAILS - My name: [your name] - My job title: [your title] - Company / who I report to: [manager name, or "my manager"] - Today's date: [date] - My last working day: [date — two weeks out unless noted] - Delivery method: [email / printed letter] - Tone I want: [warm and grateful / strictly neutral and professional] - Relationship with manager: [good / neutral / strained] - Reason for leaving: [DO NOT include this in the letter — context only] RULES 1. Keep it to 4-6 sentences. Short is professional, not cold. 2. State clearly that I am resigning and give my exact last day. 3. Do NOT state my reason for leaving anywhere in the letter. 4. Include one genuine thank-you line (skip if I marked the relationship "strained" — then keep it cordial but minimal). 5. Offer to help with the transition / handover. 6. No complaints, no conditions, no demands, no over-explaining. WRITE TWO VERSIONS: A) A printed-letter version with date, greeting, body, and sign-off. B) An email version with a short subject line and the same body. ``` that's the whole free tool. it works because it forces the chatbot to do the parts people skip: cap the length, **bury the reason**, and produce both a letter and an email so you can use whichever your workplace expects. ## how to fill the brackets (the two that matter most) the prompt is only as good as your inputs, but two brackets do almost all the work: - **last working day.** count two weeks (ten business days) from the day you hand it in, unless your contract says more or you've agreed otherwise. write the actual calendar date, not "in two weeks" — vague dates cause payroll and handover confusion. if you can give more notice and want to, say so. - **relationship with manager.** be honest here. mark it "good" and you'll get a warmer thank-you. mark it "strained" and the prompt strips the letter down to flat, cordial, and unprovokable — which is exactly what you want when you're leaving somewhere that wore you down. everything else is just accuracy: right name, right title, right delivery method. the **reason for leaving** is in the prompt only so the chatbot understands the situation — it is explicitly told to keep it *out* of the letter. that one rule saves more references than any clever wording. ## example of what it spits back with example inputs *(Jordan Reyes, warehouse lead, reports to Sam, last day two weeks out, email, neutral tone, relationship "good")*, version B comes back looking like: > **Subject:** Resignation — Jordan Reyes > > Hi Sam, > > I'm writing to let you know I'm resigning from my role as warehouse lead. My last working day will be Friday, July 11. > > Thank you for the support and the opportunities I've had here — I've genuinely valued working with the team. I'm committed to making the next two weeks a smooth handover, so please let me know how I can help train a replacement or wrap up anything open. > > Best regards, > Jordan Reyes four short sentences. no reason given, no drama, a real thank-you, a clear date, and a handover offer. that letter does its whole job and leaves your reference intact. (your details will be different — that's the point of the brackets.) ## what to leave out (this is where people torch the reference) the letter is short *because* of what it doesn't say. keep all of this out of the written notice: - **why you're leaving.** even a good reason ("better pay elsewhere") reads as a comparison. save it for the verbal conversation if you want to share at all. - **complaints, feedback, or "here's what's wrong with this place."** that belongs in an exit interview, spoken, off the record — not in a document with your name on it. - **conditions or demands** ("I'll stay if…"). a resignation is a statement, not a negotiation. if you want to negotiate, do that in person *before* you write this. - **emotion.** relief, anger, sadness — all real, none of it goes in the file. the flatter the letter, the more it protects you. a resignation letter you'll be glad you sent is one a stranger could read and learn nothing except that you left on a date and were polite about it. ## the awkward cases the prompt handles too - **leaving on bad terms.** mark the relationship "strained" and the tone "strictly neutral." you'll get a cold-but-clean letter that gives an angry manager nothing to grab. - **you can't give a full two weeks.** tell the prompt the real last day and ask it to briefly, graciously acknowledge the shorter notice without apologizing three times. one calm line is enough. - **you're being pushed to over-explain.** you're not obligated to. add "I do not want to give a reason for leaving, and the letter should not hint at one" and the chatbot will hold that line. - **your contract requires more than two weeks.** change the "last working day" bracket to match it. the prompt doesn't know your contract — you do. ## where this one prompt stops — and the upgrade this prompt nails the *letter*. but a resignation is rarely one message. next you'll want a prompt to write the [calmer email to your skip-level](/guides/chatgpt-prompt-to-write-a-professional-email/), or the LinkedIn announcement that doesn't sound smug, or the reference request to the manager you actually liked, or the "I'm available to consult after I leave" note. and if this move started with you [backing out of an offer you'd already accepted](/guides/how-to-decline-a-job-offer-you-already-accepted/), that's its own careful message too. each one needs its own structure — role, inputs, guardrails, tone — and writing those prompts from scratch every time is the real skill. ## the honest version you do not need to buy anything to write a good two weeks notice. copy the prompt above, fill in your real last day, keep your reason out of it, and send it. that alone puts you ahead of everyone who agonizes over three paragraphs or fires off something they regret. the product is for the moment you realize the resignation is just the first of a dozen tricky messages this job change will need — and you'd rather own the machine that writes the prompts than google a new template each time. # ChatGPT Prompt to Appeal a Health Insurance Claim Denial Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-appeal-a-health-insurance-claim-denial/ Summary: A copy-paste ChatGPT prompt to appeal a health insurance claim denial, plus the real steps: read the denial reason, hit your deadline, attach the proof. a denial letter is not a verdict. it's the insurance company's opening offer, and a meaningful share of appeals that actually get filed end up overturned — partly because most people never file one. they read "denied," feel the floor drop out, and pay or walk away. you're not going to do that. what you're going to do is read the *reason* they denied it, feed the facts to ChatGPT, and send back a tight, specific appeal letter that's hard to wave off. this page gives you the copy-paste prompt, the variations for different denial types, and the real-world steps the prompt assumes you've done — because a beautiful letter that argues the wrong point is just a polite way to lose twice. quick disclaimer, because honesty is the whole point of this site: ChatGPT is not a lawyer or a doctor, and this isn't legal or medical advice. it drafts. you decide. now let's get this overturned. ## first, do the 3 things that make the prompt work the letter is only as strong as the facts you feed it. before you open ChatGPT, get these: 1. **find the exact denial reason.** pull out your denial letter and your Explanation of Benefits (EOB). somewhere on there is the specific reason and usually a code. the wording matters enormously — "not medically necessary," "experimental/investigational," "out-of-network," "no prior authorization," "missing information," and "not a covered benefit" are completely different fights. copy the exact phrase they used. you're going to rebut *that*, not a guess. 2. **get your proof lined up.** the single most powerful attachment is a **letter of medical necessity** from the doctor who ordered the treatment — a short note explaining why it was needed and what was tried first. also gather: relevant medical records, test results, the original prior-authorization approval if you had one, and your plan's coverage document (the part that shows the service *is* covered). the letter references these; you attach them. 3. **note your deadline and where to send it.** ACA plans generally give you up to 180 days from the denial to file an internal appeal, but your letter lists the real deadline and the exact address or portal. write it down. if you need the treatment urgently, you can ask for an **expedited appeal** — often decided within about 72 hours instead of weeks. got those three? now the prompt does the heavy lifting. ## the master ChatGPT prompt (copy + paste) paste this into ChatGPT and replace the brackets. the anti-hallucination instruction in the first paragraph is load-bearing — don't delete it: ``` You are an experienced patient advocate who writes health-insurance appeal letters. Write a formal internal appeal letter for me. Use ONLY the facts I give you below — do NOT invent claim numbers, dates, dollar amounts, plan language, or clinical studies. If something important is missing, list it under "INFO YOU STILL NEED" instead of guessing. MY SITUATION: - Name + member ID: [from your insurance card] - Insurance company: [name] - Claim / reference number: [from the denial letter] - Date(s) of service: [date] - Provider / facility: [name] - Service or treatment denied: [e.g. MRI of left knee] - EXACT denial reason they gave: [copy the wording, e.g. "not medically necessary"] WHY I THINK THE DENIAL IS WRONG (my own words): [e.g. my doctor ordered it after 6 weeks of failed physical therapy / I had prior authorization / this is covered under my plan / the code was wrong] DOCUMENTS I CAN ATTACH: [only list what you actually have — letter of medical necessity, medical records, test results, prior-auth approval, plan documents] Write the letter so it: 1. Clearly states I am formally appealing and identifies the claim. 2. Directly rebuts the SPECIFIC denial reason above. 3. References the documents I listed (only the ones I have). 4. Requests a specific outcome: overturn the denial and pay the claim. 5. Asks for a written response and notes my right to an external review if denied. Keep it professional, firm, one page, plain English. At the end, give me a checklist of what to attach and a one-line note on the deadline. ``` that last instruction hands you the letter *and* a what-to-attach checklist in one shot. ## variations for the denial reason you actually got **"not medically necessary"** — the most common one. add this line to the situation block: ``` This is a medical-necessity denial. Lean the letter on my doctor's clinical judgment and the letter of medical necessity, and on what was tried before this treatment. Ask them to identify the specific plan criteria the service supposedly failed. ``` **"no prior authorization" or a coding error** — often the easiest win: ``` I believe this is a clerical/processing error, not a coverage issue. [I DID have prior auth, number: X / the service was coded wrong as Y]. Write the letter to request a reprocessing of the claim with the correct information, politely and clearly. ``` **"out-of-network"** when you had no in-network option (e.g. an emergency, or no in-network specialist existed): ``` This was denied as out-of-network, but [it was an emergency / there was no in-network provider available for this service]. Write the letter requesting it be covered at the in-network rate, and ask them to confirm network adequacy for this service. ``` one honest warning: ChatGPT can confidently invent a "plan section 4.2(b)" or a clinical guideline that doesn't exist. the prompt tells it not to — but **verify every specific citation before you send.** a real letter with no fake citations beats an impressive letter with one made-up fact, because the reviewer who catches it stops trusting the rest. ## why your prompt quality is the whole game here's what nobody tells you: the gap between "ChatGPT wrote me a generic complaint" and "ChatGPT wrote a letter that got my MRI approved" is *the prompt*. the master prompt above works because it gives the model a role, the exact denial reason to attack, your real proof, a specific ask, and a guardrail against making things up. a one-liner like "help me appeal my insurance denial" gets you mush that argues nothing in particular. ## putting it together: the actual play 1. read the denial letter and EOB. copy the **exact** reason word-for-word. 2. line up your proof — especially a letter of medical necessity from the ordering doctor. 3. run the master prompt with your real facts and the matching variation. 4. verify every specific claim ChatGPT wrote. delete anything you can't back up. 5. send it before the deadline — through the portal or by certified mail for a paper trail. 6. if the internal appeal is denied, request the **external review**. an independent reviewer can overturn it, and that decision binds the insurer. 7. keep copies of everything and a log of every call (date, name, what they said). most people never get past step 1. you're going to send the letter — and that alone puts you ahead of almost everyone who got the same denial. go pull your denial letter. the reason they gave you is the exact thing you're going to take apart. If the same season has you fighting the bill itself, [how to negotiate a medical bill](/guides/chatgpt-prompt-to-negotiate-a-medical-bill/) covers the itemized-bill and charity-care route — and for any bureaucratic letter, [the professional email prompt](/guides/chatgpt-prompt-to-write-a-professional-email/) keeps the tone right. # ChatGPT Prompt to Dispute a Credit Report Error Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-dispute-a-credit-report-error/ Summary: A copy-paste ChatGPT prompt + free letter template to dispute a credit report error, plus the FCRA rights and exact steps to actually send it. you pulled your credit report, found something that's just wrong — a late payment you actually paid on time, a collection that isn't yours, a balance that's way off — and now you want ChatGPT to write the dispute letter for you. good instinct. a clean, FCRA-grounded letter is exactly the kind of thing an AI is great at drafting. and you do NOT need to pay a credit-repair company hundreds of dollars to do something the law lets you do yourself for the price of a stamp. but most people paste in something like "write a credit dispute letter" and get a vague, generic page that the bureau ignores. the letters that actually get errors fixed are *specific*: they name the item, cite the law, and ask for a clear outcome. so below is the real prompt, a fill-in-the-blank template, and the steps to send it so it has teeth. no fluff. ## the copy-paste ChatGPT prompt paste this into ChatGPT (or Claude, or any model), fill the brackets, and you'll get a tight one-page letter instead of a generic blob: ``` You are a consumer-rights paralegal who writes FCRA dispute letters. Write a formal dispute letter to [BUREAU: Equifax / Experian / TransUnion]. My details: - Full legal name: [NAME] - Current mailing address: [ADDRESS] - Date of birth: [DOB], last 4 of SSN: [XXXX] - Report / confirmation number (if I have one): [NUMBER] The error I'm disputing: - Creditor / furnisher name: [CREDITOR] - Account number (masked): [ACCT] - What the report currently says: [e.g. "30-day late in March 2025"] - Why it's wrong: [e.g. "I paid on time — I have the bank statement"] - What I want: [correct the entry / delete the account / fix the balance] Rules for the letter: - Cite my rights under the Fair Credit Reporting Act, specifically the 30-day reinvestigation requirement (15 U.S.C. § 1681i). - Firm, factual, polite. No threats, no emotional language. - Reference enclosed COPIES of supporting documents (never originals). - Ask them to send written results and a free updated report if anything changes. - One page, formal business-letter format, with placeholders for date + signature. - Leave anything I didn't give you as a clearly marked [BRACKET]. After the letter, list the exact documents I should enclose for THIS dispute. ``` the magic is in the constraints. by giving the model a role, the specific facts, the legal hook, and a hard "one page, leave brackets" format, you stop it from inventing details or rambling. that last line — "list the documents I should enclose" — is the part people forget, and it's often what gets a dispute thrown out as unsupported. ## know your rights first (so the letter actually bites) the letter works because the law is on your side. under the **Fair Credit Reporting Act (FCRA)**: - you have the right to dispute anything inaccurate or incomplete on your report. - once a bureau (Equifax, Experian, TransUnion) gets your dispute, it generally has **30 days** to investigate (up to 45 if you send extra info mid-process). - the bureau must forward your dispute to the company that reported the item (the "furnisher"). - if the information **can't be verified**, it must be corrected or deleted. - they must send you the results in writing, plus a free updated copy of your report if it changed. - you can pull all three reports free, weekly, at **AnnualCreditReport.com** — the only federally authorized source, and it never asks for a card. get the actual report before you write, so you quote the entry exactly. knowing this is why your letter cites § 1681i. you're not begging — you're invoking a process they're legally required to run. ## the free fill-in-the-blank template don't want to use AI at all? here's a bare-bones version you can type yourself: ``` [Your Name] [Your Address] [City, State ZIP] [Date] [Bureau Name] [Bureau Dispute Address] Re: Dispute of inaccurate information — [Creditor], account [masked acct #] To whom it may concern: I am writing to dispute the following information on my credit report. The item below is inaccurate, and I am requesting it be corrected or deleted under the Fair Credit Reporting Act, 15 U.S.C. § 1681i. Item: [Creditor name], account ending [XXXX] What the report says: [the error] Why it is inaccurate: [your reason] Requested action: [correct / delete / update] Enclosed are copies (not originals) of [list documents] supporting my dispute. Please reinvestigate this matter, correct or remove the disputed item, and send me written confirmation of the results along with a free updated copy of my credit report. Sincerely, [Signature] [Printed name] ``` that's a real, usable letter. the ChatGPT prompt above just does it faster, cleaner, and tailored to your exact situation. ## how to actually send it 1. **dispute with the bureau *and* the furnisher.** mail a copy to the credit bureau AND to the company that reported the bad info. both have obligations under the FCRA. 2. **mail vs. online:** online disputes are faster, but mailing by **certified mail with return receipt** gives you a dated paper trail and preserves your options if it drags on. for a serious error, mail it. 3. **never send originals.** copies only. keep your originals and a copy of the full letter. 4. **track the clock.** note the date they received it. if 30 days pass with no real investigation, that's a violation you can point to. 5. **if they "verify" it but it's still wrong:** send a follow-up requesting the **method of verification** (how they confirmed it), re-dispute with stronger evidence, add a 100-word consumer statement to your file, and/or file a complaint with the CFPB at consumerfinance.gov. ## one letter is rarely the whole fight here's the honest part most "free template" pages won't tell you: a single dispute letter is step one. real credit cleanup usually turns into a small campaign — the dispute letter, then maybe a **goodwill letter** to a creditor, a **debt-validation letter** to a collector, a **method-of-verification** follow-up, and a **CFPB complaint** if they stonewall. and if the black mark is a medical bill you were wrongly charged for, [negotiating the underlying medical bill down](/guides/chatgpt-prompt-to-negotiate-a-medical-bill/) can matter as much as correcting the report. each one needs a *different* tone and different legal hooks, and writing a fresh prompt for each from scratch gets old fast. ## common mistakes to avoid - **being vague.** "fix my report" gets ignored. name the account and the exact error. - **disputing accurate negatives.** if a late payment really happened, a dispute won't remove it — a goodwill letter is the better play there. - **lying or padding.** never let ChatGPT (or yourself) add facts that aren't true. you sign the letter; you own every claim in it. - **disputing everything at once with no proof.** bureaus can dismiss disputes they deem "frivolous." lead with your strongest, best-documented item. - **forgetting to follow up.** mark your calendar for day 30. If the error came with money trouble attached, [the hardship letter prompt](/guides/chatgpt-prompt-to-write-a-hardship-letter-for-loan-modification/) covers the letter your lender needs next. # ChatGPT Prompt to Get Your Security Deposit Back Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-get-security-deposit-back/ Summary: A copy-paste ChatGPT prompt + free fill-in-the-blank demand letter template to get your security deposit back from a landlord. No jargon, real steps. ## chatgpt prompt to get your security deposit back (demand letter, free template inside) your landlord has your deposit. the move-out went fine. and now it's been weeks of silence, or they "kept it for cleaning" with no receipts. you don't need a lawyer for this — you need one firm, professional demand letter that makes it clear you know the law and you're ready to file in small claims court if they don't pay. this page gives you the whole thing: the exact ChatGPT prompt to write that letter, a fill-in-the-blank template if you'd rather skip the AI, and the few facts you have to verify so the letter actually holds up. i've written these letters. the ones that work aren't angry — they're specific, calm, and on a clock. ### before you write: the 4 facts that make a deposit letter work a demand letter isn't magic words. it's leverage built from facts. get these four straight before you prompt ChatGPT or fill in the template: 1. **the numbers.** what you paid, what they returned (if anything), and the exact difference you're owed. "$1,400 paid, $0 returned, $1,400 owed." no rounding, no vagueness. 2. **the dates.** move-out date, and the date you gave them your forwarding address in writing. the deadline clock in almost every state starts from one of those. 3. **your state's deadline.** every state sets a window for the landlord to return the deposit or send an itemized list of deductions. these commonly run anywhere from about two weeks to two months — but the exact number is state-specific, so look up "[your state] security deposit return law" and write down the day-count. do not let ChatGPT guess this for you (more on that below). 4. **the penalty, if any.** many states let you recover *more* than the deposit — sometimes two or three times the amount — when a landlord withholds it in bad faith or blows the deadline. some don't. knowing whether your state has this is what turns a polite request into real pressure. that's it. with those four facts, the letter writes itself. literally — here's the prompt. ### the chatgpt prompt (copy, paste, fill the brackets) paste this whole block into ChatGPT, fill in everything in `[brackets]`, and send. it's written to keep ChatGPT from inventing law, which is the #1 way these letters go wrong. ``` You are a tenant-rights paralegal who has written hundreds of successful security-deposit demand letters. Write a firm, professional demand letter for the return of my security deposit. Use ONLY the facts I give you — do not invent dates, dollar amounts, statute numbers, or legal claims. If a fact is missing, leave a clearly marked [BLANK]. MY SITUATION: - My name + current mailing address: [____] - Landlord / property manager name + address: [____] - Address of the unit I moved out of: [____] - Move-in date: [____] Move-out date: [____] - Deposit I paid: $[____] - Amount returned to me so far: $[____] - Date I gave them my forwarding address in writing: [____] - My state: [____] - What they claim (deductions, or just silence): [____] - My side / the truth: [____] - Evidence I have: [move-out photos / signed walkthrough / texts / receipts] REQUIREMENTS: 1. Open by stating the deposit amount, the move-out date, and that the deadline to return it under [my state] law has passed. 2. Refer to my state's deposit law generally, then add a bracketed note telling ME to confirm the exact day-count and any penalty before sending — do NOT state a specific statute number unless I gave you one. 3. State the exact amount owed. 4. Set a firm deadline to pay: 10 business days from the letter date. 5. State that if unpaid, I will file in small claims court and pursue any penalties my state allows for wrongful withholding. 6. Tone: professional and unemotional. No threats, no insults, no caps. 7. Format as a real letter — my address, date, their address, an RE: line, the body, "Sincerely," and a signature block. 8. End with a checklist: what to attach, and to send it certified mail with return receipt requested. ``` ### prefer no AI? the fill-in-the-blank template don't want to touch ChatGPT? this is the same letter, ready to type into a document. swap the brackets. > [Your Name] > [Your Current Address] > [City, State ZIP] > [Date] > > [Landlord / Property Manager Name] > [Their Address] > > **RE: Demand for Return of Security Deposit — [Unit Address]** > > Dear [Landlord Name], > > I rented the unit at [unit address] from [move-in date] to [move-out date]. At move-in I paid a security deposit of $[amount]. As of today, [date], I have received $[amount returned] of that deposit back. > > Under [my state]'s security deposit law, you were required to return my deposit, or provide an itemized statement of deductions, within [statutory deadline] of my move-out / forwarding-address date. That deadline has passed. [If they sent bogus deductions: I dispute the deductions listed for the following reasons: ____.] > > I am therefore demanding the return of the **$[amount owed]** still owed to me. Please send payment to the address above **within 10 business days of the date of this letter.** > > If I do not receive full payment by then, I will file a claim in small claims court to recover the full amount, plus any statutory penalties [my state] allows for the wrongful withholding of a security deposit, along with court costs. > > I have documentation of the unit's condition at move-out and can provide it to the court if necessary. > > Sincerely, > [Your signature] > [Your printed name] attach: move-out photos, your signed move-in/move-out walkthrough if you have one, and any texts where they acknowledged the deposit. send it **certified mail, return receipt requested** — that receipt is your proof of the date, and the date is what your whole case runs on. keep a copy. ### the one thing chatgpt will get wrong if you let it ChatGPT does not know your state's deposit law reliably, and it will confidently make up a statute number if you ask it to cite one. that's why the prompt above tells it to flag the law for *you* to confirm instead of stating it. spend five minutes looking up "[your state] attorney general security deposit" or your state's official tenant guide, fill in the real deadline and penalty, and your letter goes from "sounds official" to *actually* enforceable. a landlord who's ignored three emails will read a letter that quotes the correct deadline very differently. quick honesty note: this is a practical guide, not legal advice. for a big deposit or a messy case, your state's tenant hotline or a local legal-aid clinic will check your specific situation for free — worth the ten-minute call before you file. ### one letter, or every letter you'll ever need to write the prompt on this page is hand-tuned for exactly one job: a deposit demand letter. it works because someone (me) sat there adding the role, the guardrails, and the output format. the thing is, life keeps handing you these. a [dispute with a contractor](/guides/chatgpt-prompt-to-write-a-demand-letter-for-an-unpaid-invoice/). a refund a company is stonewalling. a complaint to HR. a [negotiation email you're too annoyed to write clearly](/guides/chatgpt-prompt-to-write-a-professional-email/). each one needs that *same* structure — right role, no hallucinated facts, firm deadline, clean format — and rebuilding it by hand every time is a slog. # ChatGPT Prompt to Negotiate a Lower Bill Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-negotiate-a-lower-bill/ Summary: A free copy-paste ChatGPT prompt that writes your bill-negotiation script — plus the levers, the exact words, and what to say when they say no. ## why your bill is more negotiable than you think before the prompt, one thing worth knowing because it changes how you talk to the rep: most recurring bills — internet, phone, cable, gym, software, even some medical bills and credit-card APRs — have built-in room to come down. companies budget for it. the team that handles "I'm thinking about canceling" is usually called the **retention department**, and they have offers a normal frontline rep literally cannot see. promo pricing, loyalty credits, fee waivers — those exist specifically to stop you from leaving. so negotiating a bill isn't begging. it's asking a person whose job is to keep you to do their job. the only reason most people overpay is they don't ask, or they ask the wrong way ("can you lower my bill?" → "no, sorry"). a good ChatGPT prompt fixes the *how*: it writes you a calm, specific script with the right leverage and the right fallbacks. here's the one I'd actually use. ## the copy-paste ChatGPT prompt paste this into ChatGPT (or Claude, or any chatbot), fill in the brackets, and send it. ``` You are an expert customer-retention negotiator who has worked the "save desk" at a major telecom. Your job is to write me a calm, polite, effective script to lower the bill below. Do not be aggressive or dishonest — only use real leverage I actually have. MY SITUATION - Company / bill: [e.g. Comcast internet] - Current monthly amount: [$___] - How long I've been a customer: [___ years / months] - Payment history: [always on time / a few late / new] - What changed: [bill went up / promo ended / found a cheaper competitor] - Real competitor offer I can name: [e.g. AT&T fiber $55/mo — or "none"] - My true walk-away: [I will actually cancel / I won't cancel, bluffing] - Contact method: [phone call / live chat] WRITE FOR ME: 1. A one-line opening that's friendly and states why I'm calling. 2. My specific ask (a target number, not "something cheaper"). 3. Three fallback asks if they say no, ranked from best to acceptable (lower rate → loyalty credit → waive a fee → downgrade a tier). 4. Exact word-for-word responses to these pushbacks: - "That's the best price available." - "That promo is only for new customers." - "I'm not authorized to change that." 5. The exact moment and phrase to ask for the retention/cancellation department. 6. A polite closing line whether I win or not. Keep every line short enough to read out loud naturally. Tone: relaxed, confident, never threatening. ``` that's the whole free tool. it works because it forces ChatGPT to do the three things people skip: name a **target number**, prepare **fallbacks**, and script the **pushback responses** in advance so you're not improvising while a rep talks over you. ## how to fill the brackets (this is where the leverage lives) the prompt is only as good as your inputs. four levers actually move price — give ChatGPT the real ones: - **a competitor number.** "AT&T is offering me fiber at $55" beats "it's too expensive" every time. look up one real competing offer before you call. if there genuinely isn't one, say so and the script leans on loyalty instead. - **your tenure + payment history.** "I've been a customer 6 years and never missed a payment" is a real ask for a loyalty credit. tell the prompt the true numbers. - **a specific trigger.** "my promo just ended and the bill jumped from $50 to $89" gives the rep a reason to apply a new promo. vague = no. - **your real walk-away.** be honest with ChatGPT about whether you'll actually cancel. if you would, the script can use the retention department hard. if you won't, it'll keep you out of a bluff that backfires. ## example of what it spits back with example inputs *(Comcast, $89/mo, 4 years, always on time, promo ended, AT&T $55 offer, will actually cancel, phone)*, you'll get something like: - **opening:** "Hi — I've been a customer about four years and always paid on time, but my bill just jumped to $89 and I'm comparing options. I'd love to stay if we can fix the price." - **the ask:** "AT&T is offering me $55 a month. Can you get me to $55, or close to it?" - **fallback 1:** "If you can't match $55, what loyalty promo can you apply for the next 12 months?" - **fallback 2:** "Can we waive the modem rental fee instead?" - **fallback 3:** "Could we drop to the next speed tier to bring it down?" - **pushback — 'best price available':** "I understand that's the best *you* can see — could you transfer me to the retention team to check their offers before I decide?" - **the magic phrase:** "I think I'd like to cancel my service" → this is what routes you to the people with the real discounts. read it once, then run the call. (your real numbers will be different — that's the point of filling in the brackets.) ## running the actual call or chat - **be warm to the human.** the rep didn't set the price. friendly people get more. - **say your target number out loud and then stop talking.** silence after the ask does real work. - **take notes.** name, date, the offer, any reference number. - **the retention move is the close.** if the frontline rep is stuck, "I'd like to cancel" usually transfers you to someone with better tools. you can always *not* cancel. - **if you win, lock it in.** ask how long the new rate lasts and put a reminder on your calendar for the day it expires — that's your next negotiation. ## what to do when they say no a "no" from the first rep is normal — it's not the end. polite-and-persistent beats angry. ask the prompt to add a "second attempt" branch: hang up, call back, get a different rep ("HUCA" — hang up, call again), and try the retention script fresh. if it's a [medical bill](/guides/chatgpt-prompt-to-negotiate-a-medical-bill/), the script changes entirely — ask for an itemized bill, the cash/self-pay rate, and a financial-hardship or payment-plan option. ChatGPT will rewrite the whole approach if you just tell it the bill type. ## where this one prompt stops — and the upgrade this prompt is genuinely good for *bills*. but you'll hit the wall fast: now you want a prompt to draft the [follow-up email](/guides/chatgpt-prompt-to-write-a-professional-email/), or to negotiate rent, or to write a complaint that actually gets a refund, or to prep for a salary conversation. each one needs its own structure — role, inputs, fallbacks, tone — and writing those from scratch is the real skill. ## the honest version you do not need to buy anything to lower your bill. copy the prompt above, fill in real numbers, make the call. that alone puts you ahead of almost everyone who just pays the invoice. the product is for the moment you realize a good prompt is worth more than any single script — and you'd rather own the machine than keep googling for templates. # ChatGPT Prompt to Negotiate a Medical Bill Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-negotiate-a-medical-bill/ Summary: A copy-paste ChatGPT prompt to negotiate a medical bill, plus the real steps that actually lower it: itemized bills, charity care, and self-pay discounts. i've gotten a four-figure hospital bill knocked down to a fraction of it with nothing but an itemized bill and a politely-worded email. you don't need a lawyer or a "medical billing advocate" who takes a cut of whatever they save you. you need to know what to ask for, and you need ChatGPT to write it in a tone that gets a "yes" instead of a "we'll note your account." this page gives you the actual prompt (copy-paste, fill in the blanks), the variations for different situations, and — importantly — the real-world steps the prompt assumes you've done. because a great letter built on a bill you haven't even read is just a polite way to overpay. quick disclaimer up front, because being honest is the whole point of this site: ChatGPT is not a lawyer, not a doctor, and not a financial advisor. it drafts. you decide. nothing here is legal advice. ok, let's lower a bill. ## first, do the 3 things that make the prompt work the prompt is only as good as the facts you feed it. before you open ChatGPT, get these: 1. **request an itemized bill.** the "amount due" summary they mail you is useless for negotiating. call billing and say: "please send me a fully itemized bill with CPT and HCPCS codes." this is the single highest-leverage move. itemized bills can contain duplicate charges, services you never got, or "upcoding" (billing a more expensive version of what actually happened). you can't dispute what you can't see. 2. **figure out the fair price.** look up the procedure codes on FAIR Health Consumer (fairhealthconsumer.org) and Healthcare Bluebook, and check what Medicare pays for that code. hospitals charge inflated "chargemaster" rates; the fair cash price is often a fraction of that. now you have a number to anchor to. 3. **know your real situation.** are you uninsured, underinsured, or post-deductible? what's your household income versus the federal poverty level? what can you genuinely pay today in one lump sum? these three facts unlock the three best discounts: **financial assistance / charity care** (nonprofit hospitals are required under the ACA's 501(r) rules to have a written financial-assistance policy — most people never ask), the **prompt-pay / self-pay discount**, and an **interest-free payment plan**. got those? now the prompt does the heavy lifting. ## the master ChatGPT prompt (copy + paste) paste this into ChatGPT and replace the brackets. the more specific you are, the better the letter: ``` You are an experienced patient-advocate and medical-billing negotiator. Help me write a firm, polite, professional letter to negotiate down a medical bill. I want a "yes," not a fight. MY SITUATION: - Provider/hospital: [name] - Total billed amount: [$X] - Insurance status: [uninsured / insured but high balance / out of network] - Itemized charges I'm questioning: [list any codes/charges, or "none yet"] - Fair/benchmark price I found (FAIR Health / Medicare rate): [$Y] - Household income vs. federal poverty level: [e.g. ~150% FPL] - What I can realistically pay: [lump sum $Z now / $W per month] IN THE LETTER, ASK FOR THESE IN ORDER OF PREFERENCE: 1. Financial assistance / charity care eligibility (501(r) policy) 2. A self-pay / prompt-pay discount if I pay a lump sum 3. An interest-free payment plan as a fallback REQUIREMENTS: - Tone: respectful, confident, never adversarial or threatening. - Reference the itemized bill and that I'm reviewing charges carefully. - Request all agreements in writing before I pay anything. - Keep it under one page. - End with a clear, specific ask and my contact info placeholder. Give me the letter, then 3 short talking points I can use if I have to negotiate this by phone instead. ``` that last line is the cheat code — you get the email *and* a phone script in one shot. ## variations for specific situations **if you found billing errors**, swap the body for this: ``` Help me write a dispute letter for a medical bill. Itemized bill shows: [paste the suspicious lines]. I believe [duplicate charge / service not received / wrong code] is incorrect. Write a letter requesting a corrected, itemized statement and a hold on collections while it's reviewed. Note that I've requested and am reviewing the itemized bill. Firm but polite. ``` **if you're applying for charity care**, try: ``` Write a short cover letter to submit with a hospital financial-assistance application. My household income is [$X] for a family of [N], which is roughly [%] of the federal poverty level. Politely state I'm requesting charity care under the hospital's 501(r) policy and ask what documents they need. Warm, sincere, not desperate. ``` **to decode the bill itself**, paste the codes in: ``` Explain these medical billing codes in plain English and flag any that look unusually expensive or commonly upcoded: [paste CPT/HCPCS codes]. ``` one honest warning: ChatGPT can hallucinate what a code means or invent a "Medicare rate." use it to draft and to point you at what to verify — then confirm prices on FAIR Health or with the provider before you put a number in a letter. trust the structure, double-check the facts. ## why your prompt quality is the whole game here's the thing nobody tells you: the difference between "ChatGPT wrote me a generic begging email" and "ChatGPT wrote me a letter that actually got the bill cut down" is *the prompt*. the master prompt above works because it gives the model a role, a goal, your real constraints, a ranked list of asks, and a tone. that's prompt architecture. a one-liner like "help me negotiate my medical bill" gets you mush. ## putting it together: the actual play 1. get the itemized bill. read every line. 2. benchmark the fair price. 3. run the master prompt with your real numbers. 4. send the letter (email + certified mail if it's a big balance), or call with the talking points. 5. **lead with financial assistance, fall back to a self-pay discount, settle on a payment plan.** never volunteer that you can pay the full amount. 6. get every agreement in writing before a dollar leaves your account. 7. if they say no, ask "is that your best offer?" and stay quiet. silence negotiates for you. most people skip step 1 and overpay. you won't. go get your itemized bill. the rest is just asking the right way. Related fights, same method: [appealing the insurance denial](/guides/chatgpt-prompt-to-appeal-a-health-insurance-claim-denial/) that caused the bill, and [negotiating any recurring bill](/guides/chatgpt-prompt-to-negotiate-a-lower-bill/) with the retention-department play. # ChatGPT Prompt to Write a Cover Letter That Gets Interviews Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-write-a-cover-letter/ Summary: The exact ChatGPT prompt to write a cover letter that sounds human and gets interviews. Copy-paste it, fill in three blanks, and edit so it doesn't read as AI. ## Why most ChatGPT cover letters get ignored If you have ever pasted "write me a cover letter for a marketing manager job" into ChatGPT and gotten back something that opened with "I am writing to express my keen interest in the position," you already know the problem. The letter was grammatically perfect and completely forgettable. A hiring manager reading 200 applications can spot that opening from across the room, and the moment they do, your letter goes in the skim-and-discard pile. This is not because ChatGPT is a bad writer. It is because a vague prompt gives the model nothing real to work with, so it does what any writer would do with no information: it reaches for safe, hollow phrasing. "I am a hard-working team player passionate about delivering results" is what comes out when there are no actual results to point to. Three things make AI cover letters sound like AI: - **No specifics.** No real numbers, no project names, no details from your actual resume. Just adjectives. - **No company research.** The letter could be sent to any company in the industry with a find-and-replace on the name. - **Filler and over-formality.** Stiff openers, corporate buzzwords, and sentences no human would ever say out loud. The fix is not a better AI. It is a better prompt, plus five minutes of editing at the end. Here is exactly how to do it. ## The prompt that actually works The difference between a generic prompt and a good one is information. You need to hand ChatGPT three things it cannot guess: your real resume, the actual job description, and one or two genuine details about the company. Then you tell it precisely how to write, because the default ChatGPT voice is too formal for a modern cover letter. Copy this into ChatGPT (GPT-4 or newer works best). Fill in the three bracketed sections and answer the short questions at the bottom. ``` You are an experienced hiring manager and career coach who has read thousands of cover letters and knows what makes one stand out. Write a cover letter for me using ONLY the information below. Do not invent any experience, skills, or results I have not given you. === MY RESUME / BACKGROUND === [Paste your resume or a bullet list of your roles, key wins, and skills] === THE JOB DESCRIPTION === [Paste the full job posting here] === ABOUT THE COMPANY === [Paste 1-2 real details: a recent product launch, their mission, something you genuinely respect about them, or why you want to work there] === HOW TO WRITE IT === - Length: 250-320 words, no more. - Tone: warm, direct, and conversational. Write like a smart person talking to another smart person, NOT like a formal business letter. - Open with a specific, genuine hook. NEVER start with "I am writing to express my interest" or "I am excited to apply." - In the body, connect 2-3 of my real accomplishments directly to what this job needs. Use specific numbers and outcomes from my resume. - Reference the company detail I gave you so it is clear this letter was written for THEM, not mass-mailed. - Vary sentence length. Use short sentences for emphasis. - Avoid buzzwords: synergy, passionate, results-driven, team player, go-getter, dynamic, leverage. - End with a confident, low-pressure close. No begging, no "thank you for your time and consideration." Before writing, ask me up to 3 questions if anything critical is missing. Otherwise, write the letter. ``` That closing instruction, asking up to three questions, is the secret weapon most people skip. It lets ChatGPT flag gaps instead of filling them with fiction. ## How to fill in the three blanks **Your resume.** Paste the whole thing, or if it is long, paste a bullet list of your roles plus your three or four best wins with numbers attached. "Grew the email list from 4,000 to 22,000 in eight months" gives the model something to work with. "Responsible for email marketing" does not. **The job description.** Paste the entire posting, not a summary. The exact wording matters because ChatGPT will mirror the language the company uses, which helps with both human readers and applicant tracking systems. If the posting says "customer obsession," you want that phrase reflected back naturally. **The company detail.** This is the part everyone skips and it is the part that makes the letter feel human. Spend three minutes on the company's About page, a recent blog post, or their LinkedIn. Find one real thing: a product they just shipped, a value you actually share, a reason this specific job appeals to you. One genuine sentence about the company beats three paragraphs about yourself. ## What a good output looks like A strong result opens with something specific to you or the company, not a throat-clearing formality. Instead of "I am writing to express my interest in the Marketing Manager role," you want something like: "When I saw that your team grew the newsletter past 100,000 readers without a paid acquisition budget, I knew this was a role I had to apply for, because I have spent the last three years doing exactly that on a smaller scale." The body should read like a person making a clear case, with real numbers tied to what the job asks for. The close should be confident and short. If the draft still has any "I am confident that my skills and experience make me an ideal candidate" energy, it is not done yet. ## Edit it so it sounds like you Never send the first draft. ChatGPT gets you 85 percent of the way there, and the last 15 percent is what gets the interview. Do these four passes, they take five minutes total: 1. **Read it out loud.** Any sentence you would never actually say, rewrite or cut. This single step kills most of the robotic tone. 2. **Swap one phrase for your own voice.** Drop in a turn of phrase you actually use. Even one human sentence shifts the whole feel. 3. **Check every claim.** Make sure every number and accomplishment is true and yours. If ChatGPT added anything you did not give it, delete it. 4. **Trim it.** If it is over 320 words, cut. Hiring managers skim. A tight letter respects their time and signals that you can write. ## Common mistakes to avoid **Letting it lie.** The fastest way to torch your credibility is to let ChatGPT invent a skill or inflate a result. It reads great on the page and collapses the second an interviewer asks you to talk about it. Only feed it true material. **Leaving it too formal.** The default ChatGPT register sounds like a 1990s business letter. If your draft says "furthermore" and "I would be remiss," loosen it. Real people don't write that way. **Walls of text.** A single dense block of 400 words gets skimmed at best. Three or four short paragraphs with white space between them gets read. Brevity is a feature, not a limitation. **Reusing the same letter.** The whole point of the company-detail section is that each letter is built for one job. If you find-and-replace the company name and send it everywhere, you are back to generic, just with extra steps. The cover letter travels with two other documents worth getting right: an [ATS-friendly resume that doesn't sound like a robot](/guides/ats-friendly-resume-without-sounding-like-a-robot/) and the [thank-you email after the interview](/guides/thank-you-email-after-a-job-interview/). # ChatGPT Prompt to Write a Professional Email (Copy-Paste) Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-write-a-professional-email/ Summary: A real copy-paste ChatGPT prompt to turn a rough thought into a polished professional email, plus variations for asking, declining, apologizing, and bad news. ## The exact ChatGPT prompt for professional emails Most people use ChatGPT for emails like this: they type "write a professional email to my boss asking for a day off" and paste whatever comes back. Then they wonder why it sounds like a robot wrote it on behalf of a robot. The problem isn't ChatGPT. It's the instructions. A one-line request gives the model nothing to work with, so it falls back on the most generic, over-formal version of an email it has ever seen. You get "I hope this email finds you well," three paragraphs of padding, and the actual request buried in sentence four. I write a lot of prompts. The difference between a robotic draft and one you can send with a small edit comes down to giving the model four pieces of context. Here's the prompt I actually use, then how to fill it in and bend it to different situations. ## Why generic ChatGPT emails sound robotic Before the prompt, it helps to know what you're fixing. Bad AI emails share three traits: - **Over-formal.** "I am writing to inform you that I would like to kindly request..." Nobody talks like this. Real professional emails are direct. - **Padded.** Filler openers, restated context the reader already knows, and a closing paragraph that says nothing. Length signals effort to the model, but to a human reader it signals that you're wasting their time. - **No clear ask.** The model hedges. It softens. By the end, the reader isn't sure what you actually want them to do. Every good email prompt is really just a set of instructions that prevents these three failures. That's what the placeholders below do. ## The copy-paste prompt Paste this into ChatGPT and fill in the four bracketed sections: ``` Write a professional email for me. Here's the context: RECIPIENT: [who it's going to and your relationship — e.g. "my manager," "a client I've worked with for a year," "a vendor I've never spoken to"] WHAT I WANT TO SAY (rough notes, my own words): [dump your actual thoughts here — bullet points are fine. Include the ONE thing you need them to do.] TONE: [e.g. warm but professional / direct and brief / formal / friendly] LENGTH: [e.g. 3-4 short sentences / under 120 words / two short paragraphs] Rules: - Lead with the point or the ask. No "I hope this finds you well." - Use plain, direct language and contractions where natural. - Cut anything the reader already knows. - Make the ask unmistakable — one clear sentence. - Give me a short, specific subject line. Write it, then list any info you assumed that I should double-check. ``` That last line is the part most people skip and shouldn't. Asking the model to flag its assumptions catches the moments where it invented a deadline, a name, or a detail you never gave it. ## How to fill it in The two placeholders that matter most are RECIPIENT and WHAT I WANT TO SAY. **Recipient** sets the formality and shared context. "My manager Dana, who I talk to daily" produces a different email than "the CFO, who I've never emailed directly." Tell it the relationship, not just the title. **What I want to say** is where you stop trying to write and just brain-dump. Don't compose sentences. Write the messy version: "need the Figma files by Thursday, last batch was missing the mobile screens, don't want to sound annoyed but this is the second time." The model turns that into something polished. The clearer your rough notes, the less editing you'll do. For tone and length, be specific. "Professional" means nothing to the model and it'll default to stiff. "Warm but direct, like a colleague" gives it a target. For length, a word count or sentence count keeps it from padding. ## Variations for common situations The base prompt handles most emails. For these five recurring cases, add the noted line to the Rules section. ### Asking for something Add: `Make the ask the first or second sentence. Include exactly what I need and by when. End with a low-friction next step.` The biggest mistake in request emails is hiding the ask out of politeness. Front-load it. ### Declining or saying no Add: `Decline clearly in the first two sentences. Be warm but don't over-explain or leave the door falsely open. Offer one alternative if there's a real one.` A clean no respects the reader's time more than a paragraph of soft maybes. ### Apologizing Add: `Apologize once, clearly, and own it without excuses. Then move straight to what I'm doing to fix it. No groveling.` Over-apologizing reads as anxious. One sincere line plus a fix lands better than five "so sorry"s. ### Following up Add: `Keep it under four sentences. Reference the previous message briefly, restate the ask, and make it easy to reply with one line. Assume they're busy, not ignoring me.` Follow-ups — like a [follow-up email after an interview with no response](/guides/follow-up-email-after-interview-no-response/) — should be shorter than the original, not a re-send of it. ### Delivering bad news Add: `State the news plainly and early — don't bury it. Be direct but considerate. Give the relevant facts, then the next step or what this means for them.` Burying bad news under cushioning makes it worse. People want to know where they stand. ## How to edit the output so it sounds human Never send the first draft untouched. ChatGPT gets you 80% of the way; the last 20% is you. Three fast edits: 1. **Read it out loud.** Anything you'd never say in person, cut or rewrite. This catches stiffness instantly. 2. **Delete the throat-clearing.** The first sentence is often filler. If the email still makes sense without it, it's gone. 3. **Add one specific human detail.** A real reference to a past conversation, a name, a small bit of context only you would know. This is what makes it read as written by a person, not generated. If the whole thing still feels off, paste it back with: "too formal, cut 20% and make it sound like a real person." The second pass is usually noticeably better. ## Common mistakes to avoid - **Too long.** If your email is more than a screen, the reader skims and misses the point. Shorter almost always wins. - **Burying the ask.** If someone has to read to the end to find out what you want, you've already lost them. One clear sentence, near the top. - **Over-apologizing or over-softening.** "Sorry to bother you, I know you're busy, this is probably a silly question, but..." Just ask. Confidence is more professional than deference. - **Sending without reading.** The model occasionally invents a detail or strikes the wrong tone. You're the sender. Own every word before it goes out. - **Pasting confidential info.** Don't drop client names, real numbers, or anything sensitive into a public chatbot. Use placeholders and fill them in yourself. ## Where to go from here The prompt above is free — copy it, save it, use it for every email. It'll serve you well on its own. The thing you'll notice over time is that you keep building prompts like this for other tasks: a [cover letter that gets interviews](/guides/chatgpt-prompt-to-write-a-cover-letter/), a [demand letter for an unpaid invoice](/guides/chatgpt-prompt-to-write-a-demand-letter-for-an-unpaid-invoice/), a [payment reminder that actually gets you paid](/guides/how-to-write-a-payment-reminder-email-that-actually-gets-you-paid/), meeting summaries, LinkedIn posts, customer replies. Each one needs the same careful structure — context, tone, rules, output format — and writing that structure from scratch every time gets old. # ChatGPT Prompt: Loan Modification Hardship Letter (Free) Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-write-a-hardship-letter-for-loan-modification/ Summary: A free copy-paste ChatGPT prompt for a loan modification hardship letter, plus a fill-in template, a real example, and the 6 things servicers read for. ## the short version a hardship letter is the one-page note that goes on top of your loan modification application and explains, in plain english, why you fell behind and why a modified payment will fix it. servicers read thousands of these. the good ones are short, specific, and honest. the bad ones are either three paragraphs of "please help me" with no facts, or a wall of melodrama. ChatGPT can write a strong one in about a minute if you feed it the right details. below is the exact prompt i use, a fill-in template if you'd rather not use AI at all, a real example, and the mistakes that get letters ignored. no fluff. i've been on the broke side of a phone call with a loan servicer. this is written from that chair, not from a textbook. ## first: the 6 things a servicer actually reads for before you prompt anything, know what the reviewer is scanning for. a hardship letter is graded on whether it answers these, in roughly this order: 1. **who you are + the loan.** your name(s) exactly as on the loan, the loan/account number, the property address. 2. **what caused the hardship.** a specific event, not a vibe. "lost my job," "medical emergency," "hours cut," "divorce," "death of a co-borrower." 3. **when it started, and whether it's temporary or permanent.** servicers route temporary hardships and permanent ones differently. 4. **what you did about it.** cut expenses, drained savings, picked up extra work. this shows you're not just walking away. 5. **where you stand now.** back to work? income stabilized? this is the part most people forget, and it's the part that makes a modification look low-risk. 6. **what you're asking for.** say it plainly: a lower rate, a longer term, a lower monthly payment so you can stay current and keep the home. if your letter hits all six, you're ahead of most of the stack. the prompt below forces all six. ## the free copy-paste ChatGPT prompt paste this into ChatGPT (or Claude, or any chatbot), fill the brackets, and send. ``` You are an experienced HUD-approved housing counselor who has helped homeowners write successful loan modification hardship letters. Write a one-page hardship letter to my mortgage servicer requesting a loan modification. My details: - Name(s) on the loan: [NAME] - Loan / account number: [NUMBER] - Property address: [ADDRESS] - Servicer name: [SERVICER] - What caused the hardship: [e.g., laid off in March 2026 / surgery and medical bills / hours cut / divorce] - When it started and whether it is temporary or permanent: [DETAILS] - What I have done to manage it so far: [e.g., cut expenses, used savings, took a second job] - Where my situation stands now: [e.g., back to work, income stabilized] - What I am asking for: [e.g., lower interest rate, longer term, a lower monthly payment I can keep up with] - Documents I am including: [pay stubs, bank statements, hardship proof] Rules: - Keep it to ONE page. Plain, sincere, professional. No melodrama. - Open with the loan number and a clear statement that I am requesting a modification. - Take responsibility, but state the cause clearly. - Say whether the hardship is temporary or resolved. - End with my goal to keep the home and stay current on a modified payment. - First person. No clichés. Output only the letter, ready to sign. ``` then read what it gives you and fix anything that isn't true. **do not let the AI invent dates, dollar amounts, or details.** a hardship letter that contradicts your bank statements or your Form 710 is worse than no letter. ## prefer to write it yourself? the fill-in template you don't need AI for this. here's the skeleton: > [Date] > > [Servicer name] > Re: Loan #[number], [property address] > > To whom it may concern, > > I am writing to request a loan modification on the above loan. In [month/year], I experienced a financial hardship: [one or two sentences on the cause]. This was [temporary / ongoing], and as a result I fell behind on my payments. > > Since then, I have [what you did: cut expenses, used savings, picked up work]. Today, [where you stand now — back to work, income stabilized, expenses under control]. > > I want to keep my home and stay current. I am asking for [a lower interest rate / a longer term / a reduced monthly payment] that fits my current income. I have enclosed [documents]. > > Thank you for reviewing my request. > > [Signature, printed name, phone, date] that's it. one page. four short paragraphs. ## a real-feeling example > Re: Loan #00-123456, 1420 Maple Street > > To whom it may concern, > > I am requesting a modification on the above loan. In March, the warehouse where I worked closed and I was laid off with no notice. I missed two payments while I looked for work. The hardship was temporary. > > During that time I cut every expense I could, paused subscriptions, and used most of my savings to keep the lights on. I started a new job in May at a similar wage, so my income is now steady again — but the missed payments and late fees put me in a hole I can't climb out of at the current payment. > > I want to keep this house and stay current going forward. I'm asking for a lower monthly payment, whether through a lower rate or a longer term, that fits what i now earn. I've enclosed my last two pay stubs, three months of bank statements, and my termination notice. > > Thank you for your time. notice it's boring on purpose. dates, cause, recovery, the ask. that's what works. ## common mistakes that get letters ignored - **being vague.** "i've had a hard year" tells them nothing. name the event and the month. - **overselling the drama.** reviewers process these all day. sincerity reads; a sob story doesn't. - **forgetting the recovery.** if you don't say your situation has stabilized, a modification looks risky. say it. - **no clear ask.** "please help" isn't a request. "a lower monthly payment i can keep up with" is. - **lying or rounding up the pain.** it has to match your application (for mortgages, usually Fannie/Freddie **Form 710** / the Request for Mortgage Assistance). contradictions sink you. - **going past one page.** one page. always. ## what to attach with it the letter is the cover story; the documents are the proof. typically: recent pay stubs (or proof of reduced income), 2–3 months of bank statements, your most recent tax return, and proof of the hardship itself (termination notice, medical bills, divorce filing, death certificate). check your servicer's checklist — most have one online. acceptable hardship reasons servicers recognize include job loss, reduced income or hours, a jump in housing expenses, disaster, long-term illness or disability, divorce or separation, and death of a borrower or wage earner. if yours fits one of those, name it plainly. ## the honest upgrade the prompt above is good. it'll get you a clean, signable letter today, for free, and you should use it. here's the honest limit: it's one fixed prompt. it doesn't adapt itself when your situation is unusual — a self-employed borrower, an auto loan instead of a mortgage, a second hardship stacked on the first, a servicer with a weird form. you end up re-editing the prompt by hand and hoping you didn't drop one of the six boxes. either way: keep it to one page, tell the truth, name the recovery, and make the ask. that's the whole game. If a credit-report error is part of what got you here, [how to dispute it](/guides/chatgpt-prompt-to-dispute-a-credit-report-error/) walks through the FCRA route — and [the professional email prompt](/guides/chatgpt-prompt-to-write-a-professional-email/) helps with every follow-up the servicer asks for. # ChatGPT Prompt: Write a Demand Letter for an Unpaid Invoice Canonical URL: https://broke2builtai.com/guides/chatgpt-prompt-to-write-a-demand-letter-for-an-unpaid-invoice/ Summary: A copy-paste ChatGPT prompt that writes a firm, professional demand letter for an unpaid invoice, plus the elements it needs and a filled example. you did the work. you sent the invoice. net terms came and went. you sent a [polite reminder, maybe two](/guides/how-to-write-a-payment-reminder-email-that-actually-gets-you-paid/), and got nothing back. now you need to send something with a little more weight — a demand letter — before you escalate to small claims, collections, or mediation. the good news: chatgpt can write a solid demand letter in about two minutes, *if* you feed it the right details in the right structure. the bad news is that most people just type "write a demand letter for an unpaid invoice" and get a generic, toothless template with `[INSERT AMOUNT HERE]` left in. below is the prompt i actually use, plus everything that has to be in the letter so the model doesn't leave it out. quick disclaimer up top: this is a practitioner's guide to writing a clear demand letter, not legal advice. for the actual law in your state — interest caps, statute of limitations, whether you need a lawyer — talk to a lawyer or your local small claims court. a demand letter is just a firm, documented request for payment. you don't need a law degree to send one. ## when a demand letter actually makes sense send one when: - the due date has clearly passed (net-15, net-30, whatever your terms were) - you've already sent at least one or two normal reminders and been ignored or stalled - you're prepared to actually follow through — small claims, a collections agency, or just writing it off the demand letter is the line in the sand. its real job is two things at once: give them a clear, final chance to pay without drama, and create a paper trail you can hand a judge or mediator later. that second part matters more than people realize. a calm, factual letter with dates and dollar amounts makes you look like the reasonable party. an angry rant does the opposite. ## what every demand letter needs before you prompt anything, know what a complete demand letter contains. if any of these are missing, the letter is weak: - **who you are** — your name or business, address, email - **who owes you** — their name/business and the contact person if you know it - **the debt, specifically** — invoice number, invoice date, original due date, and exactly what the work was - **the amount** — the original total plus any late fee or interest you're actually entitled to (only if it's in your contract or allowed by your state) - **a short factual history** — "i sent reminders on X and Y, no response" — no emotion, just dates - **a firm deadline** — a real date or window, like 10 business days from the letter - **the consequence** — what you'll do if they miss the deadline (file in small claims, send to collections) - **how to pay** — bank transfer, check, payment link, whatever you accept - **a clear statement that this is a formal demand** for payment the tone should be firm and unemotional. not angry, not threatening, not apologetic. think "boring and inevitable," not "furious." that's exactly what ai is good at — it won't add the emotional charge you might if you wrote it at 11pm staring at your bank balance. ## the prompt (copy, paste, fill the brackets) ``` You are a small-business collections specialist who writes firm, professional demand letters that hold up as a paper trail before small claims court. Write a demand letter for an unpaid invoice using the details below. Keep it under one page, plain English, no legal jargon I can't back up. Firm and unemotional — not angry, not threatening, not apologetic. MY DETAILS - Name / business: [your name or business] - Address + email: [contact] CLIENT (who owes me) - Name / business: [client] - Contact person: [name if known] THE DEBT - Invoice number: [#] - Invoice date: [date] - Original due date: [date] - Amount owed: [$] - What it was for: [one line, e.g. "website design, final 50%"] - Late fee/interest owed per our agreement: [$ or "none in contract"] HISTORY - Reminders I already sent: [e.g. "two emails, on X and Y, no reply"] - Any response from them: [e.g. "none" / "promised to pay by X, didn't"] WHAT I WANT - Pay in full by: [deadline, e.g. "10 business days from this letter"] - How they can pay: [bank transfer / check / link] - If unpaid, my next step: [e.g. "file in small claims court"] Structure: a short opening stating the purpose, a clear statement of the debt with the invoice details, a brief factual history, the exact amount due, a firm deadline, the consequence if missed, and payment instructions. End with a line stating this is a formal demand for payment. Output the letter only, ready to send. ``` the whole trick is in the structure. you're giving the model a **role** (collections specialist), **context** (every fact it needs), **constraints** (firm, under a page, no jargon), and an **output format** (these sections, letter only). that's why it returns something you can almost send as-is instead of a fill-in-the-blank skeleton. ## a filled-in example of what it returns with the brackets filled, you'll get something close to this: > **Re: Formal Demand for Payment — Invoice #1042** > > Dear Jordan, > > This letter is a formal demand for payment of an overdue invoice. > > On March 3, 2026, I issued Invoice #1042 for $1,800 for the website design project (final 50% on delivery), with payment due March 18, 2026. That invoice remains unpaid. I sent payment reminders by email on March 25 and April 4, and have received no response. > > The full amount of $1,800 is now due. Please pay in full within 10 business days of the date of this letter, by bank transfer to the account on the original invoice. > > If payment is not received by that date, I will pursue the matter through small claims court. I would prefer to resolve this directly and on good terms. > > Sincerely, > [your name] short, factual, hard to argue with. that's the target. ## make it firmer or softer the first draft is rarely the final one. follow-ups that work: - *"make this firmer — this is my final notice before i file."* - *"soften the opening, this is a long-term client i want to keep."* - *"add a line offering a payment plan if they can't pay in full."* - *"rewrite it as a 'final demand' with a 5-business-day deadline."* ## before you send it - **send it two ways** — email for speed, and certified mail (return receipt) for proof they got it. that receipt is gold if this ever reaches a courtroom. - **keep every copy** — the letter, the original invoice, your reminder emails, all of it. - **only claim fees you're owed** — late fees and interest are only enforceable if they're in your contract or allowed by your state. don't invent them. - **give a real deadline** — 10 to 14 business days is normal. vague deadlines get ignored. - **mean it** — only name a consequence (small claims, collections) if you're actually willing to do it. ## when one good prompt isn't enough this prompt works because of its bones: role, context, constraints, output format. and here's the thing — those exact bones work for *every* awkward money conversation you're going to have as a freelancer or small business. the scope-creep pushback. the refund-denial reply. the "your card was declined" notice. the polite-but-firm rate increase. the same skeleton even powers letters that have nothing to do with freelancing — [getting a security deposit back from a landlord](/guides/chatgpt-prompt-to-get-security-deposit-back/), or [disputing a credit-report error](/guides/chatgpt-prompt-to-dispute-a-credit-report-error/). you'll keep needing prompts like this, and re-hunting for the perfect copy-paste version every time gets old fast. either way — send the letter. the calm, boring, factual one. it works more often than people expect, precisely because it doesn't read like you're bluffing. # Follow-Up Email After Interview, No Response: What to Send Canonical URL: https://broke2builtai.com/guides/follow-up-email-after-interview-no-response/ Summary: No response after your interview? Here's exactly how long to wait and 2 copy-paste follow-up email templates to send without sounding desperate. ## You interviewed, you nailed it (you think), and then... nothing The interview felt good. You shook hands, said the right things, walked out a little lighter. And then the silence started. One day. Three days. A week. Every time your phone buzzes you flinch, and every time it's not them, your stomach drops a little further. I've been on that side of the inbox more times than I'd like to admit, refreshing email at 11pm while the rent clock ticked. So let me be straight with you: the silence almost never means what your anxiety says it means. Hiring is slow, messy, and full of stuff that has nothing to do with you. The good news is that a well-timed follow-up email can actually move things along, and at worst it gives you closure so you can stop checking your phone every nine minutes. This guide gives you the timing, the tone, and two full templates you can copy, paste, and send today. And if blank-page paralysis hits, a [ChatGPT prompt for a professional email](/guides/chatgpt-prompt-to-write-a-professional-email/) can draft a first version for you to sharpen. ## How long to wait before you follow up The number one mistake is following up too fast. You feel the urgency, so you assume they should too. They don't, and a same-day or next-day 'just checking in' makes you look nervous. Here's the timing that works: - **They gave you a date** ("we'll decide by Friday"): wait until two to three business days *after* that date. Deadlines slip constantly. Nudging the morning after their own deadline reads as impatient. - **They gave you no date at all:** wait five to seven business days from the interview. That's long enough to be respectful, short enough that you're still fresh in their memory. - **You already sent a [thank-you note](/guides/thank-you-email-after-a-job-interview/)** (you should have, within 24 hours): that note doesn't count as a follow-up. This is a separate, later message. When you do count days, count *business* days. A Tuesday interview means the following Tuesday or Wednesday, not the weekend in between. ## The right tone: confident, not desperate This is the part people get wrong, because fear leaks into the writing. The difference between a follow-up that helps you and one that hurts you is almost entirely tone. What confident sounds like: - Short. Three to five sentences, tops. You're a busy professional checking in, not pleading. - Warm and specific. Reference something real from the conversation so they remember exactly who you are. - Forward-looking. You're still interested and still available, full stop. - Easy to answer. Make it a 10-second reply for them, not a homework assignment. What desperation sounds like (avoid all of this): - Apologizing for emailing at all ("so sorry to bother you again"). - Over-explaining your situation or your need for the job. - Guilt-tripping ("I took time off work for this and haven't heard anything"). - A wall of text re-selling yourself from scratch. Remember: you're not begging for a favor. You interviewed because they invited you. You're a candidate following up on a mutual conversation. Write from that footing. ## What to actually include Every good follow-up email has the same skeleton: 1. **A clear subject line.** Reply on the existing email thread if you can, so it threads under your original conversation. If you're starting fresh, keep it plain: `Following up — [Role] interview` or `Checking in re: [Role]`. 2. **A specific reference.** One detail from the interview. The project they mentioned, a problem you discussed, a person you met. This proves you're a real human they talked to, not a mail-merge. 3. **A restated, low-key interest.** One sentence: you enjoyed it, you're still excited about the role. 4. **A soft ask.** Politely ask about next steps or timing. Not "did I get it," just "is there an update on the process." 5. **An easy out and a sign-off.** Thank them for their time, and you're done. That's it. No attachments, no resume re-send unless they asked, no essay. ## Template 1: The first polite nudge (send ~1 week after the interview) Use this for your first follow-up. Reply directly on your thank-you email or the original interview-scheduling thread if you have it. > **Subject:** Following up — [Job Title] interview > > Hi [Interviewer's First Name], > > I hope your week is going well. I wanted to follow up on our conversation last [day, e.g. "Tuesday"] about the [Job Title] role. I really enjoyed talking through [specific thing you discussed — e.g. "how the team is rethinking the onboarding flow"], and it left me even more excited about the opportunity. > > I know these decisions take time, so no rush at all — I just wanted to check in on where things stand and whether there's anything else you need from me. > > Thanks again for your time, and I look forward to hearing from you. > > Best, > [Your Name] > [Phone number] Why it works: it's short, it names a real moment from the interview, it explicitly says "no rush" (which paradoxically makes you look more secure), and it can be answered with a one-line reply. ## Template 2: The final graceful check-in (send ~1-2 weeks after the first) If the first nudge goes unanswered, send one more — and only one more. This message does double duty: it gives them a last easy chance to respond, and it lets you close the loop with your dignity intact so you can move on. > **Subject:** Re: [Job Title] role — checking in > > Hi [Interviewer's First Name], > > I wanted to reach out one last time about the [Job Title] position. I'm still very interested, and I enjoyed learning about [the team / the mission / a specific project] when we spoke. > > I completely understand that priorities shift and timelines change. If the role has moved in another direction, no hard feelings at all — I'd genuinely appreciate just knowing either way so I can plan accordingly. And if it's still open, I'd love to stay in the running. > > Either way, thank you for the conversation — it was a pleasure. I hope our paths cross again. > > Best, > [Your Name] Why it works: it asks for a clear yes/no without any guilt, it signals you're not going to keep emailing forever (which oddly makes people more likely to reply), and it leaves the relationship warm. Hiring managers remember candidates who handled a 'no' with grace, and that memory has reopened doors months later. ## What NOT to do A few hard rules, learned the hard way: - **Don't email every day.** Daily follow-ups don't show enthusiasm; they show panic, and they're the fastest way to a 'no.' - **Don't guilt-trip them.** No mentioning how badly you need the job, how long you've been searching, or how much you rearranged your life for the interview. It's not their problem to solve, and it makes them uncomfortable. - **Don't apologize for existing.** Cut "sorry to bother you" and "I know you're busy but." You have every right to ask about a process you participated in. - **Don't go over their head immediately.** Don't CC the CEO or message five people at once because one person went quiet. Stick with your main contact. - **Don't get passive-aggressive.** "I assume you've made your decision since I haven't heard back" feels satisfying to type and torches the bridge instantly. Stay warm even when you're frustrated. - **Don't put all your hope in one box.** The single best antidote to interview anxiety is more interviews. Keep applying while you wait. A pipeline of options turns a stressful 'will they call' into a low-stakes 'their loss if they don't.' ## The mindset that actually helps Here's the thing nobody says out loud: most non-responses aren't a rejection of *you*. The role got frozen. The budget got cut. An internal candidate appeared. The hiring manager's kid got sick and the whole process stalled for two weeks. You will almost never find out which, and that's okay. Your job is to do the professional thing — two clean, confident follow-ups — and then let it go. You can't control their inbox. You can control how you show up, and showing up calm and gracious is what people remember. Silence is information, not a verdict. It tells you where to *not* spend your hope, which frees that hope up for the next door. ## If you want the words done for you Whatever you do, send the email, then go work on the next opportunity. The waiting gets a lot easier when you're not waiting on just one. # How to Ask for a Job Referral From Someone You Barely Know Canonical URL: https://broke2builtai.com/guides/how-to-ask-for-a-job-referral-from-someone-you-barely-know/ Summary: How to ask a near-stranger for a job referral without being awkward — real scripts for LinkedIn, email, and alumni, plus a free copy-paste template. ## the weird part nobody tells you: weak ties get more people hired than close ones here's the thing that makes this whole situation less awkward. there's a famous sociology study (Granovetter, "The Strength of Weak Ties") that found something surprising: among people who landed a job through a personal contact, most did it through acquaintances, not their closest friends. the person you met once at a conference. the coworker from two jobs ago you barely spoke to. the friend-of-a-friend. why? because your close circle knows the same openings you already know. the near-stranger has access to a whole network you can't see. that's exactly why asking someone you barely know isn't desperate or weird — it's one of the smartest moves a job seeker can make. the problem is execution. ask wrong and you look entitled, or you make a busy person do work for a stranger. ask right and a lot of people will genuinely help, because referring a good candidate makes *them* look good too (many companies pay referral bonuses — your ask might literally put money in their pocket). i've written and rewritten this exact message more times than i can count, both for myself during a rough stretch and for people i was helping climb back. below is what actually works. ## step 1: don't ask for the referral first. ask for one small thing. the single biggest mistake is opening cold with "can you refer me?" to someone who barely remembers you. that puts their reputation on the line for a person they can't vouch for. it's a big ask disguised as a small one. instead, lower the temperature. your first message should be easy to say yes to. you're not asking them to stake their name — you're asking for *information* or a tiny bit of insight. the referral becomes their idea, or a natural second step. think of it as two doors: - **the warm door:** "i saw you work at [company] — i'm applying for [role] and would love your honest take on what the team's actually like." - **the direct door (only if you have any real connection):** a clear, easy-out referral ask. most of the time with a near-stranger, start with the warm door. ## step 2: re-establish who you are in one line (no guilt-tripping) they may not remember you. don't make them feel bad about it, and don't over-explain. one clean line of context: > "we met briefly at [event] last spring — you gave me that tip about [thing], which stuck with me." or: > "we overlapped on the [project/team] at [company] back in 2023 — i was on the [side] side of it." that's it. specific, warm, no pressure. if you have literally zero shared history (pure cold LinkedIn), say so honestly: "we haven't met, but we're both [shared group/alumni/field] and i really respect the work your team's doing." ## step 3: make it absurdly easy for them to help this is where most people lose the referral. you have to do 90% of the work *for* them. a good referral ask comes with a "forwardable" package so they can act in 30 seconds: - the **exact job link** and req number - **two sentences** on why you're a fit (so they can copy-paste it) - your **resume** attached or linked - an **explicit easy-out** the easy-out is the secret weapon. it removes all the pressure: "totally fine if you're not comfortable referring someone you don't know well — even just letting me know who recruits for the team would help a ton." people help far more often when they know they can say no without it being awkward. ## the templates (copy, fill the brackets, send) ### template A — LinkedIn message to a near-stranger at the company > hi [name] — we [crossed paths at X / are both Y]. i'll keep this short: i'm applying for [role] (req [#]) on your team and you'd obviously know way more than the job post tells me. would you be open to a quick 10-min call, or even just a couple lines on what they're really looking for? and if it ever felt right to flag my application internally that'd mean a lot — but zero pressure either way. here's the role + my resume so you have it: [link]. thanks for even reading this. ### template B — email to a former coworker you barely knew > subject: quick favor re: [company] — easy to say no > > hi [name], we overlapped on [team/project] at [old company] — hope things are good on your end. i'm in job-search mode and saw [company] is hiring a [role] ([link]). i think i'd be a strong fit because [one concrete reason] and [second concrete reason]. would you be willing to refer me, or point me to whoever's hiring? i've attached my resume and a short blurb you can paste straight into a referral form so it's no work on your side. and honestly if you'd rather not refer someone you didn't work closely with, i completely get it — no hard feelings. either way, good to reconnect. ### template C — the "advice, not referral" opener (for the coldest contacts) > hi [name] — i don't think we've met, but we're both [alumni of / in the X community]. i'm exploring [role] roles and saw you've been at [company] a while. could i ask you one question: what do you think separates the people who thrive there from the ones who don't? no agenda beyond that — just trying to learn from someone who's actually inside. template C asks for nothing but a sentence of wisdom. many of the people who reply warmly will, on their own, ask "are you applying? i can pass your resume along." now the referral is *their* offer, which is the strongest kind. ### the forwardable blurb (attach this to A and B) > [Your Name] — [one-line headline, e.g. "operations coordinator, 6 yrs in logistics"]. applying for [role]. strongest fits: [skill/result 1], [skill/result 2]. resume: [link]. happy to answer anything. ## step 4: follow up once, then let it go if you hear nothing, wait 5–7 business days and send one short, gracious nudge: > "hi [name], no worries if you've been slammed — just floating this back up in case it got buried. completely understand if now's not the time." one follow-up. not three. a near-stranger who goes quiet isn't a no forever — but pestering turns a maybe into a hard no and burns the bridge. ## a few honest don'ts - don't attach your resume to the *very first* cold message with no context — it reads as a mass-blast. - don't ask them to "submit" you to multiple roles. one specific role. - don't fake a closeness that isn't there. "as you know" when they don't know is instantly transparent. - don't make them chase the job link. paste it. ## where this fits into a real comeback asking for a referral is one move in a bigger sequence — and if you're reaching out from a rough patch (laid off, a [gap on the resume](/guides/how-to-explain-a-caregiving-gap-on-your-resume/), a career you're climbing back into), the referral ask only works if the rest of your package backs it up. there's no point getting someone to forward a resume that buries your strengths, so it's worth making sure yours [clears the ATS without sounding robotic](/guides/ats-friendly-resume-without-sounding-like-a-robot/) first. but the templates above are yours to use right now, free. make sure your [LinkedIn headline](/guides/linkedin-headline-stay-at-home-mom-returning-to-work/) is sharp so the person you message sees someone worth vouching for, then open LinkedIn, find one person, send template A. the worst case is they don't reply and you've lost nothing. the best case is the weak tie that changes everything. # How to Decline a Job Offer You Already Accepted by Email Canonical URL: https://broke2builtai.com/guides/how-to-decline-a-job-offer-you-already-accepted/ Summary: How to back out of a job offer you already accepted, by email, without burning the bridge — when to call vs. email, what to say, and copy-paste templates. Saying yes and then realizing it was the wrong yes is one of the most stomach-churning spots in a job search. Maybe a better offer landed two days later. Maybe your situation changed entirely. Whatever it is — you accepted, and now you need to un-accept, in writing, without torching a relationship you might need someday. Good news: this is more normal and more recoverable than the panic in your chest is telling you. This guide walks through the timing, whether to call or email, exactly what to say (and what to leave out), the legal stuff to check first, and copy-paste templates for the most common situations. There's a free fill-in version near the bottom you can send tonight. (One quick scope note: this is about backing out of an offer *before* you start. If you've already begun the job and need to leave, that's a different note — a [two weeks' notice resignation letter](/guides/chatgpt-prompt-to-write-a-two-weeks-notice-resignation-letter/).) ## first, the reality check You are allowed to do this. In most US states, employment is at-will — meaning either side can walk away at any time, including before your first day. Accepting an offer is not a life sentence, and a company that just spent weeks interviewing other people will, in nearly every case, simply move to the next candidate. It happens to them more than they let on. That said, "allowed" doesn't mean "consequence-free." A slow or ghosting exit can genuinely cost you a reference or a future shot at that company. The whole game is to be the kind of person who handles an awkward moment cleanly — a reputation worth protecting, and entirely within your control. ## check these three things before you send anything Two minutes of checking now saves you a real headache later: 1. **Did you sign a contract with a notice clause?** Most US offers are at-will and you're free to decline. But some roles — especially senior, contract, or international ones — include a binding start commitment or notice period. Read what you signed. 2. **Did you take any money yet?** Signing bonuses and relocation reimbursements almost always come with clawback terms if you don't start or don't stay a set period. If you've cashed anything, you may need to return it. Know that number before you talk to them. 3. **Did you already quit your current job?** If yes, slow down — see the section at the end. Don't burn the new bridge until you know the old one is still standing. ## move fast — speed is the whole kindness The single biggest factor in how this lands is **how quickly you tell them.** The day you know, they should know. Every day you sit on it is a day they're not calling their second choice. Telling them three days before your start date is the version that actually burns bridges; telling them the morning after you decide is the version they forgive and forget. If you're dreading it, that dread is the reason to do it now, before it grows. ## call or email? If you have a recruiter or hiring manager you've actually spoken with, the most respectful path is a **short phone call first, then a confirming email.** The call shows spine and respect; the email puts it in writing so there's no ambiguity. But be honest with yourself: if a call means you'll keep putting it off for three days, or you know you'll cave the second they push back, **a clean email by itself is completely fine.** The email is the non-negotiable part — it's the written record. The call is the nice-to-have. ## the anatomy of a good "I have to decline" email Keep it short. Four to six sentences. Every strong version hits these beats in order: 1. **Thank them, specifically and sincerely.** They invested real time in you. 2. **Get to the point fast.** Don't bury it. By the second sentence they should know you're withdrawing. 3. **Give a brief, non-negotiable reason.** One sentence. "Another opportunity that's a better fit," "a change in my personal circumstances" — you do not owe a breakdown. 4. **Apologize once, briefly.** Acknowledge the inconvenience without grovelling. 5. **Leave the door open.** A warm line about respecting the team and hoping paths cross again. Notice what's *not* on the list: a detailed comparison, a salary number, or five paragraphs of justification. Over-explaining invites a counteroffer or a guilt trip. A firm, kind, vague-on-purpose reason closes it cleanly. ## copy-paste templates ### you accepted a better offer > Subject: Withdrawing my acceptance — [Your Name] > > Hi [Name], > > Thank you again for offering me the [Job Title] role and for the time the whole team spent with me throughout the process. After a lot of careful thought, I've decided to accept another opportunity that's a better fit for where I am right now, and I need to respectfully withdraw my acceptance. > > I'm sorry for the inconvenience this causes, and I don't take the decision lightly — I genuinely enjoyed getting to know you and the team. I have a lot of respect for what you're building, and I hope our paths cross again down the road. > > Wishing you the best in finding the right person for the role. > > Best, > [Your Name] > [phone] ### your personal circumstances changed > Subject: A difficult update on the [Job Title] role — [Your Name] > > Hi [Name], > > I want to thank you sincerely for the offer and for everyone's time during the process. Since accepting, my personal circumstances have changed in a way I didn't expect, and after a lot of thought I'm no longer able to take the role. I'm truly sorry to be sharing this so close after accepting. > > I have a great deal of respect for you and the team, and this isn't a reflection of the opportunity at all — the timing simply isn't something I can control. Thank you for understanding, and I hope we might have the chance to work together in the future. > > Warm regards, > [Your Name] > [phone] ### you're staying at your current job > Subject: Withdrawing my acceptance — [Your Name] > > Hi [Name], > > Thank you for the offer and for the genuine effort your team put into the process — it meant a lot. After serious reflection, I've decided to stay in my current role, and I need to withdraw my acceptance of the [Job Title] position. I'm sorry for any disruption this causes so late in the process. > > I was impressed by the team and the work, and stepping back from this wasn't easy. I hope you'll keep me in mind for the future, and I'd welcome the chance to reconnect down the line. > > Best wishes, > [Your Name] > [phone] ### the short version (when you just need to send it) > Hi [Name], thank you so much for the offer and for everyone's time. After careful thought I've decided to pursue a different direction and have to respectfully withdraw my acceptance of the [Job Title] role. I'm sorry for the inconvenience, I have real respect for you and the team, and I hope our paths cross again. Best, [Your Name]. ## what to do if they push back or counter Sometimes you'll get understanding, sometimes a counteroffer or a little pressure. Both are fine. If you've already decided, you don't have to re-open it — a polite, firm "I really appreciate that, but my decision is final and I think it's the right call for me" is a complete answer. ## mistakes to avoid - **Ghosting.** The single worst option. Silence right before a start date is the thing people actually remember and warn others about. - **Waiting "until you're sure."** You're sure enough to be reading this. Tell them today. - **Over-explaining.** One sentence of reason. The more you justify, the more you invite a debate. - **Trash-talking the role or pay.** Even if money drove the decision, keep it gracious. Never give them a reason to think less of you. - **Forgetting the written record.** Even after a great phone call, send the confirming email. ## the special case: you already gave notice at your old job This one needs care. If you accepted the new job, gave notice at your old one, and *then* got cold feet — talk to your current employer **before** you finalize anything. If you haven't physically left yet, many managers would rather keep you than re-hire, so an honest conversation can quietly undo the notice. Don't decline the new offer based on a job you only assume is still there. ## the honest truth You made a decision that's right for you. The only job left is telling them quickly and kindly — and you now have the words to do it. For the rest of the job-change paper trail: [the two weeks notice that keeps your reference intact](/guides/chatgpt-prompt-to-write-a-two-weeks-notice-resignation-letter/). # How to Explain a Caregiving Gap on Your Resume (Examples) Canonical URL: https://broke2builtai.com/guides/how-to-explain-a-caregiving-gap-on-your-resume/ Summary: How to explain an employment gap from caregiving on your resume — formatting options, transferable skills, copy-paste examples, and a free template. ## the gap isn't the problem — the silence is let's get the scary part out of the way first: caring for a sick parent, a child with extra needs, or a partner going through treatment is not a black mark on your work history. it's a fact of life that a huge number of people deal with, and far more so since 2020. hiring managers know this now. resume gaps stopped being career-enders a while ago. what *does* still hurt you is a silent, unexplained hole. when a recruiter scans your dates and sees "2021... then nothing... then 2024," their brain fills the blank with the worst guess — fired, quit in a huff, couldn't hold a job. an unexplained void invites a bad story. a one-line explanation replaces it with the true one, which is almost always more sympathetic than whatever they'd have imagined. so the goal here isn't to hide the gap. it's to **name it briefly, frame it forward, and prove you're fully available now.** that's the whole game. here's exactly how to do it on the page. ## step 1: decide how much to actually say you are not obligated to disclose your family's medical history to a stranger. there's a real line between *accounting for the time* and *over-sharing the diagnosis*. you control where that line sits. a good rule: say enough to close the timeline, not enough to make anyone uncomfortable. "stepped away to provide full-time care for an immediate family member" is plenty. nobody needs the hospital details, the prognosis, or the part where insurance denied the claim three times. keep it dignified and brief, and you keep control of the narrative. one more mindset thing before we touch formatting: **don't apologize.** no "unfortunately," no "had to," no "I'm sorry for the gap." you did something hard and necessary. the tone that lands jobs is matter-of-fact, not guilty. ## step 2: pick the format that fits your gap there are three clean ways to handle this on the resume itself. pick based on how long the gap is and how strong the rest of your history looks. **option A — list it as a real entry (best for most people).** treat the caregiving period like a job, because it functionally was one. give it a title, dates, and one line of context. this fills the timeline visibly and confidently: > **Family Caregiver** — 2022–2024 > Provided full-time care for an immediate family member, managing daily care, medical appointments, medications, and household finances. Returned to the workforce and fully available. **option B — use years-only dates to shrink a short gap.** if your break was, say, 8 months that happened to straddle a new year, writing dates as years instead of months can quietly close it. a job ending "2023" and the next starting "2024" reads as continuous even if there were a few months between. this isn't lying — it's just choosing a coarser unit. (use it for genuinely short gaps, not to disguise a two-year one.) **option C — switch to a combination format that leads with skills.** instead of a strict reverse-chronological list, open with a "Core Skills" or "Summary of Qualifications" block up top, then your work history below. the reader meets your abilities before they ever reach the dates, so the gap lands with less weight. this works well when your skills are strong and recent enough to carry the page. (whichever format you pick, keep it single-column and [ATS-friendly](/guides/ats-friendly-resume-without-sounding-like-a-robot/) so a parser doesn't scramble it before a human ever sees it.) most people are best served by **option A**. a named caregiver entry beats a mysterious blank every single time. ## step 3: turn caregiving into transferable skills (this is the part people miss) here's what almost nobody does, and it's the difference-maker. caregiving is not "time off." it's an unpaid operations job, and it built or sharpened real skills employers pay for. you just have to translate them out of family-language into resume-language. a quick translation table: - coordinating doctors, pharmacies, and specialists → **scheduling & cross-party coordination** - managing medications and care routines → **process management, attention to detail, compliance** - handling bills, insurance claims, and appeals → **budgeting, records management, negotiation** - being the calm one in an ER at 2am → **crisis management, decision-making under pressure** - advocating for a loved one with providers → **advocacy, communication, stakeholder management** - running a household on a tighter budget → **resource allocation, prioritization** you don't list all of these — you pick the two or three that map to the job you're applying for and fold them into your caregiver entry or summary. a logistics job? lead with scheduling and coordination. a finance or admin role? lead with the insurance/billing/records side. this reframing is honest. you genuinely did these things. you're just giving them the words a hiring manager already values. ## real resume examples you can borrow **administrative / operations target:** > **Family Caregiver** — 2021–2023 > Coordinated all medical scheduling, managed household budgeting and insurance paperwork, and maintained detailed care records for a family member. Strengthened organization, multitasking, and stakeholder communication. Now fully available for full-time work. **healthcare-adjacent target:** > **Full-Time Caregiver** — 2022–2024 > Provided daily care including medication management, appointment coordination, and direct provider advocacy. Comfortable in high-pressure, fast-changing situations. Returning to the workforce. **short gap, folded into the summary instead of a full entry:** > *Summary:* Operations coordinator with 6 years in logistics. Took a brief 2023 family caregiving leave; current on tools and fully available for immediate start. notice the pattern: name it, one line of substance, then the forward-looking close — "now available," "returning," "ready for full-time." always end the gap looking forward. ## the free fill-in-the-blank template (10 minutes, no purchase needed) grab a notes app and finish these four lines: 1. **Title:** "Family Caregiver" or "Full-Time Caregiver" 2. **Dates:** ______ to ______ (use years if the gap is short) 3. **One line of context:** "Provided full-time care for an immediate family member, including ______, ______, and ______." *(pick from the skills list above — scheduling, budgeting, medication management, advocacy)* 4. **The forward close:** "Returned to the workforce and fully available for [full-time / part-time / remote] work." drop them into option A's format and you've got a clean, honest caregiver entry that beats a blank space on your timeline. that free version alone already puts you ahead of most people who just leave the hole and hope nobody asks. ## the cover letter and the interview (because it'll come up) your resume closes the timeline; your [cover letter](/guides/chatgpt-prompt-to-write-a-cover-letter/) and interview answer reassure them you're *here now.* one or two sentences, no drama: > "From 2022 to 2024 I stepped away from full-time work to care for a family member. That responsibility has since resolved, and I'm fully available and genuinely excited to bring my [skill] back to a team like yours." that's it. the magic words are **"that has since resolved" and "fully available."** the unspoken worry behind the gap question is always *are you going to disappear on us again?* answer that directly and the rest of the conversation moves on to your actual qualifications. if it comes up live in an interview, say the same thing out loud, calmly, then redirect: "...so I'm ready to fully commit. I'd love to talk about how I'd approach [the role]." don't linger. confident-and-brief reads as healthy; over-explaining reads as anxious. ## what not to do - **don't lie or stretch dates to erase the gap entirely.** background checks and a quick LinkedIn cross-reference catch it, and a caught lie is far worse than any caregiving break. - **don't over-share the medical details.** "immediate family member" and "full-time care" is the right altitude. - **don't apologize or use words like "unfortunately."** you did something hard and worth respecting. - **don't leave it blank and hope.** silence is the one option that actively works against you. ## the bottom line a caregiving gap is a fact, not a flaw — and the people who land roles fastest are the ones who stopped treating it like a confession. name it in one line, translate the real skills it gave you, and close every mention by pointing forward to your availability. do that and the gap becomes a non-event by the second sentence of the interview. # How to Explain Being Fired in a Job Interview (Examples) Canonical URL: https://broke2builtai.com/guides/how-to-explain-being-fired-in-a-job-interview/ Summary: Got fired and dreading the 'why did you leave?' question? Here's the exact 3-part formula, word-for-word example answers, and what never to say. ## The question you're dreading isn't actually about the firing Let's name the real fear first, because it's running the whole show. When you got fired, something in you decided it was proof you're not good enough. So now every time you imagine the interviewer asking "why did you leave your last job?", you don't hear a normal question. You hear *please confirm you're a failure*. I've been on both sides of that table, and I've been broke and rebuilding after things fell apart. So hear this clearly: the interviewer is not trying to expose you. They ask that question of everyone. What they're actually listening for is one thing, and it's not whether you got fired. It's whether you're going to be a problem for *them*. Are you self-aware? Do you take responsibility? Are you stable, or are you the kind of person who blows up and blames everyone on the way out? That's the whole test. And here's the part that should take some weight off your chest: how you got fired matters way less than how you talk about it. I have watched people with clean records get passed over for being defensive and bitter, and I've watched people who were straight-up fired get the offer because they handled the question like an adult who learned something. You are interviewing for *future you*, not litigating *past you*. Let's get you ready. (Before the interview even happens, the same firing shows up as a box on the application — here's [what to put for "reason for leaving" if you were fired](/guides/reason-for-leaving-on-application-if-you-were-fired/), so the two answers line up instead of contradicting each other.) ## The mindset: three things you do not do Before the words, the posture. Get these three wrong and no script saves you. ### Don't lie This is the only mistake that's genuinely fatal. Not the firing, the lie about it. If you claim you quit or invent a layoff, you've created a fact that has to survive a reference call, an employment verification, and your own nervous system in a high-pressure moment. When a lie unravels, the conversation stops being about a job that didn't work out and starts being about whether anything you say can be trusted. That's unrecoverable. A firing is survivable. Dishonesty isn't. ### Don't trash the old employer Even if your old boss was genuinely terrible, the second you start running them down, the interviewer stops hearing your story and starts imagining you sitting in *their* breakroom six months from now, doing the same thing about them. Bitterness is contagious and hiring managers can smell it. You can describe a bad fit without prosecuting anyone. The high road here isn't about being noble, it's strategic. ### Don't over-explain The instinct when you're ashamed is to keep talking, pile on context, justify every angle until they understand it wasn't your fault. Don't. Over-explaining reads as guilt and makes a small thing sound huge. The longer you talk, the worse it sounds, every time. Your answer should be short enough that the interviewer's natural reaction is to move on, not to dig. ## The 3-part formula that works for almost any situation When you boil down every good answer to this question, it's the same three beats in the same order. Memorize the shape, not a paragraph. **1. Brief, honest framing.** One or two sentences. State what happened plainly, without drama and without a novel of backstory. You're setting the fact down on the table, calmly. **2. What you learned or changed.** This is the heart of it. Name the actual lesson or the specific thing you do differently now. This is where you prove self-awareness, which is the exact trait they're screening for. **3. Pivot forward.** Turn the energy toward the role you're interviewing for and why you're a strong fit now. End on momentum, not apology. You close the door on the past gently and point at the future. Brief framing, real lesson, forward pivot. Roughly fifteen to thirty seconds total. If you're talking longer than that, you've slipped into over-explaining. ## Adjusting the formula for your specific case The three beats stay the same. What changes is how much you own in beat one. ### If you were laid off Good news, this barely needs spin because it usually wasn't about you. State it plainly: the company cut the role, the team, the budget. Don't apologize for it and don't act wounded. The only trap here is sounding like you're hiding something, so say it confidently and move on. Layoffs are so common right now that interviewers rarely blink. ### If you were fired for cause (a real mistake) This is the hardest one and it's where ownership matters most. You take responsibility cleanly, without groveling and without a list of excuses. The move is to show that the person who made that mistake and the person sitting in front of them are not the same person anymore, because of what changed in between. One clear lesson, demonstrated, beats ten justifications. ### If it was a personality or management clash Be careful, this is the easiest case to accidentally trash someone in. Keep it about *fit and styles*, never about who was right. "My working style and my manager's didn't line up well, and rather than let it keep grinding, we agreed it wasn't working" is honest without throwing a punch. Then pivot to the kind of environment where you *do* thrive, so it lands as self-knowledge rather than blame. ### If you were fired for performance Name the specific gap, the pace was faster than I was ready for, a skill I hadn't built yet, expectations I read wrong, then show the concrete repair. Interviewers will forgive a weakness you've visibly worked on; what they won't forgive is pretending there was no weakness. Specificity is your friend here. Vague "I've grown" sounds like nothing. "I was slow on X, so I did Y, and now I'm solid on it" sounds like a fixed problem. ## Word-for-word example answers Use these as scaffolding, then swap in your real details so it sounds like you and not a script. Read them out loud a few times until the shape feels natural. ### Fired for performance > "I'll be straight with you, that role didn't work out. The job leaned heavily on fast-turnaround reporting and I underestimated how much of the week that would eat, so I fell behind on it. We agreed it wasn't the right fit and parted ways. The honest lesson was that I'd taken a role without being clear-eyed about the exact skills it demanded day to day. Since then I've gotten genuinely strong at that kind of reporting, I actually rebuilt my whole process around it, and it's a big part of why this role appeals to me, because I know exactly what I'm walking into and I know I can do it well." ### Personality or management clash > "My manager and I had pretty different working styles, and over a few months it became clear it wasn't clicking, so we made the call to part ways. I'm not going to pretend there was a villain in it, it just wasn't the right match. What I took from it is that I do my best work in a place with clear, direct communication and a fair amount of ownership, which is honestly what drew me to this team, because that's how you've described how you operate here." ### Laid off (the easy one) > "My role was eliminated when the company restructured and cut about a third of the department. It was nothing performance-related, just the budget. It actually gave me the room to think hard about what I want next, and a role like this one is exactly it, so the timing worked out better than it felt like at the time." Notice what every one of those does: states the fact fast, owns the part that's theirs to own, never names an enemy, and ends pointing at *this* job. That's the entire move. ## What NOT to say A few lines that quietly tank otherwise good answers: - **"My boss had it out for me."** Even if true, it makes you sound like a target who attracts conflict. They won't side with you, they'll get wary. - **"It was a toxic place."** Maybe it was. But it reads as a complaint, and they have no way to verify it, so it just sounds like you badmouth employers. - **"Honestly I didn't really do anything wrong."** Zero accountability is a red flag even when you're innocent, because mature people can usually find *something* to own. - **Anything that rambles past thirty seconds.** Length signals shame. Say your piece and stop talking, then let them ask a follow-up if they want one. - **"I'd rather not get into it."** Refusing to answer reads as the worst-case scenario in their imagination. Give them the calm, short version instead. And one body-language note, because it carries half the message: say your answer at a normal, even pace. Rushing it or dropping your voice tells them you're ashamed, and shame makes them wonder what's hiding underneath. Calm delivery does more than perfect wording. ## You're more ready than the fear is telling you The firing already happened. You can't change that, and trying to litigate it in your head before every interview only feeds the part of you that turned one bad job into a verdict about your worth. It wasn't a verdict. It was one job that didn't fit, and now you know exactly how to talk about it like a steady, self-aware adult, which is the only thing the interviewer was ever checking for. Write your version of the answer down. Say it out loud until it stops feeling like a confession and starts feeling like a fact. The day this question stops scaring you is the day it stops costing you offers. And once the interview's done, a thoughtful [thank-you email](/guides/thank-you-email-after-a-job-interview/) is your chance to reinforce the steady, self-aware impression you just made. # How to Rewrite an Angry Email Professionally (5 Steps) Canonical URL: https://broke2builtai.com/guides/how-to-rewrite-an-angry-email-before-you-hit-send/ Summary: Turn the email you want to send into the one you should: draft the angry version, wait, find the one ask, strip the loaded words, and send something that works. ## the email you're about to send is a gift — to the other person here's the thing nobody tells you while your cursor hovers over send: an angry email almost never damages its target. it damages its author. the person who missed the deadline, botched the invoice, or threw you under the bus in the meeting gets handed the one thing they didn't have before — evidence that *you're* the unreasonable one. your legitimate complaint becomes a conversation about your tone. they get to forward it with a raised eyebrow and no comment. i've written plenty of these. late-night, jaw-tight, every sentence a closing argument. the ones i sent, i paid for. the ones i rewrote got results — refunds, apologies, fixed invoices, deadlines suddenly remembered. the difference was never the anger being wrong. the anger was usually right. the difference was what the email was built to do: make them *feel* bad, or make something *happen*. this guide is the rewrite method, start to finish, doable by hand for free. it works for the coworker email, the vendor email, the landlord email, the reply-all you're dying to send. same machine every time. ## step 1: write the angry version — all the way out don't skip this and don't half-do it. open a notes app or a blank doc — **not** your email client, because autocomplete and a stray keystroke are real risks with a recipient in the To field — and write the version you actually want to send. the sarcasm, the receipts, the "frankly," all of it. this draft has a real job. anger held in your head stays loud and circular; anger on a page gets finite. you can't edit a feeling, but you can edit a document. and buried in the middle of your rant is the raw material the professional version needs: what actually happened, and what you actually want. you're not writing garbage — you're mining ore. ## step 2: wait — an hour minimum, overnight if it matters now close it. the wait isn't about becoming a calmer, better person. it's mechanical: anger narrows your reading of the situation to the version where you're purely wronged and they're purely wrong, and the rewrite requires the wider lens — the one where you can predict how a neutral third party (their boss, your boss, HR, a judge if it ever got that far) would read both sides. an hour handles most emails. sleep on anything involving your job, a client relationship, money you're owed, or family. if silence itself is a problem — the matter is genuinely time-sensitive — send one neutral holding line: *"I've seen this and want to respond properly — you'll have my full reply tomorrow morning."* that's not weakness; that's controlling the clock. ## step 3: find the one ask reread the angry draft and answer a single question: **what do i need to happen next?** not "what do i want them to understand about themselves." what concrete thing: the invoice corrected, the deadline honored, the behavior named and not repeated, the refund issued, a meeting to sort it out. write that one sentence at the top of a fresh page. it's the spine of the new email — every sentence you write from here either supports the ask or gets cut. if you honestly can't find an ask — if the truthful answer is "i just want them to feel as bad as i do" — then you don't need this email at all. that's a vent, and a vent belongs in the notes app draft you already wrote, or in a conversation with a friend. sending it buys you three seconds of satisfaction and weeks of cleanup. ## step 4: rebuild it — facts, impact, ask the professional version has three moving parts, in order: 1. **what happened** — dates, specifics, zero adjectives. "the payment due june 1 hasn't arrived; this is the second reminder" beats "you people clearly have no respect for my time." facts are unforwardable *against* you and undeniable *by* them. 2. **what it caused** — the impact, stated plainly. "because the files came late, i missed the client's window" gives your ask weight without any heat. 3. **what you need** — the one ask from step 3, with a specific and reasonable timeframe. "please send the corrected invoice by friday" ends the email with a door they can walk through. then the pass that does the most work: **hunt the loaded words.** cut "always" and "never" (one exception disproves you). cut mind-reading — "you obviously don't care" is a claim you can't back. cut sarcasm; it reads angrier in print than it sounded in your head. swap accusations for observations: "you ignored my emails" becomes "i haven't had a reply to my emails of the 3rd and the 10th." same fact, but one version is a fight and the other is a record. keep it short. three to six sentences covers most situations. length reads as emotion; brevity reads as confidence. the same structure that makes [a professional email work in general](/guides/chatgpt-prompt-to-write-a-professional-email/) — clear subject, one topic, one ask — applies double when the subtext is conflict. ## step 5: the forward test, then send before sending, read the email out loud — flat, no performance. your ear catches sneers your eye forgives. then run the only test that matters: **imagine it forwarded to the person whose opinion of you matters most in this situation** — your boss, their boss, a future employer, a court. if you'd be comfortable with that person reading every line with your name on it, send it. if one sentence makes you wince, that sentence was the anger getting a last word in. cut it. send it in the morning if you can. a 9am email is a professional handling a problem; a 1am email is a person who lost sleep over you, and the timestamp says so. ## when the calm email is the opening move, not the whole game sometimes the rewrite is the start of a longer, documented push — you're not just annoyed, you're owed something. the same facts-impact-ask skeleton scales up: it's the backbone of [negotiating a bill down in writing](/guides/chatgpt-prompt-to-negotiate-a-lower-bill/) when a company's billing mistake is the thing that made you furious in the first place. and if the anger is really about the job itself — if you keep drafting furious emails to the same people every week — the calmest, most professional message you can write might be [a two weeks notice](/guides/chatgpt-prompt-to-write-a-two-weeks-notice-resignation-letter/), which follows the exact same rule: the flatter the letter, the better it protects you. ## the shortcut, honestly everything above is free and works by hand. the only cost is doing it while you're still mad — which is exactly when rewriting your own words is hardest, because every sarcastic line still feels load-bearing. if you'd rather outsource that part, **Say It Better Message Rewriter** ($4.99, one-time) is an AI skill built for this exact move: paste the angry draft, get back the calm, professional version that keeps every real point and drops every line you'd regret. it's the steps above, run for you, at the moment you're least able to run them yourself. either way — hand method or skill — the rule stands: the angry draft always gets written, and it never gets sent. what gets sent is the version that gets you what you're owed. # How to Write a Eulogy for a Daughter (Structure + Example) Canonical URL: https://broke2builtai.com/guides/how-to-write-a-eulogy-for-a-daughter/ Summary: How to write a eulogy for a daughter: a 5-part structure, two full worked examples (a grown daughter and a little girl), and a fill-in template. Somebody gave you a date and a time and told you that you would be speaking. That is where most parents are when they find a page like this — not looking for writing advice, just looking for a way through the day. So let's be honest about the bar. Nothing you write will be equal to your daughter. Nothing could be, and no one who loved her is expecting it to be. What you can do is stand up and say a few true things about who she was, and that is not the small version of the job. That is the whole job. The shape below holds whether she was four or forty, whether you had her for a summer or for decades. Do it one piece at a time. You do not have to look at the whole thing at once. ## The trap: do not let her come out sounding generically sweet Here is the specific thing that goes wrong in eulogies for daughters, and it goes wrong out of love. The words that arrive first are *beautiful, sweet, kind, always smiling, a light*. They are usually true. They are also true of a thousand other people, and a room full of the people who knew her will hear them and feel the distance between those words and the girl they actually knew. So push past them. The question that gets you there fastest is: **what did she not put up with?** That one goes straight to her opinions, her standards, the thing that made her furious on other people's behalf, the argument she would restart three days later because she had thought of a better point. Then ask what she was ridiculous about. What she was bossy about. What she texted you at midnight. What she would be mortified to hear you say right now — and, given that, what she would want said instead. Say the tender things too; they belong to her. Just do not stop at them. Length: **three to five minutes, roughly 500 to 900 words.** Shorter is genuinely fine. Time it out loud, because grief slows you down more than you would believe. ## A gentle 5-part shape Fill these five in order and you have a eulogy. You do not need to be a writer. 1. **Say who you are, then one sentence about her.** Everyone knows you, but saying it out loud gives your voice something easy to do first. Then a single line that lands who she was. *"I'm Sarah's mom, and I get to tell you about the most stubborn, most tender-hearted person I have ever known."* 2. **Tell them what she was actually like.** Not her age, not her job, not what it says on the program. Was she the one who organized everyone? The one who noticed the person nobody was talking to? Quick to laugh, quicker to take offense on someone else's behalf? Two or three real traits, each with a half-sentence of proof, beat a paragraph of adjectives. 3. **One scene, told slowly.** This is where the eulogy actually lives. Not a summary of how she was, but one afternoon: where you were, what she did, what she said. Small is better. The people who loved her will recognize her instantly and the people who did not will finally meet her. 4. **What she left inside you.** What is different about you because you got to be her parent? What did she teach you without ever intending to teach you anything? This is the part you will most want to have said afterward, so do not skip it to save time. 5. **Say goodbye to her, not about her.** Turn, and put the last two sentences to her instead of to the room. *"Thank you for being mine. Go gently, sweetheart."* A true ending will always beat a grand one. The same five bones carry over to the other people you might have to speak about; if a brother is also writing, or you have done this before, the guide on [how to write a eulogy for a son](/guides/how-to-write-a-eulogy-for-a-son/) walks the same path with different material. ## A full example: a grown daughter Read this one out loud. You are listening for pace and length, not borrowing sentences. > I'm Sarah's mom. I have introduced her a thousand times — at recitals, at her wedding, to every new person she ever dragged home because she'd decided we should love them too. I never once imagined introducing her like this, and I'm going to keep it short, because she'd be mortified if I made a fuss. > > So here's who Sarah was. She was brave in a quiet way — not loud about it, just the first one to sit with the kid nobody was sitting with, the first to call when she heard your voice go thin on the phone. She was stubborn as anything about the people she loved and completely unbothered about being right. And she was funny. She could find the ridiculous thing in the worst day and hand it to you like a small gift. > > When she was seven, I was crying in the kitchen over something I don't even remember now, and she came in, took one look, and wordlessly handed me her favorite stuffed rabbit — the one thing she loved most in the world. She didn't say anything. She just decided I needed it more than she did. That was the whole of who she was, right there. She spent her life handing people the thing she loved most and never once counting the cost. > > She taught me that being soft with people is not the same thing as being weak. She taught me to look for the funny thing first, before a day got too heavy to carry. And she gave me thirty-one years of being somebody's mother, which is the only job I ever really wanted and the only one I was ever any good at. > > Sarah — I have no idea how to stand here and do this. But you knew, every single day of your life, exactly how loved you were. I'm going to hold onto that. Thank you for being mine, sweetheart. Go gently. Notice what it leaves out: no schools, no job history, no attempt at completeness. One scene, one truth, one goodbye. ## A full example: a little girl If she was very small, you may be sitting there thinking there is not enough material. There is. A four-year-old is a whole person with a whole personality, and you knew it better than anyone alive. > I'm Maya's dad. Maya was three and a half, and she was the loudest person in our house by a distance. > > She had rules. Toast had to be cut in triangles, and if you cut it in squares she would look at you like you had broken a promise. She called our cat "the guy." She sang the same four seconds of the same song for most of last winter, and I would give anything to hear it again right now. > > Every night she wanted to be carried down the hall, even though she could walk perfectly well, and she'd put her whole head down on my shoulder like she'd been holding it up all day. That's the piece of her I'm keeping. That weight on my shoulder. > > Maya, you were so easy to love. Thank you for the toast rules and the guy and the song. I love you, baby. Dad's got you. Nothing in that is impressive, and that is exactly why it works. The toast rules are the whole point. Take these days one piece at a time; you do not have to write two things at once. ## A fill-in template Brackets are easier than a blank page. Answer these in whatever order they come to you, and the draft assembles itself. If even that is more than you have in you today, write three sentences about one ordinary afternoon with her and stop there. That is not a shortcut to a eulogy — on the hardest days it is the whole of what anyone can ask, and it is enough to build from when you are ready. > I'm [your name, or "her mom" / "her dad"]. [Either one honest line about what this week has been, or the single sentence that sums her up.] > > If you knew her, you know [the thing everyone knew about her]. What you might not know is [something only your family saw]. > > She wouldn't put up with [the thing that made her sit up straight]. She was ridiculous about [the harmless obsession]. She was the one who [the role she always took in a room]. > > [One scene. Where you were, what she did, what she said. Do not explain it — just tell it.] > > Because of her, I [what changed in you]. She gave me [what being her parent gave you]. > > [Name], [one or two sentences spoken straight to her]. I love you. [A short, true goodbye.] Then read it once and change anything that sounds like a greeting card instead of like you. ## If she was a mother If she leaves children, they are in that room, and what you say about her becomes part of what they remember about her. Say their names. Give them one concrete picture of her being their mom — how her whole face changed when they came through a door, what she said at bedtime, the nickname only she used. Keep it about her rather than about what they have lost; they already know what they have lost. Tell them in advance that you are going to mention them. Being named unexpectedly in front of a full room is hard at any age. ## If you are her father A quiet thing happens at these services: people walk up and offer condolences to her mother first, and ask the father how his wife is holding up. If that has already happened to you, you are not imagining it, and it can leave you feeling like a bystander at your own daughter's funeral. Speaking is allowed to be your answer to that. You do not need to hold it together to be worth listening to — a father's voice breaking over a small ordinary memory is one of the truest things a room can hear. And if the way you loved her was mostly practical, mostly showing up and fixing things and driving her places, then say that plainly. *"I wasn't a talker. I just wanted to be wherever she needed a ride to."* That is a love letter. ## The day itself A few practical mercies, in the order they will matter: - **Know your first sentence by heart.** Finding your place on a page while a room watches is the hardest ten seconds of the whole thing. If the opening line is already in your mouth, you are moving before the nerves arrive. - **Print it in 18-point, double-spaced, on paper.** Not a phone — screens dim, and shaking hands are much more obvious on a small bright rectangle. - **Mark your breathing.** A slash wherever you might need to stop. The silence feels enormous to you and lasts a moment to everyone else. - **Pick one face.** Choose someone kind in the third row and talk to them. It is far easier than addressing a crowd. - **Have a stand-in with a copy in hand**, agreed in advance, ready to step up and finish. Planning for it is not expecting to fail. - **Water within reach**, and let yourself cry. The room is already crying. You do not have to be composed up there. You only have to be honest about her, and you already are. # How to Write a Eulogy for a Son (Structure + Example) Canonical URL: https://broke2builtai.com/guides/how-to-write-a-eulogy-for-a-son/ Summary: A gentle structure, two full examples, and a fill-in template for a parent writing a eulogy for a son — a small boy or a grown man. You are being asked to stand up and speak about your son. There is no preparing for that, and no page can make it a reasonable thing to be doing. What a page can do is make the task smaller than it currently feels, because right now it probably feels like you have been asked to account for an entire person in front of everyone who loved him. You have not. You have been asked to say a few true things. Five short parts, one at a time, and then you sit down. That is the whole assignment, and the rest of this page is just how to fill those five parts in. ## The trap: a list of what he did is not who he was Sons get eulogized as résumés. It happens almost automatically, because it is how men get described their whole lives — the position he played, the branch he served in, the trade he was good at, the truck he was always under, the promotion he got last spring. Every one of those is true and every one of them is a container. Nobody in that room came to hear the container. So take your list and go one layer in. He didn't just coach the team; he stayed late with the kid who kept dropping the ball, every week, without ever mentioning it. He didn't just work at the garage; he quietly undercharged people he knew were behind on rent. He didn't just love that car; he loved having a reason to be in the driveway where his friends could find him. The second thing worth doing, and it is the one that tends to open a father up: **ask what he said by doing.** A lot of sons run their love through actions rather than sentences — the ride at 2am with no questions, the shovel on your driveway before you woke up, the way he always took the broken chair. If he was not a talker, say that out loud from the lectern and then translate for him. *"He never once said it. So I'll say it for him: he was telling us the whole time."* Length: **three to five minutes, about 500 to 900 words.** Less is fine. Read it aloud to time it — you will speak much slower on the day. ## A gentle 5-part shape Five parts, in order. You do not have to be a writer to do this. 1. **Name yourself, then name him in one line.** Say who you are even though everybody knows; it gives your voice an easy first job. Then one sentence that puts him in the room. *"I'm Daniel's dad, and I'm here to tell you about the funniest, most stubborn, most loyal person I've ever known."* 2. **Get under the résumé.** What was he actually like — at the table, in a crisis, on an ordinary Tuesday? Fearless and hopeless at admitting he was wrong? Gentle with animals and merciless at cards? Two or three true traits, each with half a sentence of proof. 3. **One moment, told slowly.** Not a summary of him, a scene from him. Where you were, what he did, what he said or pointedly didn't. Small beats big every single time. This is the part people will repeat in the parking lot afterward. 4. **What changed in you because of him.** What did being his parent make you into? What did he teach you without any intention of teaching you anything? Say the thing you would regret not having said. 5. **Talk to him at the end.** Turn it and address him directly for a sentence or two. *"I love you. I loved being your dad."* You do not need a grand close. You need a true one. The same bones hold for the other speeches a family gets asked for; if a sister is also writing, or you have had to do this before, [how to write a eulogy for a daughter](/guides/how-to-write-a-eulogy-for-a-daughter/) walks the same structure with different material. ## A full example: a grown son Read this one out loud, for rhythm and length rather than for sentences to borrow. > I'm Daniel's dad. I've stood up in front of rooms my whole working life, and I have never once been more unqualified to speak than I am right now — because there are no words big enough for this boy, and he'd be the first to tell me to keep it short anyway. > > So here's who Daniel was. He was kind in a way that cost him something — he'd give you the better seat, the last slice, the benefit of the doubt you hadn't earned. He was stubborn as a mule about the things he believed in and completely unbothered about everything else. And he was funny. God, he was funny. He could make his grandmother laugh at her own funeral, and honestly, I hope he's doing exactly that right now. > > When he was nine, I was having the worst week of my career, and I came home short and quiet. Daniel didn't say anything. He just came and sat next to me on the porch step, leaned his whole weight into my side, and stayed there until it got dark. He didn't fix anything. He just refused to let me sit there alone. That was the whole of who he was, right there on that step. He spent his life leaning into people so they wouldn't have to be alone. > > He taught me that showing up is most of love. He taught me to laugh before things get too heavy. And he gave me twenty-six years of being his father, which is the best job I will ever have, and the one I would give anything to keep. > > Daniel, I don't know how to do this. But I know I loved being your dad, and I know you knew it. I love you. I'll love you every single day for the rest of mine. Go easy, buddy. Look at what is missing: no schools, no career, no attempt to be complete. One scene. One truth. One goodbye. ## A full example: a small boy If he was little, you may believe there is not enough to say. There is — you just have to trust that the tiny things are the material, not a substitute for it. > I'm Theo's mum. Theo was two years and eight months old, and he ran everywhere. He never once walked into a room. > > He had a plastic dinosaur called Bob that went in the bath, went in the car, and slept on his pillow. He said "hopsital" instead of hospital and I never corrected him because I liked it better. He thought the bin lorry was the most exciting event of any week, and he was probably right. > > He used to find me in the kitchen, put both arms round my leg, say nothing at all, and then run off again. That was it. That was his whole way of checking in. I keep standing in that spot in the kitchen. > > Theo, thank you for Bob and for the bin lorry and for the arms round my leg. I love you, little man. None of that is remarkable, and that is precisely why the room will feel it. Take one hard thing at a time this week; the eulogy does not have to be written on the same day as anything else. ## A fill-in template If starting is the impossible part, fill in the brackets and you will have a working draft. If even the brackets are more than you have in you today, write three sentences about one ordinary afternoon with him and stop there. That is not a shortcut to a eulogy — on the hardest days it is the whole of what anyone can ask, and it is enough to build from when you are ready. > I'm [your name, or "his mom" / "his dad"]. [One honest sentence about how hard this is, or one line naming who he was.] > > Most of you knew him as [the role, job or thing he was known for]. What that doesn't tell you is [what he was actually like doing it]. > > He never said much about [the thing he cared most about] — he just [the action that proved it]. He was hopeless about [the harmless flaw]. He was the first one to [the thing he always did for people]. > > [One scene. Where you were, what he did. Tell it; do not explain it.] > > Because of him, I [what changed in you]. He gave me [what being his parent gave you]. > > [Name], [one or two sentences spoken straight to him]. I love you. [A short, true goodbye.] Read it back once and cut anything that sounds like a sympathy card rather than like you. ## If how he died is hard to say For a lot of parents burying a son, there is a second weight on top of the first one: an overdose, a suicide, a crash where somebody was at fault, something that has had people talking all week. If that is your situation, here is the only rule that matters — **you owe that room no explanation whatsoever.** A eulogy is not a statement of facts. You have three honest options, and none of them is dishonest: - **Name it once, plainly, and go back to his life.** *"We lost Michael to an addiction he fought harder than anyone knows."* One sentence can end the whispering and let the room grieve him instead of the story. - **Refer to it generally.** "His illness." "The accident." No one will push. - **Leave it out completely** and speak only about who he was. Pick whichever one lets you keep talking, and change your mind as late as you like. The thing to protect against is letting the worst months of him take up more room in the speech than the years of him. He was not his death. ## If he leaves a wife, a partner or children They are sitting in the front row, and what you say about him becomes part of what his children keep. Give them one solid picture of him as a dad — what he did at bedtime, the game he always lost on purpose, the way he said their names. Use their names out loud, and tell them beforehand you are going to, so it does not land as a surprise. If he had a partner, name her or him too. Grieving in-laws are very often the most invisible people at a funeral, and one sentence — *"he was happiest in that kitchen with you"* — is a thing they will hold on to for years. ## The day itself Practical things, in the order they will help: - **Read it out loud to one person first.** Not for feedback. To find out which sentence is the one that takes your legs out, so it is not a surprise at the lectern. - **Carry it on paper, folded in your pocket.** Phones dim, and a shaking hand shows up far more on a small screen. - **Slow down about a third more than feels natural.** Nerves speed everyone up, and the room needs the pauses more than it needs the words. - **Mark the sentence you know will get you**, and take a breath before it rather than in the middle of it. - **Line up someone to finish**, copy already in their hand, agreed in advance. Having a backup is usually why you never need one. - **Water within reach.** Let yourself cry if it comes. Everyone out there is doing the same thing, just quieter. You do not have to hold it together up there. You only have to be honest about him, and you already are. # How to Write a Payment Reminder Email to a Client (3 Stages) Canonical URL: https://broke2builtai.com/guides/how-to-write-a-payment-reminder-email-that-actually-gets-you-paid/ Summary: How to write payment reminder emails that get invoices paid: three-stage escalation ladder, templates, and the lines that kill it. ## the email you keep not sending there's a specific kind of silence every freelancer and small business owner knows: the invoice went out, the due date came and went, and now you're drafting a reminder in your head every day and sending none of them. too soft and you'll get ignored. too hard and you'll torch a client you might want back. so you wait, and the invoice ages, and the awkwardness compounds. here's the thing that finally made this easy for me: **a payment reminder is not a confrontation. it's an administrative nudge.** most late payments aren't malice — they're a missed email, an invoice waiting on someone's approval, an accounts-payable pile. your first job is to make paying you the easiest item on their to-do list. your second job is to have a plan for when it isn't. that plan is a ladder, and you write the whole thing before you send rung one. ## the escalation ladder (decide it before email #1) the reason people freeze on this email is they're trying to pick one tone for one message. don't. decide the whole sequence up front: 1. **the friendly nudge** — 1–2 business days after the due date. assumes an honest oversight. 2. **the firm follow-up** — about a week later. still polite, but now there's a direct ask and a date. 3. **the final notice** — another week or two on. names consequences and your next step. three emails, roughly a week apart, each one genuinely different from the last. once the ladder exists, no single email carries the weight of the whole relationship — you're just executing step two of a process. that reframe alone gets more invoices paid than any clever wording, because the invoices actually get chased. ## every reminder needs these five things whatever the stage, the email must contain: - **the invoice number** — so their bookkeeper can find it in seconds - **the exact amount** — no "the outstanding balance," name the number - **the original due date** — this is the factual spine of the whole email - **how to pay** — the payment link, the bank details, or the attached invoice (attach it every time; never make them ask for a copy) - **one clear ask** — pay it, or tell you when it'll be paid subject lines should do half the work: `Invoice #1042 — $850 past due` gets opened and understood before the email does. and keep the body short. a payment reminder that scrolls is a payment reminder that gets "I'll deal with this later'd." ## stage 1: the friendly nudge send this a day or two after the due date: ``` Subject: Friendly reminder — Invoice #1042 ($850, due June 27) Hi [Name], Just a quick nudge that invoice #1042 for $850 was due on June 27 and I haven't seen it come through yet. I've attached a copy in case the original got buried. You can pay via [payment link / the bank details on the invoice]. If it's already on its way, ignore me and thank you! Best, [You] ``` notice what it doesn't do: apologize for existing. "sorry to bother you," "I hate to ask," "whenever you get a chance" — those phrases feel polite and they quietly reclassify your invoice as optional. you did the work. the money is owed. friendly and unapologetic can be the same email. ## stage 2: the firm follow-up a week after the nudge, if nothing's landed: ``` Subject: Invoice #1042 — now 10 days past due Hi [Name], Following up on invoice #1042 for $850, due June 27 — it's now 10 days past due and I haven't heard back on my last note. Could you let me know today when I can expect payment? If there's an issue with the invoice or something's holding it up on your end, tell me and I'll help sort it out. Invoice attached again for reference. Thanks, [You] ``` two changes from stage one: you're asking for a **committed date**, and you're opening a door — "if something's holding it up, tell me." a client in genuine cash trouble will often take that door and propose a payment plan, which beats silence by a mile. if your contract includes a late-fee clause, this is the stage to mention it exists, factually, without brandishing it. this is the same muscle as any [professional email where the stakes feel bigger than the word count](/guides/chatgpt-prompt-to-write-a-professional-email/): plain opener, the facts, one ask, no padding. ## stage 3: the final notice if two emails and maybe a phone call have gone nowhere: ``` Subject: Final notice — Invoice #1042, 30 days past due Hi [Name], Invoice #1042 for $850 is now 30 days past due, and I haven't received payment or a response to my previous reminders on [dates]. If payment isn't received by [specific date, ~7 days out], I'll have to pause any current work and send a formal demand letter as the next step. I'd much rather resolve this simply — a payment today, or a concrete date I can count on, closes this out. [You] ``` the final notice works because everything before it was measured — you've been reasonable on the record, which makes the consequence credible instead of dramatic. name a real next step you'll actually take. for most freelancers that's a formal demand letter, which sounds scarier to write than it is — there's a [free prompt for writing a demand letter for an unpaid invoice](/guides/chatgpt-prompt-to-write-a-demand-letter-for-an-unpaid-invoice/) when you get there. the pattern — polite, documented, escalating in planned stages — is the same one that works for [getting a security deposit back from a landlord](/guides/chatgpt-prompt-to-get-security-deposit-back/): paper trail first, pressure second. ## the mistakes that keep invoices unpaid - **sending one reminder and going quiet.** silence after a nudge teaches the client that ignoring you works. - **apologizing for the ask.** every "sorry to chase" moves your invoice down their priority list. - **emailing angry.** sarcasm and guilt-trips give a slow-paying client a reason to make it about tone instead of money. the ladder escalates pressure, never emotion. - **vague asks.** "just checking in on that invoice" invites "yep, will get to it!" — ask for payment or a date, specifically. - **inventing penalties.** don't threaten fees or interest your contract never established. use leverage you actually have: pausing work, withholding remaining deliverables per your terms, the demand letter. - **making them work to pay you.** no attached invoice, no payment link, wrong PO number — every extra step is another week. ## the honest version you don't need to buy anything to do this. the ladder above is the whole method: five facts in every email, three stages a week apart, escalate pressure not emotion, and actually send stage two. writing three short emails per overdue invoice is completely doable by hand. it's also, if you invoice a lot, tedious — and tedious is where chasing quietly stops happening. the **Client Payment Reminder Emails** skill ($4.99, one-time) exists for that moment: give it the invoice details and the stage you're at, and it drafts the reminder — nudge, follow-up, or final notice — matched to your situation and tone. the method's free either way. the skill just makes sure it runs even on the weeks you're too buried to be your own accounts-receivable department. # How to Write a Thank-You Email After a Job Interview Canonical URL: https://broke2builtai.com/guides/thank-you-email-after-a-job-interview/ Summary: Just finished a sit-down interview? Here's how to write a thank-you email that references what was actually said, fixes a weak answer, and handles a panel. ## Reference the conversation, not the resume You just walked out of a sit-down interview. Your heart rate is still coming down, you're replaying the one question you fumbled, and somewhere in there a voice says *I should send a thank-you*. Good instinct. Most people either skip it or send something so generic it reads like a form letter — which, after a real conversation, is a wasted shot. Here's the thing that makes a sit-down interview different from a trial shift or a working interview: they didn't watch you do the job. They *talked* to you. The whole interaction was words — questions, answers, the problems they described, the things they worried about out loud. So your thank-you email has exactly one job that nobody else's will do: prove you were actually *in* that conversation. Reference what was said, tie it to what you bring, and you separate yourself from every candidate who sent "thank you for the opportunity" and nothing else. A thank-you email won't rescue a bad interview. But in a close call between two solid candidates, it's a real thumb on the scale. I've job-hunted in lean times, sent these from a cracked phone in a parking lot, and the ones that landed were never the polished ones. They were the specific ones — the ones that named a thing the interviewer actually said. *(If you just worked a trial shift instead of a sit-down interview, see [thank-you email after a working interview or trial shift](/guides/thank-you-email-after-working-interview-trial-shift/) — it covers the timing rules, who to send to, and panel etiquette that apply to both, so I won't re-teach them here.)* ## Take notes before you leave the parking lot This is the whole game, so do it first. Before you start the car, jot down two or three concrete things from the conversation: a problem the team is wrestling with, a project they named, a phrase the interviewer used, a question you wish you'd answered better. Those notes are the raw material for everything below. Memory fades fast — by tonight "the migration project you mentioned" will have blurred into "the work your team does," and the first one is worth ten of the second. If you genuinely can't recall a single specific thing, that's feedback for next time: listen harder, take notes in the room if they'll let you. But you can almost always remember *something*. Use it. ## Tie a concern they raised to your fit The strongest move in a post-interview email isn't "I'd be great for this." It's taking something the interviewer was visibly concerned about and showing them you're the answer to it. Interviewers leak their worries. "We've been struggling to keep the onboarding flow from breaking every release." "Honestly the hardest part of this role is the cross-team coordination." "We need someone who can ramp without a lot of hand-holding." Each of those is a door. In your email, walk through it: > You mentioned the onboarding flow breaks on almost every release. That's the exact mess I spent a year untangling at my last job — I built a regression check that cut our release-night surprises to near zero, and I'd love to do the same here. That's not restating your resume. It's connecting *one specific need they named* to *one specific thing you've done*. It tells them, in the most concrete way possible, that you were listening for what *they* need — not just waiting for your turn to talk. ## Fix the answer you wish you'd nailed Everybody walks out of an interview with one answer they'd give differently. The thank-you email is your one sanctioned chance to fix it — use it, but surgically. Pick the single answer that matters most. Maybe you blanked on a technical question, or rambled when they asked about a weakness, or gave a thin answer to "why us." Give the sharper version in two or three sentences, framed without grovelling: > One thing I want to circle back on — when you asked how I'd prioritize a backlog with no clear owner, I gave you the abstract version. Concretely: I'd start by mapping each item to revenue or risk, then take the top three to the team lead for a gut-check before committing. That's closer to how I actually work. Notice it doesn't apologize five times or re-open the whole interview. One repair, cleanly done, reads as composure and self-awareness — two things they can't fully test in an hour. Don't try to patch every wobble; pick the one that could actually cost you the offer and let the rest go. ## Speak to the panel as individuals White-collar interviews are rarely one person. You met the hiring manager, maybe a peer, maybe someone from a team you'd work with, maybe a skip-level. Each of them was evaluating something different, and your email should reflect that. If you have everyone's address, send each person their own note that references what *you discussed with them specifically* — the architecture conversation with the engineer, the team-culture conversation with the manager, the roadmap conversation with the director. A note that could've gone to any of them is a note that proves nothing. If you only have the recruiter's email, send one strong note and ask them to pass your thanks along to the panel by name. (The timing window, the don't-BCC-the-whole-panel rule, and the rest of the universal etiquette live in the [trial-shift guide](/guides/thank-you-email-after-working-interview-trial-shift/) — worth a two-minute read if this is your first one.) For multi-round processes, keep referencing forward: the second-round note can nod to what came up in the first. It shows you're tracking the whole conversation, not treating each round as a cold start. ## Template 1: The conversation-referencing standard Good for most sit-down interviews. The bracketed parts aren't optional flavor — they're the entire point. Fill them with real things that were said. ``` Subject: Thank you - [Role] interview Hi [Interviewer's name], Thank you for taking the time to talk through the [Role] with me today. I left more interested than I walked in. What stuck with me was [specific concern or project they raised, e.g., "what you said about the team struggling to keep reporting accurate as you scale"]. That's squarely the kind of problem I like owning - [specific thing you've done about it, e.g., "I rebuilt a reporting pipeline at my last job that cut month-end errors by about 80%"], and I'd be glad to bring that to what you're building. One quick follow-up on [topic you wish you'd answered better]: [the sharper, two-sentence version of your answer]. If there's anything else I can share to help your decision, just say the word. Thanks again - I'm genuinely excited about this one. Best, [Your name] [Phone number] ``` (Drop the follow-up paragraph if there's nothing you'd change — don't invent a fumble just to have one.) ## Template 2: The final-round / senior note For a panel member or a final-stage interview with senior leadership, where shorter and more measured wins. Reference one strategic point, confirm interest, get out. ``` Subject: Thank you, [Name] Hi [Name], Thanks for the time today. I appreciated getting into [specific strategic topic, e.g., "how you're thinking about the trade-off between shipping speed and platform stability over the next year"] - it's the kind of problem I'd want to help you solve, and it's a big part of why this role appeals to me. I'm confident I can bring [specific strength tied to what they raised]. Happy to answer anything else as you weigh the decision. Best, [Your name] ``` Both templates live or die on the bracketed specifics. Strip out the real detail and you're left with the empty note everyone else sends — which, after an hour of real conversation, actually reads worse than sending nothing. ## Get the rest of the grind off your plate For now though, you've got what you need. Pull up your notes, find the realest thing they said, tie it to what you'd do about it, fix the one answer that's bugging you, and send it before you talk yourself out of it. Then go get the next one — and if the silence stretches on afterward, here's [how to follow up after no response](/guides/follow-up-email-after-interview-no-response/) without sounding desperate. # LinkedIn Headline Examples for Moms Returning to Work Canonical URL: https://broke2builtai.com/guides/linkedin-headline-stay-at-home-mom-returning-to-work/ Summary: Real LinkedIn headline examples for stay-at-home moms returning to work, plus a fill-in-the-blank formula and exactly how to handle the gap. No fluff. ## your headline is the one thing recruiters read first When you've been home with the kids for a few years, going back on LinkedIn feels like walking into a room where everyone already knows each other and you forgot your name tag. The blinking cursor under your photo doesn't help. That little field — your **headline** — is 220 characters, and it's quietly the most important real estate on your whole profile. Here's why it matters more than the rest: your headline follows you everywhere. It shows up next to your name in recruiter searches, in connection requests — including the one you send when you [ask someone for a referral](/guides/how-to-ask-for-a-job-referral-from-someone-you-barely-know/) — when you comment on a post, when someone hovers over your name. Most people never click through to your "About" section. They decide in about two seconds based on that one line. So the goal isn't to cram your life story in there. The goal is to make a busy hiring manager think *"oh, this person does the thing I need"* before they've clicked anything. Let's build that line, with real examples you can borrow today. ## the mistake almost every returning mom makes The instinct is to be honest and lead with the truth: **"Mom of 3 | Looking for work."** It's real, it's relatable, and it's the wrong move for a headline. Two reasons. First, LinkedIn search runs on keywords. Recruiters type "bookkeeper," "marketing coordinator," "RN," "executive assistant" — not "mom looking for work." If those role words aren't in your headline, you're invisible in the search that matters. Second, "looking for work" centers what you *don't* have instead of what you *bring*. The fix isn't to hide the break. It's to **lead with your professional identity and let the gap live in your About section**, where you get room to frame it with confidence. Your headline sells the skill. The story comes later. (One real exception: if you're deliberately pivoting *into* a family-adjacent field — parenting coach, doula, kids' education, family products — then your experience as a mom is directly relevant and absolutely belongs up front.) ## the formula that works After helping people rebuild these profiles, the headlines that pull the most recruiter attention almost always follow one simple shape: > **[Target Role] | [2–3 Skills or Specialties] | [Status or Value]** That's it. Role tells search what you are. Skills tell a human you can do it. Status closes the loop — "open to," "returning," "available for." Aim to actually use the space; somewhere between 120 and 180 characters lets you stack keywords without looking stuffed. Here's the same person written two ways: - **Weak:** "Stay at home mom returning to the workforce after 5 years." - **Strong:** "Bookkeeper & QuickBooks Pro | AP/AR, Reconciliation, Payroll | Available for part-time & contract roles." Same human. The second one shows up in searches and gets clicked. ## real linkedin headline examples by field Steal these directly, or mix and match the parts. Swap in your own skills and years. **Administrative / office support** - Administrative Professional | Calendar, Operations & Vendor Coordination | Detail-obsessed and back in the game - Executive Assistant | 8 yrs supporting C-suite leaders | Reentering the workforce, ready to organize the chaos **Marketing / content** - Marketing Coordinator | Content, Email & Social | Career returner, current on the latest tools - Digital Marketer | SEO + Brand Storytelling | Open to remote & hybrid roles **Accounting / finance** - Staff Accountant | GL, Month-End Close, Reconciliation | Returning to finance after raising my family - Bookkeeper | QuickBooks Certified | Available for part-time, contract & remote work **Education** - Former Elementary Teacher | Curriculum Design & EdTech | Pivoting into instructional design and corporate L&D - Educator | 6 yrs in K–5 | Open to training, tutoring & program coordinator roles **Healthcare / nursing** - RN, BSN | Med-Surg & Pediatrics | Refreshed license, returning to bedside care - Medical Office Coordinator | Scheduling, Billing & Patient Intake | Ready for my next chapter **HR / people ops** - HR Generalist | Recruiting, Onboarding & Employee Relations | SHRM-certified and back in the workforce **Project / operations** - Project Coordinator | Agile, Stakeholder Comms & Budget Tracking | Returning professional, PMP in progress **Customer success / service** - Customer Success | Onboarding & Retention | 5 yrs experience, reentering and ready **Not sure of the role yet? (skills-forward)** - Organized, resourceful, and ready to contribute | Strong in coordination, communication & problem-solving | Open to operations & admin roles - Reentering the workforce after a family-focused career break | Exploring roles in customer support, admin & coordination Notice none of them apologize. None say "just." None say "trying to get back into." Confidence is a keyword too — humans feel it. ## the fill-in-the-blank template (free, do it in 10 minutes) Grab a notes app and finish these four lines: 1. **The job title I want recruiters to find me under:** ____________ 2. **Two or three skills I'm genuinely good at:** ____________ , ____________ , ____________ 3. **My status:** *(pick one)* "Returning to the workforce" / "Open to [type] roles" / "Available for part-time & contract" 4. **Optional warmth:** one phrase of personality — "ready to organize your chaos," "current on the latest tools," "ready for my next chapter" Now drop them into the formula: > **[#1] | [#2] | [#3 + optional #4]** Read it out loud. If it sounds like a person and contains the words a recruiter would type, you're done. That free version alone will already read sharper than most returner headlines you'll scroll past. ## how to handle the gap (because it'll come up) Your headline shouldn't mention the gap, but your profile should address it once, briefly, without flinching. (Your resume needs the same once-and-forward treatment — here's [how to explain an employment gap from caregiving](/guides/how-to-explain-a-caregiving-gap-on-your-resume/).) A couple of honest options for your About section: > "After [X] years building a career in [field], I took an intentional break to raise my family. I've stayed sharp by [a course, a certification, volunteer work, freelance projects], and I'm excited to bring my [skill] back to a team that values [thing]." LinkedIn also added a **Career Break** option inside the Experience section. Using it is optional but genuinely helpful — it names the gap as a legitimate life chapter instead of leaving a silent hole on your timeline. You can even tag it with skills you kept up (budgeting, event planning, volunteering — all real). The mindset shift that matters most: a career break is a fact, not a flaw. The parents I've watched land roles fastest are the ones who stopped over-explaining it. State it once, frame it forward, move on to the skills. ## putting it all together 1. Pick your target role and put it first. 2. Stack two or three real, searchable skills. 3. Add a confident status line. 4. Keep the gap out of the headline; address it once in your About. 5. Read it aloud — sound human, hit the keywords. # Professional Reference List for a Job: Format + Template Canonical URL: https://broke2builtai.com/guides/how-to-format-a-professional-reference-list-for-a-job/ Summary: How to format a professional reference list for a job: the layout, what to include for each person, a copy-paste template, and what if you have none. A reference list is one of those job-search documents nobody teaches you to make, and then an employer asks for it at the end of an interview and you're suddenly googling the format on your phone in the parking lot. Good news: it's the easiest document in your whole application to get right. It's short, it follows a fixed pattern, and once you build it you barely touch it again. This guide gives you the exact layout, what to include for each person, a copy-paste template, a filled-in example, and the parts most people skip — how to actually ask someone to be a reference, and what to do if you don't feel like you *have* professional references right now. You can build your list in about fifteen minutes from this page alone. ## what a reference list actually is (and when to send it) A professional reference list is a separate one-page document with three to four people who can vouch for your work, plus how to reach them. It is **not** part of your resume. Two things people get wrong here, so let's kill both: - You do **not** put references on your resume anymore. - You do **not** need the line "references available upon request." It's assumed, it wastes a line, and it dates your resume. You send the list only when an employer asks — usually after an interview, sometimes as part of the application. Until then, you keep it built and ready in a file so you're never scrambling. ## the format, exactly Keep it clean and matched to [your resume](/guides/ats-friendly-resume-without-sounding-like-a-robot/). The goal is that your reference page looks like it belongs to the same person who sent the resume — same name, same font, same header style. **Top of the page — your header (mirror your resume):** - Your full name (a touch larger, same as your resume) - Phone number - Email - City, State (no full street address needed) Then a title line: **Professional References** or **References for [Your Name]**. Then each reference as a small block. One blank line between blocks so it breathes. That's the entire document. No paragraphs, no cover-letter language, no explanation of why you're job hunting. ## what to include for each reference Six fields per person. Miss the last one and the list is technically fine but far less useful: 1. **Full name** 2. **Job title** 3. **Company / organization** 4. **Phone number** 5. **Email address** 6. **Relationship line** — one short phrase: how they know you and the years. Example: *"Direct supervisor at Lakeside Retail, 2021–2023."* That relationship line does the quiet heavy lifting. It tells the hiring manager who they're about to talk to and what that person actually saw you do, so they can ask the right questions instead of "so, um, how do you two know each other?" ## copy-paste template > **[Your Full Name]** > [Phone] | [Email] | [City, State] > > **Professional References** > > **[Reference 1 Full Name]** > [Job Title], [Company] > [Phone] | [Email] > [Relationship — e.g., "Manager at [Company], 2020–2023"] > > **[Reference 2 Full Name]** > [Job Title], [Company] > [Phone] | [Email] > [Relationship] > > **[Reference 3 Full Name]** > [Job Title], [Company] > [Phone] | [Email] > [Relationship] That's the whole thing. Three blocks, optionally a fourth. Save it as a PDF named something obvious like `Jordan-Lee-References.pdf` so it doesn't get lost in their inbox as "Document1." ## a filled-in example > **Jordan Lee** > (555) 204-8831 | jordan.lee.work@email.com | Columbus, OH > > **Professional References** > > **Maria Alvarez** > Store Manager, Lakeside Retail > (555) 661-0042 | m.alvarez@lakesideretail.com > Direct supervisor at Lakeside Retail, 2021–2023 > > **Tom Becker** > Shift Lead, Lakeside Retail > (555) 661-0099 | tbecker@lakesideretail.com > Worked alongside me daily for two years; trained me on inventory > > **Dr. Priya Nair** > Program Coordinator, Eastside Community Center > (555) 778-3310 | pnair@eastsidecc.org > Supervised my volunteer work, 2022–present Notice the mix: a manager, a peer who saw the day-to-day, and a volunteer supervisor. That spread paints a fuller picture than three managers from one job. ## how to order them and how many Lead with your strongest and most relevant reference — usually a direct manager who can speak to the kind of work the new job needs. Put your most senior or most impressive contact first only if they actually knew your work well; a director who barely remembers you is weaker than a shift lead who saw you every day. Three is the floor and works for most roles. Four gives you a backup if someone's traveling or slow to reply. Don't go past five — a long list reads as padding, not strength. ## the part people skip: actually asking Never list someone without asking first. A reference who gets a surprise call is a reference who gives a flat, hesitant "...yeah, they worked here." Always ask, and ask in a way that gives them an easy out so the yes is a real yes: > Hi Maria — I'm applying for a few roles and I'd love to list you as a reference. Totally fine to say no. If you're up for it, could you confirm the best number and email for you? Then, once you're close on a specific job, prep them. Send a two-line heads-up so the call goes well: > Quick heads up — a hiring manager at [Company] may call you this week about a [role] position. The role's mostly [one or two key things]. No pressure, and thank you so much. That tiny step — telling them what the job is — is the difference between a reference who rambles and one who hands the manager exactly the proof they need. ## what if you don't have "professional" references This is the real anxiety behind the search, especially if you're [coming back after a gap](/guides/how-to-explain-a-caregiving-gap-on-your-resume/), [leaving a job that ended badly](/guides/how-to-explain-being-fired-in-a-job-interview/), or applying for your first real role. You have more than you think: - **A coworker, not just a boss.** A peer who saw your work counts, especially if your old manager is unreachable. - **A volunteer or community lead.** Anyone who supervised you in any organized setting. - **A teacher, professor, or training instructor** — strong for entry-level and career-change roles. - **A client or customer** you did consistent work for, if you freelanced or gig-worked. - **A "character" reference** — a long-time non-family contact who can speak to your reliability — but only when a job specifically allows one, and clearly labeled as such. What to avoid: family members, anyone you've lost touch with, and any former employer whose HR will only confirm your dates of employment. In that last case, list the *person* (your old manager, using their direct or personal contact), not the company's main line. ## mistakes to avoid - **Putting references on the resume.** Separate page, sent on request. - **"References available upon request."** Drop it. It's assumed and dates you. - **Listing someone you didn't ask.** Fastest way to get a lukewarm call. - **No relationship line.** Without it the manager is guessing who they're talking to. - **A wall of six references.** Three to four, strongest first. - **Mismatched formatting.** If the header doesn't match your resume, it looks like a borrowed document. - **Dead contact info.** Confirm the number and email when you ask — people change jobs. ## the honest truth But you don't need to buy anything to finish this step. Build the list from the template, ask your three people properly, save it as a PDF, and you're done — ahead of most applicants, who are still googling it in the parking lot. # Reason for Leaving on an Application If You Were Fired Canonical URL: https://broke2builtai.com/guides/reason-for-leaving-on-application-if-you-were-fired/ Summary: Fired and stuck on the 'reason for leaving' box on a job application? Here's the safe, honest wording plus what never to write and real examples. You were fired, you're applying for the next job, and there it is: a little box that says **"reason for leaving."** And your stomach drops. Do you write "fired"? Do you lie and say "laid off"? Do you leave it blank and hope nobody asks? Short answer up top: you put something **brief, neutral, and true** — usually one or two words like *"terminated"* or *"involuntary separation,"* or even *"will explain in interview."* You do **not** write the whole story, you do **not** badmouth anyone, and you do **not** lie. This guide gives you the exact wording for each situation, what to never type in that box, and how the box connects to the interview answer that actually decides things. Quick honesty note: this is practical job-hunting advice from someone who's filled out a lot of these boxes, not legal advice. The principles hold across most applications, but your situation is yours. ## what that box actually is (and isn't) The "reason for leaving" field is a **screening field**, not a confession booth. A recruiter skimming a tall stack of applications is looking for red flags fast. A one-word neutral answer doesn't trip the alarm. A paragraph explaining the conflict with your old manager does — it makes you look like the problem before anyone's even met you. So the mental shift is this: **the box is not where you explain. It's where you stay calm and brief so you earn the interview, where explaining actually works.** Your whole job in that box is to not give anyone a reason to skip you. There are really three different versions of this question, and people mix them up: - **The open "reason for leaving" box** — a short free-text field. Neutral term goes here. - **The direct yes/no** — "Have you ever been discharged, terminated, or asked to resign?" If yes is true, you check yes. This one you cannot dodge. - **The background-check / verification stage** — later, where your dates and sometimes rehire-eligibility get confirmed. The wording you choose has to survive all three. That's the whole game. (On a job board like Indeed, that box often sits right next to an [optional "message to employer" field](/guides/what-to-write-message-to-employer-when-applying-on-indeed/) — different purpose, same fast skim.) ## the one rule you can't break: don't lie Here's the trap. Writing **"laid off"** when you were fired, or **"left for a better opportunity,"** feels safer in the moment. It is not. A layoff and a firing are different things — a layoff means the *position* was cut for business reasons through no fault of yours. If you were fired for cause and you write "laid off," you've put a contradiction on a signed document. Why that matters: most past employers, to avoid lawsuits, will only confirm your **dates and title** — but a lot of them will also answer the question **"is this person eligible for rehire?"** A quiet "no" next to your cheerful "laid off" is exactly the kind of mismatch that kills an offer. And falsifying an application is itself a fireable offense, even months after you're hired. Getting caught lying about the firing is worse than the firing. So: brief, neutral, **and true.** All three. ## the wording, ranked from safest to riskiest Pick the highest one on this list that's honest for your situation: 1. **"Terminated"** — accurate, professional, neutral. Recruiters read it all day. Doesn't beg for drama. 2. **"Involuntary separation"** — the HR-flavored, even softer version of the same fact. Totally honest. 3. **"Let go" / "Discharged"** — fine, plain, common. 4. **"Position ended" / "Role eliminated"** — only if it's genuinely true (sometimes a firing is dressed up as a position cut on the paperwork — check what they actually filed before you use this). 5. **"Will explain in interview"** — a legitimate, honest move. It signals there's context without you over-sharing in a box. Recruiters do see this and it's not a red flag by itself. 6. **"Job ended" / "Separation"** — vague but not dishonest. What you'll notice: every option above is some flavor of *true* and *short*. None of them is "fired because my supervisor and I didn't get along." That sentence belongs nowhere on paper. ## scenario examples (box wording + the interview pivot) The box stays short. The [interview](/guides/how-to-explain-being-fired-in-a-job-interview/) is where the honest, forward-looking version lives. Here's both, side by side. ### fired for performance - **In the box:** `Terminated` or `Will explain in interview` - **In the interview:** "It wasn't the right fit and I take responsibility for part of that. I've since gotten clearer on [the skill/pace/process] it exposed, and I'm a stronger [role] for it." Then stop and pivot forward. ### fired for attendance - **In the box:** `Terminated` - **In the interview:** "I had a stretch of personal stuff that affected my reliability, and it cost me. That's resolved now, and reliability is something I guard carefully because of it." Don't itemize the absences. ### fired for a conduct / policy issue - **In the box:** `Involuntary separation` or `Will explain in interview` - **In the interview:** Brief, owned, no excuses, no re-litigating. "I made a mistake, I understand why the policy exists, and it's not one I'd repeat." Short. Move on. ### fired during a probation / first 90 days - **In the box:** `Did not complete probationary period` or `Terminated — within initial review period` - **In the interview:** "It became clear early it wasn't a match on both sides. I learned what I actually need from a role to do my best work." Probation firings are common and read far softer. ### mutual / "asked to resign" - **In the box:** `Mutual separation` (only if genuinely mutual) — and note: if there was a yes/no "asked to resign" question, the honest answer is yes. - **In the interview:** Keep it boringly neutral. "We agreed it wasn't the right fit." ## what to never put in the box - **No story.** No "my manager had it out for me," no "the team was toxic." It reads as *you're* the issue, every time. - **No badmouthing the old company or boss.** The single fastest way to look unhireable. - **No lie you can't survive.** "Laid off," "quit for a better job," or "company closed" when none of those is true. - **No blank / "N/A"** when there clearly was a job and a reason — it reads as evasive, and an evasive blank invites a harder question than a calm "terminated" would have. - **No emotion.** No "unfairly fired," no "wrongful termination" (even if you believe it — that's a legal conversation, not an application box). ## the free fill-in you can use right now If you remember nothing else, here's the decision in four lines: ``` Box wording → "Terminated" (or "Will explain in interview") Tone → neutral, 1–3 words, zero emotion Direct yes/no "were you fired/asked to resign?" → answer truthfully Save the story → for the interview, in this shape: [own it briefly] + [what you learned/fixed] + [forward to this job] ``` Honest, short, survivable. That genuinely covers the box for most people today, for free. ## the honest truth about doing this under pressure Picking the right two words for the box is easy when you read it calmly like this. It's *hard* at 11pm on application number nine, when you're tired, the firing still stings, and your brain keeps wanting to over-explain or quietly lie. That's the moment good applications go sideways — either into a defensive paragraph or a "laid off" you'll regret. Either way: keep the box short, keep it true, and put your real energy into the interview answer. A firing is a thing that happened to you — it is not the headline of your application, and two calm, honest words make sure it doesn't read like one. # Thank-You Email After a Trial Shift (Templates) Canonical URL: https://broke2builtai.com/guides/thank-you-email-after-working-interview-trial-shift/ Summary: What to write in a thank-you email after a working interview or trial shift: timing, real copy-paste templates, and how to handle a shift that went rough. If you've just finished a working interview — a trial shift behind a bar, on a shop floor, in a kitchen, at a salon chair — you already know it's a different beast from a [sit-down interview](/guides/thank-you-email-after-a-job-interview/). They didn't just hear you talk about being a hard worker. They watched you do it for three or six hours. So the thank-you email after a trial shift does a different job too: it's not "thanks for the chat," it's "here's me, reflective and professional, the same person you saw on the floor — and yes, I want this." This guide gives you the timing, the structure, real copy-paste templates for a few common industries, and the part most people get wrong: what to write when the shift didn't go great. There's a free fill-in template near the bottom you can use right now. (Quick note on wording: "working interview," "trial shift," and "trial day" all mean the same thing — these templates work for any of them.) ## why this email matters more than a normal interview thank-you A regular interview thank-you is a nicety. After a trial shift, the email is a small but real tiebreaker, because the decision is often close and immediate. The manager is standing there at the end of the night choosing between you and one or two other people who also seemed fine. A thoughtful note that lands that evening does three things at once: - It reminds them you exist while they're literally deciding. - It shows the professionalism *outside* the shift — follow-through, written communication, manners — that they can't fully see during a busy service. - It gives you one last chance to fix a wobble or underline a strength they might've missed. That's a lot of leverage from five sentences. Worth getting right. ## when to send it Same day is ideal. Within 24 hours is the rule. The sweet spot is a few hours after the shift ends or, if you closed at midnight, first thing the next morning. Don't fire it off at 2am — it reads a little wired. Don't wait three days either; by then they've usually decided. ## who to send it to Send it to whoever supervised or ran your trial, plus whoever arranged it (often the same person, sometimes not). If a specific manager trained you all day, they're the primary recipient. If you genuinely clicked with the team, it's fine to add a line asking them to pass your thanks along — small, human, memorable. ## the anatomy of a great trial-shift thank-you Keep it short — five to seven sentences. Every strong version hits these beats: 1. **Thank them specifically.** Not "thanks for the opportunity," but "thanks for having me on the bar Saturday night." 2. **Name one real detail from the shift.** This is the whole ballgame. A specific thing proves you were present and paying attention. 3. **Reaffirm fit and interest.** Say plainly that you enjoyed it and want the job. Don't make them guess. 4. **Address one weak moment — only if there was one.** A calm, brief "I'd have done X differently" sentence (more below). 5. **A soft forward-looking close.** Mention you're keen to hear about next steps, and that you're available if they need anything else. (If they then go quiet for a week or more, here's [how to follow up after no response](/guides/follow-up-email-after-interview-no-response/) without overdoing it.) That's it. Warm, specific, confident, done. ## subject lines that don't sound generic - Thank you — [Your Name], Saturday trial shift - Great to be on the floor with the team yesterday - Thanks for the trial shift — [Your Name] - Following up from Thursday's shift Plain and clear beats clever. They should know who you are from the subject line alone. ## copy-paste templates ### hospitality / restaurant / bar / café > Subject: Thank you — Maria, Saturday trial shift > > Hi James, > > Thanks so much for having me on for Saturday's service — it was a genuinely fun, fast night and I loved the energy of the team, especially how calmly everyone handled that 8pm rush. > > I really enjoyed the pace and I'd love to be part of it properly. I felt like I found my rhythm on the floor by the second hour, and I'm confident I'd only get sharper with the menu. > > Whenever you've made a decision I'd love to hear, and I'm happy to come back in if a second shift would help. Thanks again for the chance. > > Best, > Maria > [phone] ### retail / shop floor > Subject: Thanks for the trial shift — Dan > > Hi Priya, > > Thank you for letting me spend the afternoon on the floor today. I enjoyed it more than I expected — getting hands-on with the stockroom system and helping with the back-to-school display made the time fly. > > I'd really like to join the team here. I'm comfortable on the till, happy to learn your returns process properly, and I think I'd fit the way you all work together. > > Let me know if you need anything else from me, and I look forward to hearing about next steps. > > Cheers, > Dan > [phone] ### salon / trade / skilled hands-on role > Subject: Thank you — trial day with the team > > Hi Sofia, > > Thanks for having me in for the trial today. I appreciated you walking me through how you set up each station, and the client with the balayage was a great one to be part of — your finishing technique was genuinely something I want to learn from. > > I'd love the chance to work here and grow with the salon. If it's helpful, I'm glad to come back for another day so you can see more of my colour work. > > Hope to hear from you soon, and thanks again for your time. > > Warmly, > Alex > [phone] ### the short version (when in doubt) > Hi [Name], thank you for the trial shift today — I really enjoyed it and would love to join the team. I felt comfortable [specific thing] and I'm keen to keep going. Let me know if you need anything else, and I look forward to hearing about next steps. Thanks again — [Your Name]. If even that feels hard to word when you're tired after a long shift, a [ChatGPT prompt for a professional email](/guides/chatgpt-prompt-to-write-a-professional-email/) can draft a first pass you then make your own. ## when the shift didn't go great This is the part people panic over, and it's where a good email earns its keep. If you dropped a tray, got flustered on the till, or forgot a step — name it once, briefly, with the fix: > I know I got a bit tangled on the coffee orders during the rush — I've already gone over the steps in my head and I'm confident I'd have it smooth by my next shift. That single honest sentence often does more than a flawless-sounding email, because it shows self-awareness and coachability — two things managers want and rarely get to test in a few hours. Don't grovel, don't list every mistake, don't over-apologize. One acknowledgment, one fix, then back to your interest in the role. ## mistakes to avoid - **Going generic.** "Thank you for the opportunity" with no detail proves nothing. The specific shift moment is mandatory. - **Sending it days late.** The decision's already made by then. - **Negotiating pay in this email.** Save it for the actual offer. - **Writing a novel.** Five to seven sentences. Respect their time the way you did on the floor. - **Being weirdly formal.** Match the vibe of the place. A cool café isn't expecting "Dear Sir/Madam." ## the honest truth You did the hard part already — you showed up and worked the shift. This email is just making sure the last thing they remember about you is that you're thoughtful, sharp, and clearly want it. # What to Write in a Message to Employer on Indeed Canonical URL: https://broke2builtai.com/guides/what-to-write-message-to-employer-when-applying-on-indeed/ Summary: Exactly what to write in the 'message to employer' box when applying on Indeed: real templates, examples, a fill-in formula, and what to skip. You're applying to a job on Indeed, you've [attached your resume](/guides/ats-friendly-resume-without-sounding-like-a-robot/), and then there's this box: **"Message to employer (optional)."** And you freeze. Is it a cover letter? Is it nothing? Do you say hi? Do you beg? Here's the short answer up top: it's a **3–5 sentence note**, not a cover letter, and a good one quietly bumps you above the pile of people who left it blank. This guide gives you the exact structure, copy-paste templates for the common situations (including coming back after a gap or with no experience), real filled-in examples, and the stuff to never put in there. ## what this box actually is When you apply through Indeed, a few different message moments can show up, and people mix them up: - **The "message to employer" / "add a message" box during the application** — an optional short note that lands with your application. - **The Indeed messaging follow-up** — after you apply, employers can message you in Indeed's inbox, and you can reply or sometimes send a short follow-up there. - **Screening questions** — separate from the message; those are required and answered literally. This guide is about the first one (and the follow-up note at the end). The key mental shift: **it's not a [full cover letter](/guides/chatgpt-prompt-to-write-a-cover-letter/), it's a doorway.** The hiring manager is skimming a lot of applications, often on their phone. You're not trying to tell your whole story — you're trying to make them open your resume instead of scrolling past it. So keep it short. Honestly, 3 to 5 sentences. A wall of text in that box reads as "this person doesn't know what this is for," and it often gets skimmed and skipped. ## the structure that works (4 quick parts) Every good message hits these, in order, fast: 1. **Name the role + a hook** — show you're applying to *this* job, not blasting 50. One detail about the company or role does the work. 2. **One reason you fit** — a single concrete qualification or result. Not your life story. One thing. 3. **Genuine interest** — why this job, briefly. People can feel the difference between "I need any job" and "I want this one." 4. **A soft close** — you're available to talk, thanks for their time. That's it. That's the whole formula: > **[Applying + hook] + [one concrete fit] + [why this role] + [soft close]** Four sentences, maybe five. Let's see it filled in. ## templates you can copy right now ### 1. the standard short message > Hi — I'm applying for the [Job Title] role and it lines up closely with what I've been doing. In my last position I [one concrete thing you did or a result], which is the core of what this job needs. I'd genuinely enjoy bringing that to [Company], and I'm available to talk whenever works for you. Thanks for taking a look at my application. ### 2. switching careers / coming back after a gap This is the one most people overthink. You don't hide the pivot — you frame it. (If the time away was caregiving, the same framing works on your resume — here's [how to explain a caregiving gap](/guides/how-to-explain-a-caregiving-gap-on-your-resume/).) > Hi — I'm applying for the [Job Title] position. I'm moving into [field] from [previous field], and the overlap is real: [skill or experience that transfers]. I've spent the last few months [course, project, freelance, caregiving — whatever's true] and I'm genuinely excited to commit to this kind of work. Happy to walk you through how my background applies — thanks for considering me. ### 3. entry-level / no direct experience > Hi — I'm applying for the [Job Title] role. I don't have years in this exact field yet, but I [learned X / did Y / volunteered at Z], and I pick things up fast and show up reliably. I'm really motivated to start here and grow into it. I'd love a chance to talk — thanks for reading. Honesty plus enthusiasm beats faking experience every time. Managers hiring entry-level *expect* to train; they're really screening for reliability and attitude, so lead with those. ### 4. you have a referral or know the company > Hi — I'm applying for the [Job Title] role, referred by [Name] on your [team]. I've [relevant thing], and I've been following [specific thing about the company] for a while. This is exactly the kind of team I want to be on. Available to chat anytime — thank you. ### 5. the follow-up message (Indeed inbox, a few days later) If you haven't heard back and the employer is active in Indeed messaging, one short, polite nudge is fine. Once. Not three times. > Hi — just following up on my application for [Job Title] from [day]. Still very interested and happy to share anything that would help. Thanks so much for your time. ## a real before / after **Before (what most people write, or worse, leave blank):** > Hello, I am very interested in this position. I am a hard worker and a fast learner. Please consider my application. Thank you. That could be sent to literally any job on Earth. It says nothing. It's barely better than blank. **After (same person, 30 seconds more effort):** > Hi — I'm applying for the Warehouse Associate role. I ran the receiving dock at my last job for two years, so forklift certification and tight shift schedules are second nature to me. I like that this is a team that takes safety seriously — that matters to me. Available to start quickly; thanks for taking a look. Same length-ish. But the second one names the role, gives one concrete proof (receiving dock, forklift, two years), shows a real reason for *this* job, and closes clean. A manager skimming on their phone stops on the second one. ## the free fill-in-the-blanks formula If you remember nothing else, paste this and swap the brackets: ``` Hi — I'm applying for the [JOB TITLE] role. [ONE concrete thing you did or a result that proves you can do this job]. [One honest sentence on why you want THIS job / company]. I'm available to talk whenever works — thanks for taking a look. ``` Three to four lines. Specific. Human. Done. That genuinely beats most messages in the queue. ## what to never put in the box - **No life story.** This isn't the place for your full work history or a sob story. Save depth for the interview. - **No "Dear Hiring Manager" formality.** It's a message, not a letter. "Hi —" is plenty. - **No salary demands or "when do I start" pressure.** Too early. It reads as entitled. - **No copy-pasted generic blast** that doesn't name the role. Managers can smell it instantly. - **No typos in the company name.** If you mention the company, spell it right. Double-check. - **Don't leave it totally blank if the box is there** — even two good sentences beats nothing, and a lot of people leave it empty. ## the honest truth about doing this at scale Writing *one* great message takes two minutes. The grind is doing it again for application #6, #12, #20 — when you're tired, the wording blurs, and you slide back into "I'm a hard worker, please consider me." That's the moment good applications die. Either way — fill the box. A short, specific, human note is one of the cheapest edges you have on Indeed, and plenty of applicants skip it entirely. Two minutes, four sentences, and you're already ahead. # Why Your Resume Never Gets Past the ATS (Formatting Fix) Canonical URL: https://broke2builtai.com/guides/why-your-resume-never-gets-past-the-ats-plain-formatting-fix/ Summary: Why your resume really gets rejected by ATS software — the 75% myth debunked, the parsing failures that actually happen, and a free plain-formatting fix. You've sent out forty applications. You know you're qualified for at least half of them. And the responses are either silence or a rejection email that arrives so fast it feels automated — because sometimes it is. So you googled "why does my resume get rejected by ATS" and landed in a swamp of articles telling you a robot is throwing away three-quarters of all resumes before a human ever sees them. Here's the thing: that's not what's happening. The truth is less dramatic and more fixable. Your resume probably isn't being rejected at all. It's being *mangled* — extracted into a database as scrambled text, filed under the wrong fields, and then never surfacing when a recruiter runs a search. Nobody rejected you. Nobody found you. This guide is the fix for that specific failure: the formatting layer. Not keywords, not wording — the mechanical question of whether software can read your file at all. It takes about twenty minutes to fix by hand, and I'll show you exactly how, for free, before we talk about anything paid. ## first, let's kill the "75% rejected by ATS" stat You've seen it everywhere: "75% of resumes are rejected by ATS before a human sees them." Nobody who repeats that number can point to the study behind it, because there isn't one. Trace it back and you land on marketing pages for resume-scanning services — companies whose product only makes sense if you're scared of a robot gatekeeper. What an applicant tracking system actually is: a database with a search box. Workday, Greenhouse, Lever, iCIMS, Taleo — they store applications, extract the text into structured fields, and let recruiters filter and search. Most of them do **not** auto-reject anyone based on formatting, fonts, or a missing keyword. (Knockout questions — "are you authorized to work in the US?" — can auto-reject you, but that's your answers, not your resume.) The real failure mode is worse in a way, because it's invisible: - The parser extracts your resume badly. - Your job titles land in the wrong field, your dates detach from your jobs, your phone number disappears. - A recruiter searches "maintenance technician" and the database doesn't return you — not because you're unqualified, but because your work history got filed as gibberish. No rejection email gets sent for that. You just never hear anything. Which is probably the exact experience that brought you here. ## what the software actually does with your file At its core, resume parsing starts the same way: most parsers open your file and extract the contents as **plain text**, top to bottom, then tries to slot that text into fields — name, contact info, work history, education, skills. That one fact explains almost every ATS formatting rule you've ever read. The software doesn't see your layout. It doesn't see that your sidebar is a sidebar or that your header is a header. It sees a stream of text, and it makes guesses about what each line means. Your entire job at the formatting layer is to make those guesses easy. Which means you can see your resume the way the ATS does, right now: **The notepad test.** Open your resume, select all, copy, and paste into Notepad (or any plain text editor). That's roughly what the parser gets. A clean single-column resume comes through in order — name, contact, job, dates, bullets. A two-column designer template comes through like this: ``` EXPERIENCE SKILLS Store Manager Inventory Milton's Hardware Scheduling 2019 - 2023 POS Systems Led a team of Forklift 12 across two Certified ``` Read that left to right, the way a parser does, and your work history is now "Store Manager Inventory" at a company called "Milton's Hardware Scheduling." Interleaved columns are a common way multi-column layouts extract — and you never know in advance which parser you're getting. The resume looked sharp on your screen and turned into word salad in the database.
WHAT THE PARSER SEES Two-column template Store Manager Inventory Milton's Hardware Sched- uling 2019 - 2023 POS Led a team of Forklift 12 across two Certified → interleaved word salad Single column, plain Store Manager Milton's Hardware 2019 - 2023 Led a team of 12 across two stores → clean reading order PARSERS EXTRACT PLAIN TEXT, TOP-TO-BOTTOM, LEFT-TO-RIGHT — LAYOUT IS INVISIBLE Run the notepad test on your own resume: select all → copy → paste into Notepad. That's what the database gets.
The same work history through a parser: designer columns interleave; a plain single column survives intact.
## the five places extraction actually breaks Almost every parsing failure comes from one of these. Check your resume against each: - **Tables and columns.** The big one. Text extraction often reads left to right across the full page width, so side-by-side content interleaves into nonsense. One column, top to bottom, always. - **Text boxes.** In Word and design tools, text boxes float on top of the document instead of living in it. Some extractors skip them entirely — everything inside can simply vanish. - **Headers and footers.** Many parsers ignore the header/footer region of the document. If your name, phone number, and email live up there — which is exactly where most templates put them — they can disappear. Contact info goes in the main body, at the top of the page. - **Graphics doing the work of words.** Skill bars, star ratings, icons, logos. A bar chart showing "Excel — 90%" extracts as nothing at all. If information matters, it needs to be a written word. - **Text that's secretly a picture.** Some designer templates and some PDF exports flatten your text into an image. Selectable text or it doesn't exist. Two smaller ones that don't break extraction but do break the *field-sorting* step: - **Creative section headings.** The parser looks for boring labels — "Work Experience," "Education," "Skills" — to know which field it's filling. "My Journey" and "Where I've Made an Impact" give it nothing to anchor on. - **Dates floating away from jobs.** Keep dates on the same line as (or the line directly below) each job title, in a consistent format like "March 2019 – June 2023." Dates parked in a separate margin column detach from the jobs they belong to, and suddenly your timeline is wrong in the database. If your dates have a gap you're worried about, formatting won't hide it — handle it honestly the way we cover in the [caregiving gap guide](/guides/how-to-explain-a-caregiving-gap-on-your-resume/), which works for most gap types. ## do it by hand: strip your resume to plain format in 20 minutes Here's the free path, start to finish, in Word or Google Docs. Don't try to repair your fancy template in place — rebuilding into a blank document is faster and safer. 1. **Open a blank document.** New file, no template. Set one standard font — Calibri, Arial, Georgia — at 10.5 to 12pt. 2. **Type your contact block at the top of the body.** Name on its own line, then phone, email, city/state, LinkedIn. Not in the document header. If your current resume has contact info in the header/footer, cut it out of there entirely. 3. **Paste your old content in as plain text.** In Google Docs: Edit → Paste without formatting. In Word: right-click → Paste as text only. This one move strips tables, text boxes, and floating objects in a single step. 4. **Retype the section headings.** "Summary" (optional), "Work Experience," "Education," "Skills," "Certifications." Bold them. Resist the urge to get clever. 5. **Rebuild each job as: title, company, dates — then bullets.** Dates inline, right there with the job, consistent format throughout. Simple round bullets, no custom symbols. 6. **Delete anything visual that carries meaning.** Skill bars, rating dots, icons, photos, logos. If it mattered, write it as words in the Skills section. 7. **Save as .docx.** That's the safest universal format. If the posting specifically asks for PDF, export a PDF from this same document and run the select-all test on it — if you can highlight the text, it's a text-based PDF and you're fine. 8. **Run the notepad test again.** Copy, paste into plain text, read it top to bottom. In order? Dates attached to jobs? Contact info present? You're done. Keep this as your master file forever. That's genuinely the whole fix. It's not glamorous, and that's the point — at the formatting layer, boring wins. ## what plain formatting won't fix Honest limits, because this is where a lot of ATS advice oversells: - **It won't make you findable.** Clean parsing gets you *into* the database correctly. Showing up in a recruiter's search is a separate job — matching the actual words in the posting — and doing that without sounding like a keyword-stuffed robot is its own craft. We wrote a full guide on exactly that: [making your resume ATS-friendly without sounding like a robot](/guides/ats-friendly-resume-without-sounding-like-a-robot/). Read it next; it's the other half of this fix. - **It won't make weak bullets strong.** A parseable resume full of "responsible for various duties" parses perfectly and impresses nobody. The machine check and the human check are different checks. - **It won't guarantee interviews.** Anyone promising a pass rate or an interview rate from formatting alone is selling you the 75% myth with a different coat of paint. What plain formatting buys you is narrower and real: the software can read what you actually wrote, so you compete on your record instead of losing to a parsing error. ## the quick pre-submit check Before every application through a portal: - Single column, no tables, no text boxes - Contact info in the body, not the header - Standard section headings, bolded - Dates inline with each job, consistent format - No graphics carrying information - .docx (or a select-all-tested PDF when they ask for one) - Passed the notepad test