100 free credits. No credit card required.Start building
Logo
Back to blog

Brand Switching: 4 API Calls to Find Who Left Evernote

·18 min read

Brand switching from public posts: find people who say they left a competitor, in their own words, with the reason and a link. Four live API calls on Evernote.

Brand Switching: 4 API Calls to Find Who Left Evernote

One request to /v1/search/everywhere with switch_from=Evernote returned 3 linked posts where a person says they left Evernote, each with a verbatim quote, a reason and, for two of them, a destination. That is brand switching read from public posts, with who left a competitor told in their own words. The stack is four endpoints, /v1/search/everywhere, /v1/reddit/search/comments, /v1/twitter/search/tweets and /v1/search/forums, all behind one API key.

There is no churn rate here, and no "X% of Evernote users leave". On every switch_from= call below, headline is null and share is null. What you get is rows read, receipts and undecided, plus the links so a person can check each one.

We ran four real calls on 2026-10-02 against production, with Cache-Control: no-cache on each. One earlier attempt, a query for Starbucks, found nothing, and that failure is in here too.

How do I find posts where someone says they left a brand?

Add switch_from= to a /v1/search/everywhere request. The response keeps its ranked items and gains data.switch_receipts: for each post that passes the check, a link, a verbatim quote, a reason, a destination when one was picked out, and a confidence score.

bash
curl "https://www.socialcrawl.dev/v1/search/everywhere?query=switched%20from%20Evernote&switch_from=Evernote" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY" \
  -H "Cache-Control: no-cache"

The call cost 20 credits as captured (x-credits-used: 20), and switch_from= adds no charge to the call. Here are all 3 receipts it returned. The third quote is longer in the raw response and is trimmed here with an ellipsis.

json
{
  "policy_version": "d13-2026-09-23",
  "brand": "Evernote",
  "receipts": [
    {
      "id": "https://reddit.com/r/pkms/comments/1wsmohv/after_12_years_canceled_evernote",
      "permalink": "https://www.reddit.com/r/PKMS/comments/1wsmohv/after_12_years_canceled_evernote/",
      "quote": "After 12 years canceled evernote\nEven after 40% discount evernote price is doubled in one year. Just canceled it and moved to Apple Notes. Had to write some scripts to add the source URL to notes. If anyone need it let me know.",
      "reason": "price",
      "destination": "Apple Notes",
      "confidence": 0.98
    },
    {
      "id": "https://medium.com/@christian_maehler/why-and-how-i-switched-from-evernote-to-apple-notes-1bffde05eee9",
      "permalink": "https://medium.com/@christian_maehler/why-and-how-i-switched-from-evernote-to-apple-notes-1bffde05eee9",
      "quote": "Why and How I Switched from Evernote to Apple Notes\nSearch speed: Apple Notes is way faster to search notes than Evernote not to mention the incredibly fast startup time when starting the app on",
      "reason": "product_quality",
      "destination": "Apple Notes\nSearch",
      "confidence": 0.95
    },
    {
      "id": "https://organizeyourfamilyhistory.com/switching-from-evernote-to-apple-notes",
      "permalink": "https://organizeyourfamilyhistory.com/switching-from-evernote-to-apple-notes",
      "quote": "Switching from Evernote to Apple Notes - Organize Your Family History\nI made the same decision to leave my paid Evernote plan and downgrade to a free plan, for just the same reasons. I switched to a free account 2 months ago. [...]",
      "reason": "price",
      "destination": null,
      "confidence": 0.89
    }
  ],
  "headline": null
}

The reasons are price, product_quality and price. The second destination is the raw string "Apple Notes\nSearch". It is a text capture from the post, not a normalised brand name, so clean it before you group by it.

Next to the receipts sits a count table in data.switch_receipts.count:

FieldValue
n24
counted3
abstained7
sharenull
headlinenull

Read it as 24 rows read, 3 receipts, 7 undecided. The response also carries a 90% interval, which describes only the rows this search read on this day. It is not a random sample of anyone, so do not treat it as a churn estimate.

Three receipts out of 24 rows looks thin, and that is the check working. A joke, a switch away from a different brand and a row the check is not confident about stay out of switch_receipts. A keyword filter of your own would have to make those same calls one by one, and /v1/search/everywhere (see the social search engine post) hands you the result.

Why does the bare query "Starbucks" return zero receipts?

The first attempt was query=Starbucks&switch_from=Starbucks. It returned zero receipts on all three calls (everywhere, Reddit comments and X), with n at 24, 22 and 20 and counted at 0 each time. switch_from= judges the rows that came back, and the query decides which rows come back. A bare brand name is not a switching query.

Use switching language in the query, such as "switched from Evernote". After the Starbucks miss we probed Spotify, Notion and Adobe on Reddit comments and Spotify and Notion on X, at 1 credit each, with the query worded for each brand. Spotify and Notion gave 4 and 6 Reddit receipts and 1 X receipt each, and Adobe gave 4 on Reddit. Evernote gave 11 on Reddit and 8 on X, the most on both, which is why it is the brand in every example here. A Notion run on universal search did return 7 receipts, more than Evernote's 3 there. So the set you are reading was picked for its Reddit and X results, not drawn at random. None of this shows that Starbucks has no switchers, only that this query found none.

Magnifying glass picking out glowing speech bubbles from a wall of blank ones, illustrating a brand switching search for posts where customers say they left a competitor

Can I search Reddit comments only?

Yes. /v1/reddit/search/comments takes the same switch_from= parameter, and it is where the reasons get specific. Our Reddit comment search is billed at 1 credit as captured, and switch_from= adds nothing on top.

bash
curl "https://www.socialcrawl.dev/v1/reddit/search/comments?query=switched%20from%20Evernote&switch_from=Evernote" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY" \
  -H "Cache-Control: no-cache"

The count was n 21, counted 11, abstained 7, with share and headline null. Of the 11 receipts, 6 gave price as the reason and 5 gave product_quality. A destination was named on 5 of the 11 (Notesnook, Fibery, Notion, Joplin and Joplin Cloud) and was null on the other 6. Three of them, verbatim:

json
[
  {
    "id": "p22ty0j",
    "permalink": "https://www.reddit.com/r/Switzerland/comments/1vh6lzc/comment/p22ty0j/",
    "quote": "Evernote - crazy price change, switched to another alternative, very happy. Sad though I was such a big fan from the very beginning…",
    "reason": "price", "destination": null, "confidence": 0.96
  },
  {
    "id": "p5zwrwu",
    "permalink": "https://www.reddit.com/r/Evernote/comments/1vy0qeh/comment/p5zwrwu/",
    "quote": "It’s not just about the free tier. I left because the price of the Evernote Personal subscription more than doubled last year. I was fine paying $120 a year, but unwilling to shell out $250 for new features I didn’t need. The thing that set Evernote apart from other tools for me was its web clipper, so I switched to Notesnook, which has a decent one. For $60/yr, it’s a solid 80/20 solution. [...]",
    "reason": "price", "destination": "Notesnook", "confidence": 0.98
  },
  {
    "id": "p3plyht",
    "permalink": "https://www.reddit.com/r/joplinapp/comments/1vo7m2y/comment/p3plyht/",
    "quote": "I feel that. I (finally) switched to self-hosted Joplin from Evernote (due to the latest frankly outrageous price hike) and really appreciate the functionality so far, migration of my notes went smooth too. [...]",
    "reason": "price", "destination": null, "confidence": 0.98
  }
]

The second one is the payoff. It gives the old price ($120 a year), the price that drove the person out ($250), the feature they needed (the web clipper) and the replacement and its price (Notesnook, $60/yr), all in the customer's words. A win/loss interview is meant to produce exactly this.

The third shows a limit. The text names self-hosted Joplin, and destination is still null. The field is filled when a name in the text was chosen, so a named destination in the quote does not guarantee a captured one.

The check can also be generous. Receipt p2oj4q5, from r/Anytype, was returned with reason product_quality and confidence 0.9. It is a long comment that lists Evernote among apps the author "previously used", which is weaker evidence of a switch than the three above. Receipts are for a person to read. Do not treat them as verified.

What does Reddit sentiment analysis look like once you have receipts?

Each receipt carries a reason you can quote and a link you can open, so a Reddit sentiment analysis gives you a reading list. In this pull, 6 of 11 Reddit receipts gave price and 5 gave product quality. That is a count of what 11 comments said, and nothing more.

Does it work on X (Twitter)?

/v1/twitter/search/tweets works the same way and also cost 1 credit as captured, with no extra for switch_from=.

bash
curl "https://www.socialcrawl.dev/v1/twitter/search/tweets?query=switched%20from%20Evernote&switch_from=Evernote" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY" \
  -H "Cache-Control: no-cache"

The count was n 20, counted 8, abstained 11, with share and headline null. Of the 8 receipts, 7 gave product_quality and 1 gave price. Destinations were Notion twice, then Emacs, OneNote and Obsidian, with null on three. Two of them, verbatim:

json
[
  {
    "id": "1978854605388702147",
    "permalink": "https://x.com/jasalt_/status/1978854605388702147",
    "quote": "@ovstoica Second to that. Switched to Emacs & org-mode from Evernote when it's shittification started in 2012 and never looked back, can recommend.",
    "reason": "product_quality", "destination": "Emacs", "confidence": 0.94
  },
  {
    "id": "1965963462011650427",
    "permalink": "https://x.com/shauncooley/status/1965963462011650427",
    "quote": "@fedesimio @robbdiazz I really tried post acquisition, premium from 2009 until about a month ago. You guys absolutely destroyed Evernote. It got so bad that I switched to OneNote, and do you have any idea how terrible OneNote is???",
    "reason": "product_quality", "destination": "OneNote", "confidence": 0.97
  }
]

One more X receipt, id 1998052204734034420, has reason product_quality and a null destination, even though the post goes on to praise Notion. It opens with "i switched from evernote to notion about 6 years ago" and then goes on about Notion's growth. The first sentence earns it the receipt, and the rest of the thread is why you cite the link and not the whole text.

Here are the three calls side by side.

CallCreditsRows read (n)Receipts (counted)Undecided (abstained)shareheadline
search/everywhere202437nullnull
reddit/search/comments121117nullnull
twitter/search/tweets120811nullnull

These are three different samples of different sizes. Do not add them up and do not divide one by another.

Balance scale weighing two piles of tokens, a visual for reading the stance split in a brand sentiment analysis of switching posts

How do I read the stance on any query?

Two endpoints return a stance, and they return it differently.

On /v1/search/everywhere, data.stance_split comes back in the same response as the receipts, so there is no new request and no new charge. It counts the stance each post takes on your query, per platform and overall, with the ids behind every count. Stance here is each post's stance on the query you sent (positive, negative, neutral or no opinion). The overall block:

FieldValue
posts40
counted7
positive1
negative3
neutral3
no_opinion15
uncertain18
unjudged0

A confidence_floor of 0.5 sits beside overall in stance_split. Only 7 of 40 posts were counted. The ids behind them, as returned:

StanceCountIds
negative3https://reddit.com/r/pkms/comments/1wsmohv/after_12_years_canceled_evernote, https://youtube.com/watch?v=li9yfsutu0i, https://github.com/mlebkowski/clips/issues/2
positive1https://medium.com/@christian_maehler/why-and-how-i-switched-from-evernote-to-apple-notes-1bffde05eee9
neutral3https://reddit.com/r/joplinapp/comments/1wuih1h/migrating_from_evernote_is_there_a_betterless, https://nesslabs.com/evernote-to-notion, perplexity:PERPLEXITY-SYNTHESIS

Open the ids and judge for yourself. by_platform returns the same breakdown for reddit, tavily, youtube, linkedin, pinterest, perplexity, github, tiktok and hackernews. If you are comparing this with sentiment analysis tools, the difference is the unit: here each count comes with the list of posts behind it, which makes it a brand sentiment analysis you can audit.

/v1/search/forums is different. It cost 10 credits as captured.

bash
curl "https://www.socialcrawl.dev/v1/search/forums?query=switched%20from%20Evernote" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY" \
  -H "Cache-Control: no-cache"

data.computed carries stance_split shares (positive 0.2, negative 0.8, neutral 0), stance_coverage (threads 40, counted 5, no_opinion 30, uncertain 5, unjudged 0) and top_communities: Hacker News 19, Naver 카페 9, Naver 지식iN 5, r/PKMS 3 and four more subreddits with 1 each. There is no ids object on forums. The stance sits on each thread, in items[].computed.stance as a label and a confidence. Group the 40 threads by label and you get 4 negative, 1 positive, 30 no_opinion and 5 uncertain, which matches the coverage block. The 4 negative threads:

ThreadConfidence
https://www.reddit.com/r/PKMS/comments/1wsmohv/after_12_years_canceled_evernote/0.91
https://www.reddit.com/r/ProductDesk/comments/1wbojnw/be_honest_is_evernote_still_your_primary/0.84
https://www.reddit.com/r/NoteTaking/comments/1ulbfu2/at_what_point_did_you_realize_evernote_was_not/0.89
https://www.reddit.com/r/Evernote/comments/1nuh89z/long_time_evernote_user_switching_to_another_app/0.86

Four caveats before you quote any of this. Four of 5 counted is a small base, and 30 of 40 threads were no_opinion. The forum sample is not Reddit-weighted: Hacker News gave 19 threads and Naver rows gave 14 of the 40. Naver rows that are not about Evernote, such as a 지식iN question about banks, are marked on_topic: false in each thread's items[].computed.relevance block. And the one positive thread is a Hacker News thread titled "Alternatives to Notion for those on corporate VPN" at confidence 0.68, which is a loose match to a query about Evernote.

What can brand switching posts not tell you?

It does not tell you how many people leave. No switch_from= response carries a churn rate or a switching share: share and headline are null, and there is no "X% of Evernote users leave". The 90% interval in the count table describes the rows the search read, and those rows are whatever came back on one day, not a random sample of anyone.

Three different nulls show up, and they mean different things. headline: null means there is no headline number, by design. share: null means no share is published. destination: null means no destination name was chosen from the text.

Customer churn analysis computes a rate from your own CRM: your customers, over time. This reads public posts about someone else's product and gives you receipts. The closest term for what you get is customer defection, one post at a time, and a rate is not part of it. If you need a churn analysis number, it has to come from your own data.

What a receipt does give you is a reason and a destination written without anyone asking, which works like an unprompted win/loss record. Klue recommends interviewing or surveying customers who switched from competitors, and a receipt gives you the same kind of evidence without the interview.

Results also move with the live web. Run the same calls on a different day, or on a different brand, and you get different rows.

Where does this fit next to social listening and competitive intelligence?

Boolean listening matches words that sit near each other. Brandwatch documents NEAR/x as defining "how close the two terms should be and the maximum number of words between them". A switched NEAR/10 Evernote query matches "switched from Evernote to Apple Notes" and "switched from Apple Notes to Evernote" the same way, because it has no idea who left whom.

Four cases keyword queries cannot separate. Wrong direction is the one above. Wrong brand is a post that names your competitor while describing a switch away from something else. Considering is not switching: Cotera notes that people on Reddit who ask for alternatives are "thinking about switching", which is intent, with no departure yet. Jokes are the fourth, and Maynard and Greenwood open their sarcasm paper by calling sarcasm "inherently difficult to analyse, not just automatically but often for humans too". switch_receipts keeps jokes, switches away from a different brand and low-confidence rows out.

For competitive intelligence, the receipt's reason matters more than any total. Quid concedes that "The data doesn't point to one universal reason why customers publicly leave a brand". In the Evernote pull, price and product quality both showed up as reasons, so read the quotes one at a time.

If you used GummySearch to dig through Reddit for this, note that it closed on 30 November 2025.

For the surrounding picture, start with social listening tools for the keyword-alert side and the B2B competitive intelligence guide for the buyer side. To wire this into your own pipeline, see how to build your own competitor analysis.

How do you start using this?

Get an API key, then send the first call with a different brand.

bash
curl "https://www.socialcrawl.dev/v1/search/everywhere?query=switched%20from%20YOUR_BRAND&switch_from=YOUR_BRAND" \
  -H "x-api-key: $SOCIALCRAWL_API_KEY" \
  -H "Cache-Control: no-cache"

Keep switching language in the query, because the query decides which rows come back and switch_from= only judges them. Add Cache-Control: no-cache to skip the cache. Expect different rows from ours, since the live web moves. Send the four requests in this post with your own key and swap Evernote for any brand. Everything is in the docs, and you can see your data before writing a single line.

Frequently asked questions

How do you find customers who are switching from a competitor?

Send a switching-language query such as "switched from Evernote" to /v1/search/everywhere with switch_from=Evernote. The response adds data.switch_receipts, a list of linked public posts with a verbatim quote, a reason and sometimes a destination. Read the receipts yourself, since the check can be generous.

Where do people post that they left a brand?

In the Evernote pull, the receipts came from Reddit comments, X, Medium and a personal blog. The forums call also returned Hacker News and Naver threads. That is only what one query returned on one day.

Can I get a churn rate for a competitor from social posts?

No. There is no churn rate or switching share. headline and share are null on every switch_from= call, and the rows read are not a random sample of anyone.

What is the difference between brand switching and customer churn?

Churn is your own customers leaving, measured over time from your own data. Brand switching here is individual public posts where someone says they left a competitor, with no rate attached.

How do I search Reddit comments for people who switched from a product?

Call /v1/reddit/search/comments with a query like "switched from Evernote" and switch_from=Evernote. In our pull it returned 21 rows read, 11 receipts and 7 undecided, at 1 credit.

What does stance_split count?

It counts positive, negative, neutral, no_opinion, uncertain and unjudged posts for your query. On /v1/search/everywhere the ids behind each count come back with it. On /v1/search/forums, computed.stance_split carries only the shares, the counts sit in computed.stance_coverage, and the stance is per thread, in items[].computed.stance.

Does switch_from= cost extra credits?

No. On /v1/search/everywhere the call cost 20 credits as captured, and switch_from= adds no charge to it. On Reddit comment search and X tweet search it cost 1 credit each as captured, with no extra for switch_from=. The forums call cost 10 credits as captured. Check x-credits-used on your own responses.

Topics
#brand-switching#customer-churn-analysis#churn-analysis#competitive-intelligence#social-listening#customer-defection#win-loss-analysis#reddit-sentiment-analysis

Related posts

🤖 AI agent or LLM? Read this page as markdown