<?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: Snapnote</title>
    <description>The latest articles on DEV Community by Snapnote (@snapnote).</description>
    <link>https://dev.to/snapnote</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%2F4232288%2F7e73cb81-45b5-4caa-8c89-e7e87780ea15.png</url>
      <title>DEV Community: Snapnote</title>
      <link>https://dev.to/snapnote</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/snapnote"/>
    <language>en</language>
    <item>
      <title>How I clean a messy contact list with AI (a real example)</title>
      <dc:creator>Snapnote</dc:creator>
      <pubDate>Sat, 07 Nov 2026 15:36:04 +0000</pubDate>
      <link>https://dev.to/snapnote/how-i-clean-a-messy-contact-list-with-ai-a-real-example-2ahl</link>
      <guid>https://dev.to/snapnote/how-i-clean-a-messy-contact-list-with-ai-a-real-example-2ahl</guid>
      <description>&lt;p&gt;A client sent me a "contact list" like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;张三 13800138000 北京市朝阳区建国路88号
李四 139 0013 9000 上海市浦东新区
张三 13800138000 北京朝阳区建国路88号
王五 电话未知 广州市天河区
李四 13900139000 上海浦东
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Duplicate rows, inconsistent phone formats, and one entry with a missing phone number.&lt;/p&gt;

&lt;p&gt;I pasted it into Snapnote (the tool I built) in &lt;strong&gt;data cleaning&lt;/strong&gt; mode. Here is what came back:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Phone&lt;/th&gt;
&lt;th&gt;Address&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;张三&lt;/td&gt;
&lt;td&gt;138-0013-8000&lt;/td&gt;
&lt;td&gt;北京市朝阳区建国路88号&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;李四&lt;/td&gt;
&lt;td&gt;139-0013-9000&lt;/td&gt;
&lt;td&gt;上海市浦东新区&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;王五&lt;/td&gt;
&lt;td&gt;(unknown)&lt;/td&gt;
&lt;td&gt;广州市天河区&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Plus two sections I did not expect to care about, but now do:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What changed&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 duplicate removed&lt;/li&gt;
&lt;li&gt;phone numbers normalized to 1xx-xxxx-xxxx&lt;/li&gt;
&lt;li&gt;two 李四 records merged (different phone formats, same person)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Needs human review&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;王五 has no phone number&lt;/li&gt;
&lt;li&gt;李四 had two address variants&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important part for me: it &lt;strong&gt;did not invent&lt;/strong&gt; the missing phone. Missing stayed missing, and it told me so.&lt;/p&gt;

&lt;p&gt;That is the whole idea — messy in, clean out, plus an honest report of what it could not fix.&lt;/p&gt;

&lt;p&gt;Try it: &lt;a href="https://getsnapnote.com" rel="noopener noreferrer"&gt;https://getsnapnote.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
    </item>
    <item>
      <title>I built Snapnote — turn messy lists and notes into clean structured tables</title>
      <dc:creator>Snapnote</dc:creator>
      <pubDate>Sat, 07 Nov 2026 14:36:53 +0000</pubDate>
      <link>https://dev.to/snapnote/i-built-snapnote-turn-messy-lists-and-notes-into-clean-structured-tables-297</link>
      <guid>https://dev.to/snapnote/i-built-snapnote-turn-messy-lists-and-notes-into-clean-structured-tables-297</guid>
      <description>&lt;p&gt;I kept getting messy data from clients — half-formatted contact lists, notes scattered across formats, duplicate entries. So I built Snapnote.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does:&lt;/strong&gt; paste messy input, pick a mode, get clean structured output.&lt;/p&gt;

&lt;p&gt;The one I use most is &lt;strong&gt;data cleaning&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;inconsistent phone formats → normalized&lt;/li&gt;
&lt;li&gt;duplicate records → merged&lt;/li&gt;
&lt;li&gt;missing fields → flagged, never invented&lt;/li&gt;
&lt;li&gt;output: a Markdown table + a "what changed" summary + a "needs human review" list&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also has 7 other modes: meeting notes, interview notes, lecture notes, brainstorm, translate, summary, and business-idea validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two things I cared about:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;No meeting bot.&lt;/strong&gt; It is paste-and-speak, not a bot that joins your calls.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No training on your data.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Built with a small Node server + an LLM API. Free tier: 2 notes/day, Pro is $19/mo.&lt;/p&gt;

&lt;p&gt;Try it: &lt;a href="https://getsnapnote.com" rel="noopener noreferrer"&gt;https://getsnapnote.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to hear feedback on the data-cleaning mode especially.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
