<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: MakeInterview</title>
    <description>The latest articles on DEV Community by MakeInterview (@makeinterview).</description>
    <link>https://dev.to/makeinterview</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4153400%2Fa003d4aa-6635-4fd0-8cb2-8148a70261ac.jpg</url>
      <title>DEV Community: MakeInterview</title>
      <link>https://dev.to/makeinterview</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/makeinterview"/>
    <language>en</language>
    <item>
      <title>I open-sourced the counting tool, and it immediately caught two of its own bugs</title>
      <dc:creator>MakeInterview</dc:creator>
      <pubDate>Fri, 02 Oct 2026 00:10:11 +0000</pubDate>
      <link>https://dev.to/makeinterview/i-open-sourced-the-counting-tool-and-it-immediately-caught-two-of-its-own-bugs-2bhp</link>
      <guid>https://dev.to/makeinterview/i-open-sourced-the-counting-tool-and-it-immediately-caught-two-of-its-own-bugs-2bhp</guid>
      <description>&lt;p&gt;I published a count a while back: the King James Bible says "fear not" &lt;strong&gt;62 times&lt;/strong&gt;, not the 365 the wall art claims. Then I turned the counting code into a small open-source tool — and the first thing it did was prove &lt;em&gt;itself&lt;/em&gt; wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two bugs, both silent
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bug one: substrings.&lt;/strong&gt; A naive search for &lt;code&gt;fear&lt;/code&gt; also matches &lt;code&gt;fearful&lt;/code&gt;, &lt;code&gt;fearfulness&lt;/code&gt;, and &lt;code&gt;God-fearing&lt;/code&gt;. That inflates a raw count by roughly 15% and looks completely reasonable on the screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bug two: punctuation as glue.&lt;/strong&gt; I normalised away punctuation so &lt;code&gt;fear not.&lt;/code&gt; and &lt;code&gt;fear not&lt;/code&gt; would match. But stripping punctuation also turns 1 Peter 2:18 —&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Servants, be subject to your masters with all fear; not only to the good and gentle...&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;— into the string &lt;code&gt;...all fear not only...&lt;/code&gt;, which &lt;em&gt;contains&lt;/em&gt; the phrase "fear not" even though the verse does not say it. One false positive, from a semicolon.&lt;/p&gt;

&lt;p&gt;Neither bug threw an error. Both produced a plausible number. I only caught them because the tool runs over the &lt;strong&gt;whole&lt;/strong&gt; corpus and asserts its output against a published per-verse audit trail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I ship the corpus, not just the number
&lt;/h2&gt;

&lt;p&gt;The repo includes the full KJV (31,102 verses) and the Chinese Union Version (31,100 verses), plus a test that re-derives every published count:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node test.mjs
&lt;span class="c"&gt;# ok — tool and audit trail agree over the full KJV (31,102 v) and CUV (31,100 v)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A count with a stated rule can be checked, corrected, and cited. A count without one is a rumor with a decimal point. The rule here is explicit: whole words not substrings, whitespace joins words and punctuation never does, verses for phrase claims and occurrences for word claims, and every rule reported separately instead of silently merged.&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway for anyone publishing a number
&lt;/h2&gt;

&lt;p&gt;If you publish a number, publish the rule that produced it &lt;em&gt;next to&lt;/em&gt; the number, and publish the rows so someone can diff your work instead of trusting it. The two bugs above are not exotic. They are what happens when a number travels without its method.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Method write-up: &lt;a href="https://trustbible.org/blog/how-many-times-does-the-bible-say-fear-not/" rel="noopener noreferrer"&gt;How many times does the Bible say "fear not"?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dataset (CC-BY-4.0): &lt;a href="https://trustbible.org/data/fear-not-counts.csv" rel="noopener noreferrer"&gt;fear-not-counts.csv&lt;/a&gt; and &lt;a href="https://trustbible.org/data/fear-not-counts.json" rel="noopener noreferrer"&gt;fear-not-counts.json&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Tool: &lt;a href="https://github.com/szj2ys/bible-phrase-count" rel="noopener noreferrer"&gt;github.com/szj2ys/bible-phrase-count&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find an error in my count, I would genuinely like to know — that is the whole point of putting the method where people can argue with it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I built the counting pipeline while working on &lt;a href="https://trustbible.org/" rel="noopener noreferrer"&gt;TrustBible&lt;/a&gt;, a Bible Q&amp;amp;A tool that quotes the exact verses it cites.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>coding</category>
      <category>debugging</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Valve's public achievement endpoint is an underrated analytics feed</title>
      <dc:creator>MakeInterview</dc:creator>
      <pubDate>Thu, 01 Oct 2026 11:47:04 +0000</pubDate>
      <link>https://dev.to/makeinterview/valves-public-achievement-endpoint-is-an-underrated-analytics-feed-mn9</link>
      <guid>https://dev.to/makeinterview/valves-public-achievement-endpoint-is-an-underrated-analytics-feed-mn9</guid>
      <description>&lt;h1&gt;
  
  
  Valve's public achievement endpoint is an underrated analytics feed — here's its shape
&lt;/h1&gt;

&lt;p&gt;While building a small bilingual (Chinese/English) fan guide for a co-op game, I leaned on a Valve endpoint that more people should know about: the &lt;strong&gt;global achievement percentages&lt;/strong&gt; API.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://api.steampowered.com/ISteamUserStats/GetGlobalAchievementPercentagesForApp/v2/?gameid=&amp;lt;APPID&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It returns, for a given app id, the share of all players who have unlocked each achievement. No scraping, no private dashboard — one JSON call.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shape
&lt;/h2&gt;

&lt;p&gt;The response is small: an &lt;code&gt;achievementpercentages.achievements[]&lt;/code&gt; array of &lt;code&gt;{ name, percent }&lt;/code&gt; where &lt;code&gt;name&lt;/code&gt; is the internal API name (not the store display name). For the game I was documenting (app 1478500) it produced a clean funnel:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;achievement (apiname)&lt;/th&gt;
&lt;th&gt;% of players&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Drawbridge&lt;/td&gt;
&lt;td&gt;87.6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Map&lt;/td&gt;
&lt;td&gt;64.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backpack&lt;/td&gt;
&lt;td&gt;57.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chairlift&lt;/td&gt;
&lt;td&gt;44.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Train&lt;/td&gt;
&lt;td&gt;37.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Holster&lt;/td&gt;
&lt;td&gt;36.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tunnel&lt;/td&gt;
&lt;td&gt;30.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Peak&lt;/td&gt;
&lt;td&gt;28.8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wall&lt;/td&gt;
&lt;td&gt;20.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ending1&lt;/td&gt;
&lt;td&gt;19.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shiny&lt;/td&gt;
&lt;td&gt;9.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ending2&lt;/td&gt;
&lt;td&gt;6.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Sorted ascending, that &lt;em&gt;is&lt;/em&gt; a retention curve. Nobody had to build telemetry; Valve already published it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things that will bite you
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The numbers move.&lt;/strong&gt; These are live shares over a changing denominator. Re-reading the same endpoint ~2.5 weeks later, the rarest achievement had already gone 6.0% → 7.1%. If you display these, store and display the &lt;strong&gt;date you read them&lt;/strong&gt;, or you'll publish a number that quietly goes stale.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;name&lt;/code&gt; is the apiname, not the label.&lt;/strong&gt; &lt;code&gt;Ending2&lt;/code&gt; is not what the store page calls it. You have to maintain a mapping, and the mapping is &lt;em&gt;your&lt;/em&gt; inference — label it as such.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rounding is a choice.&lt;/strong&gt; The endpoint returns floats; how you round is a presentation decision, not data. Say so.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why it made the site better
&lt;/h2&gt;

&lt;p&gt;The interesting part isn't the API — it's what it lets a small site do honestly. Instead of "10 tips" filler, the guide can lead with a real, primary-source, independently verifiable dataset, and put its methodology and its data-drift caveats on a public &lt;code&gt;/sources&lt;/code&gt; page. It also made i18n matter: the same numbers ship on two locale routes (&lt;code&gt;/zh-CN&lt;/code&gt; and &lt;code&gt;/en&lt;/code&gt;) with identical values mirrored per locale, so the Chinese and English pages can never disagree.&lt;/p&gt;

&lt;p&gt;If you're building anything game-adjacent, this endpoint is worth an afternoon. It's public, it's structured, and it's a genuine story about where players actually stop playing.&lt;/p&gt;

&lt;p&gt;I wrote it up against the game &lt;em&gt;Big Walk&lt;/em&gt; on &lt;a href="https://thebigwalk.world/en/achievements" rel="noopener noreferrer"&gt;the Big Walk Guide's achievements page&lt;/a&gt; — an independent fan project (no affiliation with House House, Panic or Valve), with the collection date and the funnel arithmetic published alongside the figures.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>api</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Counting a phrase across the King James Bible — and why "fear not" is not 365 times</title>
      <dc:creator>MakeInterview</dc:creator>
      <pubDate>Thu, 01 Oct 2026 10:59:03 +0000</pubDate>
      <link>https://dev.to/makeinterview/counting-a-phrase-across-the-king-james-bible-and-why-fear-not-is-not-365-times-3po4</link>
      <guid>https://dev.to/makeinterview/counting-a-phrase-across-the-king-james-bible-and-why-fear-not-is-not-365-times-3po4</guid>
      <description>&lt;p&gt;You have probably seen the claim. It circulates in sermons, devotionals, and&lt;br&gt;
wall art: &lt;strong&gt;"The Bible says 'fear not' 365 times — one for every day of the year."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I wanted to know if it was true. That turned into a small data-engineering&lt;br&gt;
problem, and the answer is a useful example of how a plausible number survives&lt;br&gt;
because nobody checks it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short answer
&lt;/h2&gt;

&lt;p&gt;Counted against the King James Version with a stated, reproducible rule:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rule&lt;/th&gt;
&lt;th&gt;Verses&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Exact phrase &lt;code&gt;fear not&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;62&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exact phrase + common inflections (&lt;code&gt;fear not&lt;/code&gt;, &lt;code&gt;feared not&lt;/code&gt;, &lt;code&gt;fearing not&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;fear&lt;/code&gt; in any form&lt;/td&gt;
&lt;td&gt;400 occurrences in 385 verses&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Not 365. Not close. The popular figure has no documented source — it does not&lt;br&gt;
appear in a concordance, and the "365" was likely chosen because a year has 365&lt;br&gt;
days, not because anyone counted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is a counting problem, not a trivia problem
&lt;/h2&gt;

&lt;p&gt;Three things make naive counting wrong, and they are the same three things that&lt;br&gt;
make any text-analysis pipeline wrong:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Define the unit.&lt;/strong&gt; A &lt;em&gt;verse&lt;/em&gt; is the KJV's own versification. An&lt;br&gt;
&lt;em&gt;occurrence&lt;/em&gt; is a substring match. "400 occurrences in 385 verses" and "62&lt;br&gt;
verses" are answering different questions, and both are correct. Most disputes&lt;br&gt;
about counts are really disputes about the unit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Inflection.&lt;/strong&gt; English "fear not" is a fixed phrase, but the underlying&lt;br&gt;
verb inflects: &lt;em&gt;feared not&lt;/em&gt;, &lt;em&gt;fearing not&lt;/em&gt;, &lt;em&gt;fear thou not&lt;/em&gt;. A regex on the&lt;br&gt;
exact string undercounts. And there is no clean place to stop — every added&lt;br&gt;
variant is a judgment call you have to write down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Translation.&lt;/strong&gt; The KJV and the Chinese Union Version (和合本) do not agree,&lt;br&gt;
because they are not literal mappings of one another. 和合本 uses four separate&lt;br&gt;
&lt;code&gt;不要&lt;/code&gt; constructions. Counting one and reporting it as "the Bible" is a category&lt;br&gt;
error.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule I used
&lt;/h2&gt;

&lt;p&gt;Be explicit, and let a reader reproduce it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Corpus: KJV (public domain), verse-indexed.&lt;/li&gt;
&lt;li&gt;Normalize: uppercase, collapse whitespace, strip punctuation &lt;strong&gt;except&lt;/strong&gt;
apostrophes (so &lt;code&gt;fear not&lt;/code&gt; and &lt;code&gt;fear not.&lt;/code&gt; match, but &lt;code&gt;fearn't&lt;/code&gt; is not
invented by over-eager stripping).&lt;/li&gt;
&lt;li&gt;Match on word boundaries, not substrings — otherwise &lt;code&gt;fear&lt;/code&gt; matches
&lt;code&gt;fearful&lt;/code&gt;, &lt;code&gt;God-fearing&lt;/code&gt;, and &lt;code&gt;fearfulness&lt;/code&gt;, which inflates the count by
roughly 15%.&lt;/li&gt;
&lt;li&gt;Report verses for phrase claims, occurrences for word claims.&lt;/li&gt;
&lt;li&gt;Publish the matched verse list, not just the total. A count you cannot audit
is not a result.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full rule and the matched verses are in the dataset (below), one row per&lt;br&gt;
matched verse, so you can diff my work rather than trust it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The dataset
&lt;/h2&gt;

&lt;p&gt;CC-BY-4.0 — reuse it, including commercially, with attribution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CSV: &lt;a href="https://trustbible.org/data/fear-not-counts.csv" rel="noopener noreferrer"&gt;https://trustbible.org/data/fear-not-counts.csv&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;JSON: &lt;a href="https://trustbible.org/data/fear-not-counts.json" rel="noopener noreferrer"&gt;https://trustbible.org/data/fear-not-counts.json&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Written-up methodology: &lt;a href="https://trustbible.org/blog/how-many-times-does-the-bible-say-fear-not/" rel="noopener noreferrer"&gt;https://trustbible.org/blog/how-many-times-does-the-bible-say-fear-not/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Columns are &lt;code&gt;reference, book, chapter, verse, text, matched_phrase, rule&lt;/code&gt; — the&lt;br&gt;
&lt;code&gt;rule&lt;/code&gt; column is what makes it auditable, because it tells you &lt;em&gt;why&lt;/em&gt; each row is&lt;br&gt;
in the file.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I took away
&lt;/h2&gt;

&lt;p&gt;If you publish a number, publish the rule that produced it. A count with a&lt;br&gt;
stated rule can be checked, corrected, and cited. A count without one is a&lt;br&gt;
rumor with a decimal point.&lt;/p&gt;

&lt;p&gt;If you find an error in mine, I would genuinely like to know — that is the&lt;br&gt;
point of putting the method on the page next to the result.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I built the counting pipeline behind this while working on&lt;br&gt;
&lt;a href="https://trustbible.org/" rel="noopener noreferrer"&gt;TrustBible&lt;/a&gt;, a Bible Q&amp;amp;A tool that quotes the exact&lt;br&gt;
verses it cites. The counts above are independent of the app; the dataset is&lt;br&gt;
the deliverable.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>data</category>
      <category>dataengineering</category>
    </item>
    <item>
      <title>What I learned building an AI voice mock-interview tool</title>
      <dc:creator>MakeInterview</dc:creator>
      <pubDate>Thu, 01 Oct 2026 03:30:11 +0000</pubDate>
      <link>https://dev.to/makeinterview/what-i-learned-building-an-ai-voice-mock-interview-tool-2p25</link>
      <guid>https://dev.to/makeinterview/what-i-learned-building-an-ai-voice-mock-interview-tool-2p25</guid>
      <description>&lt;p&gt;Job seekers in China practice interviews the same way most people do everywhere: by reading question lists, or by rehearsing silently in front of a mirror. Neither gives the one thing that transfers to the real room — being asked out loud, and having to answer in the moment.&lt;/p&gt;

&lt;p&gt;I've been building &lt;a href="https://makeinterview.com" rel="noopener noreferrer"&gt;MakeInterview&lt;/a&gt;, a voice mock-interview tool for Chinese-speaking candidates. Five engineering and product decisions turned out to matter more than the prompt engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The interviewer has to follow up
&lt;/h2&gt;

&lt;p&gt;A real interviewer does not wait for a perfectly composed 90-second answer. They dig in. The biggest realism gap in the early version was that the model waited, patiently, for a full turn and then moved on.&lt;/p&gt;

&lt;p&gt;Modeling the interview as a turn loop, where the interviewer is allowed to follow up once or twice before moving to the next question, changed the transcript from "candidate monologues" into something that resembles an actual conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Ground the questions in your resume and the JD
&lt;/h2&gt;

&lt;p&gt;Generic questions test generic memory. The product only becomes useful when the question is about the project you actually listed. We parse the candidate's resume and the target job description, then require every generated question to anchor to a specific entity from them. If the parser cannot find something to anchor to, the interviewer asks a clarification instead of inventing a plausible-sounding project.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Show the transcript, not a vague score
&lt;/h2&gt;

&lt;p&gt;Early feedback was a number out of 100. Nobody improves from a number. What moved the needle was showing the verbatim transcript — the exact words the candidate said — next to a model answer. Candidates are often surprised by their own filler words and hedging. The transcript makes that visible without an argument.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. What the research actually says about interviews
&lt;/h2&gt;

&lt;p&gt;The value of structured interviews is not folklore. Schmidt and Hunter's meta-analysis (1998), and its 2022 update by Sackett et al., place structured interviews among the highest-validity selection methods — well ahead of unstructured ones. That is the design constraint: keep the interviewer structured, not chatty.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Multiple personas, not one
&lt;/h2&gt;

&lt;p&gt;A single friendly-interviewer persona produces one kind of practice. We run five — an HR screener, a direct manager, a technical expert, a department head, and an executive. Same candidate, different pressure, which is closer to how a real interview loop feels.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would tell another builder
&lt;/h2&gt;

&lt;p&gt;If you are building a voice agent for a high-stakes conversation, the interruption and follow-up loop is the part I would spend the most time on. A patient model is easier to build and much less useful. The second most valuable thing was refusing to summarize the candidate's answer for them: the transcript, warts and all, is the feedback.&lt;/p&gt;

&lt;p&gt;MakeInterview is at &lt;a href="https://makeinterview.com" rel="noopener noreferrer"&gt;makeinterview.com&lt;/a&gt; if you want to try it. It is Chinese-first — the questions and the feedback are in Chinese.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>buildinpublic</category>
      <category>career</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
